# FIA Copilot — Documentación completa > Generado automáticamente desde content/docs/. Última generación: 2026-06-19T21:06:40.698Z --- # Qué es FIA Copilot URL: https://fiacopilot.com/docs/01-empezar/01-que-es Resumen: Visión general de la plataforma, a quién está dirigida y qué problemas resuelve. # Qué es FIA Copilot FIA Copilot es el sistema operativo de adopción de IA para empresas. No es una herramienta más: es una plataforma de **formación + ejecución + acompañamiento** que ayuda a empresarios y equipos a pasar del uso casual de ChatGPT a la implementación sistemática de inteligencia artificial en procesos reales de negocio. ## A quién está dirigido - **Empresarios** y dueños de PyMEs que quieren incorporar IA en su operación. - **Equipos comerciales** que quieren vender mejor con IA (programa FIA Ventas). - **Empresas** que quieren transformar su operación con IA (programa FIA Empresas). - **Operadores técnicos** que quieren construir agentes propios (programa FIA Agéntica). ## Cuatro componentes centrales 1. **Programas de formación** — tres tracks (Ventas / Empresas / Agéntica) con cápsulas de video, actividades, recursos y clases en vivo. 2. **Memoria de negocio (briefings)** — un "segundo cerebro" donde cada usuario y cada empresa guardan el contexto que sus agentes y workers necesitan para ser útiles. 3. **Workers / Specialists** — agentes de IA preconfigurados que conversan con el usuario usando su memoria. 4. **Engagement engine (Sofía)** — un agente que escribe por WhatsApp para mantener el momentum (recordatorios, celebraciones, reactivación). ## Lo que NO es FIA Copilot - No es un wrapper de ChatGPT. Tiene metodología propia (Método FIA, sistema WORKIA). - No es un curso pasivo. Cada cápsula tiene actividades y entregables. - No es una herramienta self-service genérica. Hay roles humanos (coaches, closers) acompañando. --- # Los tres programas URL: https://fiacopilot.com/docs/01-empezar/02-programas Resumen: FIA Ventas, FIA Empresas y FIA Agéntica — qué resuelve cada uno y a quién está dirigido. # Los tres programas FIA Copilot ofrece tres tracks de formación. Cada uno tiene su propio path de cápsulas, su propia comunidad de cohorte y, en muchos casos, sus propias clases en vivo. ## FIA Ventas - **Duración**: 10 semanas + intro. - **Audiencia**: equipos comerciales que quieren cerrar más con IA. - **Resultado esperado**: un proceso de ventas asistido por IA, scripts entrenados con el contexto del negocio, y un closer (humano + IA) más efectivo. - **Landing**: [/programa/fia-ventas](https://fiacopilot.com/programa/fia-ventas) ## FIA Empresas - **Duración**: 10 etapas distribuidas en 3 fases. - **Audiencia**: dueños y operadores que quieren transformar la operación de la empresa con IA. - **Resultado esperado**: una hoja de ruta de adopción de IA por área (operaciones, marketing, finanzas, recursos humanos), implementada y medida. - **Landing**: [/programa/fia-empresas](https://fiacopilot.com/programa/fia-empresas) ## FIA Agéntica - **Duración**: 8 semanas. - **Audiencia**: operadores técnicos que quieren construir agentes propios. - **Resultado esperado**: agentes funcionando en producción, conectados a herramientas reales del negocio. - **Landing**: [/programa/fia-agentica](https://fiacopilot.com/programa/fia-agentica) ## Programación Agéntica para Líderes (taller presencial) Formato aparte de los tres tracks anteriores: un intensivo presencial y acotado, no un programa de varias semanas. - **Formato**: taller presencial intensivo, en medias jornadas, con grupo reducido por diseño. - **Audiencia**: líderes y dueños que quieren construir software, automatizaciones y agentes para su negocio sin necesidad de ser programadores. - **Resultado esperado**: una herramienta propia funcionando desde el primer día + una sesión de seguimiento online unas semanas después. - **Embudo propio**: captura leads en su propio pipeline (`/admin/pipeline?program=agentica-intensivo`), separado del programa FIA Agéntica. - **Landing**: [/programa/agentica-intensivo](https://fiacopilot.com/programa/agentica-intensivo) ## Cómo se ingresa A cada programa se aplica desde su landing. La aplicación se evalúa por el equipo comercial (closers), que puede agendar una llamada de discovery vía Cal.com. Una vez aceptado el aplicante y completado el pago, se enrola al usuario en el path correspondiente. Ver [Aplicar a un programa](/docs/03-procesos/01-aplicar-programa) para el flujo completo. --- # Navegar la plataforma URL: https://fiacopilot.com/docs/01-empezar/03-navegacion Resumen: Cómo está organizada la app por dentro y dónde encontrar cada cosa. # Navegar la plataforma Una vez logueado, la app tiene cuatro grandes secciones accesibles desde el menú principal. ## Dashboard Punto de entrada. Muestra tu programa activo, próximas cápsulas, racha actual, próxima clase en vivo y notificaciones. ## Programa activo Según el programa al que estés enrolado: - `/fia-ventas` — hub del programa con las 10 semanas y la intro. - `/fia-empresas` — hub con las 10 etapas en 3 fases. - `/fia-agentica` — hub con las 8 semanas. Cada hub te muestra qué cápsulas completaste, cuál es la próxima recomendada, y los recursos asociados. ## Memoria `/memoria/briefings` — tu "segundo cerebro". Acá guardás contexto del negocio que después usan los workers/specialists cuando hablás con ellos. Ver [Sistema de memoria](/docs/02-memoria/01-briefings) para el detalle. ## Workers `/workers` — listado de agentes especializados disponibles. Cada worker tiene un dominio (ventas, marketing, finanzas, etc.) y puede conversar con vos usando tu memoria como contexto. ## Otras secciones - `/comunidad` — posts y eventos de la comunidad. - `/agendar` — reserva de coaching calls (Cal.com). - `/ruleta` — ruleta diaria con premios y rachas. - `/ranking` — leaderboard de puntos. - `/perfil`, `/mi-informacion`, `/mi-empresa`, `/mi-equipo` — gestión de cuenta. - `/facturacion` — Stripe billing portal. - `/ayuda` — FAQ y soporte. ## Sección admin (solo para administradores) `/admin/*` — CRM comercial, métricas, gestión de cápsulas, workers, eventos y organizaciones. Solo accesible para usuarios con flag `is_admin`. ## Sección coach (solo para coaches) `/coach/*` — gestión de alumnos asignados. Solo accesible para usuarios con rol coach. --- # Qué es la memoria (briefings) URL: https://fiacopilot.com/docs/02-memoria/01-briefings Resumen: La memoria de negocio en FIA Copilot — qué es, dónde vive y cómo se estructura. # Qué es la memoria (briefings) La memoria es el componente diferencial de FIA Copilot. Es el "segundo cerebro" de cada usuario y empresa: un conjunto de **briefings** (documentos estructurados) que capturan el contexto del negocio para que los workers, specialists y agentes externos puedan ser realmente útiles. ## Por qué existe Un asistente de IA sin contexto es genérico. Le pedís ayuda para escribir una propuesta y te devuelve algo que aplicaría a cualquier empresa del mundo. Un asistente con contexto del negocio devuelve una propuesta usable. La memoria resuelve eso: el usuario invierte tiempo una vez en escribir briefings sólidos, y a partir de ahí todos los workers tienen contexto compartido. ## Qué se guarda en un briefing Los briefings son documentos en formato libre, pero típicamente cubren: - **Identidad del negocio**: qué hace la empresa, a quién le vende, propuesta de valor. - **Personas clave**: quién es el dueño, el equipo, los clientes ideales. - **Procesos**: cómo se vende, cómo se entrega, cómo se cobra. - **Reglas y restricciones**: tono de comunicación, valores, lo que NO se hace. - **Métricas**: KPIs relevantes, números que importan. ## Dónde vive - **UI**: [/memoria/briefings](https://fiacopilot.com/memoria/briefings) (login requerido). - **API**: `/api/briefings` y `/api/briefings/[id]`. - **Código**: `src/lib/briefings/` y `src/components/memory/`. - **DB**: tabla `briefings` en Supabase (con RLS por usuario / organización). ## Alcance de un briefing Un briefing puede ser: - **Personal** (asociado al `user_id`). - **De organización** (asociado a una `organization_id` — todos los miembros lo ven). - **Público** (toggle que lo expone vía URL — útil para compartir con un agente externo). Ver [Compartir briefings](/docs/02-memoria/02-compartir) para más detalle. --- # Compartir briefings URL: https://fiacopilot.com/docs/02-memoria/02-compartir Resumen: Cómo se comparten briefings con otros usuarios, con la organización o con agentes externos. # Compartir briefings Un briefing puede vivir en tres alcances. Entender cuál usar es importante para la privacidad y para que los agentes accedan a la información correcta. ## Briefing personal Solo el usuario que lo creó puede leerlo y editarlo. Es el default. Útil para notas privadas, contexto que no querés compartir con el resto del equipo. ## Briefing de organización Visible para todos los miembros de la organización. Se crea desde la cuenta de un miembro pero queda asociado al `organization_id`. Útil para contexto compartido del equipo: identidad de marca, procesos internos, lista de clientes. ## Briefing público Accesible vía URL sin necesidad de login. Se activa con un toggle en la UI del briefing. Útil para: - Compartir contexto con un agente externo (un Claude o ChatGPT que no tiene cuenta en FIA Copilot). - Adjuntar contexto en una propuesta o un onboarding a un cliente. > **Atención**: una vez público, cualquiera con la URL puede leerlo. Revisá qué contenido tiene antes de activar el toggle. ## Para agentes: fetchear un briefing público Si tu agente necesita leer un briefing público, el flujo es: 1. El usuario activa el toggle "público" desde la UI. 2. La URL queda algo como `https://fiacopilot.com/memoria/briefings/`. 3. El agente puede hacer `WebFetch` a esa URL y parsear el contenido. Si en el futuro existe API key, el agente podrá listar y leer briefings privados del usuario también. Ver [Para tu agente de IA](/docs/06-para-tu-agente/01-prompt). --- # Usar memoria con workers URL: https://fiacopilot.com/docs/02-memoria/03-usar-con-workers Resumen: Cómo los workers/specialists usan los briefings como contexto en cada conversación. # Usar memoria con workers Cuando arrancás una conversación con un worker (`/workers/[slug]`), el sistema inyecta automáticamente como contexto: 1. **Tu perfil** — nombre, rol, programa activo. 2. **Briefings personales y de tu organización** — todos los marcados como activos. 3. **Briefings de la cápsula** — si el worker está asociado a una cápsula específica, también se incluyen los briefings de esa cápsula. 4. **El system prompt del worker** — define la especialización (ej. "sos un coach de ventas que…"). Esto significa que dos usuarios distintos hablando con el mismo worker reciben respuestas distintas: cada uno ve respuestas adaptadas a su contexto. ## Recuperación por relevancia (búsqueda semántica) Tu memoria no se inyecta entera ni "solo lo más nuevo". Cuando le escribís a un worker, el sistema busca en toda tu memoria los fragmentos **más relevantes a tu mensaje** y le pasa solo esos. La búsqueda es **semántica**: encuentra lo que tiene que ver con tu pregunta aunque no use las mismas palabras, y aunque lo hayas guardado hace meses. Qué implica para vos: - **No se pierde lo viejo**: un briefing relevante de hace tiempo entra igual si aplica a lo que estás preguntando ahora. Antes solo entraban los últimos guardados. - **Menos ruido, respuestas más precisas**: el worker no recibe memoria que no tiene nada que ver con el tema, así que se enfoca mejor. - **Indexación automática**: cada briefing/bloque que guardás o editás se indexa solo, en segundo plano. No tenés que hacer nada. > La memoria corporativa de tu organización y los briefings que vinculás explícitamente a un worker > se siguen incluyendo siempre, además de los fragmentos relevantes. ## Cómo escribir briefings que ayuden al worker - **Sé específico**: "vendemos cursos de IA a PyMEs argentinas con facturación entre 50k y 500k USD anuales" funciona mejor que "vendemos servicios de tecnología". - **Listá lo que NO se hace**: las restricciones son tan valiosas como las afirmaciones positivas. - **Mantenelo actualizado**: si cambia el ICP, cambiá el briefing. - **Separá por tema**: mejor 5 briefings cortos por tema que un único documento gigante. ## Costos y créditos Las conversaciones con workers consumen créditos. Los briefings inyectados ocupan tokens del contexto del modelo. Briefings muy largos reducen el espacio para la conversación útil — esto refuerza la recomendación de mantenerlos focalizados. --- # Aplicar a un programa URL: https://fiacopilot.com/docs/03-procesos/01-aplicar-programa Resumen: Flujo de aplicación, evaluación y enrolamiento en un programa. # Aplicar a un programa ## Paso 1 — Aplicación desde la landing Desde `/programa/fia-ventas`, `/programa/fia-empresas` o `/programa/fia-agentica`, hacé clic en "Aplicar". Se abre un formulario que captura: - Datos básicos (nombre, email, WhatsApp). - Empresa (nombre, sector, tamaño). - Contexto de adopción de IA actual. - Motivación / qué esperás del programa. La aplicación se guarda en la tabla `program_applications`. ## Paso 2 — Calificación automática Un job interno corre scoring sobre la aplicación: fit del perfil, intención de compra, urgencia. La aplicación entra al pipeline del CRM con una temperatura (cold / warm / hot) y queda visible en `/admin/crm` para el equipo comercial. ## Paso 3 — Evaluación por closer Un closer (rol `is_closer`) revisa la aplicación en `/admin/crm/[id]` y decide si: - Aceptar directo (caso muy claro). - Agendar una discovery call por Cal.com. - Rechazar (no es un buen fit). Si se agenda call, el webhook de Cal.com (`/api/webhooks/cal`) crea un registro en el pipeline y notifica a Sofía para que envíe recordatorios por WhatsApp. ## Paso 4 — Pago y enrolamiento Una vez aceptado, el aplicante recibe un link de checkout (Stripe). Una vez pagado, el webhook de Stripe (`/api/billing/webhook`) dispara: - Creación de la suscripción. - Enrolamiento en el path del programa correspondiente. - Mensaje de bienvenida de Sofía (journey `bienvenida_diagnostico`). - Email de bienvenida. ## Paso 5 — Acceso A partir de ahí, el usuario puede entrar a `/dashboard` y ver su programa activo en el hub correspondiente (`/fia-ventas`, `/fia-empresas` o `/fia-agentica`). --- # Completar una cápsula URL: https://fiacopilot.com/docs/03-procesos/02-completar-capsula Resumen: Cómo se consume una cápsula y qué pasa cuando se marca como completada. # Completar una cápsula Una cápsula es la unidad atómica de contenido en FIA Copilot: video + descripción + recursos + (opcional) clase en vivo + (opcional) actividad o entregable. ## Estructura - **Video principal** — alojado en Vimeo, embebido en la app. - **Descripción y objetivos** — qué se espera que el usuario aprenda o haga. - **Recursos asociados** — PDFs, plantillas, links externos. - **Workers de la cápsula** — specialists pre-configurados para conversar sobre el tema de la cápsula. - **Clase en vivo** (opcional) — fecha + Zoom/Meet link + grabación posterior. ## Flujo de consumo 1. El usuario entra al hub del programa y elige la próxima cápsula recomendada. 2. La página de cápsula muestra el video, la descripción y los recursos. 3. Mientras mira el video, el progreso se trackea (tabla `capsule_progress`). 4. Al terminar, el botón "Marcar como completada" registra el evento. ## Qué dispara una cápsula completada - **Puntos** — suma a `lead_points` (puntos + streak + último activity_date). - **Engagement engine** — Sofía puede enviar el journey `celebracion_capsula` por WhatsApp. - **Roulette boost** — el usuario gana spins extra en `/ruleta` si completó cápsula ese día. - **Notification a coach** — si está asignado un coach, recibe notificación. ## Consumir el contenido fuera de la cápsula Cada cápsula tiene briefings asociados que quedan disponibles para conversaciones con workers. Esto permite que el usuario "siga la conversación" después de terminar el video, profundizando con un agente especializado. ## Cápsulas-formulario (FIA Agéntica) Algunas cápsulas no son una clase sino un **formulario** que el alumno completa dentro de la plataforma. Se identifican por sus `tags` y renderizan un form en vez de un video: - **`intro-form`** — "Presentate a la comunidad" (Semana 3). Onboarding del alumno: quién es, qué viene haciendo con IA, objetivos y expectativas. Se guarda en `agentica_member_profiles` y, si el alumno lo elige, su tarjeta aparece en Comunidad → Miembros. - **`feedback-form`** + **`stage-mid`** — "Checkpoint de mitad de programa" (Semana 4). Mide cumplimiento de expectativas, NPS, ritmo, qué quiere de acá en adelante y sugerencias. - **`feedback-form`** + **`stage-final`** — "Encuesta de cierre" (Semana 7, se publica al final). Satisfacción, qué logró/construyó, qué mejoraría y testimonio. El feedback (`mid`/`final`) se guarda en `agentica_program_feedback` (una fila por alumno y etapa), **no es público** —solo lo lee el equipo— y al guardar marca la cápsula como completada. El equipo revisa las respuestas y métricas en **Admin → FIA Agéntica → Feedback**. --- # Guardar en memoria URL: https://fiacopilot.com/docs/03-procesos/03-guardar-memoria Resumen: Cómo crear, editar y mantener briefings de memoria. # Guardar en memoria ## Crear un briefing nuevo Desde [/memoria/briefings](https://fiacopilot.com/memoria/briefings): 1. Clic en "Nuevo briefing". 2. Título descriptivo (ej. "ICP de la empresa", "Tono de comunicación"). 3. Contenido en formato libre (markdown soportado). 4. Alcance: personal / organización / público. 5. Guardar. ## Editar y mantener Cualquier briefing creado por vos (o por tu organización, si sos miembro) se puede editar desde su detalle (`/memoria/briefings/[id]`). Cambios se autoguardan. ## Importar contexto desde una cápsula Algunas cápsulas tienen una tarea de tipo "importar a memoria" que sugiere guardar el output de la actividad como un briefing nuevo. El botón "Guardar en Memoria" pre-llena el formulario con un template asociado a la cápsula. ## Memoria corporativa (bloques compartidos con la empresa) Si pertenecés a una organización, podés marcar un bloque de tu **Contexto de Negocio** (en `/memoria`) como **corporativo** con el botón de edificio. Un bloque corporativo: - Lo ven todos los miembros de tu organización en la sección "Mi empresa" de su Memoria, con tu nombre como autor. - Se inyecta automáticamente en el contexto de los workers de todos los miembros (`memoria_corporativa`). - Se incluye en el Resumen Master de cada miembro. El sponsor y el implementador de la organización también pueden marcar/desmarcar bloques corporativos de otros miembros. ## Buenas prácticas - **Un briefing por tema**, no un mega-documento. - **Empezá con 3-5 briefings clave** (identidad, ICP, propuesta de valor, tono, procesos críticos). Después escalá. - **Revisá trimestralmente**. La memoria que no se mantiene se vuelve veneno. - **Marcá lo que sea organizacional como tal** desde el principio — pasar de personal a organizacional después es manual. --- # Hablar con un worker URL: https://fiacopilot.com/docs/03-procesos/04-hablar-worker Resumen: Cómo iniciar una conversación con un specialist y qué contexto usa. # Hablar con un worker ## Iniciar la conversación Desde [/workers](https://fiacopilot.com/workers): 1. Buscás el worker por especialidad (ventas, marketing, finanzas, etc.) o navegás los disponibles. 2. Hacés clic en "Hablar con [nombre del worker]". 3. Se crea una conversación nueva (`/workers/[slug]/[conversationId]`). ## Qué ve el worker cuando empezás Antes de tu primer mensaje, el sistema inyecta como contexto: - **System prompt del worker** — define la especialización. - **Tus briefings activos** (personales + de tu organización). - **Tu perfil básico** (nombre, programa). - **Si el worker está asociado a una cápsula**, también el contenido de esa cápsula. Ver [Usar memoria con workers](/docs/02-memoria/03-usar-con-workers). ## Costos Cada mensaje consume créditos. La cantidad depende del modelo (Claude / OpenAI) y del tamaño del contexto. Podés ver tu consumo en [/facturacion](https://fiacopilot.com/facturacion). ## Conversaciones anteriores Todas tus conversaciones quedan guardadas. Las podés retomar desde el worker o desde el historial de tu cuenta. ## Workers personalizados Empresas en planes avanzados pueden crear workers propios (admin) con system prompts y contexto custom. Esto se gestiona desde `/admin/workers/`. --- # Agendar coaching URL: https://fiacopilot.com/docs/03-procesos/05-agendar-coaching Resumen: Cómo reservar una llamada con un coach o closer. # Agendar coaching ## Desde la app Desde [/agendar](https://fiacopilot.com/agendar) accedés al calendario embebido de Cal.com. Las opciones disponibles dependen de tu programa y de tu plan: - **Coaching call** — sesión con un coach asignado (programas Empresas y Agéntica). - **Discovery call** — llamada con un closer (para aplicantes que aún no compraron). - **Office hours** — sesiones grupales abiertas. ## Qué pasa al reservar 1. El webhook de Cal.com (`/api/webhooks/cal`) recibe el evento `BOOKING_CREATED`. 2. Se crea un registro en el pipeline. 3. Sofía envía un recordatorio por WhatsApp (journey ad-hoc, 24h y 1h antes). 4. Si sos un aplicante, la temperatura del lead sube a "hot". ## Cancelar o reagendar Desde el email de confirmación de Cal.com, o entrando de nuevo a `/agendar`. El webhook `BOOKING_CANCELLED` actualiza el pipeline automáticamente. ## Para coaches Los coaches ven su agenda y los alumnos asignados desde [/coach/alumnos](https://fiacopilot.com/coach/alumnos). --- # Rol — Alumno URL: https://fiacopilot.com/docs/04-roles/01-alumno Resumen: Qué puede hacer un alumno enrolado en un programa. # Rol — Alumno El alumno es el rol base de la plataforma. Cualquier usuario enrolado en un programa entra acá. ## Lo que puede hacer - Acceder al hub del programa activo. - Consumir cápsulas (video, recursos, actividades). - Crear y editar briefings personales y de su organización. - Hablar con workers usando sus créditos. - Participar en la comunidad (`/comunidad`): posts, comentarios, eventos. - Tirar la ruleta diaria (`/ruleta`) — gana puntos y premios. - Ver su ranking (`/ranking`). - Reservar coaching (`/agendar`). - Gestionar facturación (`/facturacion`). ## Lo que NO puede hacer - No accede a paneles internos de FIA (gestión, métricas globales, CRM comercial). - No ve briefings de organizaciones a las que no pertenece. - No puede modificar el contenido de cápsulas, workers o eventos. ## Cómo se identifica El alumno tiene una entrada en `profiles` sin flags especiales. Acceso a los programas depende de su enrolamiento (`program_applications` en estado activo + suscripción Stripe). --- # Rol — Empresa (sponsor, implementador, referente) URL: https://fiacopilot.com/docs/04-roles/02-empresa Resumen: Qué pueden hacer los roles de gestión de una organización. # Rol — Empresa (sponsor, implementador, referente) Cuando una empresa contrata FIA Copilot para su equipo, hay roles de gestión que llevan adelante la adopción de IA en la organización: - **Sponsor** — la persona responsable de la adopción de IA en la empresa (suele ser el dueño o un directivo). - **Implementador** — quien ejecuta la implementación (puede ser interno o un consultor externo). Tiene los mismos permisos de gestión que el sponsor. Puede tener un sub-perfil de `estrategia` o `procesos`. - **Referente** — puede ver el tablero del equipo pero no gestiona invitaciones. ## Tablero del equipo (`/mi-equipo`) Sponsor, implementador y referente acceden a un tablero con la evolución de todos los miembros de su organización: - **Resumen**: miembros totales y activos, pasos completados, promedio por miembro, miembros en riesgo. - **Alertas**: banner con los miembros en riesgo (7+ días sin actividad) o abandonando (14+ días), con acceso directo al detalle. - **Actividad por semana**: gráfico de curvas con acciones y pasos completados del equipo (8/12/24 semanas). - **Evolución por miembro**: curvas comparables de actividad semanal de cada miembro (top 10 más activos). - **Tabla de miembros**: progreso (pasos /25), outputs guardados, última actividad y clasificación de compromiso (Comprometido / Constante / En riesgo / Abandonando / Sin empezar). - **Detalle por miembro** (`/mi-equipo/[id]`): curva individual, racha actual y máxima, actividad reciente, créditos usados. - **Consumo de créditos** del equipo en el mes. Además, sponsor e implementador reciben **notificaciones in-app** (campana) cuando un miembro entra en riesgo o está abandonando, generadas automáticamente cada día. ## Acciones del tablero (nudges) Desde `/mi-equipo` (y el detalle de cada miembro), el sponsor/implementador puede **recordar** o **felicitar** a un miembro con un clic, además de un **"Recordar a todos los inactivos"** masivo. Estas acciones siempre envían una **notificación in-app**. El envío por **email** y **WhatsApp** está disponible solo para empresas con plan pago. ## Panel de Valor / ROI (`/mi-equipo/valor`) Traduce el uso de la plataforma a valor de negocio: **horas estimadas ahorradas**, **valor en dinero** (con valor-hora configurable por el sponsor/implementador), **ROI** contra el costo de IA, **% del equipo activo** y **casos de uso documentados**. Sirve para justificar la inversión ante la dirección. El **reporte ejecutivo semanal** llega como digest in-app a todos los gestores y, en empresas pagas, también por email. ## Biblioteca de casos de uso (`/casos`) Cualquier miembro publica "qué resolvió con IA" (título, descripción, worker usado, horas ahorradas). Queda un catálogo interno navegable por toda la empresa. El sponsor/implementador puede **destacar** u **ocultar** casos. ## Comunidad privada de la empresa Cada empresa tiene un espacio privado en la comunidad (categoría "🏢 Mi empresa") visible solo para sus miembros, donde comparten avances. Se crea automáticamente al crear la empresa. ## Champion del mes Cada mes se destaca automáticamente al miembro más constante y activo de la empresa, con un banner en `/mi-equipo` y una notificación al miembro reconocido. ## Lo que pueden hacer sponsor e implementador - Crear y editar la organización (`/mi-empresa`). - Invitar y remover miembros (`/mi-equipo`), por link o por email. - Ver el progreso y la evolución de todos los miembros del equipo. - Marcar bloques de contexto como **memoria corporativa** — se comparten con todos los miembros (ver abajo). - Crear briefings con alcance "organización" — los ven todos los miembros. - Configurar workers/specialists custom de la empresa (si el plan lo permite). - Compartir briefings públicos con agentes externos. ## Memoria corporativa Cualquier miembro puede marcar un bloque de su Contexto de Negocio (en `/memoria`) como **corporativo** con el botón de edificio. Un bloque corporativo: - Aparece en la sección "Mi empresa" de la Memoria de **todos** los miembros de la organización, con el nombre del autor. - Se inyecta automáticamente como `memoria_corporativa` en el contexto de los workers de todos los miembros. - Se incluye en el Resumen Master que cada miembro copia para usar con agentes externos. El sponsor y el implementador pueden además marcar/desmarcar bloques corporativos de otros miembros de su organización. ## Lo que NO pueden hacer - No acceden al panel admin global ni al pipeline comercial. - No ven datos de miembros que no estén en su organización. ## Cómo se identifica El rol vive en `profiles.org_role` (`sponsor`, `implementador`, `referente`) junto con `profiles.organization_id`. Un miembro sin `org_role` es equivalente a un alumno común dentro de la organización. ## Caso de uso central: delegar a un agente Una empresa que contrata FIA Copilot también suele querer **delegar trabajo a agentes de IA externos** (ej. un Claude del operador, un ChatGPT del equipo). FIA Copilot está diseñado para facilitar esto. Ver [Delegar a agentes](/docs/05-delegar-agentes/01-overview). --- # Delegar a agentes — overview URL: https://fiacopilot.com/docs/05-delegar-agentes/01-overview Resumen: Cómo una empresa puede delegar trabajo a agentes de IA externos usando FIA Copilot como base de contexto. # Delegar a agentes — overview Uno de los casos de uso centrales de FIA Copilot es **que el contexto del negocio sea utilizable por agentes externos**. Un empresario o un equipo querrá que su Claude, ChatGPT o agente custom tenga el mismo contexto que sus workers internos. ## El flujo conceptual 1. **El usuario consolida su memoria** en FIA Copilot (briefings personales y de organización). 2. **Genera un brief** — un documento que combina los briefings relevantes para una tarea específica. Puede ser un briefing público o varios concatenados. 3. **Le pasa al agente externo** el brief (vía URL pública o copy-paste) junto con el prompt del trabajo a delegar. 4. **El agente ejecuta** la tarea con contexto cargado. 5. **El usuario revisa el output** y, opcionalmente, guarda el resultado de vuelta en memoria como nuevo briefing. ## Lo que ya está disponible hoy - **Briefings públicos**: cualquier briefing se puede exponer en una URL pública. Ver [Compartir briefings](/docs/02-memoria/02-compartir). - **`/llms.txt` y `/llms-full.txt`**: contexto general de la plataforma para que un agente entienda qué es FIA Copilot. - **Prompt copy-paste**: ver [Para tu agente de IA](/docs/06-para-tu-agente/01-prompt). ## Lo que viene (no disponible aún) - **API key personal**: para que un agente externo lea y escriba sobre tu cuenta de forma programática (Fase 2 del roadmap). - **MCP server oficial**: para conectar Claude/ChatGPT a FIA Copilot con un click. - **Outbound webhooks**: que tu sistema reciba eventos (cápsula completada, briefing creado) y reaccione. ## Documentación operativa - [Armar un brief](/docs/05-delegar-agentes/02-armar-brief) - [Revisar logs de actividad](/docs/05-delegar-agentes/03-logs) --- # Armar un brief para tu agente URL: https://fiacopilot.com/docs/05-delegar-agentes/02-armar-brief Resumen: Cómo combinar briefings y prompts para delegar una tarea a un agente externo. # Armar un brief para tu agente Un "brief" en este contexto es **el paquete completo que le pasás a tu agente externo** para que ejecute una tarea. Combina: 1. **Contexto del negocio** — uno o más briefings públicos de FIA Copilot. 2. **Definición de la tarea** — qué tiene que hacer el agente. 3. **Restricciones** — qué NO tiene que hacer, tono, formato del output. 4. **Acceso a documentación** — link a `/llms.txt` por si el agente necesita entender FIA Copilot. ## Template recomendado ``` # Contexto del negocio Soy [rol] de [empresa]. Acá está el contexto operativo: - Briefing principal: https://fiacopilot.com/memoria/briefings/ - Briefing de procesos: https://fiacopilot.com/memoria/briefings/ Si necesitás entender qué es FIA Copilot (la plataforma desde la que vienen estos briefings), leé https://fiacopilot.com/llms-full.txt # Tarea [Descripción concreta de lo que tiene que hacer el agente] # Restricciones - Tono: [...] - Formato del output: [...] - Lo que NO hace falta cubrir: [...] # Output esperado [Estructura del entregable] ``` ## Buenas prácticas - **Un brief por tarea**. No metas todo en un solo prompt gigante. - **Briefings que activás en público, deben estar revisados.** No tiene que haber datos sensibles. - **Versioná tus briefs.** Si una tarea recurrente funciona, guardá el brief como un briefing más para reutilizarlo. - **Cerrá el ciclo**: cuando el agente te devuelve output útil, considerá guardarlo de vuelta en memoria para que el próximo workflow lo aproveche. --- # Revisar logs de actividad URL: https://fiacopilot.com/docs/05-delegar-agentes/03-logs Resumen: Cómo ver qué hicieron tus workers, qué mensajes envió Sofía, y otros logs relevantes. # Revisar logs de actividad FIA Copilot guarda múltiples capas de logs que tanto humanos como agentes pueden revisar para entender qué pasó. ## Conversaciones con workers Cada conversación con un worker queda guardada y es revisable desde el listado del worker o desde tu cuenta. Útil para: - Recuperar una respuesta útil que perdiste. - Auditar qué le pediste al agente. - Compartir un fragmento con tu equipo (copy-paste o screenshot). Tablas: `ai_conversations`, `ai_messages`. ## Engagement engine (Sofía / WhatsApp) Todo lo que Sofía envía o falla en enviar por WhatsApp queda en la tabla `engagement_log`. Los admins lo ven en el panel. Para un usuario regular, los mensajes recibidos los ves directo en tu WhatsApp — pero saber que existe el log es útil si algo no llegó. Ver [Engagement engine](/docs/01-empezar/03-navegacion) y `CLAUDE.md` del repo para detalles. ## Emails `/admin/emails` muestra el log de emails enviados por la plataforma (transaccionales, campañas, journeys). Los usuarios ven los suyos en su bandeja, pero los admins pueden auditar el envío. ## Actividad del usuario `/admin/metricas/`, `/admin/funnel`, `/admin/consumo` muestran agregados. Para un usuario individual, su última actividad y racha se ven en `/dashboard` y `/ranking`. ## Para agentes externos (futuro) Cuando exista API key, un agente podrá fetchear el log de sus propias conversaciones y actividades — útil para auditoría y para que el agente "recuerde" qué hizo en sesiones anteriores. Ver [Para tu agente de IA](/docs/06-para-tu-agente/01-prompt). --- # Base de Conocimiento de Sofía URL: https://fiacopilot.com/docs/05-delegar-agentes/04-base-de-conocimiento Resumen: La tabla knowledge_base — frameworks, voz y casos de Axel que consultan Sofía y los Workers de IA. # Base de Conocimiento de Sofía La **Base de Conocimiento** es una única fuente de verdad para la propiedad intelectual de Axel: sus frameworks (RoLoCoDePre, WORKIA, RICA, Método FIA), principios, metáforas, voz, casos reales, ICP y productos. Vive en la tabla `knowledge_base` de Supabase (la misma base que comparten FIA Copilot y el Engine de Sofía) para que se pueda **editar sin deploy** y la consulten múltiples agentes. La administrás desde `/admin/knowledge-base`: crear, editar, archivar filas y generar embeddings. ## Categorías Cada fila tiene una `category`: | category | Qué agrupa | |---|---| | `framework` | Frameworks con nombre: RoLoCoDePre, WORKIA, RICA, Método FIA | | `principio` | Creencias núcleo (ej: "Primero claridad, después copiloto, recién autopiloto") | | `metafora` | Las analogías de Axel (auto/piloto, F1, sous-chef, LEGO…) | | `voz` | Cómo habla Axel / cómo debe sonar Sofía | | `caso` | Prueba social: casos reales con números | | `producto` | FIA Copilot, FIA Ventas, FIA Empresas, Diagnóstico | | `icp` | Quién es el alumno/cliente ideal y sus dolores | ## Cómo se consulta Una fila tiene `slug` (identificador estable), `summary` (respuesta breve), `content` (desarrollo en Markdown), `voice_notes` (tono), `tags` y `related`. Solo se sirven filas con `status = 'active'`. Hay tres formas de traer contenido (ver `src/lib/knowledge-base.ts`): - **Por slug** — `getKnowledgeBySlug('workia')` para una pregunta directa ("¿qué es WORKIA?"). - **Por categoría** — `getKnowledgeByCategory('caso')` para listar, ordenado por `priority`. - **Semántica** — `matchKnowledge(query)` embebe la pregunta y usa el RPC `match_knowledge_base` (pgvector) para traer las filas más relevantes por significado. > El Engine de Sofía (otro repo, corre con `service_role`) consulta esta misma tabla. El cableado > al chat in-app es un paso posterior: hoy la tabla queda creada, cargada y lista para consumir. ## Editar el contenido En `/admin/knowledge-base`: 1. **Seedear** carga las filas semilla (no pisa ediciones manuales que ya hayas hecho). 2. **Generar embeddings** vectoriza las filas que aún no tienen embedding (requiere `OPENAI_API_KEY`). 3. Editar una fila recalcula su embedding automáticamente al guardar. La fuente original de cada fila (`source`) apunta al Vault de Obsidian de Axel; si algo cambia ahí, se actualiza la fila acá. --- # Fuentes de Datos para Sofía URL: https://fiacopilot.com/docs/05-delegar-agentes/05-fuentes-de-datos Resumen: Cómo funciona el routing semántico de dos pasos — tabla sofia_data_sources, match_data_sources y match_capsule_chunks. # Fuentes de Datos para Sofía Sofía puede responder preguntas usando contenido real de los tres programas de FIA. El sistema usa **routing semántico en dos pasos**: primero encuentra la fuente más relevante, luego busca el contenido dentro de esa fuente. ## Arquitectura de dos pasos ``` Pregunta del usuario ↓ match_data_sources(embedding) → ¿cuál fuente tiene la respuesta? ↓ match_capsule_chunks(embedding, p_path_id) o match_knowledge_base(embedding) → chunks de contenido real ↓ Contexto para el prompt de Sofía ``` ### Por qué dos pasos Con un solo paso (buscar en todos los chunks directamente) Sofía podría traer contenido de cualquier programa sin saber de cuál habla el alumno. Con dos pasos: - El paso 1 es liviano: compara con 5 filas de descripción - El paso 2 busca solo en la fuente correcta: miles de chunks, pero filtrados - Agregar un track nuevo = 1 INSERT + 1 embedding, sin redeployar el engine ## Tabla `sofia_data_sources` Cada fila describe una fuente de conocimiento en lenguaje natural. El engine la fetchea para saber qué puede buscar y cuándo. | Campo | Tipo | Para qué sirve | |---|---|---| | `source_key` | TEXT (único) | Identificador interno: `fia_ventas_transcripts` | | `name` | TEXT | Nombre legible: "FIA Ventas — Clases y Cápsulas" | | `description` | TEXT | Qué hay aquí y cuándo buscar — lo que Sofía "lee" | | `query_method` | TEXT | `match_capsule_chunks` o `match_knowledge_base` | | `rpc_name` | TEXT | Nombre exacto del RPC en Supabase | | `default_params` | JSONB | Parámetros por defecto: threshold, count, p_path_id | | `covers_topics` | TEXT[] | Temas que cubre | | `example_questions` | TEXT[] | Preguntas de ejemplo (también usadas para el embedding) | | `embedding` | vector(1536) | Embedding sobre name+description+topics+questions | ### Fuentes activas | source_key | Programa | Contenido | |---|---|---| | `fia_agentica_transcripts` | FIA Agéntica | 16 cápsulas: clases 1-4 + Primeros Pasos | | `fia_ventas_transcripts` | FIA Ventas | 22 cápsulas: clases 1-10 + bonus | | `fia_empresas_transcripts` | FIA Empresas | 17 cápsulas del programa | | `knowledge_base_frameworks` | KB | Frameworks: RoLoCoDePre, WorkIA, RICA, Método FIA | | `knowledge_base_casos` | KB | Casos de éxito con números reales | ## RPCs disponibles ### `match_data_sources` — Paso 1: routing Dada la pregunta embebida, devuelve las fuentes más relevantes. ```sql SELECT * FROM match_data_sources( query_embedding := '', match_threshold := 0.4, -- default match_count := 3 -- default ); -- Devuelve: source_key, name, description, query_method, rpc_name, default_params, similarity ``` ### `match_capsule_chunks` — Paso 2a: contenido de clases ```sql SELECT * FROM match_capsule_chunks( query_embedding := '', match_threshold := 0.4, match_count := 5, p_path_id := 'b2c3d4e5-f6a7-8901-bcde-f12345678901' -- FIA Ventas ); -- Devuelve: capsule_slug, capsule_title, chunk_index, content, similarity ``` `p_path_id = null` busca en todos los tracks. ### `match_knowledge_base` — Paso 2b: frameworks y casos ```sql SELECT * FROM match_knowledge_base( query_embedding := '', match_threshold := 0.5, match_count := 4, p_category := 'caso' -- opcional ); -- Devuelve: slug, category, title, summary, content, voice_notes, similarity ``` ## Helpers TypeScript En `src/lib/sofia-data-sources.ts`: ```typescript import { matchDataSources, getSofiaDataSources, matchCapsules, formatDataSourcesForPrompt } from '@/lib/sofia-data-sources' // Paso 1: routing semántico const fuentes = await matchDataSources("¿cómo uso ChatGPT para vender?") // → [{ source_key: 'fia_ventas_transcripts', similarity: 0.62, default_params: { p_path_id: '...' } }] // Paso 2: contenido de la fuente ganadora const chunks = await matchCapsules("¿cómo uso ChatGPT para vender?", { pathId: 'b2c3d4e5-f6a7-8901-bcde-f12345678901' }) // → [{ capsule_title: 'Clase 1 FV', content: '...', similarity: 0.71 }] // Fallback: todas las fuentes como texto para el system prompt const todas = await getSofiaDataSources() const texto = formatDataSourcesForPrompt(todas) ``` ## Path IDs de los tracks ```typescript // src/lib/agentica.ts FIA_AGENTICA_PATH_ID = 'd4e5f6a7-b8c9-0123-defa-234567890123' // src/lib/static-ventas.ts FIA_VENTAS_PATH_ID = 'b2c3d4e5-f6a7-8901-bcde-f12345678901' // src/lib/static-empresas.ts FIA_EMPRESAS_PATH_ID = 'c3d4e5f6-a7b8-9012-cdef-123456789012' ``` ## Agregar una fuente nueva 1. INSERT en `sofia_data_sources` con `embedding = null` 2. Generar el embedding sobre: `name + '\n' + description + '\n' + covers_topics.join(', ') + '\n' + example_questions.join(' | ')` 3. PATCH con el embedding → la fuente es inmediatamente visible para el engine 4. No hace falta redeployar nada --- # Prompt para tu agente URL: https://fiacopilot.com/docs/06-para-tu-agente/01-prompt Resumen: Prompt copy-paste que le podés dar a tu Claude/ChatGPT para que entienda FIA Copilot. # Prompt para tu agente Este es el prompt corto que podés pegar al inicio de una conversación con cualquier agente de IA para que entienda FIA Copilot y te ayude usando la documentación oficial. ## Prompt corto (copy-paste) ``` Sos mi asistente para FIA Copilot, la plataforma de Axel Jutoran para implementar IA en empresas. Antes de responderme cualquier cosa, leé la documentación oficial: - Índice: https://fiacopilot.com/llms.txt - Contenido completo: https://fiacopilot.com/llms-full.txt Cuando me ayudes con algo de FIA Copilot, basate en esa documentación y citá la sección correspondiente cuando sea relevante. Si necesitás info de mi cuenta que no esté en la docs pública (mis briefings, mi progreso, mi pipeline), decímelo y te paso el link público o el contenido. ``` ## Prompt extendido (cuando querés delegar una tarea concreta) ``` Sos mi asistente para una tarea específica relacionada con FIA Copilot. Contexto de FIA Copilot: https://fiacopilot.com/llms-full.txt Contexto de mi negocio: - [Pegá acá el link a un briefing público, o el contenido] Tarea: - [Descripción concreta] Restricciones: - [Tono, formato, lo que no hace falta cubrir] Output esperado: - [Estructura del entregable] ``` ## Variantes - **Para Claude (Anthropic)**: pegalo como primer mensaje. Claude lee URLs vía `WebFetch`. - **Para ChatGPT (OpenAI)**: lo mismo. ChatGPT con browsing puede leer las URLs. - **Para agentes vía API**: incluí el contenido de `llms-full.txt` directo en el system prompt para evitar latencia de fetch. ## Recomendación Guardá este prompt como un briefing en tu propia memoria, así no lo perdés y lo iterás. --- # Archivos llms.txt y llms-full.txt URL: https://fiacopilot.com/docs/06-para-tu-agente/02-llms-txt Resumen: Qué son, cómo se generan y cómo los usan los agentes. # Archivos llms.txt y llms-full.txt FIA Copilot expone dos archivos planos pensados para agentes de IA, siguiendo el estándar emergente [llmstxt.org](https://llmstxt.org). ## /llms.txt URL: [https://fiacopilot.com/llms.txt](https://fiacopilot.com/llms.txt) Es un índice corto en formato markdown plano. Lista las secciones de la documentación con un link a cada una. Pensado para que un agente con poco budget de contexto sepa qué existe y fetchee solo lo que necesita. ## /llms-full.txt URL: [https://fiacopilot.com/llms-full.txt](https://fiacopilot.com/llms-full.txt) Es el blob completo de toda la documentación concatenada. Pensado para que un agente lo trague de una sola fetch y tenga todo el contexto en memoria. ## Cómo se generan Ambos archivos se generan en build (`npm run build`) a partir de los archivos markdown en `content/docs/`. El script `scripts/build-llms-txt.mjs` lee los MDs, los ordena por frontmatter `order`, y produce los dos archivos en `public/`. Esto significa que **la documentación es la fuente de verdad** y los `.txt` se mantienen siempre sincronizados automáticamente. ## Cómo usarlos - **Como agente**: pedíle a tu modelo que fetchee `/llms.txt` primero para entender el mapa, y `/llms-full.txt` cuando necesite contexto completo. - **Como usuario**: copiá los links al system prompt de tu agente, o usá el [prompt copy-paste](/docs/06-para-tu-agente/01-prompt). --- # API de FIA Copilot URL: https://fiacopilot.com/docs/07-api/01-overview Resumen: Qué es la API programática, para qué sirve y cómo empezar. Acceso para planes pagos. # API de FIA Copilot La API te deja **operar tu FIA Copilot por programa** en lugar de navegar la app: leer y escribir tu memoria, tus procesos, tus briefings (y los logs de lo que hicieron los agentes), y —si sos sponsor o implementador— ver el progreso de tu equipo. Es la base sobre la que después se conecta el [MCP](/docs/07-api/06-mcp), para que Claude, ChatGPT, n8n o tu propio código operen tu cuenta directamente. ## Base URL ``` https://fiacopilot.com/api/v1 ``` ## Requisitos - **Plan pago activo.** La API es una función de los planes pagos. Si no tenés plan, la pantalla de API keys te ofrece sacar uno. - **Una API key.** Se crea en [Configuración → API Keys](/configuracion/api). Ver [Autenticación](/docs/07-api/02-autenticacion). ## Principios - **Aislamiento por usuario.** Cada API key pertenece a **un solo usuario** y solo accede a **su** información. La única excepción es `/team`, que respeta exactamente los mismos permisos que el tablero *Mi equipo* (sponsor/implementador viendo a su propia organización). - **Permisos granulares (scopes).** Cada key puede limitarse a ciertas acciones (ej. solo leer memoria). Ver [Autenticación](/docs/07-api/02-autenticacion). - **Todo queda registrado.** Cada llamada se audita y la podés ver en la pantalla de actividad de tus keys. ## Primer llamado ```bash curl https://fiacopilot.com/api/v1/me \ -H "Authorization: Bearer fia_sk_tu_key" ``` Respuesta: ```json { "data": { "userId": "…", "name": "Tu Nombre", "org": { "id": "…", "name": "Tu Empresa" }, "orgRole": "sponsor", "plan": { "status": "active", "planId": "pro" }, "scopes": [] } } ``` `scopes: []` significa **acceso total** a tu data. Si la key tiene scopes limitados, vas a verlos acá. ## Formato de respuestas - **Un recurso:** `{ "data": { … } }` - **Una lista:** `{ "data": [ … ], "page": { "limit": 50, "offset": 0, "total": 12 } }` - **Error:** `{ "error": "codigo_de_error" }` con el HTTP status correspondiente. ## Mapa de endpoints | Recurso | Endpoints | Doc | |---|---|---| | Identidad | `GET /me` | esta página | | Memoria | `GET /memory`, `GET /memory/{id}`, `POST /memory` | [Memoria y procesos](/docs/07-api/04-memoria-y-procesos) | | Procesos | `GET /processes` | [Memoria y procesos](/docs/07-api/04-memoria-y-procesos) | | Briefings | `GET/POST /briefings`, `GET/PATCH /briefings/{id}`, `GET/POST /briefings/{id}/executions` | [Briefings y logs](/docs/07-api/05-briefings-y-logs) | | Cápsulas | `GET /capsules`, `GET /capsules/progress` | [Referencia](/docs/07-api/03-referencia) | | Equipo | `GET /team`, `GET /team/{memberId}` | [Referencia](/docs/07-api/03-referencia) | La **referencia completa de endpoints** (métodos, parámetros, body, respuestas y ejemplos copiables) está en [Referencia de endpoints](/docs/api/reference). La especificación máquina-legible está en [`/openapi.json`](https://fiacopilot.com/openapi.json). --- # Autenticación y API keys URL: https://fiacopilot.com/docs/07-api/02-autenticacion Resumen: Cómo crear, usar y revocar API keys; scopes, expiración, rate limits y códigos de error. # Autenticación y API keys ## Crear una key 1. Andá a [Configuración → API Keys](/configuracion/api) (necesitás plan pago activo). 2. Ponele un nombre (ej. "Claude Desktop", "n8n", "mi script"). 3. Elegí los **permisos** (scopes). Si no marcás ninguno, la key tiene **acceso total** a tu data. 4. Opcional: poné una **fecha de expiración**. La key deja de funcionar sola a partir de ahí. 5. Copiá la key — **se muestra una sola vez**. Guardala como una contraseña. El valor tiene la forma `fia_sk_…`. En la base de datos solo se guarda un hash; nadie (ni nosotros) puede recuperar el valor después. ## Usar la key Mandá la key en una de estas dos cabeceras: ```bash # Opción A curl https://fiacopilot.com/api/v1/me -H "Authorization: Bearer fia_sk_tu_key" # Opción B curl https://fiacopilot.com/api/v1/me -H "X-API-Key: fia_sk_tu_key" ``` ## Scopes (permisos) Una key sin scopes = acceso total a tu data. Si querés limitarla, elegí entre: | Scope | Permite | |---|---| | `memory:read` | Leer memoria, procesos, cápsulas y progreso | | `memory:write` | Crear items de memoria | | `briefings:read` | Listar briefings y leer sus logs | | `briefings:write` | Crear/editar/revocar briefings y dejar logs | | `team:read` | Ver el progreso del equipo (solo sponsor/implementador) | Una key nunca puede hacer **más** de lo que vos podés hacer en la app. Los scopes solo sirven para darle **menos**. El acceso a `/team` además se revalida en cada request contra tu rol — si dejás de ser sponsor, la key deja de ver el equipo aunque tenga el scope. ## Expiración y revocación - **Expiración:** si la key tiene fecha de expiración, al pasar esa fecha responde `401 key_expired`. Es automático, no hace falta nada. - **Revocación:** desde la lista de keys, "Revocar". Es inmediato — la próxima llamada con esa key responde `401 key_revoked`. ## Rate limits Por key, por minuto: - **Lectura (GET):** 120 req/min - **Escritura (POST/PATCH):** 30 req/min Si te pasás, recibís `429 rate_limited` con una cabecera `Retry-After` (segundos). ## Códigos de error | HTTP | `error` | Significado | |---|---|---| | 401 | `missing_api_key` | No mandaste key | | 401 | `invalid_api_key` | La key no existe | | 401 | `key_revoked` | La key fue revocada | | 401 | `key_expired` | La key venció | | 402 | `subscription_required` | El dueño de la key no tiene plan pago activo | | 403 | `insufficient_scope` | La key no tiene el scope necesario (devuelve `required`) | | 403 | `not_a_team_viewer` | No sos sponsor/implementador (endpoints de equipo) | | 404 | `not_found` | El recurso no existe o no es tuyo | | 400 | `*_required`, `invalid_*` | Falta un campo o un valor es inválido | | 429 | `rate_limited` | Superaste el límite por minuto | | 500 | `internal_error` | Error del servidor | ## Actividad Cada llamada (incluso las que fallan) queda registrada. La ves en [Configuración → API Keys](/configuracion/api), en "Actividad reciente": status, método, endpoint, key y fecha. --- # Referencia de endpoints URL: https://fiacopilot.com/docs/07-api/03-referencia Resumen: Todos los endpoints de la API v1 con método, parámetros, scope requerido y ejemplos. # Referencia de endpoints Base URL: `https://fiacopilot.com/api/v1`. Todos requieren una API key (ver [Autenticación](/docs/07-api/02-autenticacion)). La spec máquina-legible está en [`/openapi.json`](https://fiacopilot.com/openapi.json). ## Identidad ### `GET /me` Datos del dueño de la key. Sin scope requerido. ```bash curl https://fiacopilot.com/api/v1/me -H "Authorization: Bearer fia_sk_…" ``` ```json { "data": { "userId": "…", "name": "…", "org": { "id": "…", "name": "…" }, "orgRole": "sponsor", "plan": { "status": "active", "planId": "pro" }, "scopes": [] } } ``` ## Memoria ### `GET /memory` — scope `memory:read` Lista tu memoria. Query params (todos opcionales): | Param | Tipo | Descripción | |---|---|---| | `type` | string | Filtra por `content_type` | | `starred` | `true` | Solo destacados | | `tag` | string | Items que contienen ese tag | | `capsule_id` | uuid | Items ligados a una cápsula | | `q` | string | Búsqueda en título y contenido | | `limit` | int | Default 50, máx 200 | | `offset` | int | Default 0 | ```bash curl "https://fiacopilot.com/api/v1/memory?type=context_process&limit=10" \ -H "Authorization: Bearer fia_sk_…" ``` ```json { "data": [ { "id": "…", "title": "…", "content": "…", "content_type": "general", "tags": ["x"], "is_starred": false, "capsule_id": null, "created_at": "…", "updated_at": "…" } ], "page": { "limit": 10, "offset": 0, "total": 1 } } ``` ### `GET /memory/{id}` — scope `memory:read` Un item completo. `404 not_found` si no es tuyo. ### `POST /memory` — scope `memory:write` Crea un item. Body: | Campo | Tipo | Req | Notas | |---|---|---|---| | `content` | string | sí | Contenido del item | | `title` | string | no | Máx 200 chars | | `content_type` | string | no | Default `general`. Ver valores abajo | | `tags` | string[] | no | Máx 20 | | `is_starred` | bool | no | | `content_type` válidos: `general`, `context_business`, `context_personal`, `context_ai_memory`, `context_process`, `context_prompt`, `ai_response`, `resource`. Uno inválido devuelve `400 invalid_content_type` con la lista en `allowed`. ```bash curl -X POST https://fiacopilot.com/api/v1/memory \ -H "Authorization: Bearer fia_sk_…" -H "Content-Type: application/json" \ -d '{"title":"Mi proceso","content":"Paso 1…","content_type":"context_process","tags":["ventas"]}' ``` Devuelve `201` con el item creado. ## Procesos ### `GET /processes` — scope `memory:read` Atajo de `/memory` con `content_type=context_process`. Acepta los mismos filtros. ## Cápsulas ### `GET /capsules` — scope `memory:read` Catálogo de cápsulas publicadas + learning paths. ```json { "data": { "paths": [ { "id": "…", "name": "FIA Core", "display_order": 1 } ], "capsules": [ { "id": "…", "number": 1, "title": "…", "slug": "…", "objective": "…", "estimated_minutes": 15, "fase": "1", "tags": [], "path_id": "…", "video_url": null } ] } } ``` ### `GET /capsules/progress` — scope `memory:read` Tu progreso por cápsula. ```json { "data": [ { "capsule_id": "…", "status": "completed", "started_at": "…", "completed_at": "…" } ], "page": { "limit": 4, "offset": 0, "total": 4 } } ``` ## Briefings Ver recetas en [Briefings y logs](/docs/07-api/05-briefings-y-logs). | Método | Path | Scope | |---|---|---| | `GET` | `/briefings` | `briefings:read` | | `POST` | `/briefings` | `briefings:write` | | `GET` | `/briefings/{id}` | `briefings:read` | | `PATCH` | `/briefings/{id}` | `briefings:write` | | `GET` | `/briefings/{id}/executions` | `briefings:read` | | `POST` | `/briefings/{id}/executions` | `briefings:write` | ## Equipo Solo para `sponsor` / `implementador` (se revalida en cada request). Scopeado a tu organización. ### `GET /team` — scope `team:read` Roster del equipo + resumen por clasificación. Excluye al solicitante. ```json { "data": [ { "id": "…", "name": "…", "org_role": "implementador", "capsules_started": 5, "capsules_done": 3, "last_activity": "…", "vault_outputs": 7, "joined_at": "…", "classification": "constante", "days_inactive": 2 } ], "page": { "limit": 4, "offset": 0, "total": 4 }, "org": { "id": "…", "name": "…" }, "summary": { "totalMembers": 4, "byClassification": { "constante": 2, "en_riesgo": 1, "abandonando": 1 } } } ``` Clasificaciones: `comprometido`, `constante`, `en_riesgo`, `abandonando`, `sin_empezar`. ### `GET /team/{memberId}` — scope `team:read` Detalle de un miembro de tu organización. `404 not_found` si no pertenece a tu org. --- # Recetas — memoria y procesos URL: https://fiacopilot.com/docs/07-api/04-memoria-y-procesos Resumen: Ejemplos prácticos para leer y escribir memoria y procesos por API. # Recetas — memoria y procesos Tu **memoria** es la bóveda de outputs que vas guardando en FIA Copilot. Los **procesos** son un tipo de memoria (`content_type=context_process`). Por API podés leerlos y crear nuevos. ## Traer tus procesos ```bash curl "https://fiacopilot.com/api/v1/processes" \ -H "Authorization: Bearer fia_sk_…" ``` Equivale a `GET /memory?type=context_process`. ## Buscar en tu memoria ```bash curl "https://fiacopilot.com/api/v1/memory?q=ventas&limit=5" \ -H "Authorization: Bearer fia_sk_…" ``` ## Solo los destacados ```bash curl "https://fiacopilot.com/api/v1/memory?starred=true" \ -H "Authorization: Bearer fia_sk_…" ``` ## Paginar La respuesta trae `page: { limit, offset, total }`. Para la página siguiente, subí el `offset`: ```bash curl "https://fiacopilot.com/api/v1/memory?limit=50&offset=50" \ -H "Authorization: Bearer fia_sk_…" ``` ## Guardar un proceso nuevo ```bash curl -X POST https://fiacopilot.com/api/v1/memory \ -H "Authorization: Bearer fia_sk_…" \ -H "Content-Type: application/json" \ -d '{ "title": "Onboarding de cliente nuevo", "content": "1. Crear carpeta…\n2. Enviar bienvenida…\n3. Agendar kickoff…", "content_type": "context_process", "tags": ["operaciones", "clientes"] }' ``` Necesita una key con scope `memory:write` (o sin scopes = acceso total). ## Caso típico: un agente que documenta Un flujo común es que un agente externo (Claude, n8n) **lea** tu contexto y **escriba** el resultado de vuelta en tu memoria: 1. `GET /memory?type=context_business` → el agente entiende tu negocio. 2. El agente hace su tarea (redacta, analiza, etc.). 3. `POST /memory` con `content_type=ai_response` → guarda el resultado en tu bóveda. Así tu memoria crece sola, sin que entres a la app. --- # Recetas — briefings y logs URL: https://fiacopilot.com/docs/07-api/05-briefings-y-logs Resumen: Crear briefings por API, leer y escribir los logs de ejecución de los agentes. # Recetas — briefings y logs Un **briefing** es un link que le das a un agente externo (ChatGPT, Claude, Gemini, n8n…) con un recorte de tu memoria + instrucciones. El agente lo lee, hace la tarea y puede dejar un **log de ejecución**. Por API podés crear briefings, leer sus logs y dejar logs vos mismo. ## Crear un briefing ```bash curl -X POST https://fiacopilot.com/api/v1/briefings \ -H "Authorization: Bearer fia_sk_…" \ -H "Content-Type: application/json" \ -d '{ "title": "Analizá mis últimas reuniones", "instructions": "Resumí patrones de los leads que compraron vs los que no.", "include_profile": true }' ``` Respuesta `201`: ```json { "data": { "id": "…", "token": "…", "url": "https://fiacopilot.com/u/tu-handle/b/token" } } ``` Ese `url` es el link que le pasás al agente. Campos opcionales del body: `included_outputs` (uuid[]), `included_business_context` (uuid[]), `include_profile`, `include_diagnostico`, `expires_at`, `max_views`, `password`, `public_on_profile`. Necesita scope `briefings:write`. ## Listar tus briefings ```bash curl https://fiacopilot.com/api/v1/briefings \ -H "Authorization: Bearer fia_sk_…" ``` ## Ver un briefing y editarlo ```bash # Ver curl https://fiacopilot.com/api/v1/briefings/{id} -H "Authorization: Bearer fia_sk_…" # Revocar (deja de funcionar el link público) curl -X PATCH https://fiacopilot.com/api/v1/briefings/{id} \ -H "Authorization: Bearer fia_sk_…" -H "Content-Type: application/json" \ -d '{"status":"revoked"}' ``` `PATCH` acepta: `status` (`active`|`revoked`), `instructions`, `expires_at`, `max_views`, `public_on_profile`. ## Leer los logs que dejaron los agentes ```bash curl https://fiacopilot.com/api/v1/briefings/{id}/executions \ -H "Authorization: Bearer fia_sk_…" ``` ```json { "data": [ { "id": "…", "agent_name": "Claude", "summary": "Analicé 5 reuniones…", "output_text": "…", "created_at": "…" } ], "page": { "limit": 1, "offset": 0, "total": 1 } } ``` ## Dejar un log de ejecución Útil cuando tu propio código/agente quiere registrar lo que hizo (con autenticación por key): ```bash curl -X POST https://fiacopilot.com/api/v1/briefings/{id}/executions \ -H "Authorization: Bearer fia_sk_…" -H "Content-Type: application/json" \ -d '{"summary":"Tarea completada","agent":"mi-script","output":"Resultado completo…"}' ``` > Nota: los agentes que acceden al **link público** del briefing usan otro endpoint sin key (`/api/briefings/public/{token}/log`). Este endpoint con `{id}` es la versión autenticada, para cuando operás con tu API key. --- # MCP — conectá Claude directo a tu FIA Copilot URL: https://fiacopilot.com/docs/07-api/06-mcp Resumen: Servidor MCP remoto que expone tu memoria, procesos, briefings y equipo como herramientas para Claude. # MCP — conectá Claude directo a tu FIA Copilot El **MCP server** de FIA Copilot deja que Claude (Desktop, Code, o cualquier cliente MCP) use tu cuenta como herramientas, sin que escribas código. Por debajo usa la misma [API](/docs/07-api/01-overview) y la misma [API key](/docs/07-api/02-autenticacion) — con los mismos permisos y el mismo aislamiento por usuario. ## Endpoint Es un servidor MCP **remoto** (transporte HTTP): ``` https://fiacopilot.com/api/mcp ``` Se autentica con tu API key en la cabecera `Authorization: Bearer fia_sk_…`. ## Conectarlo en Claude Code ```bash claude mcp add --transport http fia-copilot https://fiacopilot.com/api/mcp \ --header "Authorization: Bearer fia_sk_tu_key" ``` ## Conectarlo en Claude Desktop En la config de MCP servers: ```json { "mcpServers": { "fia-copilot": { "type": "http", "url": "https://fiacopilot.com/api/mcp", "headers": { "Authorization": "Bearer fia_sk_tu_key" } } } } ``` ## Herramientas disponibles | Tool | Qué hace | Scope | |---|---|---| | `whoami` | Quién sos y qué permisos tiene la key | — | | `list_memory` | Lista tu memoria (filtros: type, starred, tag, q) | `memory:read` | | `get_memory` | Trae un item por id | `memory:read` | | `save_memory` | Guarda un item nuevo | `memory:write` | | `list_processes` | Lista tus procesos | `memory:read` | | `list_capsules` | Catálogo de cápsulas | `memory:read` | | `my_progress` | Tu progreso en cápsulas | `memory:read` | | `list_briefings` | Lista tus briefings | `briefings:read` | | `create_briefing` | Crea un briefing y devuelve su link | `briefings:write` | | `get_briefing_logs` | Logs que dejaron los agentes en un briefing | `briefings:read` | | `log_execution` | Deja un log de ejecución en un briefing | `briefings:write` | | `team_overview` | Roster y progreso del equipo | `team:read` | | `team_member` | Detalle de un miembro | `team:read` | Las herramientas respetan los scopes de la key: si la key no tiene el permiso, la tool devuelve un error claro. Para limitar lo que Claude puede hacer, creá una key con menos scopes. ## Seguridad - El MCP nunca expone tu API key a Claude — vos la ponés en la config del cliente. - Cada tool actúa solo sobre **tu** data (o, para `team_*`, sobre tu organización si sos sponsor/implementador). - Para cortar el acceso, revocás la key desde [Configuración → API Keys](/configuracion/api). --- # ChatGPT — conectá un GPT custom a tu FIA Copilot URL: https://fiacopilot.com/docs/07-api/07-chatgpt Resumen: Cómo armar un GPT en ChatGPT que use tu memoria y procesos de FIA Copilot vía Actions. # ChatGPT — conectá un GPT custom ChatGPT no soporta MCP (todavía), pero sí soporta **Actions**: una forma de conectar un GPT custom a una API externa vía OpenAPI spec. FIA Copilot ya publica un OpenAPI 3.1 listo para usar. ## Pre-requisitos - Cuenta ChatGPT Plus o Team (Actions requiere plan pago). - Una API key de FIA Copilot generada en [/configuracion/api](https://fiacopilot.com/configuracion/api). ## Pasos 1. En ChatGPT, ir a **My GPTs → Create a GPT**. 2. Pestaña **Configure → Actions → Create new action**. 3. En **Import from URL**, pegar: ``` https://fiacopilot.com/openapi.json ``` ChatGPT carga automáticamente los 11 endpoints disponibles (`/me`, `/memory`, `/processes`, `/briefings`, etc.). 4. En **Authentication**, elegir **API Key**: - Auth Type: `Bearer` - API Key: pegá tu `fia_sk_…` 5. Guardar el GPT (con nombre, descripción, instrucciones). ## Probarlo Una vez configurado, hacele al GPT preguntas como: - "¿Qué memorias tengo guardadas en FIA Copilot?" - "Guardame este resumen como un briefing nuevo: …" - "Mostrame mis procesos documentados." El GPT llama a la API automáticamente y responde con tus datos reales. ## Limitaciones - ChatGPT respeta los scopes de tu key. Si la generaste con `memory:read` solamente, no va a poder escribir. - Cada llamada cuenta para el rate limit (120 GET / 30 POST por minuto). - Si la key expira o la revocás, el GPT deja de funcionar — generá una nueva y actualizala en Actions. ## Próximos pasos - Pegale al GPT el [prompt del agente](/docs/06-para-tu-agente/01-prompt) para que también lea la documentación pública de FIA Copilot. - Si querés más tools (no solo HTTP) y soporte MCP nativo, usá [Claude Code o Claude Desktop](/docs/07-api/06-mcp) en su lugar. --- # n8n — usá FIA Copilot en tus workflows URL: https://fiacopilot.com/docs/07-api/08-n8n Resumen: Cómo conectar n8n a la API de FIA Copilot vía HTTP Request node con Bearer auth. # n8n — usá FIA Copilot en tus workflows n8n es una plataforma de automatización (alternativa a Make/Zapier) ideal para workflows que mezclan FIA Copilot con tus otras herramientas: Slack, Notion, Sheets, tu CRM, etc. ## Pre-requisitos - n8n cloud o self-hosted (cualquier versión soporta HTTP Request). - Una API key de FIA Copilot generada en [/configuracion/api](https://fiacopilot.com/configuracion/api). ## Setup de credencial Para no pegar la key en cada nodo: 1. En n8n, ir a **Credentials → New → Header Auth**. 2. Configurar: - **Name**: `FIA Copilot` - **Header Name**: `Authorization` - **Header Value**: `Bearer fia_sk_…` (tu key completa). 3. Guardar. ## Hacer una llamada En cualquier workflow, agregá un nodo **HTTP Request**: - **Method**: `GET` (o `POST` según endpoint). - **URL**: `https://fiacopilot.com/api/v1/me` (o el endpoint que necesites). - **Authentication**: `Predefined Credential Type → Header Auth → FIA Copilot`. ## Ejemplos de workflows útiles **Sync de briefings a Notion** ``` Schedule Trigger (cada hora) → HTTP Request: GET /api/v1/briefings → Notion: Create/Update Page (por cada item) ``` **Resumen semanal por email** ``` Schedule Trigger (lunes 9am) → HTTP Request: GET /api/v1/memory?type=context_business → OpenAI / Claude: resumir → Gmail: enviar a vos mismo ``` **Guardar respuestas de un form como briefing** ``` Webhook (de tu form) → HTTP Request: POST /api/v1/briefings Body: { "title": "{{form.title}}", "content": "{{form.content}}" } ``` ## Manejo de errores n8n captura el status HTTP de la respuesta — chequeá los códigos del [overview](/docs/07-api/01-overview): - `401` → key inválida o expirada. - `403` → tu key no tiene los scopes necesarios. - `429` → rate limit (120 GET / 30 POST por minuto). - `2xx` → todo OK. Usá el nodo **IF** después del HTTP Request para ramificar según `$node["HTTP Request"].json["error"]`. ## Próximos pasos - Si necesitás el mismo workflow desde otra plataforma, mirá la [guía de Make/Zapier](/docs/07-api/09-make). - Para casos más interactivos (chat, no automatización), usá [el MCP server con Claude](/docs/07-api/06-mcp). --- # Make y Zapier — conectá FIA Copilot a tus automatizaciones URL: https://fiacopilot.com/docs/07-api/09-make Resumen: Cómo usar la API REST de FIA Copilot desde Make (ex Integromat) o Zapier. # Make y Zapier — conectá FIA Copilot a tus automatizaciones Make (ex Integromat) y Zapier son las plataformas no-code más populares para automatización. Ninguna tiene una integración oficial de FIA Copilot, pero las dos soportan llamadas HTTP genéricas — alcanza con eso. ## Pre-requisitos - Cuenta en Make o Zapier (plan free sirve para empezar). - Una API key de FIA Copilot generada en [/configuracion/api](https://fiacopilot.com/configuracion/api). ## Conectarlo desde Make 1. En tu escenario, agregá un módulo **HTTP → Make a request**. 2. Configurá: - **URL**: `https://fiacopilot.com/api/v1/me` (o el endpoint que uses). - **Method**: `GET` o `POST`. - **Headers**: agregar un header: - Name: `Authorization` - Value: `Bearer fia_sk_…` (tu key). - **Parse response**: `Yes` (Make parsea el JSON automáticamente). 3. Encadená el output con cualquier otro módulo (Google Sheets, Slack, Notion, etc.). **Tip**: guardá tu key en **Make → Connections → Custom** como variable para no exponerla en cada módulo. ## Conectarlo desde Zapier 1. En tu Zap, agregá un step de tipo **Webhooks by Zapier**. 2. Choose Action: **Custom Request**. 3. Configurá: - **Method**: `GET` o `POST`. - **URL**: `https://fiacopilot.com/api/v1/...`. - **Headers**: `Authorization: Bearer fia_sk_…`. - **Data Pass-Through?**: `False`. 4. Test the action. Zapier muestra la respuesta JSON parseada. ## Ejemplos rápidos **Make: cuando un cliente paga, guardar como briefing** ``` Trigger: Stripe → Payment Succeeded → HTTP: POST https://fiacopilot.com/api/v1/briefings Body (JSON): { "title": "Cliente nuevo: {{stripe.customer.name}}", "content": "..." } ``` **Zapier: digest diario de tu memoria por Slack** ``` Trigger: Schedule (todos los días 9am) → Webhooks: GET https://fiacopilot.com/api/v1/memory → Formatter: extraer top 3 items → Slack: enviar a vos mismo ``` ## Códigos de respuesta La API devuelve códigos HTTP estándar — los más comunes: - `200` → OK. - `401` → key inválida. - `403` → falta scope. - `429` → rate limit (120 GET / 30 POST por minuto por key). Ambas plataformas pueden ramificar por status si configurás el módulo de error handling. ## Próximos pasos - Si tu caso de uso es más programable (loops, variables), n8n suele ser más flexible — mirá la [guía de n8n](/docs/07-api/08-n8n). - Para uso interactivo desde un chat, usá [el MCP server](/docs/07-api/06-mcp) en vez de webhooks. --- # Documentación de FIA Copilot URL: https://fiacopilot.com/docs Resumen: Cómo funciona FIA Copilot, sus procesos, roles, y cómo delegar tareas a agentes de IA. # Documentación de FIA Copilot FIA Copilot es la plataforma de Axel Jutoran para que empresas latinoamericanas adopten inteligencia artificial de forma sistemática. Combina **programas de formación**, **memoria de negocio**, **agentes especializados** y un **engine de engagement por WhatsApp**. Esta documentación está pensada **tanto para humanos como para agentes de IA**. Si sos un agente leyendo esto, ver también la sección [Para tu agente de IA](/docs/06-para-tu-agente/01-prompt) y los archivos planos en [`/llms.txt`](/llms.txt) y [`/llms-full.txt`](/llms-full.txt). ## Mapa de la documentación 1. **[Empezar acá](/docs/01-empezar/01-que-es)** — qué es FIA Copilot, los tres programas y cómo se navega. 2. **[Sistema de memoria](/docs/02-memoria/01-briefings)** — briefings, cómo se guardan y se usan en chats con specialists. 3. **[Procesos clave](/docs/03-procesos/01-aplicar-programa)** — los flujos centrales paso a paso. 4. **[Roles](/docs/04-roles/01-alumno)** — qué puede hacer cada tipo de usuario. 5. **[Delegar a agentes](/docs/05-delegar-agentes/01-overview)** — cómo una empresa arma un brief para un agente y revisa logs. 6. **[Para tu agente de IA](/docs/06-para-tu-agente/01-prompt)** — prompt copy-paste y archivos machine-readable. ## URLs clave - App: [fiacopilot.com](https://fiacopilot.com) - Login: [fiacopilot.com/login](https://fiacopilot.com/login) - Changelog: [fiacopilot.com/changelog](https://fiacopilot.com/changelog) - Programas: [/programa/fia-ventas](https://fiacopilot.com/programa/fia-ventas), [/programa/fia-empresas](https://fiacopilot.com/programa/fia-empresas), [/programa/fia-agentica](https://fiacopilot.com/programa/fia-agentica)