Acción AI de Salesforce Collect Leads
En esta guía, le mostraremos cómo utilizar una acción personalizada de AI para enviar nuevos clientes potenciales y las transcripciones de chat de Social Intents a Salesforce automáticamente cuando se complete un chat o cuando se cumplan sus reglas de cualificación. Utilice intents de AI para calificar y crear clientes potenciales de forma inteligente directamente en Salesforce. No necesita software ni conectores adicionales.
Qué hace esta integración de Salesforce AI
Cuando su bot identifica a un visitante cualificado, crea un cliente potencial en Salesforce e incluye la transcripción del chat. Puede implementar esto de dos formas: Web-to-Lead (la más sencilla) o la API REST de Salesforce (recomendada para escala y registros más ricos como Tareas o Archivos).
Requisitos previos
- Cuenta de intenciones sociales con acciones de IA.
- Para Web-to-Lead: su Salesforce Org ID.
- Para REST API: una Salesforce Connected App y un token de acceso (por ejemplo, a través de Client Credentials o JWT). Almacene el token en Social Intents como secreto.
Datos que recogerá del chat
Configure su IA para capturar: nombre, apellidos, correo electrónico, teléfono, empresa y contexto opcional como URL de página o campaña. La transcripción puede enviarse como descripción, adjuntarse como tarea o cargarse como archivo con la opción REST.
Añadir una acción personalizada en Social Intents
Cree una nueva acción personalizada → Llamar solicitud API. Dele un nombre descriptivo (por ejemplo, create_salesforce_lead) y defina cuándo debe activarse (por ejemplo, al final del chat).
Opción A - Web-to-Lead (configuración más rápida)
- Tipo de acción: Disparo automático al finalizar el chat
- Método API: POST
- URL del punto final:
https://webto.salesforce.com/servlet/servlet.WebToLead?encoding=UTF-8
- Tipo de contenido:
application/x-www-form-urlencoded
- Campos obligatorios:
oid
(Org Id) yapellido
oempresa
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}}
Utilícela si desea una integración rápida y sin autenticación. Si necesita superar los límites diarios de Web-to-Lead o adjuntar registros más ricos, utilice la opción B.
Opción B - API REST de Salesforce (recomendada)
Cree el Lead a través de REST y, a continuación, añada opcionalmente la transcripción como una Tarea (simple y con capacidad de búsqueda) o súbala como un Archivo. Añada un encabezado de autorización con su token de portador y establezca Content-Type como application/json.
B1) Crear 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) Adjuntar transcripción como tarea
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) Cargar expediente académico como archivo
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"
}
Configuración recomendada de las intenciones sociales
- Disparador: Cuando finaliza el chat (o condicional en función de la cualificación del cliente potencial).
- Recoge las aportaciones:
firstName
,apellido
,correo electrónico
,teléfono
,empresa
,transcripción
,widgetName
,finalizóEn
. - Secretos: tienda
salesforceAccessToken
(opción REST). - Para el encadenamiento REST: guardar el Lead devuelto
id
de la primera llamada y referenciarlo en la segunda acción mediante{{tools.createLead.id}}
.
Ejemplos de casos prácticos
Crear siempre un Lead al finalizar el chat
Configure la acción para que se ejecute automáticamente cuando finalice un chat, de modo que cada conversación se capture en Salesforce con su transcripción. Esta es la configuración más infalible para los equipos que desean una cobertura completa de chat a CRM.
Configuración de las intenciones sociales
- Disparador: Al finalizar el chat
- Nombre de la acción:
crear_solicitud_de_ventas
- Entradas recogidas:
firstName
,apellido
,correo electrónico
,teléfono
,empresa
,transcripción
,widgetName
,finalizóEn
- Secretos:
salesforceAccessToken
(si utiliza la API REST)
Opción A - Web-to-Lead (sin autenticación)
Crea un Cliente potencial y almacena la transcripción del chat en el campo Descripción.
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}}
Consejo: Añada campaign_id=SU_CAMPAÑA_ID
para atribuir chats a las campañas.
Opción B - API REST (recomendada)
Cree el Lead, luego registre la transcripción como una Tarea completada para un mejor seguimiento de la actividad.
B1) Crear 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) Crear tarea con transcripción
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}}"
}
Mejoras opcionales
- Ruta del propietario: Establecer
OwnerId
en el Lead (REST) en función de la región o el producto recogidos en el chat. - Desduplicación: Utilice Reglas de Proceso/Flujo o Coincidencia para fusionar Leads por correo electrónico.
- Archivos en lugar de Descripción: Cargar la transcripción como archivo a través de
ContenidoVersión
y vincularlo conEnlaceDocumentoContenido
.
Crear un Lead sólo para visitantes cualificados
Añada comprobaciones de intención y cualificación en su flujo de IA. Sólo active la acción cuando el visitante coincida con sus criterios (por ejemplo, presupuesto >= umbral, tamaño de la empresa, territorio, intención de demostración, correo electrónico del trabajo, etc.).
Lógica de cualificación (ejemplo)
En su flujo de bots, reúna campos como useCase
, companySize
, país
, correo electrónico
y intento
.
A continuación, establezca una condición para ejecutar la acción de Salesforce sólo cuando se cumplan las reglas.
// 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 (sólo si cumple los requisitos)
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 la posibilidad de añadir campos ocultos como utm_fuente
, utm_campaña
o URL_página
para su atribución.
Cargas útiles de la API REST (sólo si están cualificadas)
B1) Crear cliente potencial con campos de cualificación
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) Añadir transcripción como Tarea (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: ruta y puntuación
- Enrutamiento territorial: Establecer
OwnerId
por país/región recogidos en el chat. - Puntuación MQL: Incluir un
Chat_Score__c
campo personalizado derivado de intent/tamaño/palabras clave. - Interés del producto: Capture
Producto__c
(por ejemplo, "Nube de Servicios") de la conversación para informes y cadencias.
- Comprueba tanto una ruta cualificada como una no cualificada.
- Verifique que los Leads se crean sólo cuando las reglas coinciden.
- Confirme que aparece el contenido de la transcripción (Tarea o Descripción).
- Asegúrese de que todos los enlaces de propietario/asignación o campaña funcionan como se espera.