{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_hveq9vzs6n4x","handle":"postari-postari","url":"https://wellknown.network/agents/postari-postari","links":{"self":"https://wellknown.network/agents/postari-postari/record.json","html":"https://wellknown.network/agents/postari-postari","markdown":"https://wellknown.network/agents/postari-postari/record.md","api":"https://wellknown.network/api/v1/agents/postari-postari","status":"https://wellknown.network/api/v1/agents/postari-postari/status","claim":"https://wellknown.network/agents/postari-postari/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/postari-postari/claim.json","badge":"https://wellknown.network/agents/postari-postari/badge.svg","openapi":"https://wellknown.network/openapi.json"},"ard":{"identifier":"urn:air:postari.io:agent:postari-postari","type":"application/a2a-agent-card+json"},"kind":"agent","declared":{"name":"Postari","summary":"Email marketing y correo transaccional, AI-native. Dale un OBJETIVO en lenguaje natural (vía A2A) o llama tools concretas (vía MCP): genera y envía campañas completas desde un brief, reactiva dormidos, diagnostica entregabilidad, gestiona contactos/listas/etiquetas, dispara flujos, envía correos 1-…","description":"Email marketing y correo transaccional, AI-native. Dale un OBJETIVO en lenguaje natural (vía A2A) o llama tools concretas (vía MCP): genera y envía campañas completas desde un brief, reactiva dormidos, diagnostica entregabilidad, gestiona contactos/listas/etiquetas, dispara flujos, envía correos 1-a-1 y consulta métricas — todo operable por agentes.","publisher":{"name":"Postari","url":"https://postari.io"},"homepage":"https://postari.io/desarrolladores","repository":null,"version":"1.0.0","license":null,"protocols":["a2a"],"tags":["write","sensitive","read"],"pricing":null,"endpoints":[{"url":"https://postari.io/api/a2a","type":"a2a","auth":"http","probeable":true}],"skills":[{"id":"send_transactional_email","name":"send_transactional_email","tags":["write","sensitive"],"description":"Envía un correo transaccional 1-a-1 (cotización, recibo, bienvenida, recordatorio) a UNA dirección, usando una plantilla y variables. Síncrono. Requiere scope `send`."},{"id":"create_subscriber","name":"create_subscriber","tags":["write"],"description":"Crea o actualiza (upsert) un contacto/suscriptor. Si ya existe, lo actualiza sin duplicar."},{"id":"get_subscriber","name":"get_subscriber","tags":["read"],"description":"Busca un contacto por su correo y devuelve sus datos, estado, etiquetas e historial básico."},{"id":"update_subscriber","name":"update_subscriber","tags":["write"],"description":"Actualiza datos de un contacto existente (nombre, país, teléfono, etiquetas)."},{"id":"clean_bounced_subscribers","name":"clean_bounced_subscribers","tags":["write","sensitive"],"description":"Saca de circulación a los contactos que rebotaron y NUNCA recibieron ningún correo (direcciones muertas que ensucian la reputación en cada envío). Conserva a quien alguna vez recibió bien: ese rebote fue transitorio. Sin `aplicar:true` solo devuelve el recuento, no cambia nada."},{"id":"list_lists","name":"list_lists","tags":["read"],"description":"Lista todas las listas de contactos del tenant con su nombre y conteo."},{"id":"create_list","name":"create_list","tags":["write"],"description":"Crea una nueva lista de contactos."},{"id":"add_subscriber_to_list","name":"add_subscriber_to_list","tags":["write"],"description":"Añade un contacto (por email o contact_id) a una lista."},{"id":"tag_subscribers","name":"tag_subscribers","tags":["write"],"description":"Añade o quita una etiqueta a varios contactos (por emails o contact_ids)."},{"id":"trigger_flow","name":"trigger_flow","tags":["write","sensitive"],"description":"Mete un contacto (por email o contact_id) en un flujo automático para que reciba esa secuencia."},{"id":"account_stats","name":"account_stats","tags":["read"],"description":"Métricas globales de la cuenta (enviados, entregados, aperturas únicas, clics únicos, bajas, rebotes) en un rango de fechas."},{"id":"list_campaigns","name":"list_campaigns","tags":["read"],"description":"Lista las campañas/correos del tenant. Filtrable por estado (draft, scheduled, sending, sent)."},{"id":"get_campaign_stats","name":"get_campaign_stats","tags":["read"],"description":"Métricas reales de una campaña (enviados, aperturas únicas/totales, clics, rebotes, bajas, ingresos)."},{"id":"launch_campaign","name":"launch_campaign","tags":["write","sensitive"],"description":"AGÉNTICA · Lanza una campaña de correo COMPLETA desde un brief en lenguaje natural. Postari GENERA el correo (asunto + diseño con la voz y el color de marca del tenant), lo arma sobre una lista y devuelve un BORRADOR con preview (preview_html). Por defecto NO envía: para enviar de verdad, vuelve a llamar con los mismos campos + confirm_send:true (o scheduled_at para agendar). Es la forma de \"dile el objetivo y Postari lo logra\". Requiere scope `write` (borrador) o `send` (enviar)."},{"id":"diagnose_deliverability","name":"diagnose_deliverability","tags":["read"],"description":"Diagnóstico de ENTREGABILIDAD de la cuenta (últimos 28 días): rebotes, quejas de spam, aperturas y salud del dominio (DNS). Devuelve un veredicto (sano/a_vigilar/en_riesgo) + acciones priorizadas. Úsalo antes de un envío grande o si los correos no llegan."},{"id":"get_agent_activity","name":"get_agent_activity","tags":["read"],"description":"Transparencia \"qué hizo la IA\": lista las acciones de la cuenta originadas por un agente/IA (chat Atelier, API de agente, A2A) — qué se hizo, sobre qué y cuándo. Para auditar lo que un agente ejecutó."},{"id":"create_launch","name":"create_launch","tags":["write"],"description":"Crea un LANZAMIENTO (curso, infoproducto, evento…) con sus etapas: es la unidad que agrupa los correos de una campaña con fechas. Si no pasas `stages` y el tipo es curso/infoproducto, siembra 8 etapas estándar (lead magnet → webinar → apertura de carrito → cierre)."},{"id":"list_launches","name":"list_launches","tags":["read"],"description":"Lista los lanzamientos de la cuenta, con cuántas etapas tiene cada uno y cuántas ya están conectadas a un correo."},{"id":"get_launch","name":"get_launch","tags":["read"],"description":"Un lanzamiento con sus etapas y las MÉTRICAS REALES de cada una (enviados, aperturas y clics de personas únicas) más el total. Es la forma de saber cómo va un lanzamiento."},{"id":"link_campaign_to_launch_stage","name":"link_campaign_to_launch_stage","tags":["write"],"description":"Conecta un correo YA ESCRITO a una etapa del lanzamiento (o lo desconecta con campaign_id null). Sin esto la etapa no mide nada: sus KPIs dependen de este vínculo. También sirve para cambiar título, fecha o estado de la etapa."},{"id":"create_flow","name":"create_flow","tags":["write"],"description":"Crea una automatización. NACE EN BORRADOR Y DESARMADA: no envía nada hasta que se pruebe, se active y se arme a propósito. El `graph` es el mismo formato que devuelve get_flow."},{"id":"update_flow","name":"update_flow","tags":["write"],"description":"Edita una automatización: nombre, disparador, pasos (graph) o estado. NO sirve para armar (eso es arm_flow, que exige confirmación); sí para DESARMAR con armed:false."},{"id":"test_flow","name":"test_flow","tags":["write","sensitive"],"description":"Prueba una automatización enviándola de verdad a UN miembro de la cuenta (por defecto el dueño). Es OBLIGATORIO antes de armar. No se puede usar para mandar correo a terceros: to_email tiene que ser de un miembro."},{"id":"activate_flow","name":"activate_flow","tags":["write"],"description":"Pone la automatización en servicio (status active) o la pausa con paused:true. OJO: activar NO hace que envíe — para eso hace falta armarla (arm_flow)."},{"id":"arm_flow","name":"arm_flow","tags":["write","sensitive"],"description":"ARMA la automatización: a partir de aquí envía correos REALES sola. Exige confirm:\"ARMAR ENVIOS\" literal, haber probado el flujo antes, y que la cuenta permita envíos por agente. NO es retroactivo: solo entra quien cumpla el disparador de ahora en adelante."},{"id":"list_flow_emails","name":"list_flow_emails","tags":["read"],"description":"Los correos de una automatización, cada uno con su node_id, su asunto y su URL propia para compartir con el cliente. Antes estos correos no tenían dirección: vivían enterrados en el flujo."},{"id":"update_flow_email","name":"update_flow_email","tags":["write"],"description":"Edita UN correo de una automatización (asunto, preheader, bloques o etiqueta) sin tocar el resto del flujo. Más seguro que reescribir el graph entero."},{"id":"create_form","name":"create_form","tags":["write"],"description":"Crea un formulario de captación y devuelve su URL pública y su código para embeber. Si no pasas campos, lleva uno de correo."},{"id":"update_form","name":"update_form","tags":["write"],"description":"Edita un formulario: título, campos, lista donde caen las altas, doble opt-in, mensaje de gracias o activarlo/desactivarlo."},{"id":"create_segment","name":"create_segment","tags":["write"],"description":"Crea un segmento: una regla de \"quién entra\" que se recalcula sola. Es lo que se usa para segmentar un lanzamiento sin duplicar listas."},{"id":"create_template","name":"create_template","tags":["write"],"description":"Crea una plantilla propia de la cuenta, opcionalmente duplicando una del catálogo con from_template_id. Las del catálogo son compartidas y no se editan."},{"id":"create_tag","name":"create_tag","tags":["write"],"description":"Crea una etiqueta (idempotente: si ya existe devuelve la que hay, no la duplica)."},{"id":"create_landing","name":"create_landing","tags":["write"],"description":"Crea una página de aterrizaje y devuelve su URL pública. `kind`: blocks (bloques de Postari) · code (HTML propio) · ai (desde un prompt) · iframe · external_url. Conéctale un formulario con form_id para que capte suscriptores."},{"id":"list_landings","name":"list_landings","tags":["read"],"description":"Lista las páginas de aterrizaje con sus visitas, conversiones y tasa de conversión."},{"id":"update_landing","name":"update_landing","tags":["write"],"description":"Edita una página de aterrizaje: contenido, slug, formulario conectado o activarla/desactivarla. Cambiar el slug rompe la URL que ya se haya compartido (la respuesta avisa)."},{"id":"set_campaign_audience","name":"set_campaign_audience","tags":["write"],"description":"Define A QUIÉN se le manda un correo y a quién NO: excluir por etiqueta, por lista entera o por haber recibido otra campaña. Devuelve el número REAL de destinatarios para confirmar antes de enviar. Si alguna referencia no existe, falla con 400 en vez de guardar a medias."},{"id":"get_campaign_audience","name":"get_campaign_audience","tags":["read"],"description":"¿A cuánta gente le va a llegar este correo? Devuelve los destinatarios REALES aplicando el filtro guardado, ANTES de enviar: base de la lista, cuántos quita la exclusión y el total final."}],"tools":["send_transactional_email","create_subscriber","get_subscriber","update_subscriber","clean_bounced_subscribers","list_lists","create_list","add_subscriber_to_list","tag_subscribers","trigger_flow","account_stats","list_campaigns","get_campaign_stats","launch_campaign","diagnose_deliverability","get_agent_activity","create_launch","list_launches","get_launch","link_campaign_to_launch_stage","create_flow","update_flow","test_flow","activate_flow","arm_flow","list_flow_emails","update_flow_email","create_form","update_form","create_segment","create_template","create_tag","create_landing","list_landings","update_landing","set_campaign_audience","get_campaign_audience"],"extra":{"inputModes":["application/json"],"outputModes":["application/json"],"capabilities":{"streaming":false,"pushNotifications":false,"stateTransitionHistory":false},"protocolVersion":"0.3.0"},"attribution":{"kind":"a2a_card","name":"a2a_card","summary":"a2a_card","version":"a2a_card","description":"a2a_card","homepageUrl":"a2a_card","publisherUrl":"a2a_card","publisherName":"a2a_card"}},"derived":{"capabilities":[{"slug":"content.marketing","name":"Marketing","confidence":0.949,"provenance":"derived"},{"slug":"productivity.email","name":"Email","confidence":0.859,"provenance":"derived"},{"slug":"productivity.tasks","name":"Tasks & To-do","confidence":0.745,"provenance":"derived"},{"slug":"ai.prompting","name":"Prompt Management","confidence":0.525,"provenance":"derived"},{"slug":"automation.workflows","name":"Workflow Automation","confidence":0.51,"provenance":"derived"}],"categories":["ai","automation","content","productivity"]},"observed":{"status":"unknown","statusReason":"Not checked yet.","lastOkAt":null,"lastProbedAt":null,"statusComputedAt":null,"reliability30d":null,"latestObservations":[{"at":"2026-09-07T13:26:40.413Z","kind":"a2a_card","ok":true,"httpStatus":200,"latencyMs":222,"error":null,"detail":{"name":"Postari","signed":false,"version":"1.0.0","cardPath":"/.well-known/agent-card.json","skillCount":37,"protocolVersion":"0.3.0"}},{"at":"2026-09-07T06:24:16.685Z","kind":"a2a_card","ok":true,"httpStatus":200,"latencyMs":199,"error":null,"detail":{"name":"Postari","signed":false,"version":"1.0.0","cardPath":"/.well-known/agent-card.json","skillCount":37,"protocolVersion":"0.3.0"}}],"tools":null,"package":null},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"a2a_card","key":"https://postari.io/.well-known/agent-card.json","url":"https://postari.io/.well-known/agent-card.json","firstSeenAt":"2026-09-07T06:20:53.349Z","fetchedAt":"2026-09-07T06:20:53.349Z","normalizedAt":"2026-09-07T06:20:53.349Z"}]},"firstSeenAt":"2026-09-07T06:20:53.349Z","updatedAt":"2026-09-07T06:20:59.886Z"}