#Un agente de IA en Instagram

Para responder los DM de Instagram con un agente de IA en Vatio, describes el agente en un archivo vatio.yml, haces push y hablas con él desde tu propia cuenta de Instagram a través de una cuenta de preview compartida, antes de conectar nada. Cuando responde bien, lo publicas y conectas tu cuenta profesional con el consentimiento de Meta desde el inbox de Vatio; desde ahí, tu agente en live responde cada DM que llega a esa cuenta. Es el mismo agente que responde en WhatsApp y en tu sitio web, lee las capturas y los audios que manda la gente, y cualquier persona de tu equipo puede tomar una conversación desde el inbox.

Esta guía cubre las conversaciones que trae Instagram, cómo probarlas y cómo conectar la cuenta.

#Un agente, todos los canales

No hay un agente aparte para Instagram. Un workspace corre un solo agente, y el canal solo cambia cómo se entregan sus respuestas, así que un agente que ya está en WhatsApp o en tu sitio está listo para Instagram. Si todavía no tienes uno, necesitas Node.js 20 o superior. vatio init no pide cuenta; el primer vatio push abre tu navegador para iniciar sesión con correo, Google o GitHub, y eso la crea.

npx @vatio-ai/skills
npm install -g @vatio-ai/cli@latest
vatio init casa-tilo

Un agente para una tienda de muebles y deco que vende sobre todo por Instagram:

workspace: casa-tilo
agent:
  name: Casa Tilo
  personality: Cercano y rápido. Mensajes cortos, como escribe la gente por DM.
  instructions: |
    Atiendes a los clientes de Casa Tilo, una tienda de muebles y deco que
    vende online y en su showroom en Ñuñoa, Santiago.

    Cada producto tiene un código como CT-0412, en la imagen y en la
    descripción de cada publicación. Cuando alguien pregunte por un
    producto, busca el código en su mensaje o en su captura y llama a
    buscar_productos con él. Sin código, busca por lo que describe o lo
    que muestra la imagen, y pregunta cuál es si hay varios. Da el precio,
    si hay stock y el link del producto que devolvió la tool.

    Si te mandan algo que no puedes ver, como un video, pide el código del
    producto o una captura. Para despachos, cambios y el showroom, busca
    primero en knowledge_lookup.

    Nunca inventes un precio, un stock ni una fecha de entrega.
  tools: [buscar_productos, knowledge_lookup]
  knowledge: [tienda]
  handoff:
    when:
      - un despacho que llegó dañado o un reclamo
      - un mueble a medida o un descuento para empresas

#Lo que manda la gente por Instagram

Los DM de Instagram son cortos: «precio?», «info», «¿sigue disponible?», «¿hacen despacho a Concepción?», muchas veces con una captura, porque la persona escribió desde el feed. Una conversación típica:

Cliente: precio? (captura de una publicación)

Agente: Es la mesa lateral Raulí, CT-0412: $189.990, y hay stock. https://casa-tilo.example/p/ct-0412

Cliente: hacen despacho a conce

Agente: Sí. Los muebles a regiones pagan $24.990 por pedido y llegan en 5 a 7 días hábiles. También puedes retirarla gratis en el showroom.

Detrás de esas respuestas, el agente leyó «CT-0412» en la captura, llamó a buscar_productos con ese código y buscó los despachos en la base de conocimiento. El link vino de la tool, y eso es lo que le permite enviarlo. Tres hábitos hacen que esto funcione:

Guarda la dirección y la llave de la API como secrets:

vatio secrets set TIENDA_API https://api.casa-tilo.example
vatio secrets set TIENDA_API_KEY sk_live_...

tools/buscar_productos.yml:

description: Busca en el catálogo por código de producto o por descripción.
when_to_use: El cliente pregunta por un producto, su precio o su stock, por código, por descripción o con una captura.
parameters:
  type: object
  properties:
    codigo: { type: string, description: "Código del producto, por ejemplo CT-0412" }
    consulta: { type: string, description: "Lo que describe el cliente o muestra la imagen, por ejemplo mesa lateral de madera" }
access: public
request:
  method: GET
  base_url: "$env.TIENDA_API"
  path: /productos/buscar
  headers:
    Authorization: "Bearer $env.TIENDA_API_KEY"
  query:
    codigo: "$params.codigo"
    q: "$params.consulta"
respond:
  data:
    productos: "$.productos"
  message:
    when_empty: Ningún producto coincide con ese código o descripción.
    default: "Encontré {{count}} productos."

Haz que el endpoint devuelva el nombre, el precio, el stock y el link de cada producto, y nada que no pondrías en una publicación: lo que devuelve una tool, el modelo lo puede repetir.

Despachos, cambios y el showroom van en una base de conocimiento, una entrada por tema:

vatio kb create tienda
vatio kb write tienda despachos despachos.md
vatio kb write tienda cambios-y-devoluciones cambios-y-devoluciones.md
vatio kb write tienda showroom showroom.md
# Despachos

## Costo y plazos
Los productos pequeños pagan $4.990 y los muebles $24.990 por pedido.
En Santiago llegan en 2 a 4 días hábiles y a regiones en 5 a 7.
El retiro en el showroom es gratis.

Vatio no lee sitios web, y una descripción que el agente nunca recibió no es algo que sepa: pon lo importante en una entrada o detrás de la tool.

#Pruébalo en la cuenta de preview compartida

vatio push
vatio chat "cuánto cuesta la CT-0412?"
vatio chat "la lámpara que pedí llegó rota"
vatio chat show

El segundo mensaje es un despacho dañado, así que debería derivarse; chat show te dice si lo hizo. vatio chat envía texto y responde al instante, así que las capturas y el ritmo de las respuestas se prueban en Instagram mismo, en la cuenta de preview de Vatio. Todo se hace en la pestaña Instagram de la página Probar del inbox:

  1. Abre Probar → Instagram. Una cuenta que ya verificaste en otro workspace aparece en Ya verificaste estas cuentas, y Usar en preview la conecta con un clic, sin código.
  2. Si no, en Conecta tu cuenta, escanea el código QR con tu celular: se abre el DM con la cuenta de preview de Vatio. Desde la cuenta con la que vas a probar, envíale el código que muestra la página; desde el computador, escríbele por DM a la cuenta que nombra la página y envíale el código. Ese DM demuestra que la cuenta es tuya: Vatio te responde de inmediato con “Verificamos tu cuenta ✅”, y la página se actualiza sola.
  3. Sigue hablando con el agente en ese DM y lee la conversación en Conversaciones, en el mismo inbox.

Instagram no deja que Vatio escriba primero, así que tu cuenta envía el código en vez de recibirlo. Un código dura 15 minutos y sirve una vez, y el de la página se renueva solo. Una cuenta enruta a un solo workspace a la vez; enviar desde ella el código de otro workspace, o elegir Usar en … en otro workspace, la mueve a ese.

Un workspace puede tener hasta cinco cuentas de prueba: Agregar otra cuenta, debajo de la lista, muestra un código nuevo. Cada una llega a preview, así que pruebas un cambio en Instagram antes de publicarlo. Nunca llega a live: live es tu propia cuenta.

Después escribe como escriben tus seguidores: una captura con «precio?», tres mensajes cortos seguidos, un audio preguntando por el despacho.

#Conecta tu cuenta profesional

Cuando el preview está bien, publícalo:

vatio publish

Después, en el inbox, abre Canales → Instagram en live, elige Conectar Instagram y completa el consentimiento de Meta en la ventana que se abre. Si publicas desde el inbox, con Publicar a live en la página Probar, primero corren tus pruebas; después de la primera publicación, Publicado. Ahora: ponlo en tu app también conecta Instagram desde ahí. Tiene que ser una cuenta profesional, y el consentimiento pide leer su perfil y gestionar sus mensajes.

No hay un interruptor que activar después: apenas la cuenta queda conectada, tu deployment live responde sus DM, y por eso publicas primero. El mismo modal dice si la cuenta está recibiendo DM (En vivo — respondiendo DM cuando sí), y Verificar vuelve a correr esa revisión.

Un workspace conecta una cuenta, y una cuenta se conecta a un workspace; para cambiar de cuenta, elimina primero la integración. Vatio renueva el access token automáticamente, y si alguna vez expira, elige Reconectar con la misma cuenta.

Desde ahí, vatio publish cambia lo que responde la cuenta, y vatio rollback restaura la versión anterior.

#Cómo se comporta una conversación de Instagram

#Con quién está hablando el agente

Para tu backend, un contacto de Instagram empieza siendo anónimo: no hay una página donde pueda firmar un token que diga quién es, así que mientras no inicie sesión solo corren tools públicas. Los pedidos o la cuenta de un cliente van detrás de un login, en una tool marcada access: private. Con sign_in_url en auth:, esa tool le envía al cliente un botón Iniciar sesión que abre tu sitio; tu página redirige de vuelta con el mismo token que le pones al widget, Vatio le pide confirmar el @usuario que se conecta, y la conversación sigue donde quedó (En WhatsApp e Instagram). Un chat con IA para tu sitio web muestra cómo firmar el token.

Un DM tampoco trae un número de teléfono. En WhatsApp el agente ya tiene el número del cliente; en Instagram solo lo tiene si el cliente lo escribe. Una tool que necesite un teléfono o un correo, por ejemplo para agendar una visita al showroom, lo pide como parámetro, y tu backend lo valida. Para revisar el pedido de alguien que no ha iniciado sesión, pide el número de pedido más un segundo dato, como el correo de la compra, y que tu backend verifique que coincidan. Los parámetros los llena el modelo, así que esa verificación va en código, nunca en el prompt.

#Cuando una persona toma la conversación

Los supervisores que invitas desde Equipo en el inbox ven todas las conversaciones de Instagram en el inbox, con cada llamada a tools junto a la respuesta que produjo.

Cuando una respuesta estuvo mal, usa Reportar esta respuesta y escribe lo que debió pasar. Tu coding agent corrige la causa desde esas notas; mira Mejorar tu agente.

#Lo que Vatio no hace en Instagram

El agente solo responde los DM que le escriben. Vatio no envía DM salientes, difusiones, campañas ni seguimientos, e Instagram solo deja que una empresa le responda a quien escribió primero. Trabaja en los mensajes directos, no en los comentarios de tus publicaciones. Tampoco hay llamadas de voz, y el agente nunca genera imágenes ni archivos.

WhatsApp funciona igual, con un número de preview compartido y tu propio número de negocio; mira Un agente de IA en WhatsApp. Cada opción de la página Canales está en la documentación de Instagram.

Preguntas frecuentes

¿Un agente de IA puede responder automáticamente los DM de Instagram?

Sí. Conectas tu cuenta profesional de Instagram con el consentimiento de Meta desde el inbox de Vatio, y tu agente en live responde cada DM que llega a esa cuenta. Es el mismo agente que responde en WhatsApp y en tu sitio web, descrito en un solo vatio.yml.

¿Tengo que conectar mi cuenta de Instagram para probar el agente?

No. Vatio tiene una cuenta de preview compartida. Escaneas un código QR en la página Probar del inbox, le envías desde tu propia cuenta el código que muestra y hablas con tu agente desde ahí. Un workspace puede tener hasta cinco cuentas de prueba, y nunca llegan a live.

¿El agente lee las capturas de pantalla y los audios que llegan por Instagram?

Sí. Las imágenes compatibles, como la captura de una publicación, le llegan al agente, y los audios se transcriben, hasta 8 MB por archivo. Un video, como un reel compartido, no es algo que pueda ver. Sus respuestas son solo texto.

¿El agente puede escribir primero o hacer campañas por Instagram?

No. Instagram solo deja que una empresa le responda a quien le escribió, así que en Instagram Vatio solo responde los mensajes que llegan: no hay DM salientes, difusiones ni seguimientos. Los recordatorios y las campañas que tu backend envía con la Messages API de Vatio salen solo por WhatsApp. El agente retoma cada vez que alguien escribe.

¿Mi equipo puede tomar una conversación de Instagram?

Sí. Los supervisores ven todas las conversaciones en el inbox de Vatio y toman una respondiendo ahí, lo que pausa al agente en ese chat. La devuelven desde el inbox, o el traspaso vence 8 horas después del último mensaje del cliente.

¿El agente puede consultar los pedidos de un cliente por Instagram?

Sí, una vez que el cliente inicia sesión. Las tools públicas corren para cualquiera, y una tool marcada access: private corre para un contacto con sesión iniciada: con un sign_in_url en vatio.yml, Vatio le envía un botón Iniciar sesión que abre tu sitio web, y la conversación sigue cuando vuelve. Para clientes sin cuenta, lo habitual es pedir el número de pedido más un segundo dato, y que tu backend verifique que coincidan.

Actualizado: