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.

Configuración de acciones personalizadas para clientes potenciales de Salesforce

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) y apellido o 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}}

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 con EnlaceDocumentoContenido.

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ónicoy 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ñao 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.
Lista de control de calidad:
  • 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.