CustomAdminDeveloperArchitect22 min de leitura

Adjuntos en Agentforce por WhatsApp — canal custom conectado a Meta

O Desafio

Los adjuntos enviados por WhatsApp llegan a Salesforce pero Agentforce falla al procesarlos.

Apresentação executivaVersão slide a slide da receita — ideal para compartilhar ou apresentar.
Jonathan Gomez·Agentforce Enterprise ArchitectAtualizado: 23 de julho de 2026
AdjuntosAgentforceWhatsAppDigital EngagementPlatform EventsApexLWCPrompt TemplatesFlows

Em resumo

  • El path estándar de Digital Engagement guarda el archivo en Salesforce como ContentDocument, pero Agentforce recibe el mensaje sin capacidad de procesar el binario y responde con error.
  • La receta reemplaza el canal estándar: un webhook público en Force.com Sites recibe directo de Meta, valida HMAC-SHA256 y publica un Platform Event.
  • Un pipeline asíncrono descarga el archivo, lo procesa con un Flow + Prompt Template (GPT-4o para imágenes/documentos, Whisper para audio) y entrega el resultado como mensaje sintético al Agent.
  • El Agent responde el análisis del contenido — nunca ve el binario, solo el texto interpretado.
  • Costo: 6 objetos custom, ~30 clases Apex, 4 pipelines (imagen/audio/video/documento), permission sets dedicados y un Guest User Profile para el webhook.

Sintoma

El cliente envía una foto, audio o documento por WhatsApp. El archivo llega a Salesforce como ContentDocument relacionado al Messaging Session, pero el Agent responde 'no pude procesar el archivo'.

Causa raiz

En el path estándar, Digital Engagement le entrega al Agent un mensaje con referencia al media, no el contenido interpretado. Agentforce (a la fecha de este documento) no invoca automáticamente un modelo multimodal sobre ese binario, así que reporta el fallo.

Impacto

Cualquier caso de uso donde el cliente adjunte evidencia (comprobantes, fotos de producto, notas de voz) queda bloqueado. En verticales como servicios financieros, retail o seguros, esto elimina buena parte del valor de un canal conversacional.

Estándar · Messaging for WhatsApp + Agentforce
Este approach · Webhook + Meta + Custom Channel
  • Configuración del canal
    WhatsApp conectado vía Messaging Channel de Salesforce. Number, templates y routing configurados en Digital Engagement.
    Number registrado directo en Meta Business. Salesforce se comunica con la Graph API vía Named Credentials / Remote Site Settings.
  • Recepción de mensajes
    Salesforce recibe eventos vía la integración nativa. Messaging Session, Messaging User y ContentDocument son creados automáticamente.
    Force.com Site expone un endpoint público (REST). Meta hace POST al webhook. Un Platform Event decouplea la recepción de la lógica de negocio.
  • Almacenamiento del contenido
    ContentDocument relacionado al Messaging Session. Sin metadata adicional del canal.
    Objetos custom: WhatsApp_Conversation__c, WhatsApp_Message__c, WhatsApp_Media__c, WhatsApp_Log__c. Trazabilidad completa del canal.
  • Procesamiento de adjuntos
    El Agent recibe el mensaje con referencia al media pero no procesa el binario. Responde error.
    Pipeline dedicado: download → Flow → Prompt Template (GPT-4o vision / Whisper) → mensaje sintético → Agent. El Agent ve texto interpretado.
  • Comunicación con el Agent
    Routing automático vía Digital Engagement + Omni-Channel.
    Callout explícito al Agent API (Einstein Agent Runtime) con JWT desde Connected App con Client Credentials Flow.
  • Governance & mantenimiento
    Configuración declarativa. Salesforce mantiene la integración.
    ~30 clases Apex, permission sets, Guest User Profile con FLS en 67+ campos, Remote Site Settings, Named Credentials. Requiere developer.
  • Multitenancy (varios números)
    Un Messaging Channel por número. Routing configurable.
    WhatsApp_Configuration__c por número; webhook path incluye configId. Config cache map-based por transacción.
  • Extensibilidad
    Limitada a lo que Digital Engagement expone.
    Flows admin-configurables por tipo de media. TTS opcional. Reglas custom sobre keywords, audio-mode, escalamiento.

Antes del detalle, la idea en una frase: en el camino estándar Salesforce actúa como recepcionista con contrato firmado con Meta — recibe, guarda y clasifica todo por ti; en el camino custom tú montas tu propia recepción, tus propias reglas, y una banda transportadora de IA que traduce cada adjunto a texto antes de entregarlo al agente. El camino estándar es más simple; el custom procesa lo que el estándar hoy no procesa.