¿Es posible que la IA envíe imágenes de productos al usuario

Describe the problem/error/question

I have a workflow in n8n where the first AI agent handles user questions like product price inquiries.
Now I want to make it smarter:
If the user asks for a product picture after getting the price,
a second AI agent should automatically send the product image to the Facebook Messenger user.
Is this possible to implement in n8n?
If yes, what would be the best approach for handling this flow between two agents and sending the image through Facebook Messenger API? and I am using Airtable for product information.
Thanks in advance!

What is the error message (if any)?

Please share your workflow

Share the output returned by the last node

  • n8n version:
  • Database (default: SQLite):
  • n8n EXECUTIONS_PROCESS setting (default: own, main):
  • Running n8n via (Docker, npm, n8n cloud, desktop app):
  • Operating system:

@Abidul_Haque_Shohel definitivamente es posible, pero la división de dos agentes no es realmente el patrón correcto para esto — agrega latencia y te da dos puntos de fallo en lugar de uno. La configuración más limpia es un único agente de IA que emite JSON estructurado, luego routeas en el flujo según lo que el modelo dice que quiere hacer. El flujo termina siendo Messenger Webhook → AI Agent → Switch on intent → Airtable lookup → Messenger Send API.

haz que el agente emita algo como:

{
  "intent": "image_request",
  "product_id": "rec123abc",
  "message_text": "aquí está la foto del Black Cycle Pro que pediste"
}

luego Switch on intent, haz un Airtable lookup por product_id para obtener la url de la imagen, envía a Messenger.

un gran gotcha — las urls de adjuntos de Airtable están FIRMADAS y expiran después de aproximadamente 2 horas desde su cambio de seguridad hace un tiempo. si pasas la url de Airtable sin procesar directamente a Messenger funciona para envíos inmediatos pero falla intermitentemente cuando Messenger carga la imagen de forma diferida y la firma ya está muerta. la solución más limpia es cargar al endpoint attachment_upload de Messenger primero, obtener un attachment_id permanente, luego hacer referencia a ese id en envíos posteriores. la alternativa más rápida es re-alojar en almacenamiento estable (s3, cloudflare r2, supabase storage) y poner esa url estable en Airtable en lugar del campo de adjunto nativo.

la llamada de Messenger Send API para una imagen se ve así:

{
  "recipient": {"id": "<user_psid>"},
  "message": {
    "attachment": {
      "type": "image",
      "payload": {
        "url": "https://your-cdn/product-123.jpg",
        "is_reusable": true
      }
    }
  }
}

fijar is_reusable a true hace que FB lo almacene en caché del lado del servidor para que los envíos repetidos de la misma imagen de producto no se descarguen cada vez, una gran ganancia de latencia una vez que tu catálogo se construye.

Hola, soy Jay, soy un Creador Verificado de n8n de Vietnam.

Actualmente construí y compartí un flujo de trabajo gratuito que cubre exactamente este caso de uso:

Construir un chatbot de servicio al cliente de Facebook Messenger con Google Gemini

Es uno de los flujos de trabajo más fundamentales de Messenger + IA que he publicado, y alcanzó alrededor de 2,600 usos en solo 2 meses. Eso me dice que muchos constructores están tratando de resolver el mismo problema.

En mi caso, lo manejé con una arquitectura más simple. En lugar de dividir la lógica entre múltiples agentes de IA, forzé a un único Agente de IA a devolver JSON estructurado con tres campos: text, image y video.

{

“text”: “¡Hola!”

“image”: “https://nguyenthieutoan.com/image.png

“video”: “https://nguyenthieutoan.com/video.mp4

}

Con esta configuración, cada vez que la IA necesita enviar una respuesta con imágenes o videos de productos, solo necesita completar los campos relevantes en una única respuesta. Eso significa que un único agente puede enviar texto y múltiples activos multimedia en la misma ejecución, lo que ayuda a reducir la latencia, mantiene el flujo de trabajo más limpio y facilita almacenar la interacción completa en el historial de conversación.

Es posible que encuentres este enfoque útil para tu caso de uso.