AchieveApex: resumen de producto
Generado desde
achieveApex-Frontend/public/ai-docsel 2026-10-15. Contiene la ficha tecnica y los README de apps y modulos (sin fichas individuales).
AchieveApex: ficha tecnica del producto
Documento de entrada para una IA o una persona que necesita entender que es AchieveApex (Apex), que hace, para quien y que lo diferencia. Todo lo que dice esta respaldado por el catalogo de funcionalidades de esta misma carpeta (89 modulos, 822 fichas), que a su vez se escribio leyendo el codigo real del frontend y del backend.
Como navegar este catalogo
Este catalogo se publica como HTML estatico. Cualquier IA (ChatGPT, Claude, un agente) debe abrir las URLs .html. El texto esta en la pagina, sin JavaScript y sin descargar Markdown.
Puerta de entrada: https://www.achieveapex.com/llms.html
Ficha de producto: https://www.achieveapex.com/ai-docs/FICHA-TECNICA.html
| Que abrir | URL |
|---|---|
| Esta ficha | https://www.achieveapex.com/ai-docs/FICHA-TECNICA.html |
| Indice | https://www.achieveapex.com/ai-docs/index.html |
| App CRM | https://www.achieveapex.com/ai-docs/crm/index.html |
| Modulo conversaciones | https://www.achieveapex.com/ai-docs/crm/conversaciones/index.html |
| Una capacidad | https://www.achieveapex.com/ai-docs/crm/conversaciones/inbox-view.html |
| Bundle de una app | https://www.achieveapex.com/ai-docs/bundles/crm.html |
Reglas:
- Empezar en
https://www.achieveapex.com/llms.htmly seguir solo enlaces.html. - No abrir
.mdni.txt. Esos archivos son la fuente interna; la pagina que se lee es.html. - La carpeta de una app o modulo es su
index.html(el mismo contenido queREADME.html). - Para una app completa, abrir
https://www.achieveapex.com/ai-docs/bundles/{app}.html. - Para un detalle, ir al
index.htmldel modulo y luego a la ficha.html. Por confirmar:es una duda, no una capacidad.
1. Que es
AchieveApex es una plataforma multi-app para operar un negocio alrededor de sus clientes: atencion y ventas por canales de mensajeria, asistentes de IA que actuan sobre los datos del negocio, automatizaciones, finanzas (cotizaciones, facturas, pagos, cuentas por pagar), reservas, eventos, proyectos, helpdesk, contratos, reuniones, sitios web y presentaciones.
La pieza que une todo es un contacto unico: la misma persona es el hilo de WhatsApp, el deal, la cotizacion, la factura, la reserva, el ticket, el registro del evento, el contrato firmado y el asistente a la reunion. Cada app lee y escribe sobre ese mismo registro.
Usuario tipico: pymes y empresas de servicios de habla hispana e inglesa (clinicas, inmobiliarias, agencias, academias, e-commerce, consultoras, organizadores de eventos, despachos) que atienden clientes por WhatsApp e Instagram y quieren que la IA opere, no solo responda.
2. Arquitectura de producto
| App | Estado | Que resuelve |
|---|---|---|
| CRM | Produccion | Inbox omnicanal, contactos, companias, deals, actividades, productos, formularios, asistentes IA, automatizaciones, campanas, series, email builder, analytics, AI reports, canales, voz y SMS |
| Operations | Produccion | Proyectos, tareas, equipos, estrategia/OKRs, reportes de ejecucion |
| Helpdesk | Beta | Tickets con SLA, knowledge base, portal publico, insights, configuracion de soporte |
| Finance | Beta | Estimates, invoices, pagos recibidos, payment links, recurrentes, vendors, expenses, bills, payments made, plantillas PDF, impuestos y monedas, pasarelas |
| Sites | Produccion | Constructor de sitios con IA y publicacion con dominio propio |
| Presentations | Produccion | Decks HTML con IA, version live y enlace publico |
| Whiteboards | Produccion | Canvas colaborativo con nodos CRM vivos e IA |
| Events | Produccion | Eventos, tickets, cupones, registro publico, check-in QR, insights |
| Reservations | Produccion | Servicios, recursos, disponibilidad, calendario, booking links, booking publico |
| Contracts | Beta | Contratos desde plantillas con variables CRM, firma publica, auditoria |
| Meetings | Produccion | Grabacion y transcripcion (bot Recall o microfono), booking links personales, transcript publico |
| Links | Beta | Smart links apx.red, QR, UTM, actividad y analitica con atribucion CRM |
| Plataforma | Transversal | Organizacion, billing y wallet, equipo y permisos, perfil, partners, developers/MCP, AI voices, ads, Nova, Nova Support, softphone, notificaciones, academy, community, API docs, sitio de marketing |
| Internal | Admin | Consola de AchieveApex: partners, modelos IA, reportes internos, Nova Support admin |
| Support Admin | Admin | Casos de soporte de clientes hacia AchieveApex |
Tecnologia: frontend Next.js 14 (App Router, TypeScript, Tailwind), backend FeathersJS sobre PostgreSQL con Socket.IO para tiempo real, archivos en S3/CloudFront, autenticacion JWT y API keys, autorizacion CASL por organizacion, seccion, modulo y accion granular (own/all). Multi-tenant por organizacion.
3. Lo que hace distinto a Apex
Cada punto sale de los README de modulo (seccion "Que lo hace diferente").
3.1 Un solo contacto para toda la operacion
- Conversaciones de WhatsApp, Instagram, Messenger, SMS, webchat y email en el mismo hilo, asociado al contacto del CRM.
- Ese contacto es el que aparece en deals, estimates, invoices, pagos, reservas, tickets, registros de eventos, contratos, reuniones, smart links y proyectos.
- Un registro publico (formulario, booking, evento, catalogo) crea o relaciona un contacto; no genera listas aisladas.
3.2 Asistentes de IA que operan, no solo chatean
- Un asistente de canal puede, segun sus tools internas habilitadas: buscar y crear contactos, deals, actividades, notas, tareas; consultar disponibilidad y crear o actualizar reservas; crear estimates e invoices; buscar productos por semantica y enviarlos; crear y consultar tickets; enviar mensajes en los canales del CRM; crear smart links; sintetizar audio con voces IA.
- Handoff a humanos con reglas reales: mantener asignacion, propietario del contacto, o reparto entre miembros por disponibilidad, pesos y fallback. Y handoff inverso: un flujo puede cortar el contexto de la IA o reanudarla con una instruccion.
- Tools externas: HTTP propias (API tools), servidores MCP con OAuth o API key, y automatizaciones publicadas que el asistente invoca.
- Skills por asistente (conocimiento + condiciones de uso), historial de cambios de instrucciones con restauracion, playground, horario de disponibilidad, follow-up automatico.
- Modelos via OpenRouter con catalogo administrado por Apex (modelos permitidos por superficie: conversaciones, tickets, AI chat, voz) y cobro por wallet.
- Voz: asistentes de voz sobre Telnyx, con numeros, IVR/enrutamiento a humano o IA, cola, softphone WebRTC en el header y cumplimiento 10DLC.
3.3 Automatizaciones nativas de todo el producto
- Triggers de CRM, conversaciones, reservas, eventos (registro, check-in), Helpdesk (ticket creado/actualizado/SLA), formularios, llamadas de voz, cambios de miembros del equipo, webhook entrante y fecha.
- Acciones sobre entidades y canales nativos: contactos, deals, estimates, reservas, tickets, actividades, notas, series, WhatsApp, SMS, Gmail, Google Calendar, control del asistente IA en la conversacion, atribucion y Meta CAPI.
- Nodo
Chat With AIpara clasificar, resumir o redactar dentro del flujo. Creacion de automatizaciones por chat con IA. Ejecuciones visibles nodo por nodo con entradas y salidas. - Series: secuencias donde cada contacto avanza en su propio calendario y cada paso ejecuta una automatizacion.
3.4 Finanzas pegadas a la venta
- La cotizacion nace del deal y del contacto; se envia desde la conversacion; el cliente acepta o rechaza en una vista publica con tracking de aperturas, tiempo visible y descargas.
- Conversion a factura, pagos parciales y multi-factura, payment links con Stripe o Wompi (
Apex CheckoutoProvider Checkout), recurrencia, multi-moneda con FX automatico. - Pedidos estilo Shopify (estado, pago y entrega por separado) que llegan del checkout del catalogo publico, del asistente de IA, de conversiones o de creacion manual; el catalogo cobra con las pasarelas propias de la organizacion, en varias monedas, con envio o recogida, inventario opcional y recuperacion de checkouts abandonados. Sin impuestos ni suscripciones.
- Plantillas PDF con builder visual e IA, paginas adicionales Markdown y tablas inteligentes, campos personalizados del CRM en el documento.
- Cuentas por pagar (vendors, expenses, bills, payments made, recurrentes) en la misma plataforma. No es contabilidad de partida doble.
3.5 Copilotos de plataforma y acceso para otras IAs
- Nova: copilot interno de cada organizacion que ejecuta tools sobre contactos, conversaciones, deals, productos, automatizaciones, reservas, proyectos y OKRs, y construye AI Reports probando cada fuente de datos antes de guardar un widget.
- Nova Support: ayuda in-app que conoce la pagina actual (metas de soporte por ruta), consulta datos en solo lectura, acepta capturas y escala a un caso humano.
- MCP server oficial: cualquier cliente MCP (Claude, Cursor, ChatGPT con conectores) opera Apex con consentimiento OAuth por organizacion: contactos, conversaciones y mensajes, deals, facturas, reservas, proyectos, tareas, productos, formularios, asistentes IA y consultas de datos autorizadas de la organizacion. API REST documentada en
/docscon API keys por organizacion.
3.6 Modelo comercial
- Suscripcion Stripe por plan mas wallet prepago para consumo variable: IA de asistentes y herramientas, sintesis de voz, transcripcion y grabacion de reuniones, envios masivos de email, busqueda semantica de productos, generacion de contenido, tramites 10DLC.
- Auto-recarga por saldo minimo con limites de 24 horas y 30 dias que la desactivan ante abuso, conservando el motivo.
- Programa de partners (agencias y afiliados) con atribucion, comisiones por eventos de cobro y payouts via Wise reconciliados por webhook.
- Dominio propio en Sites: subdominio gratuito; dominio propio con suscripcion de $5 USD/mes.
4. Integraciones externas confirmadas
| Proveedor | Uso |
|---|---|
| Meta (WhatsApp Cloud API, Instagram, Messenger, Lead Ads, CAPI) | Canales, plantillas, lead ads, conversiones |
| Telnyx | Voz, SMS, numeros, 10DLC, WebRTC softphone, asistentes de voz |
| OpenRouter | Modelos de lenguaje para asistentes, Nova, automatizaciones y builders |
| Stripe | Suscripcion SaaS, wallet, payment links de clientes, dominios de Sites |
| Wompi | Payment links para clientes en Colombia |
| Recall.ai | Bot de grabacion y transcripcion de reuniones |
| Google (Calendar, Meet, Gmail) y Microsoft Outlook | Sincronizacion de actividades, booking links, buzones de email |
| AWS SES | Email broadcasting con dominios DKIM |
| AWS S3 / CloudFront | Archivos, media, sitios publicados |
| Wise | Payouts a partners |
| TikTok | Ruta de demostracion; flujo de conexion no confirmado |
5. Superficies publicas (sin login)
Formularios /f/{id}, cotizaciones /e/{path} e invoices /i/{path}, payment links /payment-links/{token}, catalogos /c/{orgId}/{slug}, eventos /events/{orgId}/..., booking /b/{orgId}/{slug}, booking personal de meetings /m/{orgId}/{slug}, transcripts /mt/{token}, firma de contratos /contracts/sign/{token}, presentaciones /p/{token}, whiteboards /wb/{token}, portal de helpdesk /help/{slug} o dominio propio, sitios publicados en pages.achieveapex.com o dominio propio, smart links en apx.red, unsubscribe de email, consentimiento SMS, webchat embebible.
6. Lo que Apex no hace (honestidad para la IA)
- No es contabilidad de partida doble ni emite facturacion electronica fiscal.
- Tickets legacy (Customer Service) y Helpdesk conviven como productos distintos.
- Clonacion de voz aparece como
Coming Soon; no es operativa. - Vector storage tiene UI de administracion pero el codigo revisado no confirma su backend ni que modulos lo consumen.
- Whiteboards: sin evidencia de colaboracion simultanea ni exportacion.
- Reservations: sin flujo publico de cancelacion por token.
- Todo lo marcado
Por confirmar:en las fichas es una duda real, no una capacidad.
7. Como esta organizado el catalogo
funcionalidades/
FICHA-TECNICA.md ← este documento
README.md ← indice de apps con conteos
PLANTILLA.md ← formato de README de modulo y de ficha
bundles/ ← archivos concatenados para entregar a una IA
{app}/README.md ← modulos de la app
{app}/{modulo}/README.md ← para que sirve, que lo hace diferente, acceso, alcance, tabla de fichas
{app}/{modulo}/{capacidad}.md ← que se logra, donde esta, como funciona, campos, reglas, backend, relaciones
Cada ficha de capacidad responde en orden: que hace, que se logra (resultado, caso de uso, con que se combina), donde esta en la UI, pasos reales, campos, reglas, servicios backend y efectos, relaciones y notas. Los nombres de UI van en ingles tal como aparecen; la explicacion en espanol. En la URL publica, {capacidad}.md y {capacidad} son el mismo documento.
8. Glosario minimo
- Organizacion: tenant. Todo dato pertenece a una.
- Contacto: persona. Compania: cuenta B2B.
- Deal: oportunidad en un pipeline con etapas.
- Estimate: cotizacion. Invoice: factura. Payment link: cobro individual publico.
- Asistente IA: agente configurado por canal (inbox, tickets, Nova/ai-chat, voz).
- Tool interna: accion que el asistente puede ejecutar sobre Apex. API tool: HTTP externa. MCP server: servidor de herramientas externo conectado al asistente.
- Automatizacion: flujo trigger → nodos. Serie: secuencia de automatizaciones por contacto.
- Wallet: saldo prepago para consumo variable.
- Nova: copilot interno. Nova Support: ayuda in-app.
- Smart link: enlace corto
apx.redcon QR, UTM y atribucion.
Funcionalidades
Catalogo de producto de AchieveApex. Cada app tiene su carpeta. Cada modulo tiene la suya. Cada funcionalidad interna es un archivo dentro de la carpeta del modulo.
Para que existe
Es la ficha tecnica de Apex para otra IA (ChatGPT, Claude, un agente) o para quien pregunte "que hace Apex". Empezar por FICHA-TECNICA.md. Para entregarlo a una IA usar los archivos de bundles/:
| Necesidad | Archivo |
|---|---|
| Explicar Apex en un chat corto | FICHA-TECNICA.md |
| Contexto de producto completo sin detalle operativo | bundles/apex-resumen.md |
| Todo el catalogo para un proyecto/knowledge base | bundles/apex-ficha-tecnica-completa.md |
| Solo una app | bundles/{app}.md |
Tras editar fichas, desde achieveApex-Frontend corre node public/ai-docs/absolutize-links.mjs. Convierte los enlaces a URLs absolutas (https://www.achieveapex.com/ai-docs/...), regenera los bundles y valida que existan. No editar bundles/ a mano.
Acceso publico para IA: https://www.achieveapex.com/llms.html y https://www.achieveapex.com/ai-docs/FICHA-TECNICA.html. Cada ficha publicada es un .html estatico generado por node public/ai-docs/build-html.mjs. No enviar a una IA enlaces .md ni .txt. Google no indexa estas paginas (googlebot: noindex); ChatGPT y Claude si pueden abrir el HTML.
Nombre
Usamos funcionalidades y no modulos ni docs porque:
- Un modulo es el contenedor (Conversaciones, Invoices, Sites).
- Lo que vamos a describir dentro son las funcionalidades internas de ese modulo.
src/app/(docs)es el sitio publico de API. Este arbol es el inventario de producto orientado a IA.
Ruta canonica:
achieveApex-Frontend/public/ai-docs/
Estructura
funcionalidades/
README.md ← este indice
FICHA-TECNICA.md ← vision del producto para una IA: que es, que lo hace distinto, limites
PLANTILLA.md ← formato de README de modulo y de ficha
build-bundles.mjs ← genera bundles/
bundles/ ← concatenados por app y completo (generados, no editar)
{app}/
README.md ← lista de modulos de la app
{modulo}/
README.md ← para que sirve, que lo hace diferente, acceso, alcance, tabla de fichas
{funcionalidad}.md ← una por capacidad: que se logra, donde esta, pasos, campos, reglas, backend
Apps de un solo modulo (sites, presentations, whiteboards, support-admin) no anidan otra carpeta: las fichas van directo en la carpeta de la app.
Convencion de slugs
Carpetas en kebab-case, estables, alineadas al producto (no a traducciones de UI):
| Tipo | Ejemplo |
|---|---|
| App | crm, finance, meetings |
| Modulo | conversaciones, recurring-invoices, booking-links |
No renombrar slugs al traducir titulos. El titulo en espanol vive dentro del README.md del modulo.
Mantenimiento
Cada funcionalidad nueva se revisa con el skill funcionalidades-catalog:
- Si es una capacidad de producto (app, modulo o funcion interna usable), se agrega aqui.
- Si es bugfix, refactor, hook, cron o migracion sin UX nueva, no se agrega.
Estado de este arbol
- Inventario de apps y modulos: listo (15 apps, 89 modulos).
- Funcionalidades internas: documentadas (822 fichas). Cada ficha se escribio leyendo el codigo real de frontend y backend; lo no confirmable esta marcado como
Por confirmar:(151 dudas concretas en 132 archivos). - Capa de valor: cada ficha tiene
Que se logra(resultado, caso de uso, con que se combina) y cada modulo tienePara que sirveyQue lo hace diferente, escritos con hechos del codigo y sin marketing. - Calidad: cada ficha sigue
PLANTILLA.md. Esta prohibido el texto plantilla generico (pasos como "abre la seccion correspondiente"); si una ficha no puede describir pasos reales, no se crea.
Apps
| App | Carpeta | Etapa | Modulos | Fichas |
|---|---|---|---|---|
| CRM | crm | Produccion | 19 | 301 |
| Operations | operations | Produccion | 5 | 52 |
| Helpdesk | helpdesk | Beta | 5 | 56 |
| Finance | finance | Beta | 14 | 111 |
| Sites | sites | Produccion | 1 | 16 |
| Presentations | presentations | Produccion | 1 | 11 |
| Whiteboards | whiteboards | Produccion | 1 | 9 |
| Events | events | Produccion | 6 | 40 |
| Reservations | reservations | Produccion | 6 | 40 |
| Contracts | contracts | Beta | 3 | 18 |
| Meetings | meetings | Produccion | 4 | 19 |
| Links | links | Beta | 3 | 14 |
| Plataforma | plataforma | Transversal | 16 | 100 |
| Internal | internal | Admin | 4 | 28 |
| Support Admin | support-admin | Admin | 1 | 7 |
APP: contracts
Contracts
Contratos, plantillas y firma electronica.
- Etapa: Beta
- Landing:
/{orgId}/contracts
Modulos
| Modulo | Slug | Estado | Proposito |
|---|---|---|---|
| Contracts | contratos |
beta | Ciclo de vida de contratos. |
| Templates | templates |
beta | Plantillas reutilizables. |
| Firma publica | firma-publica |
beta | E-sign /contracts/sign/{token}. |
Funcionalidades internas
18 funcionalidades documentadas en 3 modulos. Ver la tabla de cada modulo.
id: contratos app: contracts nombre: Contratos estado: beta permiso: can_access_contracts
Contratos
Gestiona documentos para solicitar firmas electrónicas o registrar contratos recibidos.
Para que sirve
- Una agencia envía un acuerdo de servicios para firma y conserva el resultado con el deal del cliente.
- Una inmobiliaria prepara contratos de arrendamiento con varios firmantes y controla su vencimiento.
- Un despacho archiva contratos ya firmados recibidos de terceros junto al contacto, proyecto o factura relacionados.
- Una empresa B2B revisa qué contratos siguen pendientes y recuerda a los firmantes sin salir del CRM.
Que lo hace diferente
- Un contrato puede vincularse con contacto, empresa, deal, estimate, invoice y proyecto del CRM.
- Combina firma pública mediante enlace con el registro de contratos recibidos que no requieren un flujo de firma.
- Genera el documento firmado con sello y certificado de auditoría, y conserva eventos del proceso.
- Usa plantillas con variables de los registros CRM para crear el documento inicial de contratos de firma.
Acceso
- Ruta principal:
/[orgId]/contracts - Como se llega:
Header app switcher > Contracts - Permiso requerido:
can_access_contractsy permisos de contratos propios o de toda la organización
Alcance tecnico
- Frontend: lista, detalle, preparación y panel lateral de contratos.
- Backend:
contracts,contract-document-versions,contract-signers,contract-signature-fields,contract-send,cron-expire-contracts. - Integraciones externas: S3, SES, Telnyx y generación PDF.
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Crear contrato | create-contract.md | Inicia firma electrónica o registro. |
| Registrar contrato recibido | register-contract.md | Archiva un documento sin firma. |
| Buscar y filtrar | search-and-filter.md | Encuentra contratos por contenido y estado. |
| Gestionar detalle | contract-detail.md | Actualiza propietario, datos y relaciones. |
| Gestionar versiones | document-versions.md | Sube y consulta el documento vigente. |
| Preparar firmas | prepare-signatures.md | Añade firmantes y campos en el PDF. |
| Enviar para firma | send-for-signature.md | Define idioma, mensaje y vencimiento. |
| Recordar firmantes | reminders.md | Reenvía invitaciones pendientes. |
| Anular contrato | void-contract.md | Revoca un flujo aún no finalizado. |
| Historial y finalización | history-and-completion.md | Conserva eventos y genera el documento final. |
Relaciones
- Depende de: Contactos, Empresas, Deals, Estimates, Invoices y Proyectos.
- Usado por: firma pública y documentos relacionados.
Limitaciones y notas
- Los contratos registrados no se pueden enviar ni preparar para firma.
id: firma-publica app: contracts nombre: Firma pública estado: public permiso: ninguno
Firma pública
Permite a una persona firmar un contrato desde un enlace seguro sin cuenta de AchieveApex.
Para que sirve
- Una empresa de servicios obtiene la firma de un cliente sin pedirle acceso al CRM.
- Una inmobiliaria coordina una firma secuencial entre arrendador, arrendatario y codeudor.
- Un despacho recoge evidencia de consentimiento, verificación y, cuando se exige, foto de identidad.
- Un equipo comercial recibe el documento final al completar el último firmante.
Que lo hace diferente
- La firma pública completa el contrato que vive en Apex y conserva sus relaciones con contacto, deal, factura o proyecto.
- Admite orden paralela o secuencial, y entrega cada enlace según el estado del flujo.
- El documento final se sella con un certificado de auditoría y el historial queda disponible para el propietario en Contracts.
- La verificación puede usar correo y SMS con el canal Telnyx configurado por la organización.
Acceso
- Ruta principal:
/contracts/sign/[token] - Como se llega: enlace recibido por correo
- Permiso requerido: ninguno
Alcance tecnico
- Frontend:
ContractSigningExperience,SignaturePady captura de identidad. - Backend:
public-contract-signing. - Superficies publicas:
/contracts/sign/[token]. - Integraciones externas: SES, Telnyx, S3 y generación PDF.
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Abrir paquete de firma | open-signing-package.md | Muestra el estado y documentos disponibles. |
| Verificar identidad | verify-identity.md | Valida códigos enviados por correo o SMS. |
| Completar campos | fill-fields.md | Rellena los campos asignados en el PDF. |
| Firmar o rechazar | sign-or-decline.md | Registra consentimiento, firma o rechazo. |
Relaciones
- Depende de: Contratos, firmantes y documentos relacionados.
- Dispara / afecta: finalización del contrato y correos de estado.
Limitaciones y notas
- Un firmante secuencial puede abrir el enlace, pero debe esperar su turno.
id: templates app: contracts nombre: Plantillas de contratos estado: beta permiso: can_access_contracts
Plantillas de contratos
Define documentos reutilizables con variables para generar contratos de firma.
Para que sirve
- Una consultora estandariza acuerdos de servicios y genera un borrador específico para cada cliente.
- Una inmobiliaria reutiliza la base de contratos y completa datos del inmueble o negocio vinculado.
- Un despacho reduce la copia manual de datos al crear contratos desde oportunidades y contactos del CRM.
Que lo hace diferente
- Las variables se resuelven a partir de los registros vinculados al contrato de Apex, no de una base externa de destinatarios.
- La plantilla genera directamente la primera versión de un contrato que después se prepara y envía para firma pública.
- Las plantillas activas se administran dentro de la misma aplicación que conserva contratos, relaciones CRM e historial de firma.
Acceso
- Ruta principal:
/[orgId]/contracts/templates - Como se llega:
Contracts > Templates - Permiso requerido:
can_access_contractsy permiso de edición de contratos
Alcance tecnico
- Frontend:
ContractTemplatesViewyContractTemplateEditorView. - Backend:
contract-templatesycontract-generate-document.
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Gestionar plantillas | manage-templates.md | Crea, busca, activa o elimina plantillas. |
| Editar documento | edit-template-document.md | Redacta el contenido en Markdown. |
| Usar variables | template-variables.md | Inserta datos del contrato relacionado. |
| Generar contrato | generate-contract.md | Convierte una plantilla activa en documento. |
Relaciones
- Depende de: Contratos y registros CRM vinculados.
- Usado por: creación de contratos para firma.
Limitaciones y notas
- Solo las plantillas activas se ofrecen al crear un contrato.
APP: crm
CRM
Inbox, pipeline, registros y herramientas de marketing/IA.
- Etapa: Produccion
- Landing:
/{orgId}/conversations
Modulos
| Modulo | Slug | Estado | Proposito |
|---|---|---|---|
| Conversaciones | conversaciones |
shipped | Inbox omnichannel (WhatsApp, Instagram, Messenger, SMS, webchat, email). |
| Deals | deals |
shipped | Pipeline de ventas, etapas, productos y watchers. |
| Tickets legacy | tickets-legacy |
shipped | Customer Service original. Convive con Helpdesk. |
| Actividades | actividades |
shipped | Tareas, llamadas y calendario CRM. |
| Contactos | contactos |
shipped | Personas, importacion, segmentos y fuentes. |
| Companias | companias |
shipped | Cuentas B2B ligadas a contactos y deals. |
| Productos | productos |
shipped | Catalogo, categorias, media y plantillas de envio. |
| Formularios | formularios |
shipped | Constructor de forms y respuestas. |
| Asistentes IA | asistentes-ia |
shipped | Agentes de canal: instrucciones, tools, skills, handoff, voz. |
| Vector storage | vector-storage |
shipped | Embeddings de productos / knowledge para IA. |
| Automatizaciones | automatizaciones |
shipped | Workflow visual, triggers, nodos y ejecuciones. |
| Campanas | campanas |
shipped | Broadcasts WhatsApp, SMS, email, AI calling y automation. |
| Series | series |
shipped | Secuencias drip con suscripcion y pasos. |
| Email builder | email-builder |
shipped | Plantillas MJML, bloques y assets. |
| Analytics CRM | analytics |
shipped | Dashboards de conversaciones, deals, quotes, actividades, attribution. |
| AI Reports | ai-reports |
shipped | Reportes generados por IA sobre conversaciones y metricas. |
| Catalogos publicos | catalogos-publicos |
shipped | Links publicos de catalogo de productos y tienda online con carrito, checkout y pago con Stripe o Wompi. |
| Canales de mensajeria | canales-mensajeria |
shipped | WhatsApp, Instagram, Messenger, TikTok, Webchat. |
| Voice y SMS | voice-sms |
shipped | Numeros Telnyx, IVR, cola, 10DLC, softphone. |
Funcionalidades internas
301 funcionalidades documentadas en 19 modulos. Ver la tabla de cada modulo.
id: actividades app: crm nombre: Actividades estado: shipped permiso: permisos granulares de actividades
Actividades
Gestiona tareas, llamadas y reuniones relacionadas con registros CRM.
Para que sirve
- Una clínica coordina llamadas de confirmación y reuniones de seguimiento con el paciente correcto.
- Una inmobiliaria agenda visitas asociadas al comprador, la constructora y la oportunidad.
- Una agencia prepara reuniones con los interesados de un deal y comparte un enlace de Google Meet.
- Una consultora consulta sus pendientes por responsable y completa las tareas sin perder el historial CRM.
- Una academia sincroniza su calendario para planificar seguimientos sin duplicar eventos futuros.
Que lo hace diferente
- Una actividad puede vincular en el mismo registro contacto, compañía, deal y responsable, y aparece en sus perfiles CRM.
- Los contactos principales y watchers de un deal se sugieren como invitados cuando tienen correo.
- La sincronización nativa con Google y Outlook permite elegir dirección, visibilidad y tipos de actividad.
- Google puede crear un enlace de Meet desde la actividad sincronizable, sin una herramienta de videollamada separada.
- Al completar o eliminar una actividad sincronizada, Apex intenta actualizar el evento externo sin bloquear el cambio en CRM.
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Calendario de actividades | activity-calendar.md | Visualiza y administra actividades CRM. |
| Crear y editar actividades | create-edit-activity.md | Registra detalles, horarios y prioridades. |
| Completar y eliminar actividades | complete-delete-activity.md | Actualiza el estado y el evento externo asociado. |
| Vistas, filtros y búsqueda | activity-views-filters.md | Alterna presentaciones y restringe resultados. |
| Tipos de actividad | activity-types.md | Clasifica actividades y documenta su gestión. |
| Vincular actividades al CRM | activity-relationships.md | Relaciona contactos, compañías, deals y responsable. |
| Invitados y enlace de reunión | activity-attendees-meetings.md | Añade asistentes y conferencia de Google Meet. |
| Sincronización de calendario | calendar-sync.md | Conecta y configura Google u Outlook Calendar. |
| Recordatorios de actividades | activity-reminders.md | Documenta el proceso backend de recordatorios. |
| Acciones masivas | activity-bulk-actions.md | Registra la capacidad backend pendiente de UI. |
Acceso
- Ruta principal:
/[orgId]/activities - Como se llega:
Sidebar > CRM > Activities - Permiso requerido: permisos granulares de actividades
Alcance tecnico
- Frontend:
ActivitiesViewyActivitiesCalendarView. - Backend:
activities,activity-types,activities-bulk-actionsyprocess-activity-reminders. - Superficies publicas: ninguna.
- Integraciones externas: calendar integrations.
Relaciones
- Depende de: Contactos, Compañías y Deals.
- Usado por: Timeline CRM y recordatorios.
Limitaciones y notas
- Por confirmar: comportamiento de sincronización exacto con calendar integrations.
id: ai-reports app: crm nombre: Reportes con IA estado: shipped permiso: can_access_analytics
Reportes con IA
Área de Analytics para construir páginas de reportes con Nova y ejecutar análisis IA por conversación. Está dirigida a equipos que necesitan consultar métricas del CRM y clasificar conversaciones sin preparar consultas manualmente.
Para que sirve
- Un equipo comercial crea un reporte de pipeline y ventas para identificar oportunidades estancadas por etapa o responsable.
- Una empresa de soporte analiza conversaciones por canal y clasifica motivos, sentimiento o resultados definidos por el equipo.
- Una cadena de servicios prepara una página de indicadores con filtros para comparar reservas, deals o actividad entre periodos.
- Un gerente de operaciones combina tablas y gráficos para revisar el rendimiento de miembros, asistentes o canales desde datos del CRM.
- Una agencia clona un análisis de conversaciones para evaluar campañas diferentes con los mismos criterios.
Que lo hace diferente
- Nova construye reportes sobre datos reales de la organización y prueba cada fuente de datos antes de guardar un widget; no entrega un gráfico basado solo en una descripción.
- Las páginas admiten widgets, filtros vinculados y distribución en lienzo, de modo que una misma vista puede separar métricas comerciales, operativas y de atención.
- Los filtros actualizan únicamente los widgets que declararon vínculo con ellos, evitando que una selección cambie resultados no relacionados.
- Además de gráficos, el análisis IA procesa conversaciones reales que cumplen filtros del CRM y extrae los campos que el equipo define.
- El procesamiento de conversaciones es asíncrono, muestra avance, resultados y errores, y su inicio se controla mediante Wallet.
Acceso
- Ruta principal:
/[orgId]/analytics/ai-reports - Como se llega:
Analytics > AI Reports; los análisis de conversaciones están enAnalytics > AI Insights - Permiso requerido:
can_access_analytics
Alcance tecnico
- Frontend:
analytics/ai-reports/page.tsx,analytics/ai-insights/page.tsx,AnalyticsReportsCanvasView.tsxyAIAnalyticsView.tsx. - Backend:
report-pages,report-widgets,report-widget-data,ai-report-builder,analytics-ai-conversations-jobyanalytics-ai-conversations-job-result. - Superficies publicas: no hay rutas públicas para estas pantallas.
- Integraciones externas: OpenRouter genera y prueba los widgets de Nova; SQS, OpenRouter (LLM) y Jev (clasificador Fast) procesan cada conversación de un trabajo.
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Páginas de reportes | report-pages.md | Crea pestañas, las abre por URL y cambia su nombre en línea. |
| Widgets de visualización | report-widgets.md | Agrupa los gráficos, métricas, tablas y bloques que puede crear Nova. |
| Constructor de reportes con Nova | nova-report-builder.md | Convierte una instrucción en páginas y widgets con datos comprobados. |
| Filtros de página | report-filters.md | Aplica valores solo a los widgets que los vincularon. |
| Lienzo y distribución | report-layout.md | Guarda posición y tamaño de cada widget tras moverlo o redimensionarlo. |
| Datos de widgets | widget-data.md | Ejecuta de forma segura la fuente de datos guardada de un gráfico. |
| Tipos de visualización | visualization-types.md | Define las visualizaciones y bloques de contenido disponibles. |
| Edición y eliminación de widgets | widget-editing.md | Renombra, inspecciona, modifica con Nova y elimina widgets. |
| Análisis IA de conversaciones | ai-conversation-analysis.md | Define un trabajo, sus filtros y los campos que IA debe extraer. |
| Seguimiento de trabajos de análisis | analysis-job-monitoring.md | Muestra progreso en tiempo real, resultados y operaciones permitidas. |
Relaciones
- Depende de: datos de CRM, Conversaciones y Wallet.
- Usado por: equipos comerciales, de soporte y de operaciones.
Limitaciones y notas
Nova solo puede guardar widgets cuya consulta de lectura sea válida y se ejecute correctamente para la organización. Las páginas adicionales y la cantidad visible de widgets usan controles de plan. Cada trabajo de conversaciones cobra Wallet una vez al iniciarse y termina de forma asíncrona.
id: analytics app: crm nombre: Analytics CRM estado: shipped permiso: can_access_analytics
Analytics CRM
Reportes operativos y comerciales de conversaciones, deals, quotes, actividades y atribución.
Para que sirve
- Un contact center compara conversaciones por agente, etapa, país y tendencia para planear la operación de soporte.
- Una empresa B2B revisa el valor, progreso, productos y resultados de sus deals para detectar cuellos de botella del pipeline.
- Una agencia analiza qué anuncios y parámetros UTM aportan contactos y oportunidades para justificar inversión de adquisición.
- Un despacho comercial sigue el estado de quotes, sus aceptaciones, rechazos y vencimientos para recuperar propuestas.
- Un gerente mide creación y completitud de actividades para verificar que el equipo ejecute los seguimientos comprometidos.
Que lo hace diferente
- Reúne en un mismo módulo datos de conversaciones, deals, quotes, actividades, productos, pipelines, miembros y atribución.
- Permite pasar de la carga operativa de conversaciones al desempeño comercial de deals y propuestas con los mismos filtros de período.
- Muestra análisis específicos de deals ganados y perdidos, y de quotes aceptadas, rechazadas o vencidas.
- Incluye atribución por anuncios y UTM conectada con los contactos que ingresan al CRM.
- Ofrece comparación de períodos y exportación desde las vistas para análisis operativo y comercial.
Acceso
- Ruta principal:
/[orgId]/analytics - Como se llega:
Sidebar > Tools > Analytics - Permiso requerido: permiso de rol
can_access_analytics; el backend autorizaanalyticscon capacidadread.
Alcance tecnico
- Frontend: rutas
/[orgId]/analytics/{conversations,deals,quotes,activities,attribution}/**, excluidos AI Reports y AI Powered Analytics. - Backend:
analytics(find).reportsno alimenta estas vistas. - Integraciones externas: ninguna confirmada en estas vistas.
Funcionalidades internas
Relaciones
- Depende de: Conversaciones, Deals, Quotes, Actividades, Productos, Pipelines y miembros.
- Usado por: equipos que revisan operación y desempeño.
Limitaciones y notas
- Las rutas AI Reports y AI Powered Analytics se excluyen por pertenecer a otros módulos.
- La ruta
/[orgId]/analytics/dealsno muestra contenido en el código actual; verdeals-home.md.
id: asistentes-ia app: crm nombre: Asistentes IA estado: shipped permiso: can_access_ai_assistant
Asistentes IA
Configura asistentes para Inbox, tickets, Nova y llamadas de voz. Cada tipo expone pestañas y modelos compatibles distintos.
Para que sirve
- Una clínica configura un asistente para responder consultas iniciales, consultar disponibilidad y derivar casos sensibles a recepción.
- Una inmobiliaria atiende prospectos desde Inbox, consulta propiedades o contactos del CRM y asigna la oportunidad al asesor disponible.
- Un ecommerce permite al asistente buscar productos, enviar información y continuar seguimientos cuando el comprador deja de responder.
- Un equipo de soporte clasifica tickets, ejecuta automatizaciones permitidas y entrega conversaciones complejas al miembro correcto.
- Una empresa de servicios publica un agente de voz en su web para atender llamadas, agendar o transferir a una persona.
Que lo hace diferente
- No es solo un chatbot: puede habilitar herramientas internas para buscar y crear contactos, deals, actividades, reservas, estimates, invoices, productos, notas, tareas y conversaciones, según la configuración de cada asistente.
- Puede consultar disponibilidad, crear o actualizar reservas, cotizar con estimates, buscar productos y enviar mensajes en los canales disponibles del CRM.
- El handoff puede conservar la asignación actual, usar el propietario del contacto o distribuir entre miembros según disponibilidad, pesos y reglas de fallback.
- Integra herramientas HTTP propias, servidores MCP con OAuth o API keys, y automatizaciones publicadas que el asistente puede invocar.
- Sus skills añaden conocimiento y condiciones de uso por asistente; las instrucciones y la configuración conservan historial recuperable.
- Los asistentes de voz se sincronizan con Telnyx; los modelos de texto se configuran mediante conexiones permitidas y el uso de IA se controla con Wallet.
Acceso
- Ruta principal:
/[orgId]/ai-assistant - Como se llega:
Sidebar > AI Assistant - Permiso requerido:
can_access_ai_assistant
Alcance tecnico
- Frontend:
ai-assistant/page.tsx,ai-assistant/[assistantId]/page.tsxycomponents/aiassistant. - Backend:
ai-assistants,ai-assistant-response,ai-assistant-response-v2,ai-assistant-skills,api-tools,mcp-tool-connection-proxyy servicios de voz. - Superficies publicas: el widget de voz generado se inserta en sitios externos después de sincronizar el asistente.
- Integraciones externas: OpenRouter, Telnyx, ElevenLabs, servidores MCP y S3 para logos del widget.
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Gestión de asistentes | assistant-management.md | Crea, selecciona, duplica y elimina asistentes por tipo. |
| Instrucciones y modos | assistant-instructions.md | Define comportamiento con Guided Mode o Blank Canvas. |
| Asistente de redacción | instruction-writing-assistant.md | Ayuda a redactar, revisar o diagramar instrucciones antes de aplicarlas. |
| Modelo y ajustes básicos | assistant-model-settings.md | Configura nombre, modelo, zona horaria y conexión de IA permitida. |
| Herramientas internas | internal-tools.md | Habilita herramientas nativas de CRM, mensajería, productos, finanzas y otros módulos. |
| Herramientas API | api-tools.md | Crea, prueba y conecta herramientas HTTP personalizadas al asistente. |
| Servidores MCP | mcp-servers.md | Conecta servidores MCP y habilita herramientas remotas por asistente. |
| Skills del asistente | assistant-skills.md | Crea y mantiene conocimiento especializado activado bajo condiciones de uso. |
| Transferencia a personas | human-handoff.md | Define reglas para entregar conversaciones a miembros disponibles, propietarios o alternativas. |
| Transferencia a otro asistente | ai-handoff.md | Transfiere conversaciones a otro asistente con reglas y opciones de respuesta. |
| Seguimientos automáticos | follow-up.md | Configura reglas de seguimiento cuando el cliente deja de responder. |
| Automatizaciones invocables | assistant-automations.md | Asocia automatizaciones publicadas e instrucciones para que el asistente las ejecute. |
| Configuración avanzada | advanced-settings.md | Controla salida estructurada, respuesta, medios, análisis de imágenes y resumen. |
| Horario de disponibilidad | availability-schedule.md | Define atención semanal y acciones fuera de horario. |
| Playground de texto | playground.md | Prueba asistentes de conversación y Nova con contactos y conversaciones de Playground. |
| Configuración de voz | voice-configuration.md | Configura runtime, voz, transcripción, saludo, variables y sincronización de un asistente de voz. |
| Transferencia de voz | voice-handoff.md | Transfiere llamadas a agentes de voz, otros asistentes o destinos externos. |
| Widget web de voz | voice-web-widget.md | Personaliza y copia el embed del agente de voz para un sitio web. |
| Historial y restauración | assistant-history.md | Consulta snapshots, compara versiones y restaura instrucciones o configuración completa. |
| Configuración al enviar mensajes | message-time-configuration.md | Consulta la configuración histórica asociada a un mensaje de IA. |
| Configuración externa por MCP | mcp-assistant-configuration.md | Permite a clientes MCP autorizados consultar y modificar asistentes de conversación y tickets. |
Relaciones
- Depende de: modelos de IA, miembros de la organización, Conversaciones, Customer Service y Calling & SMS.
- Usado por: Inbox, tickets, Nova, seguimientos y llamadas de voz.
Limitaciones y notas
ai-chatyvoicenacen enBlank Canvas; conversación y tickets pueden iniciar enGuided Mode.- Nova oculta
Handoff,Follow UpyAutomations; voz no tieneFollow Up. - La creación y cada actualización guardan una versión de historial cuando la petición contiene un usuario autenticado.
id: automatizaciones app: crm nombre: Automatizaciones estado: shipped permiso: can_access_automations
Automatizaciones
Constructor visual de flujos que responde a triggers, ejecuta acciones de CRM y conserva el detalle de cada ejecución.
Para que sirve
- Una clínica: cuando se crea una reserva, envía un WhatsApp de confirmación, crea una actividad de recordatorio y notifica al doctor.
- Una inmobiliaria: cuando entra un formulario de un inmueble, busca o crea el contacto, lo distribuye entre asesores y abre un deal.
- Un e-commerce: cuando un cliente comenta una palabra clave en un Reel, inicia una conversación, identifica su interés y continúa el seguimiento comercial.
- Un equipo SaaS de soporte: cuando un ticket incumple su SLA, lo reasigna, deja una nota interna y alerta al responsable.
- Una agencia B2B: cuando un deal pasa a propuesta, busca los productos solicitados, crea un estimate y agenda el seguimiento.
- Un centro de reservas: antes de una cita, envía un recordatorio; si la llamada llega al buzón de voz, envía un SMS y crea una tarea de reintento.
- Un organizador de eventos: cuando un asistente hace check-in, crea una oportunidad para ventas y envía un mensaje posterior.
- Una tienda conectada: cuando confirma un pago en su plataforma externa, llama un webhook de Apex para actualizar el contacto y disparar la comunicación correspondiente.
Que lo hace diferente
- Los triggers nacen de módulos propios: CRM, conversaciones, reservas, eventos, Helpdesk, formularios, llamadas de voz y cambios de miembros del equipo; no requieren replicar esos datos en una herramienta externa.
- Las acciones operan entidades y canales nativos: contactos, deals, estimates, reservas, tickets, actividades, WhatsApp, SMS, Gmail y Google Calendar.
- Puede controlar el comportamiento del asistente IA dentro de una conversación, incluyendo cortar su contexto o reanudarlo con una instrucción del flujo.
- Incluye acciones para obtener y establecer atribución de contactos y enviar conversiones a Meta CAPI desde hitos comerciales que ocurren en Apex.
- El nodo
Chat With AIpermite clasificar, resumir o redactar una salida que pasa directamente a las siguientes ramas y acciones. - El editor permite probar, publicar y activar el flujo, y cada ejecución puede revisarse visualmente nodo por nodo con sus entradas y salidas.
- También admite un trigger webhook con URL propia, para conectar eventos externos al mismo proceso que usa los datos del CRM.
- El código revisado no establece una tarifa universal por tarea de automatización:
Chat With AIcobra Wallet según modelo y tokens, y la búsqueda semántica de productos cobra por su consulta de embeddings.
Acceso
- Ruta principal:
/[orgId]/automations - Como se llega:
Sidebar > Tools > Automations - Permiso requerido:
can_access_automations
Alcance tecnico
- Frontend:
automations/page.tsx,automations/[automationId]/page.tsx,automations-executionsy componentes desrc/components/automations. - Backend:
automations,automations-categories,automations-webhooks,automations-executions,automation-run,process-automation-triggery serviciosautomation-node-*. - Superficies publicas: URLs de webhook de automatizaciones.
- Integraciones externas: Meta, WhatsApp, Telnyx, Gmail, Google Calendar, S3 y AWS SES según nodo.
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Trigger: contacto creado | trigger-contact-created.md | Inicia al crear un contacto y permite filtros de creador, propietario, empresa, tipo y etiquetas. |
| Trigger: contacto actualizado | trigger-contact-updated.md | Inicia cuando cambia un contacto y permite filtros del contacto afectado. |
| Trigger: deal creado | trigger-deal-created.md | Inicia al crear un deal y permite filtros de pipeline y etapa. |
| Trigger: deal actualizado | trigger-deal-updated.md | Inicia al actualizar un deal, normalmente para cambios de pipeline o etapa. |
| Trigger: actividad creada | trigger-activity-created.md | Inicia al crear una actividad con filtros por creador, asignado, tipo y estado. |
| Trigger: actividad actualizada | trigger-activity-updated.md | Inicia por cambios de actividad y permite seleccionar cambios de campos. |
| Trigger: fecha de actividad | trigger-activity-date-based.md | Inicia cuando llega una fecha de actividad o un tiempo antes o después. |
| Trigger: miembro agregado | trigger-team-member-added.md | Inicia cuando un usuario se agrega a la organización. |
| Trigger: miembro actualizado | trigger-team-member-updated.md | Inicia por cambios de membresía o perfil de un miembro. |
| Trigger: miembro eliminado | trigger-team-member-removed.md | Inicia cuando se retira un miembro de la organización. |
| Trigger: conversación iniciada | trigger-conversation-created.md | Inicia al crear una conversación con filtros de canal, pipeline y asignación. |
| Trigger: conversación actualizada | trigger-conversation-updated.md | Inicia por cambios de conversación y permite filtros de canal, pipeline y asignación. |
| Trigger: reserva creada | trigger-reservation-created.md | Inicia al crear una reserva y filtra por servicio y estado. |
| Trigger: reserva actualizada | trigger-reservation-updated.md | Inicia al cambiar una reserva y filtra por servicio y estado. |
| Trigger: fecha de reserva | trigger-reservation-date-based.md | Inicia cuando llega una fecha de reserva o un tiempo antes o después. |
| Trigger: nuevo pedido | trigger-order-created.md | Inicia al colocar un pedido y filtra por fuente, catálogo y propietario. |
| Trigger: pedido pagado | trigger-order-paid.md | Inicia una vez cuando el pedido queda totalmente pagado. |
| Trigger: entrega del pedido actualizada | trigger-order-fulfillment-updated.md | Inicia cuando cambia el estado de entrega, con filtro por nuevo estado. |
| Trigger: pedido cancelado | trigger-order-cancelled.md | Inicia cuando se cancela un pedido. |
| Trigger: checkout abandonado | trigger-checkout-abandoned.md | Inicia un tiempo después de la última actividad de un checkout de catálogo sin completar. |
| Trigger: registro de evento creado | trigger-event-registration-created.md | Inicia cuando un invitado se registra en un evento. |
| Trigger: registro de evento actualizado | trigger-event-registration-updated.md | Inicia al actualizar un registro de invitado, por ejemplo estado o pago. |
| Trigger: invitado registrado | trigger-event-guest-checked-in.md | Inicia cuando se hace check-in de un invitado. |
| Trigger: formulario enviado | trigger-form-submitted.md | Inicia cuando se envía un formulario publicado. |
| Trigger: ticket de Helpdesk creado | trigger-helpdesk-ticket-created.md | Se ejecuta al crear un ticket de Helpdesk que cumpla los filtros configurados. |
| Trigger: ticket de Helpdesk actualizado | trigger-helpdesk-ticket-updated.md | Se ejecuta cuando un ticket cambia y satisface las transiciones y filtros configurados. |
| Trigger: SLA de Helpdesk incumplido | trigger-helpdesk-ticket-sla-breached.md | Se ejecuta cuando el programador de SLA detecta que un ticket incumplió un objetivo de primera respuesta, siguiente respuesta o resolución. |
| Trigger: comentario en publicación de Facebook | trigger-facebook-post-comment.md | Se ejecuta para comentarios de una Page de Facebook que coinciden con una publicación y reglas de palabras. |
| Trigger: comentario en publicación o Reel de Instagram | trigger-instagram-post-reel-comment.md | Se ejecuta para comentarios entrantes de Instagram que coinciden con una publicación/Reel y reglas de palabras. |
| Trigger: respuesta a historia de Instagram | trigger-instagram-story-reply.md | Se ejecuta cuando alguien responde una historia de Instagram y la respuesta satisface los filtros. |
| Trigger: llamada de voz iniciada | trigger-voice-call-created.md | Se ejecuta al crear una llamada de voz no interna que cumple los filtros. |
| Trigger: llamada de voz actualizada | trigger-voice-call-updated.md | Se ejecuta cuando una llamada elegible cambia en alguno de los campos configurados. |
| Trigger: llamada de voz finalizada | trigger-voice-call-ended.md | Se ejecuta cuando finaliza una llamada elegible que cumple los filtros. |
| Trigger: filtrado de llamada detectado | trigger-voice-call-screening-detected.md | Se ejecuta al detectar buzón de voz o preclasificación en una llamada saliente elegible. |
| Trigger: webhook | trigger-webhook.md | Genera una URL HTTPS única para que sistemas externos inicien el flujo. |
| Control de flujo | flow-control.md | Condiciones, variables, tablas de consulta, transformación JavaScript, HTTP y finalización de ramas. |
| Mensajería de conversaciones | conversation-messages.md | Obtiene, busca, inicia conversaciones y envía mensajes, plantillas o actualizaciones. |
| Control de IA en conversación | conversation-ai-control.md | Corta contexto o reasigna una conversación a IA con instrucción de reanudación. |
| Chat con IA | chat-with-ai.md | Ejecuta una interacción de IA dentro de un flujo para generar una salida utilizable. |
| Acciones de voz | voice-actions.md | Programa llamadas IA salientes y establece variables dinámicas de voz. |
| Acciones de contactos | contact-actions.md | Crea, actualiza, busca y obtiene contactos; incluye distribución ponderada de miembros. |
| Acciones de deals | deal-actions.md | Crea, actualiza, consulta deals, productos y watchers, o agrega watchers. |
| Creación de estimates | estimate-actions.md | Crea estimates con líneas, moneda, plantilla y datos relacionados. |
| Acciones de empresas | company-actions.md | Crea y consulta empresas del CRM. |
| Acciones de actividades | activity-actions.md | Crea, consulta, actualiza o elimina actividades e integra Google Calendar y correo. |
| Acciones de reservas | reservation-actions.md | Consulta disponibilidad, crea, actualiza y obtiene reservas. |
| Acciones de tickets | ticket-actions.md | Actualiza tickets y realiza acciones de Helpdesk como asignar, responder, anotar o vigilar. |
| Notas internas | notes-actions.md | Crea notas internas asociadas a contactos o deals. |
| Búsqueda de productos | product-search.md | Busca el catálogo por texto, semántica IA o combinación de ambos. |
| Conversiones de Meta | meta-conversions.md | Obtiene o establece atribución de contacto y envía conversiones a Meta CAPI. |
| Acciones de Series | series-actions.md | Suscribe o desuscribe contactos de Series. |
| Monitoreo de ejecuciones | execution-monitoring.md | Lista, filtra, consulta, reproduce y crea ejecuciones manuales. |
| Visor de ejecución | execution-viewer.md | Representa visualmente una ejecución y permite inspeccionar entradas, configuración y salidas. |
| Editor visual | automation-editor.md | Edita el lienzo, triggers, nodos, anotaciones, publicación, prueba, copia y descarga. |
| Organización en carpetas | automation-folders.md | Crea carpetas y organiza automatizaciones desde la lista lateral. |
| Trigger legado: mensaje de WhatsApp | trigger-legacy-whatsapp-message.md | Monitorea mensajes entrantes de WhatsApp en automatizaciones existentes. | | Trigger legado: URL de WhatsApp | trigger-legacy-whatsapp-url.md | Inicia una automatización existente al coincidir una URL de WhatsApp. | | Trigger legado: mensaje de Messenger | trigger-legacy-messenger-message.md | Monitorea mensajes de Messenger en automatizaciones existentes. | | Trigger legado: comentario de Facebook | trigger-legacy-facebook-comment.md | Inicia con comentarios en publicaciones de Facebook configuradas. | | Trigger legado: clic en anuncio de Facebook | trigger-legacy-facebook-ad-click.md | Inicia al detectar clics en el anuncio configurado. | | Trigger legado: URL ref de Messenger | trigger-legacy-messenger-ref-url.md | Responde a una URL de referencia de Messenger existente. | | Trigger legado: código QR | trigger-legacy-qr-code.md | Inicia al detectar la interacción configurada de código QR. | | Trigger legado: mensaje de Instagram | trigger-legacy-instagram-message.md | Monitorea mensajes directos de Instagram en automatizaciones existentes. | | Trigger legado: comentario en vivo de Instagram | trigger-legacy-instagram-live-comment.md | Inicia con comentarios de un Instagram Live configurado. | | Trigger legado: URL ref de Instagram | trigger-legacy-instagram-ref-url.md | Responde a una URL de referencia de Instagram existente. | | Trigger legado: suscripción a secuencia | trigger-legacy-sequence-subscription.md | Inicia al suscribir un contacto a una secuencia existente. | | Trigger legado: baja de secuencia | trigger-legacy-sequence-unsubscription.md | Inicia al retirar un contacto de una secuencia existente. | | Trigger legado: fecha y hora | trigger-legacy-date-time.md | Programa un trigger único o recurrente para automatizaciones existentes. | | Trigger legado: mensaje de Facebook Shop | trigger-legacy-facebook-shop-message.md | Monitorea mensajes de tienda con filtros de tipo, palabra y tiempo. | | Trigger legado: widget web | trigger-legacy-website-widget.md | Inicia por vista, interacción, envío o cierre de un widget web configurado. | | Trigger legado: modal de Messenger | trigger-legacy-messenger-modal.md | Inicia por eventos de un modal de Messenger en un sitio web. | | Trigger legado: landing page | trigger-legacy-landing-page.md | Inicia al visitar la URL de landing page configurada. |
Relaciones
- Depende de: CRM, Conversaciones, Tickets, Reservations, Events, Series y Calling & SMS.
- Usado por: Asistentes IA, canales y operaciones automatizadas.
Limitaciones y notas
Los cambios del lienzo requieren Publish; el interruptor Active controla si el flujo publicado responde a triggers. El nodo Delay está marcado como Coming Soon.
Inventario de archivos
| Archivo | Contenido |
|---|---|
README.md |
Índice del módulo |
activity-actions.md |
Acciones de actividades y correo |
automation-editor.md |
Lienzo y publicación |
automation-folders.md |
Carpetas de automatizaciones |
chat-with-ai.md |
Nodo de IA |
company-actions.md |
Acciones de empresas |
contact-actions.md |
Acciones de contactos |
conversation-ai-control.md |
Control de IA de conversación |
conversation-messages.md |
Acciones de conversaciones |
deal-actions.md |
Acciones de deals |
estimate-actions.md |
Creación de estimates |
execution-monitoring.md |
Historial de ejecuciones |
execution-viewer.md |
Detalle de ejecución |
flow-control.md |
Nodos de control |
meta-conversions.md |
Atribución y conversiones Meta |
notes-actions.md |
Notas internas |
product-search.md |
Búsqueda de productos |
reservation-actions.md |
Acciones de reservas |
series-actions.md |
Suscripciones de Series |
ticket-actions.md |
Acciones de tickets |
trigger-activity-created.md |
Trigger de actividad creada |
trigger-activity-date-based.md |
Trigger de fecha de actividad |
trigger-activity-updated.md |
Trigger de actividad actualizada |
trigger-contact-created.md |
Trigger de contacto creado |
trigger-contact-updated.md |
Trigger de contacto actualizado |
trigger-conversation-created.md |
Trigger de conversación creada |
trigger-conversation-updated.md |
Trigger de conversación actualizada |
trigger-deal-created.md |
Trigger de deal creado |
trigger-deal-updated.md |
Trigger de deal actualizado |
trigger-event-guest-checked-in.md |
Trigger de check-in |
trigger-event-registration-created.md |
Trigger de registro de evento |
trigger-event-registration-updated.md |
Trigger de actualización de registro |
trigger-form-submitted.md |
Trigger de formulario |
trigger-legacy-date-time.md |
Trigger legado de fecha |
trigger-legacy-facebook-ad-click.md |
Trigger legado de anuncio |
trigger-legacy-facebook-comment.md |
Trigger legado de comentario |
trigger-legacy-facebook-shop-message.md |
Trigger legado de tienda |
trigger-legacy-instagram-live-comment.md |
Trigger legado de Live |
trigger-legacy-instagram-message.md |
Trigger legado de mensaje |
trigger-legacy-instagram-ref-url.md |
Trigger legado de URL |
trigger-legacy-landing-page.md |
Trigger legado de landing |
trigger-legacy-messenger-message.md |
Trigger legado de Messenger |
trigger-legacy-messenger-modal.md |
Trigger legado de modal |
trigger-legacy-messenger-ref-url.md |
Trigger legado de URL |
trigger-legacy-qr-code.md |
Trigger legado de QR |
trigger-legacy-sequence-subscription.md |
Trigger legado de suscripción |
trigger-legacy-sequence-unsubscription.md |
Trigger legado de baja |
trigger-legacy-website-widget.md |
Trigger legado de widget |
trigger-legacy-whatsapp-message.md |
Trigger legado de mensaje |
trigger-legacy-whatsapp-url.md |
Trigger legado de URL |
trigger-reservation-created.md |
Trigger de reserva creada |
trigger-reservation-date-based.md |
Trigger de fecha de reserva |
trigger-reservation-updated.md |
Trigger de reserva actualizada |
trigger-order-created.md |
Trigger de nuevo pedido |
trigger-order-paid.md |
Trigger de pedido pagado |
trigger-order-fulfillment-updated.md |
Trigger de entrega del pedido |
trigger-order-cancelled.md |
Trigger de pedido cancelado |
trigger-checkout-abandoned.md |
Trigger de checkout abandonado |
trigger-team-member-added.md |
Trigger de miembro agregado |
trigger-team-member-removed.md |
Trigger de miembro eliminado |
trigger-team-member-updated.md |
Trigger de miembro actualizado |
trigger-webhook.md |
Trigger por webhook |
trigger-helpdesk-ticket-created.md |
Trigger: ticket de Helpdesk creado |
trigger-helpdesk-ticket-updated.md |
Trigger: ticket de Helpdesk actualizado |
trigger-helpdesk-ticket-sla-breached.md |
Trigger: SLA de Helpdesk incumplido |
trigger-facebook-post-comment.md |
Trigger: comentario en publicación de Facebook |
trigger-instagram-post-reel-comment.md |
Trigger: comentario en publicación o Reel de Instagram |
trigger-instagram-story-reply.md |
Trigger: respuesta a historia de Instagram |
trigger-voice-call-created.md |
Trigger: llamada de voz iniciada |
trigger-voice-call-updated.md |
Trigger: llamada de voz actualizada |
trigger-voice-call-ended.md |
Trigger: llamada de voz finalizada |
trigger-voice-call-screening-detected.md |
Trigger: filtrado de llamada detectado |
voice-actions.md |
Acciones de voz |
id: campanas app: crm nombre: Campañas estado: shipped permiso: can_access_campaigns
Campañas
Permite crear, configurar, calendarizar y supervisar envíos masivos por WhatsApp, SMS, email, llamadas de IA y automatizaciones. Incluye audiencias reutilizables y la configuración de email broadcasting.
Para que sirve
- Una clínica usa campañas de WhatsApp para recordar citas a pacientes filtrados desde su CRM y registrar el resultado de cada entrega.
- Un e-commerce segmenta compradores y les envía promociones por email, SMS o WhatsApp desde una misma operación.
- Una inmobiliaria lanza llamadas de IA a leads que no respondieron para recuperar oportunidades de visita.
- Una franquicia inicia una automatización sobre una audiencia para asignar tareas y responsables de manera masiva.
Que lo hace diferente
- Combina segmentos construidos con datos del CRM con campañas por WhatsApp, SMS, email, llamadas de IA y automatizaciones.
- Las campañas de WhatsApp usan plantillas aprobadas por Meta y variables de cada contacto.
- Puede ejecutar llamadas salientes con asistentes IA, no solo mensajes de texto.
- Una campaña puede activar una automatización para cada contacto de la audiencia.
- El email usa dominios, remitentes y supresiones compartidos con Email Broadcasting.
- Los resultados distinguen entregas procesadas y fallos, incluidos contactos que no llegaron a enviarse.
Acceso
- Ruta principal:
/[orgId]/campaigns - Como se llega:
Sidebar > Campaigns - Permiso requerido:
can_access_campaigns
Alcance tecnico
- Frontend: rutas bajo
/[orgId]/campaigns,CampaignsView,CampaignForm,SegmentsViewy formularios por canal. - Backend:
campaigns,campaign-segments,campaign-segments-split, servicios de envío por canal y serviciosemail-broadcast-*. - Superficies publicas:
/email-broadcast-unsubscribe?t=.... - Integraciones externas: Meta WhatsApp Cloud API, Telnyx, AWS SES, S3, DynamoDB, SQS y wallet de la organización.
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Gestionar campañas | campaign-management.md | Lista, crea, duplica, detiene y elimina campañas. |
| Configurar campaña | campaign-configuration.md | Reúne contenido, audiencia y horario antes del envío. |
| Elegir plantilla de WhatsApp | whatsapp-campaign-content.md | Selecciona plantillas aprobadas y sus variables. |
| Elegir plantilla de email | email-campaign-content.md | Vincula plantilla visual y remitente verificado. |
| Redactar campaña SMS/MMS | sms-campaign-content.md | Define remitente, texto y adjuntos. |
| Configurar llamadas con IA | ai-calling-campaign-content.md | Selecciona número, asistente y variables dinámicas. |
| Ejecutar automatización masiva | automation-campaign-content.md | Aplica una automatización a la audiencia. |
| Seleccionar audiencia | campaign-audience-selection.md | Asigna un segmento compatible y consulta su tamaño. |
| Programar y enviar | campaign-scheduling.md | Guarda borradores, agenda o inicia una campaña. |
| Consultar resultados | campaign-delivery-results.md | Muestra estados y resultados de campañas terminadas o en proceso. |
| Gestionar segmentos | campaign-segments.md | Crea, filtra, edita y elimina audiencias por canal. |
| Diseñar filtros de segmento | segment-filter-builder.md | Combina condiciones y grupos lógicos anidados. |
| Dividir un segmento | segment-splitting.md | Parte una audiencia en segmentos más pequeños. |
| Configurar email broadcasting | email-broadcasting-settings.md | Administra dominios, remitentes, envíos, supresiones y salud. |
| Cancelar suscripción de email | email-broadcast-unsubscribe.md | Permite al destinatario bloquear futuros emails de marketing. |
Relaciones
- Depende de: Contactos, Automatizaciones, plantillas de WhatsApp, Email Builder, canales de email y Calling & SMS.
- Usado por: Analytics, conversaciones, wallet y automatizaciones.
Limitaciones y notas
- Las campañas de plan Free están limitadas a una; los planes pagados no aplican ese límite desde la interfaz.
- Solo los estados
draftyscheduledpermiten edición. - Los resultados de WhatsApp consideran tanto mensajes aceptados como destinatarios que fallan antes del envío.
id: canales-mensajeria app: crm nombre: Canales de mensajería estado: shipped permiso: can_access_crm
Canales de mensajería
Conecta, supervisa y configura los canales que alimentan el inbox omnicanal.
Para que sirve
- Un restaurante conecta WhatsApp, Instagram y Messenger para atender reservas desde
Conversations. - Una tienda en línea instala Webchat en su sitio y convierte consultas web en conversaciones del CRM.
- Una agencia conecta Gmail u Outlook para que los correos de clientes queden junto con el resto de su atención.
- Un e-commerce verifica su dominio y configura AWS SES antes de enviar campañas por email.
Que lo hace diferente
- Los canales no quedan aislados: todos alimentan el inbox omnicanal y el contacto compartido con el CRM.
- WhatsApp incluye diagnóstico de permisos, plantillas para revisión de Meta y sincronización inicial de contactos e historial cuando el tipo de conexión lo permite.
- Webchat entrega conversaciones al mismo flujo que los canales Meta y puede permitir adjuntos bajo configuración de la organización.
- Email combina buzones operativos Gmail/Outlook con un canal de difusión AWS SES, dominios DKIM y reglas de filtrado.
Acceso
- Ruta principal:
/[orgId]/settings/channel-whatsapp - Como se llega:
Avatar menu > Settings > Channels - Permiso requerido:
can_access_crm; algunos controles son de admin o superadmin.
Alcance tecnico
- Frontend: rutas de canales WhatsApp, Instagram, Messenger, TikTok, Webchat, inbox y email
- Backend:
whatsapp-channels,instagram-channels,messenger-channels,webchat-widget-settings,inbox-channels,email-channels - Superficies publicas: widget Webchat instalado en sitios externos
- Integraciones externas: Meta, Google, Microsoft y AWS SES
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Canal WhatsApp | whatsapp-channel.md | Conexión y gestión Meta. |
| Diagnóstico WhatsApp | whatsapp-health-check.md | Salud y permisos. |
| Plantillas WhatsApp | whatsapp-templates.md | Creación para revisión. |
| Sincronización SMB | whatsapp-smb-sync.md | Contactos e historial. |
| Instagram y Messenger | meta-messaging-channels.md | Canales Meta. |
| Webchat | webchat-channel.md | Widget y clave. |
| Buzones Gmail y Outlook | inbox-email-channels.md | OAuth, firma y reconexión. |
| Filtros de correo | email-filtering-rules.md | Listas y spam. |
| Difusión por email | email-broadcast-channel.md | Canal AWS SES. |
| Dominios de envío | email-sending-domains.md | DKIM y verificación. |
| Mantenimiento de conversaciones | channel-conversation-maintenance.md | Ocultar o restaurar. |
Relaciones
- Depende de: Organización, Contactos y proveedores externos.
- Usado por: Conversaciones, Campañas y Automatizaciones.
Limitaciones y notas
- TikTok tiene una ruta de demostración, pero no se confirmó flujo de conexión equivalente.
id: catalogos-publicos app: crm nombre: Catálogos públicos estado: shipped permiso: can_access_settings
Catálogos públicos
Páginas públicas de productos configurables y compartibles por cada organización. Con el checkout activo, el catálogo funciona como tienda online (ecommerce): carrito, Add to cart / Buy now, pago con las pasarelas de la organización (Stripe o Wompi) o pagar después, envío o recogida, multi-moneda y pedidos que llegan a Finance > Orders.
Para que sirve
- Una tienda vende online desde el catálogo: el cliente agrega productos al carrito, elige envío o recogida y paga con tarjeta (Stripe o Wompi) sin iniciar sesión.
- Una tienda comparte una página pública con sus productos para que clientes consulten referencias sin iniciar sesión.
- Un restaurante publica solo categorías seleccionadas y dirige a los visitantes hacia WhatsApp para hacer consultas.
- Una marca inserta un catálogo en una landing mediante iframe y conserva el inventario administrado en Apex.
- Un distribuidor prepara catálogos diferentes para líneas o audiencias específicas sin duplicar los productos.
- Un negocio controla qué productos, precios, medios y filtros ve el visitante desde un editor interno.
Que lo hace diferente
- Cada catálogo público se alimenta directamente de Productos, categorías y media de Apex, sin exportar ni sincronizar inventario a otra herramienta.
- Un enlace puede limitarse a todos los productos, categorías concretas o una selección específica, y ordenar las categorías visibles de forma independiente.
- El visitante puede abrir el detalle, explorar media, buscar y, si el catálogo lo habilita y existe canal configurado, iniciar contacto por WhatsApp.
- Los mismos enlaces de catálogo se pueden enviar desde el composer de Conversaciones usando los modos de envío de productos.
- El checkout cobra con las pasarelas propias de la organización (formulario embebido o redirección), en varias monedas con precios fijos o convertidos, con inventario opcional, pedido mínimo y recuperación de checkouts abandonados; cada compra crea un pedido, un contacto y puede generar la factura al pagarse.
- El editor configura contenido, layouts y tema, mientras
embed=truepermite integrar el catálogo sin encabezado ni pie de página.
Acceso
- Ruta principal:
/[orgId]/settings/products/catalog-links - Como se llega:
Settings > Products > Catalog Links - Permiso requerido:
can_access_settings
Alcance tecnico
- Frontend: editor
CatalogLinkEditorPage, listadoCatalogLinksManagementy ruta pública/c/[orgId]/[slug]. - Backend:
catalog-links,public-catalog,public-catalog-checkoutyorders. - Superficies publicas: catálogo, categoría y producto sin inicio de sesión; checkout
/c/[orgId]/[slug]/checkouty página del pedido/o/[path].
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Gestionar enlaces | catalog-link-management.md | Crea, activa, comparte, edita y elimina catálogos. |
| Configurar catálogo | catalog-link-editor.md | Define selección, marca, contenido, layout y tema. |
| Seleccionar productos | catalog-product-selection.md | Limita el catálogo a todo, categorías o productos. |
| Personalizar presentación | catalog-display-and-theme.md | Configura layout, visibilidad y colores. |
| Explorar catálogo público | public-catalog-browsing.md | Permite buscar, filtrar, abrir y compartir productos. |
| Checkout y pagos | catalog-checkout.md | Carrito, multi-moneda, envío o recogida y pago online con Stripe o Wompi que crea pedidos. |
Relaciones
- Depende de: Productos, categorías y canal de WhatsApp opcional; Payment Gateways para pago online.
- Usado por: clientes externos, enlaces compartidos y Pedidos (checkout).
Limitaciones y notas
- Un enlace inactivo no está disponible para visitantes.
- La búsqueda semántica puede configurarse, pero su disponibilidad efectiva depende de la configuración del catálogo.
id: companias app: crm nombre: Companias estado: shipped permiso: permisos granulares de compañías
Companias
Agrupa cuentas B2B y sus contactos, deals y actividad.
Para que sirve
- Una agencia administra cada empresa cliente junto con sus contactos, oportunidades y notas.
- Una consultora reúne el historial de una cuenta antes de preparar una renovación.
- Un proveedor B2B asigna cuentas corporativas a responsables y redistribuye carteras por lote.
- Un despacho legal registra empresas y consulta sus documentos, actividad y contactos relacionados.
Que lo hace diferente
- La compañía es una cuenta compartida por Contactos, Deals, Actividades, Estimates, Reservas y Proyectos.
- Su perfil reúne registros CRM y documentos comerciales en vez de separar la cuenta de las operaciones diarias.
- Los campos personalizados y etiquetas pueden mostrarse también como columnas de la lista de empresas.
- Las acciones masivas aplican a la selección o a todos los resultados de la búsqueda, con progreso y restricciones de plan.
- La reasignación conserva cambios de responsable para mantener trazabilidad de la cartera.
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Perfil de compañía | company-profile.md | Consulta datos y relaciones CRM. |
| Lista, búsqueda y vistas | company-list-filters.md | Consulta, ordena y personaliza la tabla. |
| Crear compañía | create-company.md | Añade una compañía desde el listado. |
| Editar y eliminar compañía | edit-delete-company.md | Actualiza o elimina el registro desde su perfil. |
| Acciones masivas y exportación | company-bulk-actions.md | Procesa compañías seleccionadas o exporta datos. |
| Campos personalizados y etiquetas | company-custom-fields-tags.md | Completa campos y administra etiquetas. |
| Registros relacionados | company-related-records.md | Reúne contactos, deals y actividad de la compañía. |
Acceso
- Ruta principal:
/[orgId]/companies - Como se llega:
Sidebar > CRM > Companies - Permiso requerido: permisos granulares de compañías
Alcance tecnico
- Frontend: lista y detalle;
CompanyView,CompanyHeader,CompanySidebaryCRMMainContent - Backend:
companies,companies-bulk-actions,contacts,deals,notes,tagsycustom-fields - Superficies publicas: ninguna
- Integraciones externas: S3 y canales de comunicación vinculados a contactos
Relaciones
- Depende de: Contactos, Deals, Etiquetas y Campos personalizados.
- Usado por: Contactos, Deals, Estimates y Actividades.
Limitaciones y notas
- El diálogo de edición confirma como datos centrales únicamente el nombre; los demás vínculos se gestionan desde el perfil.
id: contactos app: crm nombre: Contactos estado: shipped permiso: permisos granulares de contactos
Contactos
Gestiona personas y leads del CRM, sus datos, relaciones, comunicaciones y actividad comercial.
Para que sirve
- Una clínica reúne los datos y el historial de cada paciente para dar seguimiento antes y después de una cita.
- Una inmobiliaria clasifica prospectos, los vincula a empresas y distribuye su atención entre asesores.
- Un e-commerce identifica el origen de cada comprador y conserva su consentimiento de mensajería.
- Una academia importa interesados de ferias o formularios y los segmenta para sus procesos de admisión.
- Un concesionario contacta a un prospecto por WhatsApp, SMS, Instagram o llamada desde la misma ficha.
Que lo hace diferente
- Un contacto único conecta datos CRM con conversaciones de WhatsApp, SMS e Instagram y llamadas de voz.
- Desde el perfil se puede iniciar una llamada con un asistente de voz y enviar variables dinámicas del contacto.
- Los segmentos de contactos alimentan el procesamiento de campañas; no quedan como filtros aislados.
- El historial reúne actividades, notas, fuentes y cambios de responsable en la misma ficha.
- La gestión de STOP/START de SMS se refleja en el contacto y limita los envíos desde los canales integrados.
Acceso
- Ruta principal:
/[orgId]/contacts - Como se llega:
Sidebar > CRM > Contacts - Permiso requerido: permisos granulares de contactos
Alcance tecnico
- Frontend: rutas de lista y perfil de contactos;
ContactsView,ContactHeader,ContactSidebaryCRMMainContent - Backend:
contacts,contacts-bulk-actions,contacts-import-error-logs,contacts-segments-*,contacts-sources,notes,tagsycustom-fields - Superficies publicas: ninguna
- Integraciones externas: WhatsApp, Instagram, SMS, voz, Meta y S3
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Lista y busqueda | contact-list.md | Consulta y abre contactos. |
| Crear contacto | create-contact.md | Alta con deteccion de duplicados. |
| Editar perfil | edit-contact.md | Actualiza datos, avatar y tipo. |
| Importar CSV | import-contacts.md | Mapea y carga contactos desde CSV. |
| Acciones masivas | bulk-contact-actions.md | Cambia propietarios y opera por lote. |
| Vistas guardadas | contact-views.md | Guarda filtros y columnas de lista. |
| Exportar contactos | export-contacts.md | Genera descargas desde selecciones, vistas o filtros. |
| Segmentos | contact-segments.md | Define y consulta segmentos. |
| Timeline CRM | contact-timeline.md | Revisa el historial relacionado. |
| Notas y archivos | contact-notes-files.md | Registra notas y adjuntos. |
| Etiquetas | contact-tags.md | Clasifica contactos con tags. |
| Empresa asociada | contact-company.md | Vincula el contacto a una empresa. |
| Campos personalizados | contact-custom-fields.md | Captura datos configurables. |
| Atajos de comunicacion | contact-communication.md | Abre llamadas y conversaciones. |
| Llamada con IA | contact-ai-call.md | Inicia llamadas salientes con asistente. |
| Fuentes de contacto | contact-sources.md | Registra procedencia, campañas y UTM. |
| Consentimiento y blacklist | contact-message-consent.md | Refleja bajas y altas SMS y estado de WhatsApp. |
| Smart Links en el contacto | contact-smart-links.md | Registra la integración pendiente de confirmar. |
| Permisos de contactos | contact-permissions.md | Describe el acceso granular y alcance de miembros. |
Relaciones
- Depende de: Compañías, Etiquetas y Campos personalizados.
- Usado por: Deals, Conversaciones, Tickets legacy, Automatizaciones y Formularios.
Limitaciones y notas
- Un contacto de WhatsApp puede tener
@usernamesin teléfono; el nombre de usuario no se edita desde AchieveApex. - Por confirmar: la superficie exacta desde la que se administra manualmente la blacklist SMS/email y si el detalle ofrece Smart Links.
- No se verificó un flujo de fusión de duplicados en las rutas, componentes y servicios indicados.
id: conversaciones app: crm nombre: Conversaciones estado: shipped permiso: can_access_crm
Conversaciones
Inbox omnicanal para atender, organizar y automatizar comunicaciones con contactos.
Para que sirve
- Una clínica centraliza consultas de WhatsApp, Instagram y email para que recepción responda sin perder el historial del paciente.
- Una inmobiliaria asigna prospectos entrantes a asesores y relaciona cada conversación con sus oportunidades de venta.
- Un e-commerce responde preguntas, comparte productos y usa plantillas cuando necesita contactar fuera de la ventana de WhatsApp.
- Una academia distribuye conversaciones entre su equipo y asistentes de IA para atender inscripciones y seguimientos.
Que lo hace diferente
- Reúne WhatsApp, Instagram, Messenger, SMS, webchat y email en el mismo hilo, asociado al contacto del CRM.
- El panel del hilo conecta directamente con Deals, Tickets, Reservations, Meetings y Series, sin trasladar manualmente al cliente entre herramientas.
- Permite asignar conversaciones a personas o asistentes de IA, reanudar la IA con instrucciones concretas y ejecutar automatizaciones desde el compositor.
- Comparte catálogo de Productos y enlaces públicos de catálogo al responder desde el inbox.
Acceso
- Ruta principal:
/[orgId]/conversations - Como se llega:
Sidebar > Conversations - Permiso requerido:
can_access_crm; las acciones administrativas requieren admin u owner.
Alcance tecnico
- Frontend: rutas de
conversationsyConversationsView,MessageInput,ChatHeader - Backend:
conversations,conversation-messages-*,conversations-bulk-actions,conversation-ai-resume,conversation-files - Superficies publicas: ninguna confirmada
- Integraciones externas: Meta, Telnyx, S3 y asistentes de IA
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Vista de inbox omnicanal | inbox-view.md | Lista, hilo y ficha. |
| Filtrar y buscar | filter-and-search.md | Filtros y búsquedas. |
| Enviar mensajes y notas | send-message.md | Respuestas y notas. |
| Enviar adjuntos | send-attachments.md | Archivos y ubicación. |
| Respuestas citadas | quoted-replies.md | Réplicas contextualizadas. |
| Plantillas WhatsApp | whatsapp-templates.md | Mensajes aprobados. |
| Mensajes predefinidos | predefined-messages.md | Fragmentos reutilizables. |
| Escritura con IA | ai-writing-assistant.md | Borradores y mejoras. |
| Asignar conversación | assign-conversation.md | Responsable humano o IA. |
| Reanudar con IA | resume-with-ai.md | Instrucción puntual. |
| Plantillas IA | resume-templates.md | Instrucciones reutilizables. |
| Estado de conversación | conversation-status.md | Abrir, cerrar o no leída. |
| Acciones masivas | bulk-actions.md | Cambios por lote. |
| Detalles del contacto | conversation-details.md | Relaciones CRM. |
| Ejecutar automatización | conversation-automation.md | Ejecuta flujos desde el hilo. |
| Bloquear y cortar contexto | manage-conversation-access.md | Acciones administrativas. |
| Enviar productos | send-products.md | Productos y catálogos. |
Relaciones
- Depende de: Contactos, Canales de mensajería, Productos y Automatizaciones.
- Usado por: Deals, Tickets, Reservations, Meetings y asistentes de IA.
Limitaciones y notas
- Meta limita mensajes libres a una ventana de 24 horas.
id: deals app: crm nombre: Deals estado: shipped permiso: permisos granulares de deals
Deals
Organiza oportunidades comerciales por pipeline, etapa, responsable y valor.
Para que sirve
- Una inmobiliaria sigue cada negocio desde el primer interés hasta la compra o pérdida.
- Una agencia separa ventas nuevas y renovaciones en pipelines con acceso por equipo.
- Un concesionario calcula el valor de una oportunidad a partir de los vehículos o servicios negociados.
- Una consultora convierte propuestas aceptadas en oportunidades ganadas vinculadas a sus estimates.
- Una academia registra motivos de pérdida para corregir su proceso de admisiones.
Que lo hace diferente
- Cada deal relaciona el contacto, la compañía, los productos, la actividad y la conversación comercial en una sola ficha.
- Los pipelines pueden restringirse por miembro, además de aplicar los permisos granulares de deals.
- El sistema conserva automáticamente la duración y los cambios de cada etapa.
- Un deal ganado puede tratar los estimates vinculados y sincronizar su valor comercial.
- Los documentos comerciales abarcan estimates, invoices y Smart Links desde el contexto de la oportunidad.
- Los watchers del deal se convierten en sugerencias de invitados al crear actividades sincronizables.
Acceso
- Ruta principal:
/[orgId]/deals - Como se llega:
Sidebar > CRM > Deals - Permiso requerido: permisos granulares de deals; la configuración de acceso de pipelines requiere propietario o administrador
Alcance tecnico
- Frontend: lista, tablero y detalle;
DealsView,PipelineView,DealSidebaryCRMMainContent - Backend:
deals,pipelines,pipeline-stages,pipeline-members,deal-products,deal-watchers,deal-stage-history,deal-duplicate,deals-bulk-actions,deals-lost-reasonsyowner-changes - Superficies publicas: ninguna
- Integraciones externas: SMS, WhatsApp, Instagram, voz y S3
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Lista y busqueda | deal-list.md | Consulta y filtra oportunidades. |
| Tablero kanban | deal-kanban.md | Gestiona deals por columna de etapa. |
| Crear deal | create-deal.md | Crea oportunidades y sus relaciones. |
| Editar deal | edit-deal.md | Actualiza los datos de la oportunidad. |
| Cambiar etapa | deal-stage-change.md | Mueve la oportunidad entre etapas. |
| Marcar ganado | deal-won.md | Cierra como ganada y trata estimates. |
| Marcar perdido | deal-lost.md | Registra una perdida con motivo opcional. |
| Gestión de pipelines | pipeline-management.md | Crea, configura, restringe y elimina pipelines. |
| Gestión de etapas | pipeline-stages.md | Administra columnas, orden y traslado al borrar una etapa. |
| Productos y totales | deal-products.md | Vincula productos que determinan el valor comercial. |
| Watchers | deal-watchers.md | Agrega contactos observadores e invitados sugeridos. |
| Historial de etapas | deal-stage-history.md | Registra permanencia y cambios entre etapas. |
| Duplicar deal | duplicate-deal.md | Crea una copia con relaciones opcionales. |
| Acciones masivas | deals-bulk-actions.md | Opera varios deals por selección, vista o filtro. |
| Filtros, búsqueda y vistas | deal-filters-views.md | Filtra, busca, ordena y guarda vistas. |
| Cambio de responsable | deal-owner-change.md | Reasigna deals y conserva su trazabilidad. |
| Motivos de pérdida | lost-reasons.md | Configura los motivos disponibles al perder un deal. |
| Campos personalizados | deal-custom-fields.md | Amplía formularios y columnas de deals. |
| Registros relacionados | deal-related-records.md | Reúne actividad, notas, archivos y conversación. |
| Documentos comerciales y enlaces | deal-sales-documents.md | Vincula estimates, invoices y smart links. |
Relaciones
- Depende de: Contactos, Compañías, Productos, Currencies y Estimates.
- Usado por: Automatizaciones, reportes comerciales y Actividades.
Limitaciones y notas
- Los pipelines restringidos se ocultan de selectores para miembros sin acceso, aunque un deal permitido puede seguir visible.
- El valor manual se bloquea cuando el deal tiene productos asociados.
id: email-builder app: crm nombre: Constructor de emails estado: shipped permiso: can_access_campaigns
Constructor de emails
Permite crear plantillas de email visuales, reutilizables y preparadas para campañas o envíos directos.
Para que sirve
- Un e-commerce crea emails de lanzamiento con productos, imágenes y llamados a la acción para sus campañas.
- Una clínica prepara recordatorios de cita con su identidad visual y datos personalizados del paciente.
- Una agencia guarda encabezados, pies legales y secciones de marca para reutilizarlos entre clientes o campañas.
- Una organización sin fines de lucro redacta un newsletter con IA y luego revisa los cambios antes de aplicarlos.
Que lo hace diferente
- Convierte un editor visual por bloques en email listo para entrega mediante compilación MJML, HTML y texto plano.
- Las plantillas se usan directamente en campañas de Apex y envíos individuales, con datos de Contactos, Deals, Productos y Compañías.
- La IA propone cambios acotados sobre el documento y el usuario puede aplicar o descartar la propuesta.
- Combina bloques de marketing para productos con recursos visuales de la organización y secciones reutilizables.
- Los envíos de prueba pasan por Email Broadcasting y sus remitentes configurados.
Acceso
- Ruta principal:
/[orgId]/campaigns/email-templates - Como se llega:
Sidebar > Campaigns > Email Templates - Permiso requerido:
can_access_campaigns
Alcance tecnico
- Frontend: rutas de plantillas y assets,
EmailBuildery sus paneles. - Backend: servicios
email-builder-*. - Integraciones externas: MJML, S3, OpenRouter y AWS SES.
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Gestionar plantillas | email-template-gallery.md | Crea, filtra, copia y elimina plantillas. |
| Editar documento visual | email-visual-editor.md | Diseña el email y guarda asunto, vista previa y contenido. |
| Agregar bloques | email-content-blocks.md | Inserta bloques de contenido, layout, marketing, marca y avanzados. |
| Usar secciones prediseñadas | email-section-presets.md | Añade estructuras de sección reutilizables. |
| Configurar estilo | email-document-inspector.md | Ajusta propiedades del documento, secciones y bloques. |
| Previsualizar email | email-preview.md | Renderiza el resultado compilado. |
| Crear con IA | email-ai-assistant.md | Propone cambios revisables desde lenguaje natural. |
| Gestionar assets | email-assets-library.md | Sube, selecciona y elimina recursos visuales. |
| Reutilizar bloques | email-reusable-blocks.md | Guarda e inserta bloques o secciones de la organización. |
| Enviar plantilla | email-template-send.md | Envía un email usando variables y remitente verificado. |
Relaciones
- Depende de: Productos, Contactos, Deals, Compañías y Email Broadcasting.
- Usado por: campañas email y Automatizaciones.
Limitaciones y notas
- Las plantillas del sistema se copian al espacio de la organización antes de editarse.
- La previsualización y los envíos compilan el documento antes de entregar el email.
id: formularios app: crm nombre: Formularios estado: shipped permiso: permisos de formularios
Formularios
Permite crear formularios para compartirlos públicamente, recibir respuestas y analizarlas desde el CRM.
Para que sirve
- Una clínica publica un formulario de solicitud para captar datos previos de pacientes y revisar cada respuesta en el CRM.
- Una inmobiliaria crea un formulario de calificación de prospectos con preguntas que cambian según el tipo de propiedad buscada.
- Una agencia inserta un formulario en su sitio y recibe una notificación por cada nueva solicitud comercial.
- Un equipo comercial vincula un formulario a un contacto o conversación existente para incorporar información sin perder el contexto.
- Una empresa activa una automatización al llegar una respuesta para iniciar tareas o comunicaciones posteriores.
- Un negocio exporta las respuestas filtradas para analizarlas fuera de la plataforma.
Que lo hace diferente
- Los formularios públicos, embeds y widgets comparten el mismo constructor y configuración; no se mantiene una versión distinta para cada canal.
- Cada respuesta puede asociarse de forma segura a un contacto o conversación existente mediante el contexto compartido, sin crear contactos automáticamente.
- La creación de una respuesta puede ejecutar automatizaciones activas vinculadas a un formulario específico o a cualquier formulario.
- El constructor incluye IA que propone una estructura editable; el equipo revisa y guarda el resultado antes de publicarlo.
- Las notificaciones por respuesta se envían mediante el correo transaccional de Apex y no bloquean el registro si el correo falla.
Acceso
- Ruta principal:
/[orgId]/forms - Como se llega:
Sidebar > Forms - Permiso requerido: permisos de formularios
Alcance tecnico
- Frontend: rutas
forms/page.tsx,forms/[id]/page.tsx,forms/[id]/responses/page.tsxyf/[formId]/page.tsx; componentesFormsView,FormDetail,FormBuilderyFormAnalytics - Backend:
formsyform-submissions - Superficies publicas:
/f/[formId] - Integraciones externas: correo transaccional mediante SES para notificaciones de respuestas
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Constructor | form-builder.md | Diseña el formulario mediante arrastre, árbol, vista previa y guardado. |
| IA del constructor | form-builder-ai.md | Genera o modifica la estructura del formulario a partir de instrucciones. |
| Tipos de campo | form-field-types.md | Añade campos de entrada, contenido y estructuras de diseño. |
| Validaciones de campo | field-validation.md | Configura obligatoriedad, reglas de formato y límites por campo. |
| Lógica condicional | conditional-logic.md | Muestra u oculta elementos según respuestas anteriores. |
| Ajustes y publicación | form-settings-publishing.md | Configura el comportamiento público y publica o despublica el formulario. |
| Presentación pública | form-display.md | Ajusta tamaño, ancho y la visualización de errores del formulario público. |
| Compartir | form-sharing.md | Obtiene enlace público, iframe y código de inserción. |
| Formulario público | public-form.md | Recoge respuestas sin requerir inicio de sesión. |
| Asociación contextual | submission-association.md | Vincula una respuesta a un contacto o conversación existentes. |
| Notificaciones de respuestas | submission-notifications.md | Envía un correo a destinatarios configurados tras un envío. |
| Automatizaciones por respuesta | automation-trigger.md | Inicia automatizaciones cuando se crea una respuesta. |
| Respuestas y analítica | form-responses.md | Consulta métricas, respuestas individuales y estado de spam. |
| Exportar respuestas | response-export.md | Descarga las respuestas visibles en formato CSV. |
Relaciones
- Depende de: Contactos y Conversaciones para asociaciones contextuales.
- Usado por: Automatizaciones, Nova y CRM.
Limitaciones y notas
- Solo los formularios publicados aceptan envíos públicos.
- Por confirmar: no se encontró una función que cree, actualice o mapee automáticamente contactos o campos personalizados al enviar una respuesta.
- Por confirmar: el formulario conserva contexto de URL y referencia de origen, pero no se encontró una configuración específica para capturar UTM.
- Por confirmar: existe un elemento visual de CAPTCHA, pero no se encontró validación de CAPTCHA en el flujo de envío público.
id: productos app: crm nombre: Productos estado: shipped permiso: permisos granulares de productos
Productos
Administra productos y servicios reutilizables en ventas y conversaciones. Permite preparar su información comercial, media, categorías e indexación para IA.
Para que sirve
- Una tienda de equipos comerciales centraliza productos, precios y material visual para que ventas comparta siempre la oferta vigente.
- Una empresa de servicios recurrentes registra planes y frecuencias de cobro para reutilizarlos en propuestas comerciales.
- Una distribuidora importa su catálogo y clasifica las referencias para reducir la carga manual de alta.
- Un negocio que vende por chat envía fichas y enlaces de productos desde una conversación, sin copiar datos entre herramientas.
- Un equipo de preventa hace que el asistente IA encuentre ofertas habilitadas al responder preguntas de clientes.
Que lo hace diferente
- El mismo catálogo alimenta
Dealsy estimates, de modo que una oferta comercial se reutiliza en ventas y documentos. - Desde el composer del Inbox se pueden enviar productos, categorías o enlaces de catálogo con plantillas específicas por modo de envío.
- Los productos habilitados para IA y sus campos personalizados se indexan para que asistentes IA y automatizaciones localicen la oferta adecuada.
- La media se gestiona en la ficha y se aprovecha al compartir productos cuando el canal admite imágenes.
- Las categorías y los productos pueden alimentar Catálogos públicos sin duplicar el catálogo.
Acceso
- Ruta principal:
/[orgId]/products - Como se llega:
Sidebar > CRM > Products - Permiso requerido: permisos granulares de productos
Alcance tecnico
- Frontend:
ProductsView,ProductDetailsView,ProductMediaUploady categorías. - Backend:
products,products-categories,products-media,product-send-message-templatesyproduct-embeddings. - Superficies publicas: ninguna.
- Integraciones externas: S3 e IA.
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Catálogo | product-catalog.md | Consulta, filtra y abre productos y servicios. |
| Crear producto o servicio | create-product.md | Da de alta una oferta y abre su detalle. |
| Detalle de producto | product-detail.md | Configura precio, estado y facturación. |
| Editar producto | edit-product.md | Actualiza información comercial y organización. |
| Eliminar producto | delete-product.md | Retira una oferta mediante confirmación. |
| Categorías de producto | product-categories.md | Crea, renombra y elimina categorías. |
| Media de producto | product-media.md | Añade imágenes y videos. |
| Importar productos | import-products.md | Carga una hoja, mapea datos y revisa resultados. |
| IA y campos personalizados | product-ai-custom-fields.md | Configura indexación y datos de producto. |
| Búsqueda de productos con IA | product-ai-search.md | Expone ofertas indexables a asistentes y automatizaciones. |
| Plantillas para enviar productos | product-message-templates.md | Define textos reutilizables por modo de envío. |
| Enviar productos desde una conversación | send-products-from-conversation.md | Comparte productos CRM como mensajes del canal. |
Relaciones
- Depende de: Campos personalizados y categorías.
- Usado por: Deals, Estimates y asistentes IA.
Limitaciones y notas
- Catalog Links pertenece al módulo
catalogos-publicos, no a este. - No se confirmó una función separada para exportación o acciones masivas de productos.
- Por confirmar: impuestos, variantes/SKU avanzados y orden manual de categorías.
id: series app: crm nombre: Series estado: shipped permiso: can_access_campaigns
Series
Secuencias de automatizaciones que avanzan a cada contacto de forma independiente según sus propios tiempos y condiciones.
Para que sirve
- Una academia incorpora nuevos alumnos a una secuencia de bienvenida con mensajes y tareas separadas por días.
- Una inmobiliaria nutre prospectos que descargaron una guía y detiene la secuencia cuando agendan una visita.
- Un SaaS programa seguimientos comerciales que respetan la hora y los días permitidos para cada contacto.
- Una agencia revisa qué paso de una secuencia falló antes de volver a contactar a un lead.
Que lo hace diferente
- Cada contacto avanza en su propio calendario; no recibe todos los pasos al mismo tiempo que el resto de la audiencia.
- Cada paso ejecuta una automatización existente, conectando la secuencia con acciones del CRM y canales disponibles.
- Las automatizaciones pueden suscribir o retirar contactos de series según eventos del negocio.
- Pausar una serie congela los tiempos restantes y reanudarla los recupera, sin eliminar suscripciones.
- Incluye registros por paso para rastrear ejecuciones enviadas, fallidas u omitidas.
Acceso
- Ruta principal:
/[orgId]/campaigns/series - Como se llega:
Sidebar > Campaigns > Series - Permiso requerido:
can_access_campaigns
Alcance tecnico
- Frontend: rutas
/[orgId]/campaigns/series/**y componentesSeriesListView,SeriesStepEditorySeriesSubscribersTable. - Backend:
series,series-steps,series-subscriptions,series-subscription-logs,series-statsyprocess-series-step. - Integraciones externas: AWS EventBridge para las esperas programadas.
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Gestionar series | series-management.md | Crea, activa, pausa y elimina secuencias. |
| Configurar pasos | series-step-editor.md | Vincula automatizaciones, demoras y ventanas de envío. |
| Consultar registros de pasos | series-step-logs.md | Audita ejecuciones enviadas, fallidas u omitidas. |
| Suscribir contactos | series-subscriptions.md | Agrega contactos individual o masivamente. |
| Gestionar suscriptores | series-subscriber-management.md | Filtra, ejecuta, completa o retira suscripciones. |
| Pausar y reanudar series | series-pause-resume.md | Congela y recupera las esperas pendientes. |
| Integrar series en automatizaciones | series-automation-nodes.md | Suscribe o retira contactos desde nodos de automatización. |
Relaciones
- Depende de: Automatizaciones y Contactos.
- Usado por: Automatizaciones, Contactos y Conversaciones.
Limitaciones y notas
- Una serie inactiva no admite suscripciones nuevas ni ejecuta pasos.
- Pausar no elimina contactos; eliminar la serie sí cancela suscripciones activas.
id: tickets-legacy app: crm nombre: Tickets legacy estado: shipped permiso: permisos granulares de tickets
Tickets legacy
Customer Service original basado en correo para atender solicitudes vinculadas con contactos. Convive con la app Helpdesk, que tiene su propio módulo y flujos.
Para que sirve
- Una empresa que recibe solicitudes por correo reúne los casos de clientes en una bandeja operativa vinculada a sus contactos.
- Un equipo de soporte clasifica prioridades, responsables y etapas para que las solicitudes no queden sin seguimiento.
- Una mesa de ayuda procesa lotes de casos para asignar, cerrar o marcar tickets sin repetir la acción uno por uno.
- Una organización migra un histórico de solicitudes desde una hoja para conservar la continuidad de atención.
- Un miembro del equipo abre un caso de soporte sobre AchieveApex desde
Support, incluso sin acceso a CRM.
Que lo hace diferente
- Los tickets legacy se vinculan con Contactos, etiquetas, pipelines y campos personalizados del CRM en lugar de vivir como correos aislados.
- El hilo usa el Inbox Channel que originó el ticket y enruta las respuestas por Gmail u Outlook, manteniendo el proveedor del caso.
- Puede asignarse un asistente IA y una regla de seguimiento directamente en las propiedades del ticket.
- El módulo legacy y Helpdesk coexisten pero son productos distintos: Helpdesk tiene sus propios tickets, fuentes y flujos; no se confunden las rutas ni los datos.
- El portal
Supportse destina a casos sobre AchieveApex y permite creación manual o asistida por Nova, separado de la bandeja de correo legacy.
Acceso
- Ruta principal:
/[orgId]/customer-service - Como se llega:
Sidebar > Tickets - Permiso requerido: permisos granulares de tickets
Alcance tecnico
- Frontend:
CustomerServiceView, detalle y componentestickets. - Backend:
support-tickets,support-tickets-batch-actions,support-ticket-email-templates,ticket-messages-*eimport-support-tickets. - Superficies publicas: ninguna.
- Integraciones externas: Gmail y Outlook.
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Bandeja y filtros | ticket-inbox.md | Consulta tickets, vistas y criterios de búsqueda. |
| Crear ticket | create-ticket.md | Crea un ticket para un contacto. |
| Propiedades y seguimiento | ticket-properties.md | Gestiona estado, prioridad, responsables y seguimiento. |
| Responder por email | ticket-email-replies.md | Envía respuestas o notas internas. |
| Mensajes por Gmail y Outlook | ticket-email-channels.md | Integra el hilo con el proveedor conectado. |
| Acciones masivas | ticket-batch-actions.md | Opera varios tickets seleccionados. |
| Tablero Kanban | ticket-kanban.md | Mueve tickets por etapas de pipeline. |
| Importar tickets | import-tickets.md | Carga y mapea tickets desde una hoja. |
| Plantillas de email | ticket-email-templates.md | Registra la capacidad backend de plantillas. |
| Portal de casos de soporte | support-portal.md | Describe la superficie /support y Nova Support. |
Relaciones
- Depende de: Contactos, Inbox Channels, Tags y asistentes IA.
- Usado por: Contactos y Automatizaciones.
Limitaciones y notas
- Es el sistema legacy y no reemplaza el módulo Helpdesk.
- Convive con la app Helpdesk; sus tickets, rutas y flujos no deben asumirse equivalentes.
- No se identificó una interfaz independiente para administrar plantillas de email; estas se utilizan en seguimientos de asistentes de tickets.
- Los tickets creados manualmente no permiten seleccionar un proveedor de correo en el formulario.
id: vector-storage app: crm nombre: Almacenamiento vectorial estado: shipped permiso: can_access_ai_assistant
Almacenamiento vectorial
Pantalla para crear y revisar contenedores vectoriales de la organización. Muestra documentos y el avance de embedding que devuelve el servicio.
Para que sirve
- Una empresa con documentación propia crea contenedores separados para controlar el material vectorizado de cada área.
- Un equipo de operaciones revisa cuántos documentos de un contenedor ya están listos para usarse en búsquedas semánticas.
- Una empresa de servicios crea un contenedor inicial para preparar una base de conocimiento vectorial de la organización.
Que lo hace diferente
- El almacenamiento se administra dentro de la organización de AchieveApex y muestra por contenedor los documentos detectados y el avance de embedding.
- El estado visible distingue entre material pendiente y material completamente vectorizado, en vez de ocultar el procesamiento tras una carga de archivos.
- La pantalla actual es una superficie de administración: el código revisado no confirma todavía qué módulos consumen esos contenedores, cómo ingresan los documentos ni el proveedor de embeddings.
Acceso
- Ruta principal:
/[orgId]/ai-vector-storage - Como se llega: URL directa
/[orgId]/ai-vector-storage - Permiso requerido:
can_access_ai_assistant
Alcance tecnico
- Frontend:
ai-vector-storage/page.tsxyVectorStorageView.tsx. - Backend:
vector-storagesse invoca desde frontend, pero no hay implementación de ese servicio en este repositorio;product-embeddingsyproducts-embeddings-adminson servicios internos. - Superficies publicas: ninguna.
- Integraciones externas: ninguna identificada en esta pantalla.
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Listado de almacenamientos vectoriales | storage-list.md | Muestra almacenamientos, documentos y progreso de embeddings. |
| Crear almacenamiento vectorial | create-storage.md | Crea un almacenamiento con nombre obligatorio y descripción opcional. |
| Progreso de vectorización | storage-progress.md | Compara documentos totales y documentos con embedding. |
Relaciones
- Depende de: el servicio
vector-storages. - Usado por: la propia pantalla de almacenamiento vectorial.
Limitaciones y notas
Por confirmar: la fuente de documentos, el proveedor de embeddings y los permisos reales de vector-storages; no están implementados en el backend revisado.
id: voice-sms app: crm nombre: Calling y SMS estado: shipped permiso: can_access_crm
Calling y SMS
Administra telefonía Telnyx, SMS, números, agentes, llamadas y cumplimiento A2P por organización.
Para que sirve
- Un concesionario compra un número local y distribuye las llamadas de ventas entre sus asesores disponibles.
- Una clínica define saludo, cola y grabación para que pacientes esperen una respuesta o dejen información útil al equipo.
- Una inmobiliaria enruta llamadas a un asistente de voz y usa agentes humanos como respaldo.
- Un negocio estadounidense registra su campaña 10DLC para enviar SMS A2P desde sus números locales.
- Un despacho legal consulta grabaciones y transcripciones para revisar la atención telefónica y los cargos asociados.
Que lo hace diferente
- Configura llamadas, SMS, números, agentes, cumplimiento y costos en la misma organización que usa el CRM y el inbox.
- Puede enrutar llamadas hacia agentes humanos, asistentes de voz o un esquema humano con respaldo de IA.
- El historial de llamadas incorpora grabaciones, transcripciones y diagnóstico, y se relaciona con Conversaciones para conservar contexto.
- Gestiona el ciclo 10DLC, incluida una página pública de consentimiento, junto con el bloqueo de envíos SMS del contacto.
- Une la compra de números y los servicios recurrentes con Stripe, mientras el uso y algunas tarifas se muestran dentro de Apex.
Acceso
- Ruta principal:
/[orgId]/settings/voice-channel - Como se llega:
Avatar menu > Settings > Calling & SMS - Permiso requerido:
can_access_crm; los enlaces Telnyx y costos son de superadmin.
Alcance tecnico
- Frontend: rutas
settings/voice-channely componentes de configuración de voz - Backend:
voice-channels,voice-agents,voice-phone-numbers,voice-calls,telnyx-webhooks - Superficies publicas: página de consentimiento SMS por organización
- Integraciones externas: Telnyx y Stripe
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Activar Calling y SMS | voice-channel-activation.md | Provisiona el canal Telnyx. |
| Números telefónicos | phone-numbers.md | Comprar y administrar números. |
| Agentes de voz | voice-agents.md | Disponibilidad, peso y SIP. |
| Enrutamiento de llamadas | call-routing.md | Personas e IA. |
| Configuración SMS | sms-settings.md | Perfil, destinos y sincronización. |
| Cumplimiento 10DLC | 10dlc-compliance.md | Registro SMS A2P estadounidense. |
| Historial de llamadas | call-history.md | Filtros, grabación y depuración. |
| Experiencia de llamada | call-experience.md | Destinos, grabación, saludo y cola. |
| Precios | pricing.md | Tarifas por país. |
Relaciones
- Depende de: Stripe, Telnyx, Organización y asistentes de IA.
- Usado por: Conversaciones, Automatizaciones y Plataforma/Softphone.
Limitaciones y notas
- Plataforma/Softphone es la superficie de llamadas dentro de la app; aquí se configura la infraestructura y agentes.
APP: events
Events
Eventos, invitados, check-in e insights.
- Etapa: Produccion
- Landing:
/{orgId}/events
Modulos
| Modulo | Slug | Estado | Proposito |
|---|---|---|---|
| Events | gestion |
shipped | Crear y gestionar eventos. |
| Guests | guests |
shipped | Roster de registros. |
| Check-in | check-in |
shipped | Escaner QR de asistencia. |
| People | people |
shipped | Directorio de asistentes. |
| Insights | insights |
shipped | Analitica de eventos. |
| Eventos publicos | eventos-publicos |
public | Paginas de registro y tickets. |
Funcionalidades internas
40 funcionalidades documentadas en 6 modulos. Ver la tabla de cada modulo.
id: check-in app: events nombre: Check-in estado: shipped permiso: can_access_events
Check-in
Convierte el ticket del asistente en una asistencia registrada durante el evento.
Para que sirve
- Un organizador de conferencias valida entradas QR y conoce la asistencia real mientras se realiza el evento.
- Una universidad registra la llegada de participantes a una feria o seminario sin listas en papel.
- Un gimnasio controla la entrada a una clase especial con una lista de asistentes aprobados.
Que lo hace diferente
- El check-in actualiza el mismo registro ligado al contacto del CRM.
- La entrada confirmada puede disparar automatizaciones para seguimiento o entrega de materiales.
- Los conteos se reflejan en la analítica del evento sin exportar ni reconciliar listas.
Acceso
- Ruta principal:
/[orgId]/events/check-in - Como se llega:
Events > Check-in - Permiso requerido:
can_access_events.
Alcance tecnico
- Frontend:
EventCheckInView.tsx. - Backend:
event-registrationsy la automatización de check-in. - Integraciones externas: cámara del navegador mediante
BarcodeDetector.
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Escanear ticket QR | scan-qr.md | Lee el ticket con la cámara. |
| Registrar manualmente | manual-check-in.md | Busca una persona o ingresa su código. |
| Seguir asistencia en vivo | live-attendance.md | Muestra progreso y entradas recientes. |
Relaciones
- Depende de: Guests y Tickets.
- Dispara / afecta: Insights y automatizaciones de asistencia.
Limitaciones y notas
- Solo los invitados
approvedpueden hacer check-in; un ticket ya registrado se informa sin duplicarlo.
id: eventos-publicos app: events nombre: Eventos públicos estado: public permiso: ninguno
Eventos públicos
Expone la agenda y el registro de eventos sin iniciar sesión, incluida la gestión del ticket del asistente.
Para que sirve
- Un organizador de conferencias publica una agenda y permite registro con ticket desde su enlace.
- Una iglesia comparte actividades abiertas, recibe inscripciones y entrega un ticket QR por email.
- Una universidad publica jornadas y eventos de admisión con información, ubicación y cupos.
Que lo hace diferente
- Un registro público crea o relaciona un contacto dentro del CRM de Apex.
- La página usa los tickets, cupones, pagos y reglas de capacidad definidos por la organización.
- Las visitas y registros alimentan Insights; el asistente recibe comunicaciones y ticket desde el mismo producto.
- Los registros públicos pueden disparar automatizaciones de Apex.
Acceso
- Ruta principal:
/events/[orgId] - Como se llega: enlace público de la organización o del evento.
- Permiso requerido: ninguno.
Alcance tecnico
- Frontend: rutas
/events/[orgId],/events/[orgId]/[slug], ticket y feedback; componentespublic/PublicOrganizationEventsView.tsx. - Backend:
public-event-registration,public-event-ticket,event-page-views. - Integraciones externas: gateways de pago, email con ticket/ICS y Google Maps embebido.
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Consultar agenda pública | public-event-calendar.md | Muestra los eventos publicados de la organización. |
| Consultar página de evento | public-event-page.md | Presenta detalles, anfitriones, ubicación y registro. |
| Registrarse | public-registration.md | Crea un registro desde el formulario público. |
| Seleccionar ticket y cupón | ticket-selection.md | Calcula disponibilidad, precio y descuentos. |
| Pagar y recibir ticket | public-payment-ticket.md | Continúa el pago y entrega ticket QR. |
| Gestionar ticket | attendee-ticket.md | Consulta estado, cancela o paga una inscripción. |
| Enviar feedback | public-feedback.md | Envía una valoración posterior al evento. |
Relaciones
- Depende de: Gestión de eventos, Tickets, Coupons, Guests y Payment gateways.
- Dispara / afecta: emails, métricas de Insights y automatizaciones de registros.
Limitaciones y notas
- El enlace de ticket se basa en un código de check-in; debe tratarse como un enlace privado.
id: gestion app: events nombre: Gestión de eventos estado: shipped permiso: can_access_events
Gestión de eventos
Permite crear, configurar y operar eventos de una organización, desde el borrador hasta su publicación y comunicaciones.
Para que sirve
- Un organizador de conferencias crea, publica y comunica eventos con entradas, anfitriones y página propia.
- Una universidad habilita registros con aprobación y capacidad para charlas, ferias y actividades de admisión.
- Una iglesia coordina encuentros presenciales o virtuales, envía invitaciones y mantiene informados a sus asistentes.
- Un equipo de formación vende cupos, aplica cupones y centraliza la operación del evento.
Que lo hace diferente
- Los asistentes se vinculan con contactos del CRM en vez de quedar aislados en una lista de tickets.
- El registro, sus cambios de estado y el check-in pueden disparar automatizaciones de Apex.
- Puede cobrar tickets mediante los gateways de pago configurados por la organización.
- Las comunicaciones del evento se envían por email o WhatsApp desde la misma organización.
- Puede sincronizarse con Google Calendar y generar enlaces de Google Meet cuando existe una integración activa.
Acceso
- Ruta principal:
/[orgId]/events - Como se llega:
Header app switcher > Events - Permiso requerido:
can_access_events; las acciones quedan sujetas a permisos granulares de Events.
Alcance tecnico
- Frontend: rutas de lista, creación y
/[orgId]/events/[eventId];EventManageView.tsx,EventCoreFields.tsx,EventTicketTypesSection.tsx,EventCouponsSection.tsx,EventHostsCard.tsx,EventBlastsSection.tsxyEventDetailView.tsx. - Backend:
events,event-ticket-types,event-coupons,event-hosts,event-blastsyorganization-events-settings. - Superficies publicas: el evento publicado se expone bajo
/events/[orgId]/[slug]. - Integraciones externas: Google Calendar/Meet, S3, gateways de pago, email y WhatsApp.
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Crear evento | create-event.md | Crea un borrador con los datos esenciales. |
| Editar detalles | edit-event.md | Actualiza calendario, modalidad, ubicación y portada. |
| Google Meet | google-meet.md | Genera un enlace desde una integración activa. |
| Gestionar anfitriones | manage-hosts.md | Añade miembros y controla su visibilidad pública. |
| Configurar registro | registration-settings.md | Define apertura, aprobación, capacidad y visibilidad. |
| Diseñar formulario | registration-form.md | Configura campos de contacto y preguntas propias. |
| Gestionar tickets | ticket-types.md | Crea entradas gratuitas o de pago. |
| Gestionar cupones | coupons.md | Descuentos para entradas de pago. |
| Configurar pagos | event-payments.md | Prepara gateway y cobros de entradas. |
| Personalizar página | event-page.md | Configura slug, contenido e imágenes públicas. |
| Diseñar página pública | page-design.md | Elige tema y colores. |
| Personalizar idioma | page-language.md | Usa textos en inglés, español o personalizados. |
| Enviar comunicaciones | guest-blasts.md | Envía o programa email y WhatsApp. |
| Publicar evento | publish-event.md | Alterna entre borrador y publicado. |
| Duplicar, cancelar o eliminar | event-lifecycle.md | Opera acciones administrativas del evento. |
| Configuración de organización | organization-settings.md | Define la agenda pública y valores predeterminados. |
Relaciones
- Depende de: Currencies, Payment gateways, Document settings, Contacts y Calendar sync.
- Usado por: Guests, Check-in, People, Insights, Automatizaciones y Eventos públicos.
Limitaciones y notas
- La capacidad efectiva considera el límite del evento y el de cada ticket.
- Un anfitrión creador no se puede eliminar.
- La sincronización con Google Calendar puede informar un error sin impedir que se guarde el evento.
id: guests app: events nombre: Invitados estado: shipped permiso: can_access_events
Invitados
Gestiona el roster de asistentes de toda la organización o de un evento concreto.
Para que sirve
- Un organizador de conferencias controla invitaciones, aprobaciones y asistencia de cientos de ponentes y participantes.
- Una universidad registra asistentes de jornadas académicas y los relaciona con prospectos del CRM.
- Una iglesia invita miembros a retiros y conserva una lista operativa para el día del evento.
Que lo hace diferente
- Cada asistente se asocia o crea como contacto CRM, por lo que el historial no queda separado del resto de la relación.
- Los cambios de registro y el check-in pueden activar automatizaciones.
- Las invitaciones y notificaciones pueden salir por email o WhatsApp desde Apex.
- El estado de pago, ticket y feedback se consulta junto con el registro.
Acceso
- Ruta principal:
/[orgId]/events/guests - Como se llega:
Events > GuestsoManage event > Guests - Permiso requerido:
can_access_events.
Alcance tecnico
- Frontend:
EventGuestsTable.tsxyEventInviteGuestsDialog.tsx. - Backend:
event-registrations,event-feedback. - Integraciones externas: email y WhatsApp para invitaciones y notificaciones.
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Consultar roster | guest-roster.md | Busca, filtra y navega asistentes. |
| Cambiar estado | guest-status.md | Aprueba, rechaza, mueve a espera o cancela. |
| Añadir invitado | add-guest.md | Registra manualmente una persona. |
| Invitar asistentes | invite-guests.md | Crea invitaciones y las notifica. |
| Exportar roster | export-guests.md | Descarga el listado visible como CSV. |
| Gestionar asistencia | guest-check-in.md | Marca o revierte el check-in desde la tabla. |
| Acceder al contacto | guest-crm-contact.md | Abre el contacto CRM vinculado. |
| Consultar feedback | guest-feedback.md | Recoge valoraciones posteriores al evento. |
Relaciones
- Depende de: Gestión de eventos, Contacts y Tickets.
- Usado por: Check-in, People, Insights y Eventos públicos.
Limitaciones y notas
- La exportación contiene únicamente los resultados de la página y filtro actuales.
id: insights app: events nombre: Analítica de eventos estado: shipped permiso: can_access_events
Analítica de eventos
Resume la conversión, asistencia, ingresos y feedback de la organización o de un evento.
Para que sirve
- Un organizador de conferencias mide cuántas visitas terminan en registros y asistencia real.
- Un equipo de formación compara ingresos y desempeño de sus sesiones pagas.
- Una universidad identifica qué fuentes llevan más participantes a actividades institucionales.
Que lo hace diferente
- Une vistas de páginas, registros, pagos, asistencia y feedback del mismo flujo de eventos.
- Usa el check-in y los estados operativos de Apex para medir asistencia real.
- Las fuentes, tickets y valoraciones se analizan sin mover datos a otra herramienta.
Acceso
- Ruta principal:
/[orgId]/events/insights - Como se llega:
Events > InsightsoManage event > Insights - Permiso requerido:
can_access_events.
Alcance tecnico
- Frontend:
EventsInsightsView.tsxyEventInsightsPanel. - Backend:
event-insightsyevent-page-views.
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Consultar métricas | event-kpis.md | Ve vistas, registros, aprobación, asistencia e ingresos. |
| Analizar embudo y tendencia | conversion-trends.md | Compara las etapas y su evolución temporal. |
| Desglosar rendimiento | event-performance.md | Consulta eventos, fuentes, tickets y feedback. |
Relaciones
- Depende de: Eventos públicos, Guests, Check-in, Tickets y Feedback.
- Usado por: equipos de operación y marketing.
Limitaciones y notas
- Los periodos predefinidos disponibles son últimos 7, 30 y 90 días.
id: people app: events nombre: Personas estado: shipped permiso: can_access_events
Personas
Ofrece un directorio consolidado de asistentes entre eventos y su relación con el CRM.
Para que sirve
- Un organizador identifica asistentes recurrentes entre conferencias y los abre como contactos del CRM.
- Una universidad segmenta personas que han asistido a distintos eventos para seguimiento académico.
- Una comunidad profesional reconoce quién participa con mayor frecuencia en sus encuentros.
Que lo hace diferente
- Consolida la participación entre eventos sobre contactos CRM, no sobre listas independientes.
- Permite pasar de la actividad de eventos al perfil comercial o relacional de la persona.
- Conserva métricas de asistencia y gasto por persona dentro del contexto de la organización.
Acceso
- Ruta principal:
/[orgId]/events/people - Como se llega:
Events > People - Permiso requerido:
can_access_events.
Alcance tecnico
- Frontend:
EventsPeopleView.tsx. - Backend:
event-peopleyevents. - Integraciones externas: Contacts del CRM.
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Consultar directorio | people-directory.md | Consolida personas por contacto o email. |
| Filtrar y ordenar | filter-event-people.md | Acota por evento, búsqueda y métricas. |
| Abrir relación CRM | open-crm-contact.md | Navega al contacto asociado cuando existe. |
Relaciones
- Depende de: Guests, Events y Contacts.
- Usado por: gestión comercial y seguimiento de asistentes.
Limitaciones y notas
- Los importes mostrados se agrupan por moneda disponible; no se convierten entre monedas.
APP: finance
Finance
Cuentas por cobrar (AR) y cuentas por pagar (AP).
- Etapa: Beta
- Landing:
/{orgId}/finance/estimates
Modulos
| Modulo | Slug | Estado | Proposito |
|---|---|---|---|
| Estimates | estimates |
shipped | Cotizaciones, conversion a invoice y preview publico. |
| Orders | orders |
beta | Pedidos del catalogo, la IA o manuales con pago, entrega y checkouts abandonados. |
| Invoices | invoices |
shipped | Facturacion AR y historial de cambios. |
| Payments received | payments-received |
shipped | Pagos de clientes y asignacion a facturas. |
| Payment Links | payment-links |
shipped | Checkout publico Stripe / Wompi. |
| Recurring Invoices | recurring-invoices |
beta | Perfiles de facturacion recurrente. |
| Vendors | vendors |
beta | Maestro de proveedores AP. |
| Expenses | expenses |
beta | Gastos directos ya pagados. |
| Recurring Expenses | recurring-expenses |
beta | Gastos periodicos. |
| Bills | bills |
beta | Cuentas por pagar a vendors. |
| Recurring Bills | recurring-bills |
beta | Cuentas por pagar periodicas. |
| Payments Made | payments-made |
beta | Pagos a vendors y allocations. |
| Document templates | document-templates |
shipped | PDF, numbering, messages y page templates. |
| Taxes y currencies | taxes-currencies |
shipped | Impuestos, monedas y FX. |
| Payment gateways | payment-gateways |
shipped | Credenciales Stripe / Wompi. |
Funcionalidades internas
117 funcionalidades documentadas en 15 modulos. Ver la tabla de cada modulo.
id: bills app: finance nombre: Bills estado: beta permiso: can_access_bills
Bills
Registra facturas de proveedores que crean una cuenta por pagar y se cancelan mediante Payments Made.
Para que sirve
- Una distribuidora registra facturas de inventario para conocer lo que debe pagar a cada proveedor.
- Una clínica prioriza facturas vencidas y próximas a vencer desde el resumen de cuentas por pagar.
- Una agencia aplica pagos parciales a una factura de producción y sigue el saldo que queda pendiente.
- Un coworking convierte la factura mensual de internet en una recurrencia para crear los próximos bills.
Que lo hace diferente
- Conecta proveedores, cuentas por pagar y Payments Made dentro de la misma plataforma donde viven el CRM y las operaciones.
- Los pagos asignados actualizan automáticamente saldo y estado de cada bill, incluidos pagos parciales y completos.
- Comparte monedas, impuestos, partidas, reglas de numeración y plantillas documentales con los documentos de venta de Finance.
- El resumen operativo identifica total pendiente, vencimientos del día, próximos 30 días y documentos atrasados.
- No es contabilidad de partida doble; tampoco incluye órdenes de compra, créditos de proveedor ni adjuntos de facturas.
Acceso
- Ruta principal:
/[orgId]/finance/bills - Como se llega:
Header app switcher > Alpha & Beta > Finance > Purchases > Bills - Permiso requerido:
can_access_billsy permisos del módulo para ver, crear, editar o eliminar.
Alcance tecnico
- Frontend: rutas de lista, creación, detalle y edición;
BillsView,BillEditForm,BillDetailyBillItemsTable. - Backend:
bills,bill-itemsy las asignacionesbill-payments. - Superficies publicas: ninguna.
- Integraciones externas: ninguna.
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Consultar cuentas por pagar | bill-list.md | Lista bills y resumen de vencimientos. |
| Crear y editar bills | bill-form.md | Registra la factura y sus condiciones. |
| Gestionar partidas | bill-items.md | Configura conceptos, descuentos e impuestos. |
| Abrir, pagar parcialmente, anular o eliminar | bill-lifecycle.md | Controla el ciclo del bill. |
| Registrar un pago | record-bill-payment.md | Inicia Payments Made con el bill seleccionado. |
| Numerar documentos | bill-numbering.md | Finaliza el número cuando se abre. |
| Convertir en bill recurrente | make-recurring-bill.md | Crea un perfil periódico desde el bill. |
Relaciones
- Depende de: Vendors, Currencies, Payments Made y Document Templates.
- Usado por: Recurring Bills genera bills y Payments Made actualiza su saldo.
- La configuración de numeración AP vive en
settings/document-settings; no se documenta aquí.
Limitaciones y notas
- Un bill requiere proveedor, fecha de documento y fecha de vencimiento.
- Solo puede anularse si no tiene monto pagado.
id: document-templates app: finance nombre: Plantillas de documentos estado: shipped permiso: can_manage_document_templates
Plantillas de documentos
Configura el diseño que usan estimates, invoices, expenses, bills y recibos al previsualizar o exportar PDF.
Para que sirve
- Una consultora estandariza cotizaciones, facturas y recibos con su identidad visual y condiciones comerciales.
- Una inmobiliaria agrega una página de términos en Markdown a sus propuestas sin editar cada documento desde cero.
- Una empresa de obra entrega un calendario de pagos calculado en una tabla inteligente dentro de una cotización o factura.
- Un negocio multi-moneda presenta importes y variables documentales con el formato de la moneda elegida.
Que lo hace diferente
- Una misma plantilla se usa para previsualización, PDF y documentos públicos, reduciendo diferencias entre canales de entrega.
- El constructor ofrece diseño visual y un flujo asistido por IA/HTML, además de plantillas por tipo documental.
- Las páginas adicionales son una biblioteca reutilizable de Markdown y tablas inteligentes con fórmulas, no simples adjuntos.
- Las cotizaciones y facturas incorporan campos personalizados del CRM en el diseño y en el PDF.
- La numeración, mensajes predefinidos, condiciones y datos bancarios se conectan con el mismo flujo de documentos financieros.
Acceso
- Ruta principal:
/[orgId]/settings/document-templates - Como se llega:
Avatar menu > Settings > Billing & Finance > Document Templates - Permiso requerido:
can_manage_document_templates
Alcance tecnico
- Frontend: rutas de Settings; bibliotecas y
document-template-builder - Backend:
document-templates,document-setting,document-predefined-messages,document-page-templates,document-template-preview,pdf-generator - Superficies publicas: ninguna
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Añadir página Markdown | additional-pages-markdown.md | Crea páginas adicionales con texto y variables. |
| Añadir tabla inteligente | additional-pages-smart-table.md | Crea páginas de hoja con fórmulas y calendario. |
| Crear plantilla de documento | create-document-template.md | Añade una plantilla por tipo documental. |
| Gestionar vencimiento de documentos | document-expiry.md | Cron de expiración. |
| Gestionar mensajes predefinidos | document-messages.md | Notas, términos y datos bancarios. |
| Configurar numeración de documentos | document-numbering.md | Prefijos y secuencias. |
| Gestionar plantillas de páginas adicionales | document-page-templates.md | Biblioteca Markdown u hoja. |
| Generar PDF de documento | document-pdf-generation.md | Generación servidor con URL firmada. |
| Usar constructor de plantillas | document-template-builder.md | Diseño visual o AI/HTML. |
| Definir plantillas predeterminadas | document-template-defaults.md | Selección inicial por tipo. |
| Previsualizar documento | document-template-preview.md | Render de diseño y datos. |
| Editar plantilla de documento | edit-document-template.md | Renombra, clona o elimina una plantilla. |
Relaciones
- Depende de: Estimates, Invoices, Payments received y Currencies.
- Usado por: módulos y documentos del flujo financiero.
Limitaciones y notas
- Los permisos granulares pueden restringir acciones según el rol de la organización.
id: estimates app: finance nombre: Cotizaciones estado: shipped permiso: can_access_estimates
Cotizaciones
Las cotizaciones reúnen el cliente, artículos, condiciones y una posible solicitud de cobro antes de emitir una factura. El mismo flujo se abre desde CRM y desde Finance.
Para que sirve
- Una agencia de marketing prepara una propuesta con servicios, impuestos y condiciones para convertir una oportunidad del CRM en un documento comercial compartible.
- Una clínica envía una cotización con un anticipo para que el paciente pueda pagar antes de confirmar el tratamiento.
- Una inmobiliaria registra la aceptación o rechazo de una propuesta y conserva el contexto del contacto, empresa y deal.
- Un negocio de servicios convierte una cotización aceptada en una factura sin reconstruir artículos ni datos comerciales.
Que lo hace diferente
- La cotización nace conectada al contacto, compañía y deal del CRM, en lugar de quedar como un documento aislado.
- Se puede compartir por correo y desde el contexto de la conversación, con una vista pública donde el cliente decide.
- El asistente IA dispone de una herramienta interna para crear cotizaciones cuando tiene los datos comerciales necesarios.
- Registra aperturas, tiempo visible y descargas de la vista pública, excluyendo las consultas internas del equipo.
- Puede incluir páginas Markdown o tablas inteligentes y usar plantillas que también determinan la previsualización y el PDF.
- El importe a cobrar puede sincronizar un Payment Link de Stripe o Wompi sin convertir la cotización en una factura.
Acceso
- Ruta principal:
/[orgId]/estimatesy/[orgId]/finance/estimates - Como se llega: sidebar CRM >
Estimateso selector de aplicación >Finance>Sales>Estimates - Permiso requerido:
can_access_estimates
Alcance tecnico
- Frontend: rutas CRM/Finance de listado, creación, detalle y edición;
EstimatesView,EstimateDetail,EstimateEditFormyDocumentPreview - Backend:
estimates,estimate-items,estimate-duplicate,estimate-convert-to-invoice,estimates-change-historyysales-document-engagement-events - Superficies publicas:
/e/[path] - Integraciones externas: PDF, correo, S3, Stripe y Wompi mediante Payment Links
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Crear cotización | create-estimate.md | Captura cliente, moneda, numeración, fechas y artículos. |
| Editar cotización | edit-estimate.md | Modifica el documento y sus adjuntos. |
| Gestionar artículos | estimate-line-items.md | Añade productos, precios, impuestos y recurrencia. |
| Calcular importes | estimate-totals.md | Compone subtotal, descuento, impuestos y ajustes. |
| Configurar cobro esperado | expected-collection.md | Sincroniza un enlace de pago desde el importe a cobrar. |
| Cambiar estado | estimate-status.md | Controla la entrega, aceptación, rechazo y anulación. |
| Convertir en factura | convert-to-invoice.md | Genera una factura borrador con los artículos de la cotización. |
| Duplicar cotización | duplicate-estimate.md | Crea una copia con nueva numeración. |
| Enviar por correo | send-estimate-email.md | Envía el documento y su enlace público a destinatarios elegidos. |
| Compartir cotización pública | public-estimate.md | Expone la vista para cliente en /e/[path]. |
| Aceptar o rechazar públicamente | public-estimate-decision.md | Registra la decisión del cliente desde la vista pública. |
| Descargar PDF | estimate-pdf.md | Genera el PDF usando la plantilla seleccionada. |
| Consultar actividad del cliente | estimate-engagement.md | Muestra aperturas y descargas de la vista pública. |
| Añadir páginas adicionales | estimate-additional-pages.md | Agrega Markdown o tablas inteligentes al documento. |
| Usar campos personalizados | estimate-custom-fields.md | Completa campos compartidos de Sales document. |
Relaciones
- Depende de: Contactos, Compañías, Deals, Productos, Currencies y Document Templates.
- Usado por: Invoices, Payment Links, Payments received y Automatizaciones.
Limitaciones y notas
- Una cotización convertida se bloquea en
Invoiced; no se puede cambiar nuevamente su estado. Amount to collectcrea o actualiza un Payment Link abierto; no registra por sí solo un pago.
id: expenses app: finance nombre: Expenses estado: beta permiso: can_access_expenses
Expenses
Registra gastos directos ya pagados, sin crear saldo pendiente ni un pago separado.
Para que sirve
- Un restaurante registra compras ya pagadas de suministros sin crear una deuda pendiente.
- Una agencia documenta el alquiler ya abonado de un equipo, con sus conceptos, descuentos e impuestos.
- Una clínica deja un gasto en
Draftpara revisión y lo activa cuando su equipo confirma el importe. - Un negocio con suscripciones convierte un gasto frecuente en un perfil para generarlo periódicamente.
Que lo hace diferente
- Distingue expresamente gasto directo de cuenta por pagar: Expenses no crea saldo ni exige el flujo de Payments Made.
- Comparte monedas, impuestos, partidas, reglas de numeración y plantillas documentales con los documentos de venta de Finance.
- Puede partir de un proveedor de Purchases sin obligarlo, útil para desembolsos que no corresponden a un suplidor registrado.
- Un gasto puede convertirse en Recurring Expenses reutilizando su información y partidas.
- No incluye adjuntos de recibos ni es un sistema de contabilidad de partida doble.
Acceso
- Ruta principal:
/[orgId]/finance/expenses - Como se llega:
Header app switcher > Alpha & Beta > Finance > Purchases > Expenses - Permiso requerido:
can_access_expensesy permisos de ver, crear, editar o eliminar gastos.
Alcance tecnico
- Frontend: rutas de lista, creación, detalle y edición;
ExpensesView,ExpenseEditForm,ExpenseDetailyExpenseItemsTable. - Backend: servicios Feathers
expensesyexpense-items. - Superficies publicas: ninguna.
- Integraciones externas: ninguna.
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Consultar gastos | expense-list.md | Lista, busca, filtra y ordena gastos. |
| Crear y editar gastos | expense-form.md | Registra cabecera, totales, notas y moneda. |
| Gestionar partidas | expense-items.md | Define conceptos, descuentos e impuestos. |
| Activar o anular gastos | expense-lifecycle.md | Gestiona el ciclo Draft, Active y Void. |
| Numerar documentos | expense-numbering.md | Finaliza el número al activar el gasto. |
| Convertir en gasto recurrente | make-recurring-expense.md | Crea un perfil periódico desde un gasto. |
Relaciones
- Depende de: Vendors (opcional), Currencies y plantillas de documento.
- Usado por: Recurring Expenses puede originarse desde un gasto.
- La configuración de numeración AP vive en
settings/document-settings; no se documenta en este módulo.
Limitaciones y notas
- Un expense no se paga desde
Payments Made; ese flujo corresponde exclusivamente a bills. - No hay adjuntos de recibos implementados.
id: invoices app: finance nombre: Facturas estado: shipped permiso: can_access_invoices
Facturas
Las facturas documentan un cobro a un cliente, conservan el saldo pendiente y reciben asignaciones de pagos. El listado y el detalle son los mismos desde CRM y Finance.
Para que sirve
- Una consultora emite una factura desde el cliente o deal que ya gestionó en el CRM y controla qué importe queda por cobrar.
- Una empresa de mantenimiento convierte una propuesta aceptada en factura conservando sus artículos y condiciones.
- Una academia registra pagos parciales de una matrícula y deja el saldo pendiente visible para el equipo de cobros.
- Un proveedor B2B comparte una factura pública por correo y verifica si el cliente la abrió o descargó.
- Un negocio por suscripción crea un perfil recurrente para generar sus cobros periódicos como facturas normales.
Que lo hace diferente
- Reutiliza el mismo contacto, compañía, deal y productos del CRM, y puede originarse directamente desde una cotización.
- Las asignaciones de pagos mantienen sincronizados el importe pagado, saldo y estado de cada factura.
- La vista pública registra actividad real del cliente —aperturas, tiempo visible y descargas— sin contar las revisiones internas.
- El documento se puede entregar por correo, PDF o enlace público y combinar con Payment Links para cobrar con Stripe o Wompi.
- Las páginas adicionales, los campos personalizados y el diseño de plantilla se usan tanto en la vista como en el PDF.
- Puede convertirse en una fuente de facturación recurrente desde
Make recurringen Finance.
Acceso
- Ruta principal:
/[orgId]/invoicesy/[orgId]/finance/invoices - Como se llega: sidebar CRM >
Invoiceso selector de aplicación >Finance>Sales>Invoices - Permiso requerido:
can_access_invoices
Alcance tecnico
- Frontend: rutas CRM y Finance;
InvoicesView,InvoiceDetail,InvoiceEditForm,DocumentPreview - Backend:
invoices,invoice-items,invoice-payments,invoices-change-history,public-quote-* - Superficies publicas:
/i/[path]
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Crear factura | create-invoice.md | Crea un borrador con cliente, moneda, fechas y artículos. |
| Editar factura | edit-invoice.md | Actualiza el documento, sus artículos y adjuntos. |
| Añadir páginas adicionales | invoice-additional-pages.md | Incluye Markdown o tablas inteligentes en la vista y PDF. |
| Consultar historial de cambios | invoice-change-history.md | Consulta las versiones registradas de la factura. |
| Usar campos personalizados | invoice-custom-fields.md | Completa campos de Sales document compartidos con cotizaciones. |
| Consultar actividad del cliente | invoice-engagement.md | Resume uso de /i/[path], PDF y archivos. |
| Gestionar artículos de factura | invoice-line-items.md | Define productos, cantidades, precios, impuestos y recurrencia. |
| Consultar pagos relacionados | invoice-payment-history.md | Despliega las asignaciones invoice-payments. |
| Descargar factura PDF | invoice-pdf.md | Genera un PDF con la plantilla del documento. |
| Emitir y cambiar estado de factura | invoice-status.md | Pasa de borrador a programada o enviada y permite anular. |
| Calcular importes de factura | invoice-totals.md | Calcula total y saldo a partir de artículos y pagos. |
| Crear perfil recurrente desde factura | make-recurring.md | Crea o vincula un perfil recurrente en Finance. |
| Compartir factura pública | public-invoice.md | Publica el documento en /i/[path]. |
| Registrar pago desde factura | register-payment.md | Aplica pagos activos sin asignar a la factura. |
| Enviar factura por correo | send-invoice-email.md | Envía por correo el documento con enlace público. |
Relaciones
- Depende de: Contacts, Companies, Deals, Products, Currencies, Payments received, Recurring Invoices y Document Templates.
- Usado por: Payments received, Payment Links, Recurring Invoices y Automatizaciones.
Limitaciones y notas
- Las facturas en
draftconservan saldo cero hasta pasar ascheduledosent. - Solo Finance muestra
Make recurring; CRM conserva la factura normal.
id: orders app: finance nombre: Pedidos estado: beta permiso: can_access_orders
Pedidos
Registro de ventas con artículos, pago y entrega en un mismo lugar, inspirado en Shopify. Un pedido puede nacer del checkout del catálogo público, del asistente de IA, de una creación manual, de la conversión de una cotización o factura, o de la API.
Para que sirve
- Una tienda de ropa recibe pedidos pagados desde su catálogo público y los prepara por envío o recogida en tienda.
- Un distribuidor convierte una cotización aceptada en pedido y luego factura cuando despacha.
- Un restaurante con WhatsApp deja que el asistente de IA tome el pedido, envíe el link de pago y marque la entrega.
- Un negocio B2B registra pedidos manuales con referencia de orden de compra y cobra el saldo con un enlace de pago.
- Un ecommerce recupera carritos abandonados con un mensaje automático que lleva el link de recuperación.
Que lo hace diferente
- Tres estados independientes por pedido: estado del pedido (
Draft,Open,Completed,Cancelled), estado de pago y estado de entrega, como en Shopify. - Cobra con las pasarelas propias de la organización (Stripe o Wompi) mediante enlaces de pago; el pago confirmado actualiza el pedido sin intervención.
- Entregas parciales con transportista, número y URL de seguimiento que el comprador ve en su página pública
/o/{path}. - Conversión en ambos sentidos con cotizaciones y facturas, conservando cliente, moneda y artículos.
- Inventario opcional por producto: el pedido reserva stock al colocarse y lo libera al cancelarse.
- 13 tools de IA en la categoría
Orderspara que el asistente cree, consulte, cobre y entregue pedidos desde una conversación.
Acceso
- Ruta principal:
/[orgId]/finance/orders - Como se llega:
Finance > Sales > Orders - Permiso requerido:
can_access_orders(más permisos granularescan_view_own_orders,can_view_all_orders,can_create_orders,can_edit_own_orders,can_edit_all_orders,can_delete_own_orders,can_delete_all_orders)
Alcance tecnico
- Frontend:
OrdersView,OrderEditForm,OrderDetail,CreateFulfillmentDialog,AbandonedCheckoutsView,AbandonedCheckoutDetail,PublicOrderPage. - Backend:
orders,order-items,order-fulfillments,orders-change-history,checkouts,public-order-preview,public-catalog-checkout,payment-links. - Superficies publicas:
/o/[path](página del pedido) y/c/[orgId]/[slug]/checkout(checkout del catálogo).
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Crear pedido | create-order.md | Crea un pedido manual como borrador o colocado, con artículos, descuento, envío y entrega. |
| Cobrar un pedido | order-payments.md | Genera un enlace de pago por el saldo y actualiza el estado de pago al cobrar. |
| Entregar artículos | order-fulfillment.md | Registra envíos o recogidas parciales con seguimiento. |
| Convertir pedidos | order-conversions.md | Convierte cotizaciones o facturas en pedido y pedidos en factura. |
| Checkouts abandonados | abandoned-checkouts.md | Lista compradores que no terminaron y comparte el link de recuperación. |
| Página pública del pedido | public-order-page.md | Muestra al comprador estado, pago, artículos y seguimiento en /o/[path]. |
Relaciones
- Depende de: Productos, Payment Gateways, Payment Links, Document templates (numeración
order) y Contactos. - Usado por: Catálogos públicos (checkout), asistente de IA, Automatizaciones (5 triggers de pedidos), Cotizaciones y Facturas.
Limitaciones y notas
- No calcula impuestos ni admite productos de suscripción.
- Solo se pueden eliminar pedidos en borrador o cancelados sin pagos.
- Cancelar no reembolsa automáticamente los pagos recibidos.
- El comprador recibe correos al colocar el pedido, al pagarlo y cuando un envío queda listo para recoger, en tránsito o entregado. Para WhatsApp u otros canales se usan los triggers de pedidos.
id: payment-gateways app: finance nombre: Pasarelas de pago estado: shipped permiso: can_access_payments
Pasarelas de pago
Conecta credenciales Stripe o Wompi de la organización y comprueba que sus claves y webhooks están listos para cobros.
Para que sirve
- Un comercio conecta su propia cuenta Stripe para cobrar enlaces de pago a sus clientes.
- Una empresa colombiana conecta Wompi para recaudar cobros en COP.
- Un equipo financiero verifica una conexión antes de publicar enlaces y detecta claves, modos o webhooks incompletos.
- Una agencia administra más de una configuración de cobro de su organización sin mezclarla con la facturación de la plataforma.
Que lo hace diferente
- Las credenciales pertenecen a cada organización y se usan para sus Payment Links, separadas de la facturación SaaS de AchieveApex.
- La comprobación valida autenticación, compatibilidad entre modo de claves y configuración de webhooks antes de cobrar.
- Stripe y Wompi se conectan al mismo flujo de enlaces públicos, pagos recibidos, cotizaciones e invoices.
- La modalidad de cobro se elige por enlace —
Apex CheckoutoProvider Checkout— y no queda fijada al conectar la pasarela. - Los webhooks convierten la confirmación del proveedor en pagos recibidos sin duplicar el cobro si el evento se repite.
Acceso
- Ruta principal:
/[orgId]/settings/payment-gateways - Como se llega:
Avatar menu > Settings > Billing & Finance > Payment Gateways - Permiso requerido:
can_access_payments
Alcance tecnico
- Frontend:
PaymentGatewaysSettings - Backend:
organization-payment-gateways,stripe-payment-webhooks,wompi-webhooks,payment-gateway-health - Superficies publicas: ninguna
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Conectar Stripe | connect-stripe.md | Guarda claves y URL webhook Stripe. |
| Conectar Wompi | connect-wompi.md | Conecta Wompi para COP. |
| Gestionar gateway de pago | manage-payment-gateway.md | Edita, predetermina o desactiva. |
| Procesar pagos de webhooks | payment-gateway-webhooks.md | Confirma cobros de proveedor. |
| Probar conexión del gateway | test-payment-gateway.md | Informa fallos y avisos de conexión. |
Relaciones
- Depende de: Payment Links, Estimates y Payments received.
- Usado por: módulos y documentos del flujo financiero.
Limitaciones y notas
- Los permisos granulares pueden restringir acciones según el rol de la organización.
id: payment-links app: finance nombre: Enlaces de pago estado: shipped permiso: can_access_payments
Enlaces de pago
Los enlaces de pago preparan un cobro individual con un gateway de la organización. Pueden ser independientes o proceder de Amount to collect en una cotización.
Para que sirve
- Una clínica envía a un paciente un enlace para cobrar el anticipo de un procedimiento antes de facturarlo.
- Una agencia cobra el primer pago de una propuesta aceptada desde la cotización del deal.
- Un comercio B2B crea un enlace asociado a una factura y permite al comprador abrir también el documento relacionado.
- Un negocio de servicios comparte un cobro puntual por Stripe o Wompi sin requerir acceso al CRM.
Que lo hace diferente
- El enlace puede nacer de una cotización, factura, contacto, compañía o deal existentes, conservando el contexto comercial.
- Cada enlace elige su gateway y modalidad:
Apex Checkoutintegrado oProvider Checkouthospedado por Stripe o Wompi. - La página pública conserva identidad visual y idioma de la organización y expone solo los documentos financieros que correspondan al pagador.
- Un cobro confirmado crea un pago recibido idempotente y, cuando procede, actualiza la cotización vinculada a aceptada.
- Las facturas relacionadas se pueden liquidar después mediante la aplicación de pagos, incluso de forma parcial.
Acceso
- Ruta principal:
/[orgId]/finance/payment-links - Como se llega:
Finance > Sales > Payment Links - Permiso requerido:
can_access_payments
Alcance tecnico
- Frontend: rutas Finance;
PaymentLinksView,PaymentLinkEditForm,PaymentLinkDetail - Backend:
payment-links,public-payment-charge,payment-gateway-health - Superficies publicas:
/payment-links/[token]
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Usar Apex Checkout | apex-checkout.md | Cobra con el formulario de AchieveApex y el gateway conectado. |
| Crear enlace de pago | create-payment-link.md | Define importe, moneda, gateway, método y relaciones opcionales. |
| Gestionar enlace de pago | manage-payment-link.md | Copia, abre, cambia gateway/método o cancela un enlace abierto. |
| Abrir documentos relacionados | payment-link-related-documents.md | Lleva a la cotización o factura asociada desde el detalle. |
| Consultar estado de cobro | payment-link-status.md | Distingue borrador, abierto, pagado, vencido y cancelado. |
| Usar checkout del proveedor | provider-checkout.md | Redirige al checkout hospedado por Stripe o Wompi. |
| Pagar desde página pública | public-payment-page.md | Permite al cliente pagar en /payment-links/[token]. |
Relaciones
- Depende de: Payment Gateways, Payments received, Estimates e Invoices.
- Usado por: cotizaciones, facturas, pagos recibidos y gateways de pago.
Limitaciones y notas
- La configuración de credenciales vive en
Payment Gateways; el método de cobro se elige por enlace. - Wompi solo admite enlaces en COP.
id: payments-made app: finance nombre: Payments Made estado: beta permiso: can_access_vendor_payments
Payments Made
Registra pagos a proveedores y los asigna a bills abiertos para reducir sus saldos.
Para que sirve
- Una distribuidora registra una transferencia a un proveedor y la reparte entre varias facturas abiertas.
- Una clínica aplica un pago parcial a una factura de equipos y consulta el saldo que falta por pagar.
- Un restaurante identifica el excedente de un pago recibido por su proveedor para usarlo en otras facturas del mismo proveedor.
- Una empresa de logística anula un pago registrado por error y recupera los saldos correctos de sus bills.
Que lo hace diferente
- Un solo pago puede asignarse a múltiples bills del mismo proveedor, y el sistema mantiene el importe aplicado y sin usar.
- Cada asignación actualiza automáticamente el saldo y el estado del bill, sin que el usuario edite deudas manualmente.
- Se integra con Bills, Vendors, monedas y la numeración documental compartida de Finance.
- Desde un bill abierto,
Record Paymentprecarga el proveedor y la factura para reducir errores de captura. - No procesa pagos bancarios ni aplica a Expenses; registra el pago y su asignación dentro del control de cuentas por pagar.
Acceso
- Ruta principal:
/[orgId]/finance/payments-made - Como se llega:
Header app switcher > Alpha & Beta > Finance > Purchases > Payments Made - Permiso requerido:
can_access_vendor_paymentsy permisos de ver, crear, editar o eliminar pagos.
Alcance tecnico
- Frontend: rutas de lista, creación y detalle;
PaymentsMadeView,RecordVendorPaymentFormyVendorPaymentDetail. - Backend:
vendor-paymentsybill-payments. - Superficies publicas: ninguna.
- Integraciones externas: ninguna.
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Consultar pagos | vendor-payment-list.md | Busca y revisa pagos y monto sin usar. |
| Registrar pagos | record-vendor-payment.md | Crea un pago para un proveedor. |
| Asignar pagos a bills | allocate-payment-to-bills.md | Distribuye un pago entre saldos abiertos. |
| Actualizar saldos y estados | payment-allocation-effects.md | Sincroniza bill y pago tras cada asignación. |
| Anular o eliminar pagos | vendor-payment-lifecycle.md | Retira asignaciones y controla el ciclo de pago. |
Relaciones
- Depende de: Vendors, Bills y Currencies.
- Usado por: actualiza el saldo, monto pagado y estado de Bills.
- La configuración de numeración AP vive en
settings/document-settings; no se documenta aquí. Las plantillas se describen en Document Templates.
Limitaciones y notas
- Payments Made no aplica a Expenses.
- Un pago se numera al crearse, sin estado de borrador.
id: payments-received app: finance nombre: Pagos recibidos estado: shipped permiso: can_access_payments
Pagos recibidos
Los pagos recibidos registran dinero cobrado manualmente o desde un gateway y distribuyen su importe entre facturas. Se consultan tanto desde CRM como desde Finance.
Para que sirve
- Una empresa de servicios registra una transferencia recibida y la aplica a una o varias facturas abiertas.
- Una escuela cobra una parte de la matrícula y conserva el saldo restante de cada factura.
- Un comercio recibe un pago desde un enlace público y después lo asigna al documento correcto.
- Un despacho corrige una aplicación equivocada o anula un cobro sin perder el rastro del movimiento.
Que lo hace diferente
- Une los cobros de gateways y los pagos manuales en un solo registro de dinero recibido.
- Puede relacionar pagos con cotizaciones, enlaces de pago, contactos, compañías y deals del CRM.
- Separa la captura del dinero de su aplicación a facturas para admitir anticipos, pagos parciales y pagos que cubren varias facturas.
- Mantiene el saldo y estado de la factura actualizados tras aplicar, desasignar o anular un importe.
- Funciona desde CRM y desde el espacio Finance sobre los mismos documentos compartidos.
Acceso
- Ruta principal:
/[orgId]/paymentsy/[orgId]/finance/payments - Como se llega: sidebar CRM >
Paymentso selector de aplicación >Finance>Sales>Received Payments - Permiso requerido:
can_access_payments
Alcance tecnico
- Frontend: rutas CRM y Finance;
PaymentsView,PaymentDetail,RecordPaymentFormy diálogos de asignación - Backend:
paymentseinvoice-payments - Superficies publicas: ninguna
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Asignar pago a facturas | apply-payment-to-invoices.md | Distribuye el importe disponible entre facturas con saldo. |
| Gestionar pagos parciales | partial-payments.md | Mantiene saldo y estado al cubrir solo una parte. |
| Consultar detalle de pago | payment-details.md | Muestra origen, relaciones y asignaciones. |
| Consultar pagos recibidos | payments-list.md | Filtra y ordena el registro de cobros. |
| Registrar pago manual | record-manual-payment.md | Crea el pago y puede asignarlo en el mismo flujo. |
| Desasignar pago de factura | unassign-payment.md | Revierte una asignación equivocada. |
| Anular pago | void-payment.md | Anula un pago activo y sus asignaciones. |
Relaciones
- Depende de: Invoices, Payment Links, Estimates y Payment Gateways.
- Usado por: facturas, enlaces de pago y el historial de cobros del cliente.
Limitaciones y notas
- Un pago puede quedar parcialmente o totalmente sin asignar; capturarlo no liquida una factura automáticamente.
- La eliminación de una asignación es un borrado lógico y recalcula el saldo de la factura.
id: recurring-bills app: finance nombre: Recurring Bills estado: beta permiso: can_access_bills
Recurring Bills
Configura perfiles que generan bills periódicos para proveedores.
Para que sirve
- Un coworking genera cada mes el bill de alquiler de su oficina con la misma información y partidas.
- Una cadena de tiendas programa bills de mantenimiento y calcula sus vencimientos según los días de pago acordados.
- Una empresa de eventos pausa obligaciones estacionales y las reanuda cuando comienza su nueva temporada.
- Una inmobiliaria crea el bill del período de manera anticipada para prepararlo antes de su fecha de pago.
Que lo hace diferente
- Genera Bills normales que entran al mismo flujo de cuentas por pagar y Payments Made, en lugar de mantener una lista separada de recordatorios.
- Reutiliza proveedor obligatorio, moneda, partidas, impuestos y términos de pago del perfil para generar documentos consistentes.
- La generación automática evita duplicar un bill del mismo período y conserva el enlace entre el perfil y cada documento creado.
- Puede crear cada bill como
DraftuOpen; al abrirse, adquiere saldo y numeración conforme al flujo habitual. - No automatiza el desembolso: los bills generados se pagan posteriormente desde Payments Made.
Acceso
- Ruta principal:
/[orgId]/finance/recurring-bills - Como se llega:
Header app switcher > Alpha & Beta > Finance > Purchases > Recurring Bills - Permiso requerido: permisos de Bills, incluido
can_access_bills.
Alcance tecnico
- Frontend: rutas de lista, creación, detalle y edición;
RecurringBillsView,RecurringBillEditForm,RecurringBillDetail. - Backend:
recurring-bills,recurring-bill-itemsyrecurring-bill-generate. - Superficies publicas: ninguna.
- Integraciones externas: proceso programado compartido de generación recurrente.
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Consultar perfiles | recurring-bill-list.md | Busca y filtra perfiles. |
| Crear y editar perfiles | recurring-bill-profile.md | Configura plantilla, proveedor y salida. |
| Programar recurrencia | recurring-bill-schedule.md | Define frecuencia, fechas y términos. |
| Gestionar partidas plantilla | recurring-bill-items.md | Mantiene conceptos reutilizables. |
| Generar un bill ahora | generate-recurring-bill.md | Crea el documento del período sin duplicarlo. |
| Pausar, reanudar y generar automáticamente | recurring-bill-lifecycle.md | Controla el perfil y la tarea programada. |
Relaciones
- Depende de: Bills, Vendors, Currencies y Document Templates.
- Usado por: genera bills normales que pueden recibir pagos.
- La numeración AP se configura en
settings/document-settings; no se documenta aquí.
Limitaciones y notas
- El proveedor es obligatorio.
- Los perfiles detenidos conservan su historial.
id: recurring-expenses app: finance nombre: Recurring Expenses estado: beta permiso: can_access_expenses
Recurring Expenses
Configura perfiles que generan gastos periódicos a partir de conceptos reutilizables.
Para que sirve
- Una agencia genera periódicamente el gasto de sus herramientas de diseño sin recapturar sus conceptos.
- Una clínica programa el gasto semanal de lavandería y lo detiene durante un cierre temporal.
- Un operador turístico crea por adelantado el gasto del período desde el perfil cuando necesita revisarlo antes.
- Un restaurante conserva el historial de los gastos originados por una misma suscripción operativa.
Que lo hace diferente
- Genera Expenses normales, no registros aislados: los documentos resultantes siguen el flujo y la numeración de gastos de Finance.
- Reutiliza partidas, impuestos, moneda y proveedor opcional del perfil para mantener importes consistentes entre períodos.
- La generación automática comparte el proceso programado de recurrencias y evita duplicar documentos para un mismo período.
- Permite elegir si el gasto generado queda en
Drafto se registra comoActive. - No gestiona pagos de proveedores: los gastos directos no usan Payments Made ni crean una cuenta por pagar.
Acceso
- Ruta principal:
/[orgId]/finance/recurring-expenses - Como se llega:
Header app switcher > Alpha & Beta > Finance > Purchases > Recurring Expenses - Permiso requerido: permisos de Expenses, incluido
can_access_expenses.
Alcance tecnico
- Frontend: rutas de lista, creación, detalle y edición;
RecurringExpensesView,RecurringExpenseEditFormyRecurringExpenseDetail. - Backend:
recurring-expenses,recurring-expense-itemsyrecurring-expense-generate. - Superficies publicas: ninguna.
- Integraciones externas: proceso programado compartido de generación recurrente.
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Consultar perfiles | recurring-expense-list.md | Busca y filtra perfiles periódicos. |
| Crear y editar perfiles | recurring-expense-profile.md | Configura plantilla, importes y salida. |
| Programar recurrencia | recurring-expense-schedule.md | Define frecuencia, inicio y fin. |
| Gestionar partidas plantilla | recurring-expense-items.md | Mantiene los conceptos que se copiarán. |
| Generar un gasto ahora | generate-recurring-expense.md | Ejecuta una generación manual idempotente. |
| Pausar, reanudar y generar automáticamente | recurring-expense-lifecycle.md | Controla perfil y generación programada. |
Relaciones
- Depende de: Expenses, Vendors (opcional), Currencies y Document Templates.
- Usado por: genera documentos normales en Expenses.
- La numeración AP se configura en
settings/document-settings; no se documenta aquí.
Limitaciones y notas
- Los perfiles detenidos conservan historial, pero no generan gastos.
- La interfaz permite frecuencias por días, semanas, meses, trimestres y años.
id: recurring-invoices app: finance nombre: Facturas recurrentes estado: shipped permiso: can_access_invoices
Facturas recurrentes
Define perfiles que copian sus artículos y datos comerciales a facturas normales de forma manual o programada.
Para que sirve
- Una empresa de mantenimiento genera cada mes la factura de sus contratos activos sin reescribir sus líneas de servicio.
- Una agencia factura un retainer trimestral y conserva una factura histórica independiente por cada periodo.
- Una academia programa cobros anuales con vencimiento calculado desde sus términos de pago.
- Un negocio SaaS pausa un perfil de un cliente suspendido y lo reanuda sin perder la configuración comercial.
Que lo hace diferente
- El perfil genera facturas normales: conservan numeración, PDF, pagos, documentos públicos y el resto del flujo financiero de Apex.
- Puede crearse desde una factura existente para reutilizar cliente, artículos y condiciones ya aprobadas.
- La generación programada respeta la zona horaria del perfil y evita facturas duplicadas para un mismo periodo.
- Los documentos históricos no cambian si se edita el perfil; los ajustes solo afectan la facturación futura.
- Convive con contactos, compañías y deals del CRM en vez de mantener un catálogo de clientes separado.
Acceso
- Ruta principal:
/[orgId]/finance/recurring-invoices - Como se llega:
Header app switcher > Finance > Sales > Recurring Invoices - Permiso requerido:
can_access_invoices
Alcance tecnico
- Frontend:
recurring-invoices/page.tsx,[id]/page.tsx,new/page.tsx,[id]/edit/page.tsx;RecurringInvoicesView,RecurringInvoiceDetail,RecurringInvoiceEditForm - Backend:
recurring-invoices,recurring-invoice-items,recurring-invoice-generate,cron-recurring-invoices - Superficies publicas: ninguna
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Generar facturas automáticamente | automatic-recurring-generation.md | El cron procesa perfiles activos con fecha vencida. |
| Crear perfil recurrente | create-recurring-invoice.md | Crea una plantilla con cliente, artículos y calendario. |
| Editar perfil recurrente | edit-recurring-invoice.md | Cambia la plantilla para próximas facturas. |
| Generar factura ahora | generate-recurring-invoice.md | Crea una factura para el periodo actual. |
| Consultar facturas generadas | generated-invoices.md | Lista las facturas hijas y sus periodos. |
| Pausar o reanudar perfil | pause-resume-recurring-invoice.md | Cambia la elegibilidad del perfil. |
| Gestionar artículos de plantilla | recurring-invoice-items.md | Mantiene las líneas que se copiarán. |
| Configurar calendario recurrente | recurring-schedule.md | Define frecuencia, fecha inicial y terminación. |
Relaciones
- Depende de: Invoices, Contacts, Companies, Currencies, Document Templates y Document Numbering.
- Usado por: Invoices y
document-template-preview.
Limitaciones y notas
- Las facturas ya generadas conservan una copia histórica; editar el perfil no las cambia.
- La generación protege contra duplicados del mismo perfil y periodo.
id: taxes-currencies app: finance nombre: Impuestos y monedas estado: shipped permiso: can_access_finance
Impuestos y monedas
Centraliza las tasas de impuesto y las monedas disponibles para documentos financieros de la organización.
Para que sirve
- Una agencia que vende en Colombia y Estados Unidos prepara documentos en COP y USD con la moneda adecuada para cada cliente.
- Un comercio aplica IVA u otros impuestos definidos por la organización al calcular cotizaciones y facturas.
- Una empresa que recibe precios en otra moneda consulta y actualiza el tipo de cambio usado en sus documentos.
- Un negocio que deja de operar en una divisa la deshabilita sin eliminar el historial de documentos previos.
Que lo hace diferente
- Las monedas e impuestos se comparten con cotizaciones, facturas, pagos y enlaces de pago del mismo CRM.
- Los tipos de cambio se actualizan automáticamente y se pueden consultar o actualizar desde Finance.
- La moneda seleccionada llega al documento público, a la plantilla y al PDF, no solo a un registro contable interno.
- Mantiene un catálogo de monedas del sistema y habilitaciones por organización para ajustar la operación real de cada negocio.
Acceso
- Ruta principal:
/[orgId]/settings/taxesy/[orgId]/settings/currencies - Como se llega:
Avatar menu > Settings > Billing & Finance > TaxesoCurrencies - Permiso requerido:
can_access_finance
Alcance tecnico
- Frontend:
TaxesList,CurrenciesListy sus diálogos - Backend:
taxes,organization-currencies,system-currencies,exchange-rates,get-exchange-rate,cron-update-exchange-rates - Superficies publicas: ninguna
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Actualizar tipos de cambio automáticamente | automatic-exchange-rates.md | Cron que renueva tasas. |
| Deshabilitar moneda | disable-currency.md | Desactiva una moneda no base. |
| Editar moneda de organización | edit-organization-currency.md | Consulta y administra la asignación. |
| Habilitar moneda | enable-currency.md | Añade una moneda del catálogo. |
| Consultar y actualizar tipos de cambio | exchange-rates.md | Obtiene la tasa vigente. |
| Gestionar impuestos | manage-taxes.md | Define tasas simples o compuestas. |
Relaciones
- Depende de: Estimates, Invoices, Payments received y Payment Links.
- Usado por: módulos y documentos del flujo financiero.
Limitaciones y notas
- Los permisos granulares pueden restringir acciones según el rol de la organización.
id: vendors app: finance nombre: Vendors estado: beta permiso: can_access_vendors
Vendors
Gestiona los proveedores usados en las compras de Finance. Permite mantener sus datos, personas de contacto y direcciones.
Para que sirve
- Una agencia de marketing centraliza sus imprentas, estudios y proveedores de pauta para reutilizarlos en todas sus compras.
- Una clínica conserva los contactos y direcciones de laboratorios y distribuidores para consultar rápidamente a quién corresponde cada documento.
- Un restaurante inactiva un proveedor que dejó de usar sin perder el historial de gastos y facturas asociados.
Que lo hace diferente
- Los proveedores son una entidad propia de cuentas por pagar, separada de los contactos de CRM, aunque pueden vincularse de forma opcional.
- La misma ficha alimenta Expenses, Bills y Payments Made, evitando recrear un proveedor en cada flujo de compras.
- El detalle reúne gastos y bills recientes del proveedor para navegar desde la relación comercial hasta los documentos financieros.
- No sustituye una contabilidad de partida doble ni calcula actualmente un balance agregado de proveedor a partir de los documentos.
Acceso
- Ruta principal:
/[orgId]/finance/vendors - Como se llega:
Header app switcher > Alpha & Beta > Finance > Purchases > Vendors - Permiso requerido:
can_access_vendors; las acciones respetan permisos de ver, crear, editar y eliminar del módulo.
Alcance tecnico
- Frontend: rutas de lista, creación, detalle y edición de
vendors;VendorsView,VendorEditFormyVendorDetail. - Backend: servicios Feathers
vendors,vendor-contactsyvendor-addresses. - Superficies publicas: ninguna.
- Integraciones externas: ninguna.
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Consultar proveedores | vendor-list.md | Lista paginada, ordenable y filtrable. |
| Crear y editar proveedores | vendor-profile.md | Mantiene el perfil y sus valores predeterminados. |
| Gestionar contactos | vendor-contacts.md | Añade personas de contacto y una principal. |
| Gestionar direcciones | vendor-addresses.md | Añade direcciones y una principal. |
| Cambiar estado y eliminar | vendor-lifecycle.md | Activa, inactiva o elimina lógicamente un proveedor. |
| Consultar compras relacionadas | vendor-purchase-history.md | Muestra expenses y bills recientes del proveedor. |
Relaciones
- Depende de: Finance, Currencies y permisos de organización.
- Usado por:
expensesde forma opcional;billsyvendor-paymentsde forma obligatoria.
Limitaciones y notas
- Un proveedor es distinto de un contacto de CRM, aunque puede vincularse opcionalmente a un contacto o compañía.
- La eliminación es lógica; los documentos históricos permanecen.
APP: helpdesk
Helpdesk
Ticketing moderno, knowledge base y portal público.
- Etapa: Beta
- Landing:
/{orgId}/helpdesk
Modulos
| Modulo | Slug | Estado | Proposito |
|---|---|---|---|
| Tickets Helpdesk | tickets |
beta | Ticketing moderno con colas y asignación. |
| Knowledge Base | knowledge-base |
beta | Articulos internos y portal público. |
| Insights | insights |
beta | Analitica de soporte. |
| Portal público | portal-publico |
beta | Self-service del cliente /help/{slug}. |
| Configuración Helpdesk | configuracion |
beta | SLA, macros, grupos, routing, email. |
Funcionalidades internas
56 funcionalidades documentadas en 5 modulos. Ver la tabla de cada modulo.
id: configuracion app: helpdesk nombre: Configuración de Helpdesk estado: beta permiso: can_access_helpdesk y can_manage_helpdesk_settings para cambios
Configuración de Helpdesk
Define cómo se reciben, enrutan, priorizan y notifican los tickets, además del centro de ayuda que usan los clientes.
Para que sirve
- Un SaaS define grupos, agentes y reglas de triage para dirigir facturación, incidencias técnicas y onboarding a quien corresponde.
- Un ISP configura horarios y políticas SLA para comprometer tiempos realistas de respuesta según la prioridad de una avería.
- Un e-commerce centraliza su correo de soporte, avisos al cliente y respuestas aprobadas para atender pedidos de forma consistente.
- Una empresa de servicios publica formularios y un centro de ayuda con su propia marca o dominio.
- Un BPO prepara macros y escalaciones para que cada turno aplique el mismo procedimiento ante casos sin asignar.
Que lo hace diferente
- Configura en el mismo producto el ciclo completo: entrada por correo o formulario, enrutamiento, SLA, comunicación, autoservicio y medición.
- El triage con IA clasifica tickets entrantes con prioridad, tipo, etiquetas y sentimiento sin bloquear su creación.
- Los horarios laborales influyen en SLA y escalamiento, conectando el diseño de la operación con la atención diaria.
- Los formularios y el portal público se conectan de forma nativa a tickets, Knowledge Base, CSAT y automatizaciones.
- Las reglas definidas aquí funcionan junto a asistentes IA que pueden crear y consultar tickets desde una conversación.
Acceso
- Ruta principal:
/[orgId]/settings/helpdesk/general - Cómo se llega:
Avatar menu > Settings > Helpdesk - Permiso requerido:
can_access_helpdesk; las modificaciones requierencan_manage_helpdesk_settings.
Alcance técnico
- Frontend: rutas bajo
settings/helpdeskyHelpdeskSettingsSidebar.tsx. - Backend:
helpdesk-settings, grupos, horarios, SLA, correo, formularios, macros, respuestas guardadas y portal. - Superficies públicas: formularios y portal configurados aquí.
- Integraciones externas: recepción y envío de correo; dominio propio mediante DNS/CNAME.
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Preferencias generales | helpdesk-general-settings.md | Prefijo, tipos, valores predeterminados y avisos. |
| Avisos al solicitante | helpdesk-requester-notifications.md | Confirmación, respuesta y resolución. |
| Avisos a agentes | helpdesk-agent-notifications.md | Asignación y respuesta del cliente. |
| Triage con IA | helpdesk-ai-triage.md | Clasifica tickets entrantes. |
| Grupos | helpdesk-groups.md | Enrutamiento y métodos de asignación. |
| Miembros de grupo | helpdesk-group-members.md | Agregar y quitar agentes de un grupo. |
| Escalamiento sin asignar | helpdesk-unassigned-escalation.md | Deriva tickets sin responsable. |
| Horarios laborales | helpdesk-business-hours.md | Calendarios para SLA y escalamiento. |
| Políticas SLA | helpdesk-sla-policies.md | Metas por prioridad. |
| Correo de soporte | helpdesk-support-email.md | Direcciones nativas e hilos entrantes. |
| Respuestas guardadas | helpdesk-canned-response-management.md | Plantillas para respuestas. |
| Formularios | helpdesk-request-form-management.md | Solicitudes públicas y widget. |
| Macros | helpdesk-macro-management.md | Secuencias aplicables al ticket. |
| Portal | helpdesk-portal-settings.md | Marca, publicación y módulos. |
| Dominio propio | helpdesk-custom-domain.md | Conexión y verificación DNS. |
Relaciones
- Depende de: grupos, tickets y portal de Helpdesk.
- Usado por: recepción de correo, SLA, formularios, Knowledge Base y portal público.
Limitaciones y notas
- La ruta
/[orgId]/settings/helpdeskredirige ageneral.
id: insights app: helpdesk nombre: Insights de Helpdesk estado: partial permiso: can_access_helpdesk
Insights de Helpdesk
Panel operativo que calcula la carga de la cola y métricas de respuesta, SLA y CSAT para el periodo seleccionado.
Para que sirve
- Un BPO revisa el volumen abierto, tickets sin asignar y vencimientos para decidir la cobertura del turno.
- Un SaaS compara tiempos de respuesta y resolución por periodo para detectar una degradación del soporte.
- Un ISP supervisa el cumplimiento de SLA de incidencias urgentes antes de que escalen a una queja mayor.
- Una empresa de servicios mide las valoraciones CSAT recibidas tras cerrar solicitudes.
Que lo hace diferente
- Calcula la operación directamente desde los tickets, grupos, asignaciones, SLA y respuestas CSAT del mismo Helpdesk.
- Muestra la salud actual de la cola junto a tendencias de periodos de 7, 30 o 90 días, no solo reportes históricos.
- Permite relacionar una métrica de atención con las reglas de SLA y enrutamiento que la producen dentro de Apex.
- Se complementa con automatizaciones de ticket y SLA para actuar sobre los casos que explican una desviación.
Acceso
- Ruta principal:
/[orgId]/helpdesk/insights - Como se llega:
Helpdesk sidebar > Insights - Permiso requerido:
can_access_helpdesk
Alcance técnico
- Frontend:
HelpdeskInsightsView.tsxy la rutahelpdesk/insights/page.tsx. - Backend:
helpdesk-insights(find), construido a partir de tickets, grupos, agentes y respuestas CSAT. - Superficies públicas: ninguna.
- Integraciones externas: ninguna; los datos de correo ya están incorporados en los tickets.
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Rango de análisis | support-date-range.md | Recarga todas las métricas para 7, 30 o 90 días. |
| Salud de la cola | support-queue-health.md | Presenta los contadores de trabajo abierto y vencimientos. |
| Rendimiento y SLA | support-performance.md | Mide creación, resolución, tiempos y brechas SLA. |
| Satisfacción | support-satisfaction.md | Agrupa las respuestas CSAT enviadas en el periodo. |
| Desgloses y tendencia | support-breakdowns.md | Compara entradas y resoluciones diarias y distribuye la carga. |
Relaciones
- Depende de: Tickets Helpdesk, grupos, usuarios asignados, políticas SLA y CSAT.
- Usado por: responsables que supervisan la operación de soporte.
Limitaciones y notas
- La interfaz ofrece 7, 30 y 90 días; el servicio acepta de 1 a 365.
- Los indicadores de cola no usan el rango: representan el estado actual de todos los tickets de la organización.
id: knowledge-base app: helpdesk nombre: Knowledge Base estado: beta permiso: can_access_helpdesk y can_manage_helpdesk_settings
Knowledge Base
Administra contenido de autoservicio para el portal de Helpdesk.
Para que sirve
- Un SaaS publica guías de configuración para que los clientes resuelvan tareas frecuentes sin abrir un ticket.
- Una universidad organiza contenido de matrícula, pagos y admisiones en categorías públicas y navegables.
- Un e-commerce mantiene actualizadas las políticas de devolución y entrega que sus compradores consultan desde el portal.
- Una empresa de servicios prepara artículos en borrador y los publica cuando el procedimiento está validado.
Que lo hace diferente
- El contenido se publica en el portal de Helpdesk de la misma organización, junto a formularios y seguimiento de tickets.
- Las categorías y artículos tienen estados que separan el trabajo editorial de lo que puede leer un visitante anónimo.
- Los artículos se pueden buscar desde herramientas internas de asistentes IA, además de navegarse en el portal.
- No depende de Sites ni de los formularios genéricos: mantiene su propio flujo de soporte y autoservicio.
Acceso
- Ruta principal:
/[orgId]/helpdesk/knowledge-base - Como se llega:
Helpdesk sidebar > Knowledge Base - Permiso requerido:
can_access_helpdesk y can_manage_helpdesk_settings
Alcance técnico
- Frontend:
HelpdeskKnowledgeBaseView.tsx,HelpdeskKnowledgeArticleEditor.tsxyHelpdeskKnowledgeEditor.tsx. - Backend:
helpdesk-knowledge-categoriesyhelpdesk-knowledge-articles. - Superficies públicas: categorías y artículos bajo
/help/[slug]. - Integraciones externas: no aplica.
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Categorías | knowledge-categories.md | Crea, edita, activa y elimina categorías. |
| Listado y búsqueda de artículos | knowledge-article-list.md | Filtra contenido por texto, categoría y estado. |
| Creación de artículos | create-knowledge-article.md | Guarda un borrador o publica un artículo. |
| Edición y publicación | edit-knowledge-article.md | Edita contenido, slug, destacado y SEO. |
| Visibilidad pública | knowledge-article-visibility.md | Determina qué contenido puede leerse sin iniciar sesión. |
Relaciones
- Depende de: una categoría existente para cada artículo.
- Usado por: el portal público cuando
show_knowledge_baseestá activado.
Limitaciones y notas
- El contenido es independiente de Sites y de Forms. La interfaz no expone reordenamiento manual de categorías ni artículos.
id: portal-publico app: helpdesk nombre: Portal público de Helpdesk estado: beta permiso: ninguno
Portal público de Helpdesk
Centro de ayuda público de cada organización para encontrar artículos, enviar formularios, consultar tickets y responder CSAT.
Para que sirve
- Un e-commerce ofrece respuestas de devolución y un formulario de solicitud sin exigir que el comprador inicie sesión.
- Un SaaS habilita a sus clientes para buscar guías, abrir un ticket y consultar su referencia desde un mismo centro de ayuda.
- Una universidad publica categorías de admisiones y recibe preguntas de aspirantes mediante formularios específicos.
- Una empresa de servicios recoge CSAT tras resolver el caso y reduce consultas de seguimiento con la búsqueda pública del ticket.
Que lo hace diferente
- Reúne artículos, formularios, seguimiento de ticket y CSAT en una superficie pública conectada al Helpdesk de Apex.
- Puede operar bajo el subdominio de Helpdesk de AchieveApex o un dominio propio verificado por DNS/CNAME.
- Los formularios públicos generan tickets que entran a la misma cola donde viven asignación, SLA, relaciones CRM y automatizaciones.
- Ofrece un widget para incrustar el formulario en un sitio externo sin duplicar el sistema de solicitudes.
- Mantiene rutas canónicas, sitemap y robots por portal para que el contenido público pueda descubrirse correctamente.
Acceso
- Ruta principal:
/help/[slug] - Cómo se llega: URL del centro de ayuda o enlace compartido por la organización.
- Permiso requerido:
ninguno
Alcance técnico
- Frontend:
HelpdeskPortalPage.tsx,HelpdeskPublicForm.tsx,HelpdeskPublicTicketTracking.tsxy componentes públicos de Knowledge Base. - Backend:
helpdesk-portals,helpdesk-forms,helpdesk-form-submissions,helpdesk-ticket-lookup,helpdesk-csat-surveyy servicios de Knowledge Base. - Superficies públicas:
/help/[slug], categorías, artículos, formularios, seguimiento y CSAT. - Integraciones externas: DNS/CNAME para dominios propios.
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Inicio | portal-home.md | Marca, buscador, contenido y enlaces disponibles. |
| Búsqueda | portal-knowledge-browsing.md | Filtra artículos y formularios en el navegador. |
| Categoría | portal-category.md | Lista artículos publicados de una categoría activa. |
| Artículo | portal-article.md | Muestra el contenido sanitizado y su categoría. |
| Formulario | portal-request-form.md | Crea una solicitud pública. |
| Widget | portal-form-embed.md | Inserta el formulario en una página externa. |
| Seguimiento | portal-ticket-tracking.md | Busca tickets por referencia y correo. |
| CSAT | portal-csat-survey.md | Recoge una valoración de un solo uso. |
| Descubrimiento | portal-discovery.md | Metadatos, sitemap y robots del portal. |
Relaciones
- Depende de: un portal publicado; cada sección depende además de su interruptor de visibilidad.
- Usado por: clientes sin sesión y por el widget de formularios.
Limitaciones y notas
- La dirección canónica es
https://{slug}.helpdesk.achieveapex.como el dominio propio activo. En hosts de AchieveApex,/help/[slug]redirige al host canónico; localhost queda excluido.
id: tickets app: helpdesk nombre: Tickets Helpdesk estado: partial permiso: can_access_helpdesk
Tickets Helpdesk
Espacio de trabajo para que los agentes creen, clasifiquen, asignen y resuelvan solicitudes de soporte. Conserva la conversación, el SLA, la actividad y las relaciones CRM del caso.
Para que sirve
- Un SaaS registra incidencias, asigna especialistas y controla que la respuesta y resolución cumplan el SLA.
- Un e-commerce vincula un reclamo con el contacto, la empresa y el deal antes de decidir cómo atenderlo.
- Un ISP distribuye averías entre grupos de soporte, vigila vencimientos y escala los casos que esperan atención.
- Una empresa de servicios conserva el hilo, notas internas y actividad de cada solicitud para dar continuidad entre turnos.
Que lo hace diferente
- El ticket comparte contexto con el contacto, la compañía y el deal del CRM, en vez de vivir en un repositorio de soporte aislado.
- Las respuestas de correo entrantes y salientes se incorporan al hilo del ticket cuando hay un canal de Helpdesk activo.
- Puede usar SLA basados en horarios laborales, con pausas e incumplimientos visibles en la cola y el detalle.
- Las automatizaciones nativas se activan al crear o actualizar tickets y ante incumplimientos de SLA; pueden asignar, responder, anotar o añadir seguidores.
- Los asistentes IA disponen de herramientas internas para crear, consultar y buscar tickets desde sus conversaciones.
Acceso
- Ruta principal:
/[orgId]/helpdesk - Como se llega:
Header app switcher > Alpha & Beta > Helpdesk - Permiso requerido:
can_access_helpdesk
Alcance técnico
- Frontend:
HelpdeskListView.tsx,HelpdeskNewTicketView.tsx,HelpdeskTicketDetailView.tsxyHelpdeskRelatedCrmSection.tsx. - Backend:
helpdesk-tickets,helpdesk-ticket-messages,helpdesk-ticket-events,helpdesk-ticket-merge,helpdesk-macro-runs,helpdesk-ticket-batch-actionsycron-helpdesk-sla. - Superficies públicas:
helpdesk-csat-surveyrecibe valoraciones desde el enlace enviado al solicitante. - Integraciones externas: los canales Helpdesk envían respuestas por correo y el receptor de SES incorpora los correos entrantes al hilo.
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Cola de tickets | ticket-queue.md | Lista tickets por vistas operativas, con SLA y datos de asignación. |
| Vistas guardadas | saved-views.md | Conserva filtros y orden como vista personal o compartida. |
| Filtrado y búsqueda | ticket-filters.md | Busca y reduce la cola por responsable, grupo, fecha, estado, prioridad y tipo. |
| Presentación de cola | ticket-layout.md | Alterna entre las vistas Dense layout y Card layout. |
| Exportación | ticket-export.md | Descarga los resultados filtrados visibles en CSV. |
| Acciones masivas | bulk-ticket-actions.md | Actualiza o elimina hasta el límite permitido de tickets. |
| Crear ticket | create-ticket.md | Crea un ticket manual y su mensaje inicial. |
| Detalle | ticket-details.md | Reúne hilo, información, SLA, actividad, relaciones y responsabilidad. |
| Estados | ticket-status.md | Resuelve, cierra o reabre tickets y ajusta sus temporizadores. |
| Prioridad y tipo | ticket-priority-and-type.md | Clasifica el ticket con las opciones configuradas. |
| Enrutamiento | ticket-routing.md | Asigna grupo, agente y asistente de IA. |
| Respuestas | ticket-replies.md | Registra y, con un canal activo, envía una respuesta al solicitante. |
| Notas privadas | private-notes.md | Añade mensajes visibles solo para agentes. |
| Respuestas guardadas | canned-responses.md | Inserta texto de una respuesta reutilizable. |
| Etiquetas | ticket-tags.md | Añade, crea o retira etiquetas del ticket. |
| Seguimiento | ticket-watchers.md | Suscribe al agente actual a las actualizaciones. |
| SLA | ticket-sla.md | Muestra objetivos de respuesta y resolución, pausas e incumplimientos. |
| Actividad | ticket-activity.md | Muestra cambios auditados y eventos operativos. |
| Relaciones CRM | ticket-crm-relations.md | Vincula contacto, compañía y negocio. |
| Fusión | ticket-merge.md | Integra un ticket origen en otro del mismo espacio de trabajo. |
| Macros | ticket-macros.md | Ejecuta acciones preconfiguradas sobre un ticket. |
| CSAT | ticket-csat.md | Solicita y registra la valoración posterior a la resolución. |
Relaciones
- Depende de: Configuración Helpdesk, Contactos, Compañías, Deals, equipos y canales de correo de Helpdesk.
- Usado por: Insights de Helpdesk, automatizaciones y asistentes de IA de Helpdesk.
Limitaciones y notas
- Convive con CRM
tickets-legacy(customer-service), el inbox anterior para mensajes de correo. No comparten registros, cola ni flujo de ticketing. - Un miembro puede tener alcance
all,groupoassigned; el acceso a configuración requierecan_manage_helpdesk_settings.
APP: internal
Internal
Consola interna de plataforma.
- Etapa: Admin
- Landing:
/internal
Modulos
| Modulo | Slug | Estado | Proposito |
|---|---|---|---|
| Internal home | home |
admin | Consola admin de plataforma. |
| Partners admin | partners-admin |
admin | Aplicaciones, directory, payouts, analytics. |
| AI Models | ai-models |
admin | Catalogo OpenRouter admin. |
| Internal reports | reports |
admin | Wallet, affiliates, uso de IA. |
Funcionalidades internas
28 funcionalidades documentadas en 4 modulos. Ver la tabla de cada modulo.
id: ai-models app: internal nombre: AI Models estado: admin permiso: admin o superadmin
AI Models
Catálogo interno de modelos de IA, sus precios y las superficies de AchieveApex donde pueden utilizarse.
Para que sirve
- Decidir qué modelos de IA puede elegir cada superficie de asistentes.
- Registrar precios mostrados al cliente y la disponibilidad de un modelo.
- Sincronizar costes y metadatos de modelos ya registrados en OpenRouter.
- Detectar asistentes que usan un modelo antes de retirarlo.
- Ver qué asistentes y organizaciones realmente consumieron un modelo en un rango de fechas, y simular otro multiplicador.
- Migrar en lote asistentes hacia un modelo de reemplazo.
Que lo hace diferente
- El catálogo controla por separado conversaciones, tickets, AI chat y voz.
- Los asistentes que usan OpenRouter se enrutan por la integración de proveedor correspondiente.
- El coste real de OpenRouter se combina con un multiplicador de coste para el cobro de uso.
- Sincronizar el proveedor actualiza sus costes y metadatos sin sustituir los precios al cliente salvo que se solicite.
- Retirar un modelo usa borrado suave, preservando el historial y las configuraciones existentes.
Acceso
- Ruta principal:
/internal/models - Como se llega:
Header app switcher > Internal > AI Models - Permiso requerido: rol de plataforma
adminosuperadmin
Alcance tecnico
- Frontend:
src/app/(internal)/internal/models/ysrc/components/internal/ai-models/ - Backend:
ai-models,ai-models-openrouter,ai-models-migrate-assistantsyai-models-consumption - Superficies publicas: ninguna
- Integraciones externas: OpenRouter
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Catálogo de modelos | model-catalog.md | Busca, filtra y consulta modelos registrados. |
| Configuración de modelo | model-configuration.md | Crea o edita precios y disponibilidad. |
| Sincronización OpenRouter | openrouter-sync.md | Actualiza metadatos y costes del proveedor. |
| Migración de asistentes | assistant-model-migration.md | Cambia en lote el modelo de asistentes existentes. |
Relaciones
- Depende de: OpenRouter y asistentes de IA.
- Usado por: asistentes de conversaciones, tickets, AI chat y voz.
Limitaciones y notas
- Ocultar un modelo de los selectores no elimina sus configuraciones existentes.
id: home app: internal nombre: Inicio interno estado: admin permiso: admin o superadmin
Inicio interno
Consola de administración transversal de AchieveApex para personal de plataforma. Reúne el acceso al soporte Nova y a las áreas internas.
Para que sirve
- Supervisar la adopción, fricción, coste y calidad de Nova Support en toda la plataforma.
- Convertir feedback de respuestas de Nova en casos atendidos por personas.
- Mantener habilidades de conocimiento global para que Nova responda sobre configuraciones reales.
- Acceder a las áreas internas sin cambiar el alcance global de administración.
Que lo hace diferente
- Nova conecta las métricas de uso, el feedback y el historial conversacional con el flujo real de soporte.
- Una calificación puede convertirse en un caso enlazado a la conversación que la originó.
- El conocimiento operativo se publica como habilidades consultables por Nova, no como texto fijo en la interfaz.
- La consola opera sobre toda la plataforma y no sobre una organización seleccionada.
Acceso
- Ruta principal:
/internal - Como se llega:
Header app switcher > Internal - Permiso requerido: rol de plataforma
adminosuperadmin
Alcance tecnico
- Frontend: rutas bajo
src/app/(internal)/internal/y componentessrc/components/internal/nova-support/ - Backend:
support-chat-conversations,support-chat-messages,support-chat-message-feedback,nova-support-knowledge-skillsyreports - Superficies publicas: ninguna
- Integraciones externas: OpenRouter para la respuesta de Nova
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Navegación de administración | admin-navigation.md | Entrada y restricciones del área interna. |
| Uso de Nova Support | nova-support-usage.md | Métricas de adopción, fricción y calidad. |
| Feedback de Nova Support | nova-support-feedback.md | Revisión de calificaciones y creación de casos. |
| Conocimiento de Nova Support | nova-support-knowledge.md | Gestión de habilidades de conocimiento globales. |
| Conversaciones de Nova Support | nova-support-conversations.md | Consulta del contexto conversacional desde el feedback. |
Relaciones
- Depende de: Support Admin y AI Models.
- Usado por: administradores de plataforma.
Limitaciones y notas
- Las rutas internas no llevan
[orgId]; el selector de organización del encabezado no cambia su alcance global.
id: partners-admin app: internal nombre: Administración de partners estado: admin permiso: admin o superadmin
Administración de partners
Herramientas internas para revisar partners, su atribución de clientes, comisiones, pagos y desempeño.
Para que sirve
- Revisar y aprobar solicitudes de agencias y afiliados.
- Atribuir organizaciones cliente a partners y verificar sus relaciones.
- Auditar comisiones y decidir qué retiros de partners se procesan.
- Ejecutar y seguir pagos de partners en Wise.
- Medir crecimiento, activación, churn, concentración y economía del programa.
- Identificar organizaciones Implementor y su situación dentro del programa.
Que lo hace diferente
- La atribución de clientes, comisiones y payouts se conectan en el mismo flujo operativo.
- Los payouts se ejecutan en Wise y se concilian por webhook y proceso programado; no se marcan manualmente como pagados.
- Un reintento de financiación reutiliza la transferencia pendiente, evitando duplicar pagos.
- La analítica distingue el tipo de partner desde el cliente referido, evitando una clasificación errónea en el ledger.
- El programa reúne agencias y afiliados bajo una operación común, conservando sus datos de referencia y economía.
Acceso
- Ruta principal:
/internal/partners - Como se llega:
Header app switcher > Internal > Partners - Permiso requerido: rol de plataforma
adminosuperadmin; algunas vistas requierensuperadmin
Alcance tecnico
- Frontend:
src/app/(internal)/internal/partners/ysrc/components/internal/partners/ - Backend:
partners-agency-applications,partners-transactions,partners-payouts,partner-payout-accounts,partners-metricsyreports - Superficies publicas: ninguna en esta consola
- Integraciones externas: Wise para ejecución de payouts
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Directorio de partners | partner-directory.md | Busca y abre organizaciones partner. |
| Revisión de aplicaciones | partner-applications.md | Consulta y cambia el estado de solicitudes. |
| Perfil y atribución de partner | partner-overview.md | Ve el perfil y sus relaciones. |
| Clientes referidos | partner-clients.md | Asigna o desvincula clientes de un partner. |
| Comisiones de partner | partner-commissions.md | Consulta el ledger y sus estados. |
| Cuentas de payout | partner-payout-accounts.md | Consulta destinos de cobro registrados. |
| Cola de payouts | partner-payout-review.md | Revisa solicitudes y sus importes. |
| Ejecución y conciliación Wise | partner-payout-execution.md | Aprueba, reintenta o cancela pagos. |
| Analítica de partners | partner-analytics.md | Analiza crecimiento, red y economía. |
| Implementadores | partner-implementors.md | Consulta organizaciones implementadoras. |
| Equipo de partner | partner-team.md | Consulta integrantes de una organización partner. |
Relaciones
- Depende de: Organizations, Stripe Billing y Wallet.
- Usado por: Agencies & Affiliates y Support Admin.
Limitaciones y notas
- El pago efectivo lo confirma Wise mediante webhooks y conciliación; no se puede marcar manualmente como procesado o pagado.
id: reports app: internal nombre: Informes internos estado: admin permiso: superadmin
Informes internos
Informes globales de plataforma, incluidos el constructor asistido por IA y las vistas administrativas de wallet, suscripciones y afiliados.
Para que sirve
- Crear páginas globales para vigilar la operación de toda la plataforma.
- Construir gráficos, tablas y métricas sobre suscripciones, wallet, partners u otros datos internos.
- Pedir a la IA que cree o modifique informes desde una descripción en lenguaje natural.
- Aplicar filtros por página solo a los widgets que los necesitan.
- Consultar reportes administrativos preexistentes de wallet, suscripciones y afiliados.
Que lo hace diferente
- El constructor con IA crea y ajusta páginas y widgets internos después de probar sus consultas.
- Los informes son globales y no se limitan automáticamente a una organización.
- El modelo de filtros enlaza explícitamente cada widget, evitando cambios no deseados en una página.
- Conviven un lienzo configurable por IA y reportes administrativos especializados de wallet, suscripciones y afiliados.
- El acceso es exclusivo de
superadmin, separado de los informes de cada organización.
Acceso
- Ruta principal:
/internal/reports - Como se llega:
Header app switcher > Internal > Reports - Permiso requerido: rol de plataforma
superadmin; las rutas/reports/*son reportes administrativos separados
Alcance tecnico
- Frontend:
src/app/(internal)/internal/reports/,src/components/internal/reports/ysrc/app/(reports)/reports/ - Backend:
internal-report-pages,internal-report-widgets,internal-report-widget-data,internal-ai-report-builderyreports - Superficies publicas: ninguna
- Integraciones externas: OpenRouter para el constructor asistido
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Páginas de informe | report-pages.md | Crea y selecciona páginas globales. |
| Constructor de informes con IA | ai-report-builder.md | Pide a IA crear o modificar informes. |
| Widgets y diseño | report-widgets.md | Consulta, mueve y ajusta visualizaciones. |
| Filtros de informe | report-filters.md | Define filtros por página y su alcance. |
| Wallet: resumen | wallet-overview.md | Consulta el reporte global de wallet. |
| Wallet: tendencias y conceptos | wallet-breakdowns.md | Consulta cortes diarios, mensuales y por concepto. |
| Suscripciones activas | active-subscriptions.md | Filtra las suscripciones activas. |
| Reportes de afiliados | affiliate-reports.md | Consulta resumen, listado y transacciones. |
Relaciones
- Depende de: Organizations, Wallet, Stripe Billing y Partners.
- Usado por: personal de plataforma.
Limitaciones y notas
- Los informes internos son globales y no se limitan automáticamente a una organización.
APP: links
Links
Short links branded, actividad y analitica.
- Etapa: Beta
- Landing:
/{orgId}/links
Modulos
| Modulo | Slug | Estado | Proposito |
|---|---|---|---|
| Smart Links | smart-links |
beta | Short links branded (apx.red) y QR. |
| Activity | activity |
beta | Stream de eventos de clicks. |
| Analytics | analytics |
beta | Metricas agregadas de links. |
Funcionalidades internas
14 funcionalidades documentadas en 3 modulos. Ver la tabla de cada modulo.
id: activity app: links nombre: Actividad de Links estado: beta permiso: can_access_links
Actividad de Links
Registro de eventos individuales generados por los smart links.
Para que sirve
- Una agencia distingue escáneres automáticos de navegadores al evaluar la respuesta a una campaña.
- Un equipo comercial consulta la actividad reciente de un enlace antes de contactar al destinatario previsto.
- Una inmobiliaria abre el contacto o deal relacionado desde el evento para continuar la gestión comercial.
Que lo hace diferente
- Cada evento conserva el contexto CRM del enlace dentro de Apex, sin convertir una atribución en identificación comprobada.
- El modelo de confianza separa actividad técnica, automatización, humano probable y evidencia verificada.
- Las visitas medidas alimentan Activity, Analytics y el timeline CRM desde el mismo enlace
apx.red.
Acceso
- Ruta principal:
/[orgId]/links/activity - Como se llega:
Links > Activity - Permiso requerido:
can_access_links
Alcance tecnico
- Frontend: página de Activity
- Backend:
smart-link-eventsysmart-link-engagement - Superficies públicas: bridge de medición de enlaces
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Consultar actividad de links | activity-stream.md | Link Activity page |
| Interpretar confianza y atribución | event-confidence.md | Link Activity page |
Relaciones
- Depende de: Smart Links.
- Usado por: Analytics y CRM timeline.
Limitaciones y notas
- La clasificación de confianza no confirma identidad salvo evidencia
Verified.
id: analytics app: links nombre: Analítica de Links estado: beta permiso: can_access_links
Analítica de Links
Métricas agregadas y por enlace de las visitas de Apex Links.
Para que sirve
- Una agencia compara el interés técnico y humano probable de sus enlaces de campaña.
- Una inmobiliaria identifica el QR o enlace que concentra más actividad antes de invertir en otra promoción.
- Un equipo comercial analiza país, dispositivo y tendencia de un enlace asociado a un prospecto o deal.
Que lo hace diferente
- La analítica usa los eventos del enlace
apx.redy los conecta con Activity y el contexto CRM. - Distingue solicitudes automáticas de interacción humana probable, en vez de presentar todo request como una apertura de persona.
- Combina totales de vida útil con tendencias diarias, QR, país y dispositivo por enlace.
Acceso
- Ruta principal:
/[orgId]/links/analytics - Como se llega:
Links > Analytics - Permiso requerido:
can_access_links
Alcance tecnico
- Frontend: analítica de organización y detalle del enlace
- Backend:
smart-linksysmart-link-events - Superficies públicas: ninguna
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Ver analítica agregada | analytics-overview.md | Links Analytics page |
| Analizar un smart link | link-detail-analytics.md | SmartLinkDetailView.tsx |
| Consultar tendencia diaria por período | daily-trends.md | SmartLinkDailyTrendChart.tsx |
Relaciones
- Depende de: Smart Links y Activity.
- Usado por: equipos de campañas y CRM.
Limitaciones y notas
- La tendencia diaria es UTC; los totales son de vida útil.
id: smart-links app: links nombre: Smart Links estado: beta permiso: can_access_links
Smart Links
Gestión de enlaces cortos de Apex Links, códigos QR y atribución CRM.
Para que sirve
- Una agencia añade enlaces cortos con UTM a campañas y mide sus visitas sin exponer los parámetros en la URL compartida.
- Una inmobiliaria imprime un QR en una ficha y observa la actividad y el contexto del deal asociado.
- Un equipo comercial comparte un enlace para un prospecto y conserva la atribución prevista en el timeline CRM.
- Una empresa de eventos desactiva o vence enlaces promocionales cuando una campaña deja de estar vigente.
Que lo hace diferente
- Los enlaces usan el dominio
apx.red, QR dinámico y UTM aplicados al destino sin incluir datos personales en el slug. - Puede relacionar un enlace con contacto, empresa, deal o conversación del CRM y llevar sus eventos al timeline.
- Separa solicitudes técnicas, automatización probable, interacción humana probable y evidencia verificada, sin afirmar identidad por asociación CRM.
- La creación está disponible para Nova mediante una herramienta interna que entrega el enlace para enviarlo en conversaciones.
Acceso
- Ruta principal:
/[orgId]/links - Como se llega:
Header app switcher > Links - Permiso requerido:
can_access_links
Alcance tecnico
- Frontend: lista, creación, QR y edición de enlaces
- Backend:
smart-links, redirect y eventos - Superficies públicas:
https://apx.red/{slug} - Integraciones externas: Route 53/ALB e IP2Location LITE
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Crear un smart link | create-smart-link.md | CreateSmartLinkDialog.tsx |
| Personalizar el slug del enlace | custom-slug.md | Define o genera el Back-half de apx.red. |
| Generar código QR dinámico | smart-link-qr.md | SmartLinkQrDialog.tsx |
| Definir vencimiento del enlace | link-expiration.md | Configura cuándo deja de redirigir. |
| Asociar un smart link con CRM | crm-attribution.md | RelatedEntitySelector.tsx |
| Configurar seguimiento UTM | utm-tracking.md | CreateSmartLinkDialog.tsx |
| Registrar conversiones de Apex Link | record-conversions.md | WhatsApp automático vs formulario web con click_token y contact_id. |
| Editar, desactivar y eliminar smart links | edit-smart-link.md | EditSmartLinkDialog.tsx, SmartLinksView.tsx |
| Redirigir y medir visitas | redirect-measurement.md | smart-link-redirect.js |
| Consultar configuración de Links | link-settings.md | Links Settings page |
Relaciones
- Depende de: CRM y Organizations.
- Usado por: Activity, Analytics y timeline de CRM.
Limitaciones y notas
- No se deben incluir datos personales en el slug.
APP: marketplace
Marketplace
Marketplace installs versioned CRM configuration templates into an organization: roles, custom fields, tags, pipelines, activity types, lost reasons, email templates, quick replies, and forms.
Private templates stay visible to the author. Public templates appear in the catalog only after AchieveApex approval.
Updates keep local changes unless you choose to apply the template version.
APP: meetings
Meetings
Grabaciones, booking links y transcripts.
- Etapa: Produccion
- Landing:
/{orgId}/meetings
Modulos
| Modulo | Slug | Estado | Proposito |
|---|---|---|---|
| Recordings | recordings |
shipped | Grabaciones Recall.ai, transcripcion y resumen. |
| Booking links | booking-links |
shipped | Scheduling tipo Calendly. |
| Settings | settings |
shipped | Defaults de org y share publico. |
| Transcript publico | transcript-publico |
shipped | Share /mt/{token}. |
Funcionalidades internas
19 funcionalidades documentadas en 4 modulos. Ver la tabla de cada modulo.
id: booking-links app: meetings nombre: Enlaces de reserva estado: shipped permiso: acceso a la app Meetings
Enlaces de reserva
Permite publicar páginas para que invitados reserven tiempo en el calendario conectado de un miembro del equipo. Se pueden ver y crear enlaces para otros anfitriones si ya conectaron Google u Outlook.
Para que sirve
- Una agencia permite que cada asesor comercial reciba reuniones sin coordinar horarios por correo.
- Una clínica agenda llamadas de orientación respetando los bloques y excepciones del profesional.
- Una inmobiliaria convierte solicitudes de visita en una actividad CRM y un contacto desde la página pública.
- Una firma B2B reduce ausencias con confirmaciones y recordatorios automáticos para prospectos.
Que lo hace diferente
- Cada reserva consulta la disponibilidad real de Google Calendar u Outlook y crea una actividad CRM vinculada al contacto.
- Funciona como una página personal de agenda, no como reservas de servicios, pagos, grupos o round robin.
- El formulario público puede actualizar contactos y usar campos personalizados seleccionados de Apex.
- La reserva sincroniza el evento con el calendario del anfitrión y puede crear Google Meet.
Acceso
- Ruta principal:
/[orgId]/meetings/booking-links - Como se llega:
Header app switcher > Meetings > Booking links - Permiso requerido: acceso a la app Meetings
Alcance tecnico
- Frontend: lista, editor y página pública de reserva.
- Backend:
meeting-booking-links,meeting-bookings,public-meeting-booking. - Superficies publicas:
/m/[orgId]/[slug]y su página de gestión. - Integraciones externas: Google Calendar, Outlook, S3 y SES.
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Gestionar enlaces | manage-booking-links.md | Crea, edita, comparte y pausa páginas. |
| Configurar disponibilidad | availability.md | Define duración, horarios y excepciones. |
| Reglas de reserva | booking-rules.md | Aplica ventanas, aviso, buffers y límites. |
| Formulario del invitado | guest-form.md | Recoge datos y actualiza el CRM. |
| Confirmación y correos | confirmation-emails.md | Configura página, avisos y recordatorios. |
| Reserva pública | public-booking.md | El invitado elige horario y confirma. |
Relaciones
- Depende de: Calendar Sync, Contactos, Actividades y campos personalizados.
- Usado por: calendario conectado y CRM.
Limitaciones y notas
- Es una reserva uno a uno; no ofrece pagos, grupos ni round robin.
id: recordings app: meetings nombre: Grabaciones de reuniones estado: shipped permiso: acceso a la app Meetings
Grabaciones de reuniones
Consulta y comparte reuniones capturadas por el bot de AchieveApex, con reproducción y transcripción.
Para que sirve
- Una consultora conserva reuniones de descubrimiento junto al contacto y deal para preparar propuestas con el contexto original.
- Una inmobiliaria revisa conversaciones con prospectos y comparte la transcripción con agentes que no asistieron.
- Un equipo de ventas identifica participantes e historial de una llamada antes de retomar una oportunidad.
- Una empresa de servicios convierte audios grabados desde el CRM en texto cuando necesita documentar una interacción.
Que lo hace diferente
- La reunión se relaciona con contactos, empresas y deals del CRM en lugar de quedar aislada en una biblioteca de notas.
- Puede capturarse con un bot de Recall desde reuniones de calendario o transcribirse desde una grabación de micrófono del CRM.
- El procesamiento de grabaciones y transcripciones consume saldo de la wallet de la organización.
- Las transcripciones se pueden compartir mediante un enlace público administrable desde el detalle de la reunión.
Acceso
- Ruta principal:
/[orgId]/meetings - Como se llega:
Header app switcher > Meetings > Recordings - Permiso requerido: acceso a la app Meetings
Alcance tecnico
- Frontend: lista, detalle y controles de compartición de Meetings.
- Backend:
meeting-transcriptions,recall-webhooks,meeting-recording-transcription. - Integraciones externas: Recall, OpenAI, S3 y wallet.
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Lista y filtros | recordings-list.md | Busca y filtra grabaciones Recall. |
| Detalle y reproducción | meeting-detail.md | Revisa contenido y contexto de una reunión. |
| Transcripción interactiva | interactive-transcript.md | Navega la grabación desde el texto. |
| Resumen de participantes | participants.md | Distingue equipo e invitados. |
| Compartir transcripción | share-transcript.md | Controla el enlace público. |
| Captura con bot Recall | recall-bot.md | Procesa reuniones de calendario. |
| Transcribir audio del CRM | crm-audio-transcription.md | Solicita STT para una grabación local. |
| Recuperar transcripciones | transcript-recovery.md | Continúa tras un fallo del proveedor. |
Relaciones
- Depende de: Calendar Sync, Contactos, Deals y wallet.
- Usado por: actividad CRM y transcripción pública.
Limitaciones y notas
- La lista muestra solo grabaciones de origen Recall; las reservas no aparecen aquí.
id: settings app: meetings nombre: Ajustes de Meetings estado: shipped permiso: acceso a la app Meetings
Ajustes de Meetings
Centraliza la configuración organizacional de los correos automáticos de transcripciones.
Para que sirve
- Una consultora decide que todos los asistentes reciban el enlace a la transcripción después de una reunión capturada.
- Un despacho regula centralmente el envío de transcripciones para evitar compartirlas automáticamente.
- Un equipo de ventas mantiene el mismo criterio de seguimiento de reuniones para toda la organización.
Que lo hace diferente
- El ajuste gobierna el envío de enlaces públicos generados por las grabaciones Recall de Apex, no una campaña de correo independiente.
- Los destinatarios se obtienen de asistentes de calendario y participantes de la reunión, sin duplicados.
- El enlace público se integra con las grabaciones y su control de acceso, por lo que apagar el envío no altera enlaces ya creados.
Acceso
- Ruta principal:
/[orgId]/meetings/settings - Como se llega:
Header app switcher > Meetings > Settings - Permiso requerido: acceso a la app Meetings
Alcance tecnico
- Frontend:
MeetingsSettingsView. - Backend:
organization-meetings-settings. - Integraciones externas: SES.
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Correo automático de transcripción | transcript-emails.md | Activa o detiene los correos a asistentes. |
| Valores predeterminados | default-settings.md | Crea la configuración inicial de la organización. |
Relaciones
- Depende de: Grabaciones de reuniones.
- Usado por: transcripción pública.
Limitaciones y notas
- Este ajuste no cambia enlaces públicos ya creados.
id: transcript-publico app: meetings nombre: Transcripción pública estado: public permiso: ninguno
Transcripción pública
Comparte una transcripción de reunión mediante un enlace que no requiere iniciar sesión.
Para que sirve
- Una consultora entrega a clientes el registro de una sesión de trabajo sin crearles usuarios en Apex.
- Una agencia comparte la llamada de aprobación con un cliente y mantiene el detalle asociado al CRM.
- Un equipo comercial envía a los asistentes el enlace a la conversación cuando termina la transcripción Recall.
Que lo hace diferente
- El enlace nace desde una grabación de Meetings y se puede revocar o regenerar desde el detalle CRM.
- Para reuniones Recall, Apex puede enviar el enlace automáticamente a asistentes y participantes mediante correo de sistema.
- La página pública muestra participantes sin revelar sus correos y renueva el acceso temporal al video cuando corresponde.
Acceso
- Ruta principal:
/mt/[token] - Como se llega:
Meetings > Recordings > Share - Permiso requerido: ninguno para la página; acceso a Meetings para administrarla
Alcance tecnico
- Frontend:
PublicMeetingTranscriptViewyMeetingShareControls. - Backend:
public-meeting-transcriptymeeting-transcriptions. - Superficies publicas:
/mt/[token]. - Integraciones externas: Recall, S3 y SES.
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Consultar transcripción pública | view-transcript.md | Presenta contenido sanitizado a cualquier visitante. |
| Administrar enlace público | manage-share-link.md | Habilita, deshabilita o regenera el enlace. |
| Enviar enlace por correo | automatic-email.md | Avisa a los asistentes de reuniones Recall. |
Relaciones
- Depende de: Grabaciones y Ajustes de Meetings.
- Usado por: asistentes de una reunión.
Limitaciones y notas
- El correo automático no se aplica a grabaciones de micrófono del CRM.
APP: operations
Operations
Proyectos, tareas, equipos y OKRs.
- Etapa: Produccion
- Landing:
/{orgId}/operations/tasks
Modulos
| Modulo | Slug | Estado | Proposito |
|---|---|---|---|
| Proyectos | proyectos |
shipped | Workspaces con tasks, scope, roadmap, docs y miembros. |
| My Tasks | my-tasks |
shipped | Hub de tareas cross-project. |
| Teams | teams |
shipped | Equipos de operaciones. |
| Strategy / OKRs | strategy-okrs |
shipped | Estrategias, ciclos, objetivos y key results. |
| Reports | reports |
shipped | Reportes de operaciones. |
Funcionalidades internas
52 funcionalidades documentadas en 5 modulos. Ver la tabla de cada modulo.
id: my-tasks app: operations nombre: Mis tareas estado: shipped permiso: can_access_tasks
Mis tareas
Hub transversal para consultar y ejecutar tareas de proyectos, de una persona o de un equipo.
Para que sirve
- Una consultora permite a cada especialista concentrar los compromisos de varios clientes en una sola vista personal.
- Una agencia revisa la carga de un equipo y redistribuye tareas vencidas antes de afectar una entrega.
- Un equipo de implementación coordina bloqueos, subtareas, comentarios y responsables para cerrar un despliegue.
- Un estudio profesional sigue tareas por proyecto, hito y prioridad sin separar el trabajo operativo de su contexto.
Que lo hace diferente
- Reúne tareas de Projects y tareas que ejecutan resultados clave de Strategy / OKRs.
- Las asignaciones se apoyan en miembros de proyectos y equipos, y actualizan My Tasks, Workload y Reports.
- Las tareas alimentan progreso de proyecto, hitos, bitácora de actividad y reportes de cumplimiento.
- Nova y el MCP de AchieveApex pueden crear, consultar y actualizar tareas, dependencias, comentarios y asignaciones.
Acceso
- Ruta principal:
/[orgId]/operations/tasks - Como se llega:
Operations sidebar > My Tasks. - Permiso requerido:
can_access_tasks; las acciones respetan permisos de Tasks para todos o tareas propias.
Alcance tecnico
- Frontend:
operations/tasks, tablero de tareas y panel/detalle. - Backend:
ops-project-tasks,ops-tasks, statuses, listas, assignees, comments, dependencies, attachments y activities. - Integraciones externas: notificaciones de asignación.
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Hub cross-project | cross-project-hub.md | Consulta tareas propias, de una persona o equipo. |
| Crear y editar tareas | task-management.md | Gestiona atributos y programación. |
| Vistas de tareas | task-views.md | Alterna List, Kanban, Calendar, Timeline, Swimlane y Workload. |
| Buscar, filtrar y agrupar | task-filtering.md | Reduce y organiza el conjunto visible. |
| Acciones masivas | bulk-task-actions.md | Actualiza o elimina tareas seleccionadas. |
| Subtareas | subtasks.md | Crea, completa y elimina tareas hijas. |
| Asignación | task-assignees.md | Asigna miembros y notifica cambios. |
| Estados e hitos | task-statuses-milestones.md | Define estados y vincula tareas a hitos. |
| Comentarios | task-comments.md | Conversaciones con respuestas en hilo. |
| Dependencias | task-dependencies.md | Conecta bloqueos y relaciones. |
| Actividad | task-activity.md | Consulta la bitácora de cambios. |
| Adjuntos | task-attachments.md | Consulta y elimina adjuntos existentes. |
Relaciones
- Depende de: Projects y Teams.
- Usado por: Reports, Project Tasks y Strategy / OKRs.
Limitaciones y notas
My Taskses el destino por defecto al abrir Operations.- La carga de archivos desde
AttachmentsmuestraComing soon; solo pueden abrirse o eliminarse adjuntos existentes. - El panel lateral no administra dependencias; están únicamente en la página completa de tarea.
id: proyectos app: operations nombre: Proyectos estado: shipped permiso: can_access_projects
Proyectos
Workspaces para planificar y ejecutar trabajo por proyecto. Reúnen tareas, alcance, roadmap, documentos, miembros y vínculos con CRM.
Para que sirve
- Una agencia digital convierte cada
Dealganado en un proyecto con responsable, entregables y fechas comprometidas con el cliente. - Una consultora conserva alcance, documentos y cambios aprobados de una implementación en el mismo workspace que ejecuta el equipo.
- Un estudio de arquitectura organiza hitos, planos y entregables de cada obra, sin perder la relación con la empresa contratante.
- Un equipo de servicios recurrentes genera y sigue los entregables de cada período para detectar compromisos pendientes.
Que lo hace diferente
- Vincula el proyecto con Contacts, Companies, Deals, Invoices y Quotes del CRM; desde esos registros se puede volver al trabajo de entrega.
- Formaliza entregables, documentos de alcance y cambios manuales o generados al modificar el alcance.
- Conecta la ejecución con My Tasks, Teams, Strategy / OKRs y los reportes de plazos y alcance.
- Nova y el MCP de AchieveApex pueden crear y consultar proyectos, tareas, documentos, entregables y cambios de alcance.
Acceso
- Ruta principal:
/[orgId]/operations/projects - Como se llega:
Operations sidebar > Projectso una colección/proyecto del sidebar. - Permiso requerido:
can_access_projects; crear, editar y eliminar respetan permisos granulares de Projects. Los miembrosAdminpueden administrar miembros y archivar su proyecto.
Alcance tecnico
- Frontend: rutas de Projects, workspace del proyecto y
Operations settings. - Backend:
ops-projects, miembros, documentos, entregables, cambios de alcance, hitos, colecciones y duplicación. - Integraciones externas: vínculos con Contactos, Companies, Deals, Invoices y Quotes del CRM.
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Crear y editar proyectos | project-management.md | Configura identidad, fechas, visibilidad, colección y CRM. |
| Explorar proyectos | project-browse.md | Busca, filtra y abre workspaces. |
| Dashboard del proyecto | project-dashboard.md | Resume progreso, tareas, miembros, alcance e hitos. |
| Vínculos CRM | project-crm-links.md | Relaciona el proyecto con entidades comerciales. |
| Favoritos | project-favorites.md | Fija proyectos personales en el sidebar. |
| Miembros del proyecto | project-members.md | Agrega usuarios y asigna roles. |
| Documentos de proyecto | project-documents.md | Crea, edita y organiza documentos Markdown. |
| Acceso a documentos | document-access.md | Define quién puede ver, editar y administrar documentos. |
| Entregables | deliverables.md | Define y sigue entregables del alcance. |
| Entregables recurrentes | recurring-deliverables.md | Genera y administra instancias periódicas. |
| Cambios de alcance | scope-changes.md | Registra cambios manuales y automáticos. |
| Documentos de entregable | deliverable-documents.md | Vincula documentos de alcance con entregables. |
| Roadmap e hitos | roadmap-milestones.md | Planifica hitos y tareas en una línea de tiempo. |
| Archivado y restauración | project-archiving.md | Archiva, restaura y elimina proyectos archivados. |
| Colecciones | project-collections.md | Agrupa proyectos y administra miembros. |
| Duplicación de proyecto | project-duplication.md | Previsualiza y copia un proyecto. |
| Templates | project-templates.md | Expone el estado actual de templates. |
Relaciones
- Depende de: My Tasks, Teams, Strategy / OKRs, Contactos, Companies y Deals.
- Usado por: Reports, CRM y el sidebar de Operations.
Limitaciones y notas
- El layout del proyecto expone
Dashboard,Scope,Roadmap,Tasks,DocsyMembers; no existe una pestañaCalendarpropia. - El acceso rápido
Calendarde la página raíz de Operations apunta a/[orgId]/operations/calendar, pero esa ruta no tiene página implementada. Templatesy usarTemplatecomo fuente de duplicación están marcados comoComing soon.
id: reports app: operations nombre: Reportes de operaciones estado: shipped permiso: can_access_operations
Reportes de operaciones
Analiza ejecución, carga, plazos y alcance de Operations.
Para que sirve
- Una agencia detecta proyectos con tareas vencidas, entregables atrasados o cambios de alcance antes de la reunión con el cliente.
- Una consultora compara la carga y las horas estimadas por miembro para reasignar trabajo.
- Un equipo de implementación evalúa si sus entregas se completan antes, en o después de las fechas comprometidas.
- Un estudio profesional revisa el volumen de actividad y avance del portafolio en un período común.
Que lo hace diferente
- Reporta sobre proyectos, tareas, hitos, entregables y cambios de alcance que se ejecutan dentro de AchieveApex.
- Relaciona cumplimiento de plazos y alcance con los proyectos que pueden estar vinculados a Deals, Contacts y Companies del CRM.
- Usa equipos, miembros, colecciones y proyectos como filtros compartidos con Operations.
- Complementa el seguimiento operativo con OKRs conectados a tareas, en vez de limitarse a tableros aislados.
Acceso
- Ruta principal:
/[orgId]/operations/reports - Como se llega:
Operations sidebar > Reports. - Permiso requerido: acceso a Operations.
Alcance tecnico
- Frontend:
ReportsPage.tsx, filtros y siete pestañas. - Backend:
ops-reporting.
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Filtros globales | report-filters.md | Acota todos los reportes. |
| Resumen ejecutivo | executive-summary.md | KPIs y salud del portafolio. |
| Vista de proyectos | projects-overview.md | Progreso, plazos e hitos. |
| Analítica de tareas | task-analytics.md | Estado, prioridad y tendencia. |
| Carga de equipos | team-workload.md | Distribución por miembro. |
| Actividad | activity-timeline.md | Tendencias y feed operativo. |
| Precisión de plazos | deadline-accuracy.md | Desviación de proyectos y tareas. |
| Cumplimiento de alcance | scope-compliance.md | Entregables y cambios de alcance. |
Relaciones
- Depende de: Projects, My Tasks y Teams.
- Usado por: responsables de Operations.
Limitaciones y notas
- El período inicial corresponde a los últimos 30 días.
id: strategy-okrs app: operations nombre: Estrategia y OKRs estado: shipped permiso: can_access_strategy
Estrategia y OKRs
Espacio para definir estrategias, ciclos, objetivos, resultados clave y las tareas que los ejecutan.
Para que sirve
- Una consultora traduce su plan anual en ciclos, objetivos medibles y tareas con responsables.
- Una agencia conecta la meta de retención de clientes con resultados clave y el trabajo que debe ejecutarla.
- Un equipo de implementación actualiza avances y notas para detectar objetivos que requieren intervención.
- Un estudio profesional prioriza iniciativas por ciclo y revisa si su ejecución alcanza la meta definida.
Que lo hace diferente
- Une objetivos y resultados clave con tareas ejecutables que también aparecen en My Tasks.
- Calcula progreso de objetivos y estrategias al cambiar resultados o registrar actualizaciones.
- Los equipos y responsables de la organización se usan en la planeación y ejecución, en lugar de mantener listas separadas.
- Nova y el MCP de AchieveApex pueden crear y consultar objetivos, key results, ciclos y tareas de OKR.
Acceso
- Ruta principal:
/[orgId]/operations/strategy - Como se llega:
Operations sidebar > Strategy. - Permiso requerido:
can_access_strategy; vista, creación, edición y eliminación distinguen registros propios y todos.
Alcance tecnico
- Frontend: lista de estrategias, detalle y árbol de OKRs.
- Backend:
ops-strategies, ciclos, objetivos, grupos, key results, actualizaciones, motivaciones yops-tasks.
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Estrategias | strategy-management.md | Crea y consulta programas estratégicos. |
| Ciclos | strategy-cycles.md | Administra períodos simples o por lotes. |
| Grupos de objetivos | objective-groups.md | Filtra objetivos por agrupación. |
| Objetivos | objectives.md | Crea y edita objetivos. |
| Cálculo ponderado | weighted-objectives.md | Configura ponderación de resultados clave. |
| Key results | key-results.md | Mide objetivos con varios tipos de resultado. |
| Progreso | okr-progress-updates.md | Actualiza y consulta el historial de avance. |
| Motivación y factibilidad | objective-context.md | Mantiene contexto cualitativo del objetivo. |
| Árbol de OKRs | okr-tree.md | Navega jerarquía de objetivos, resultados y tareas. |
| Tareas de OKR | okr-tasks.md | Ejecuta tareas dependientes de un key result. |
| Acciones masivas de tareas | okr-task-bulk-actions.md | Actualiza varias tareas del árbol. |
Relaciones
- Depende de: Teams y miembros de organización.
- Usado por: My Tasks y Reports.
Limitaciones y notas
- Las tareas de estrategia usan
ops-tasks; no son Project Tasks. - Componentes alternos de tarjetas y diálogos existen en el código, pero la interfaz actual usa
StrategyTreey paneles laterales.
id: teams app: operations nombre: Equipos estado: shipped permiso: can_access_operations
Equipos
Agrupa miembros de organización para visualizar carga de trabajo y filtrar Operations.
Para que sirve
- Una agencia separa diseño, cuentas y desarrollo para revisar el trabajo asignado a cada disciplina.
- Una consultora compara la carga de sus equipos de implementación antes de aceptar una nueva fase.
- Un estudio de arquitectura identifica qué equipo concentra tareas vencidas o demasiadas horas estimadas.
Que lo hace diferente
- Los equipos se usan directamente en
View as teamde My Tasks y en los filtros de Operations Reports. - La carga se calcula sobre tareas reales de Projects y no sobre una planificación aislada.
- Convive con los miembros específicos de cada proyecto, de modo que asignación y capacidad pueden revisarse en conjunto.
Acceso
- Ruta principal:
/[orgId]/operations/team - Como se llega:
Operations sidebar > Team. - Permiso requerido: acceso a Operations.
Alcance tecnico
- Frontend: página y diálogos de Teams.
- Backend:
ops-teamsyops-team-members.
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Explorar equipos | team-browse.md | Consulta tarjetas, información y miembros. |
| Crear equipos | team-create.md | Crea un equipo identificado por nombre y color. |
| Editar y eliminar equipos | team-edit-delete.md | Mantiene o retira un equipo. |
| Miembros de equipo | team-members.md | Agrega y elimina miembros de organización. |
Relaciones
- Depende de: miembros de organización.
- Usado por: My Tasks y Operations Reports.
Limitaciones y notas
- La eliminación se ejecuta desde el menú del equipo y no muestra un diálogo de confirmación.
APP: plataforma
Plataforma
Settings, billing, identidad, copilot y superficies de crecimiento.
- Etapa: Transversal
- Landing:
/{orgId}/settings
Modulos
| Modulo | Slug | Estado | Proposito |
|---|---|---|---|
| Organizacion | organizacion |
shipped | Settings generales, tags, custom fields, lost reasons. |
| Billing y Wallet | billing-wallet |
shipped | Plan Stripe, wallet prepaid y auto-recharge. |
| Equipo y permisos | equipo-permisos |
shipped | Members, roles y ACL granular (CASL). |
| Mi perfil | mi-perfil |
shipped | Perfil, calendar sync, Gmail, notificaciones. |
| Notificaciones | notificaciones |
shipped | Campana in-app, push, preferencias, platform alerts y announcements. |
| Partners / Affiliates | partners-affiliates |
partial | Agencias, comisiones y payouts Wise. |
| Developers | developers |
shipped | API keys, MCP, data sync. |
| Nova | nova |
shipped | Copilot interno de la org. |
| Nova Support | nova-support |
shipped | Asistente de soporte in-app + knowledge. |
| SoftPhone | softphone |
shipped | Llamadas WebRTC en el header. |
| AI Voices | ai-voices |
shipped | Marketplace TTS y clonacion de voz. |
| Ads | ads |
shipped | Facebook Lead Ads y Meta CAPI. |
| Academy | academy |
shipped | Cursos y lecciones para usuarios. |
| Community | community |
shipped | Ideas, roadmap y announcements. |
| API Docs | api-docs |
shipped | Referencia REST y tutorials. |
| Marketing site | marketing-site |
shipped | Paginas publicas de adquisicion. |
Funcionalidades internas
100 funcionalidades documentadas en 16 modulos. Ver la tabla de cada modulo.
id: academy app: plataforma nombre: Academy estado: shipped permiso: Por confirmar
Academy
Área de aprendizaje con cursos y lecciones localizadas, progreso del estudiante y superficies de administración.
Para que sirve
- Una empresa prepara cursos de onboarding para nuevos usuarios de AchieveApex.
- Un equipo de operaciones ofrece formación localizada para distintos mercados.
- Un administrador mantiene cursos, categorías, capítulos y lecciones desde el área administrativa.
- Un estudiante retoma su recorrido formativo con el progreso registrado por lección.
Que lo hace diferente
- Combina catálogo público localizado, contenido de curso y avance individual en una sola experiencia.
- El progreso se registra desde el consumo de lecciones, en lugar de depender de un seguimiento externo.
- Mantiene una superficie administrativa separada para el contenido que alimenta el catálogo público.
Acceso
- Ruta principal:
/academy/[localization]. - Como se llega: Por confirmar: entrada visible desde la aplicación.
- Permiso requerido: Por confirmar para contenido y administración.
Alcance tecnico
- Frontend: rutas
academy/[localization]yacademy/admin. - Backend:
academy-courses,academy-categories,academy-chapters,academy-lessons,academy-lesson-progress. - Superficies publicas:
/academy/[localization].
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Explorar cursos | courses.md | Catálogo localizado de cursos. |
| Consumir lecciones | lessons.md | Vista de curso y lecciones individuales. |
| Registrar progreso | lesson-progress.md | Seguimiento del avance del alumno. |
| Administrar Academy | academy-admin.md | Cursos, lecciones y categorías. |
Relaciones
- Depende de: contenido de Academy y localización.
- Usado por: usuarios que acceden a formación.
Limitaciones y notas
- Por confirmar: el modelo de acceso y publicación de cursos.
id: ads app: plataforma nombre: Ads estado: shipped permiso: owner o admin de la organización
Ads
Integra Meta Lead Ads y conversiones de CRM para optimización de campañas.
Para que sirve
- Una inmobiliaria recibe leads de formularios de Meta y los crea como contactos con la información mapeada.
- Un centro educativo distribuye los registros de campañas a asesores y dispara seguimientos automáticos.
- Un ecommerce devuelve conversiones del CRM a Meta para relacionar campañas con resultados comerciales.
Que lo hace diferente
- Integra Lead Ads, el mapeo hacia contactos, la distribución de propietarios y automatizaciones dentro del mismo CRM.
- La configuración de Meta Conversions permite mapear etapas estándar o personalizadas para flujos de Click-to-WhatsApp y Lead Ads.
- Mantiene historial de leads y conversiones para revisar atribución y enviar eventos de conversión manualmente cuando corresponde.
Acceso
- Ruta principal:
/[orgId]/settings - Como se llega:
Avatar menu > Settings - Permiso requerido: owner o admin de la organización
Alcance tecnico
- Frontend: rutas de Settings y My Profile relacionadas
- Backend: servicios Feathers de este módulo
- Superficies publicas: no aplica salvo integraciones de terceros
- Integraciones externas: Stripe, Google, Microsoft, Wise, Meta, S3 o proveedores de voz según la funcionalidad
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Conexión de Meta Lead Ads | lead-ads-connection.md | Conecta cuentas y páginas de Meta para recibir envíos de formularios Instant Form. |
| Formularios y mapeo de leads | lead-ads-forms.md | Configura la recepción de formularios y el mapeo de respuestas hacia contactos. |
| Distribución y automatización de leads | lead-distribution.md | Distribuye propietarios según reglas configuradas y puede disparar automatizaciones. |
| Leads y campañas de Meta | lead-ads-history.md | Consulta leads sincronizados, detalle por página y el resumen de campañas de solo lectura. |
| Configuración de Meta Conversions | meta-conversions.md | Configura dataset, eventos, pruebas de conexión y mapeo de etapas estándar o personalizadas para WhatsApp y Lead Ads. |
| Historial de conversiones Meta | conversion-history.md | Filtra contactos atribuidos por Click-to-WhatsApp o Lead Ads y permite enviar manualmente eventos de conversión. |
Relaciones
- Depende de: organizaciones, miembros y autenticación.
- Usado por: CRM, automatizaciones y las integraciones descritas.
Limitaciones y notas
- Se documenta únicamente el comportamiento confirmado en frontend, servicios y hooks revisados.
id: ai-voices app: plataforma nombre: Voces de IA estado: shipped permiso: owner o admin de la organización
Voces de IA
Catálogo de voces, síntesis de audio y biblioteca de la organización.
Para que sirve
- Una tienda genera anuncios de audio con una voz elegida y los conserva organizados para reutilizarlos.
- Un equipo de soporte envía respuestas de audio por WhatsApp, Instagram, Messenger o Webchat desde una conversación.
- Una empresa configura un asistente para responder con audio cuando la intención de la conversación lo requiere.
Que lo hace diferente
- Reúne marketplace, biblioteca por organización, síntesis y archivos de audio en el mismo entorno de conversaciones y asistentes IA.
- La síntesis se cobra por wallet según el uso real reportado por el proveedor; las previsualizaciones de catálogo no consumen saldo.
- El asistente puede listar voces guardadas y sintetizar respuestas de audio; el audio se incorpora al canal desde el servidor.
- La pestaña de clonación existe como
Coming Soon; el código actual no implementa todavía un flujo operativo de clonación.
Acceso
- Ruta principal:
/[orgId]/settings - Como se llega:
Avatar menu > Settings - Permiso requerido: owner o admin de la organización
Alcance tecnico
- Frontend: rutas de Settings y My Profile relacionadas
- Backend: servicios Feathers de este módulo
- Superficies publicas: no aplica salvo integraciones de terceros
- Integraciones externas: Stripe, Google, Microsoft, Wise, Meta, S3 o proveedores de voz según la funcionalidad
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Marketplace de voces | voice-marketplace.md | Busca, filtra, ordena, previsualiza y agrega voces del catálogo a la biblioteca. |
| Biblioteca de voces | saved-voices.md | Administra voces guardadas y abre la generación de audio desde cada voz. |
| Generación de audio | voice-generation.md | Convierte texto a voz con voz y modelo seleccionados y guarda el resultado. |
| Carpetas de generaciones | voice-collections.md | Crea, renombra, elimina y organiza generaciones por carpetas. |
| Audio de voz en conversaciones | voice-conversation-audio.md | Envía una generación guardada o crea audio nuevo para WhatsApp, Instagram, Messenger y Webchat. |
| Voces desde asistentes IA | assistant-voice-tools.md | Permite al asistente listar voces guardadas y sintetizar audio para respuestas. |
| Clonación de voz | voice-cloning.md | Presenta la pestaña de clonación como Coming Soon. |
Relaciones
- Depende de: organizaciones, miembros y autenticación.
- Usado por: CRM, automatizaciones y las integraciones descritas.
Limitaciones y notas
- Se documenta únicamente el comportamiento confirmado en frontend, servicios y hooks revisados.
id: api-docs app: plataforma nombre: API Docs estado: shipped permiso: ninguno
API Docs
Sitio público para descubrir la referencia REST, la autenticación, códigos de error y tutoriales de producto.
Para que sirve
- Un integrador revisa las operaciones REST disponibles para conectar su sistema con Apex.
- Un desarrollador configura autenticación mediante API key antes de automatizar operaciones.
- Un equipo técnico interpreta un error de WhatsApp recibido durante una integración.
- Un partner aprende flujos de contactos, deals, productos o tickets desde tutoriales públicos.
Que lo hace diferente
- Documenta recursos de negocio de Apex —incluidos reservas y asistentes— además de la autenticación técnica.
- Incluye conexiones de herramientas MCP que pueden adjuntarse a asistentes.
- Distingue la referencia REST de tutoriales de uso y de los códigos específicos de WhatsApp.
Acceso
- Ruta principal:
/docs. - Como se llega: navegación pública de documentación.
- Permiso requerido: ninguno.
Alcance tecnico
- Frontend:
src/app/(docs)/docs/**ycomponents/docs/sidebar.tsx. - Superficies publicas:
/docs,/docs/api-reference,/docs/tutorialsy/docs/error-codes.
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Navegar la referencia REST | api-reference.md | Recursos y operaciones agrupadas. |
| Autenticarse con API key | authentication.md | Guía de autenticación de la API. |
| Consultar códigos de error | error-codes.md | Referencia de errores, incluida WhatsApp. |
| Aprender con tutoriales | tutorials.md | Guías de uso de producto. |
Relaciones
- Depende de: páginas de documentación pública.
- Usado por: desarrolladores e integradores.
Limitaciones y notas
- La referencia expone REST; no es documentación de uso interno de servicios Feathers.
id: billing-wallet app: plataforma nombre: Billing y wallet estado: shipped permiso: owner o admin de la organización
Billing y wallet
Administra la suscripción de Stripe, pagos y saldo prepago para consumo.
Para que sirve
- Una agencia contrata un plan y conserva el saldo para el consumo variable de sus clientes sin mezclar ambos cobros.
- Un contact center mantiene continuidad en mensajería, IA y voz recargando saldo cuando llega a un umbral definido.
- Un negocio revisa créditos, débitos y consumo diario para explicar el gasto operativo de la cuenta.
- Un administrador recibe alertas cuando falla el cobro del plan o de un reintento de Stripe.
Que lo hace diferente
- Separa el plan recurrente de Stripe del wallet prepago: el wallet registra recargas y consumos variables de asistentes y herramientas de IA, síntesis de voz, transcripción y grabación de reuniones, envíos masivos de correo, búsqueda de productos, generación de contenido y trámites 10DLC.
- La auto-recarga se programa por saldo mínimo y monto; límites móviles de 24 horas y 30 días pueden desactivarla después de una recarga pagada, conservando el motivo.
- Las notificaciones de cobro fallido alcanzan a owners y admins de cliente, sin afectar el estado por la mera notificación.
Acceso
- Ruta principal:
/[orgId]/settings - Como se llega:
Avatar menu > Settings - Permiso requerido: owner o admin de la organización
Alcance tecnico
- Frontend: rutas de Settings y My Profile relacionadas
- Backend: servicios Feathers de este módulo
- Superficies publicas: no aplica salvo integraciones de terceros
- Integraciones externas: Stripe, Google, Microsoft, Wise, Meta, S3 o proveedores de voz según la funcionalidad
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Plan de suscripción | subscription-plan.md | Muestra el plan y complementos recurrentes, con acceso a cambio de plan. |
| Checkout de Stripe | stripe-checkout.md | Inicia el checkout de Stripe para contratar o cambiar la suscripción. |
| Cambio de plan | plan-changes.md | Permite actualizar o reducir el plan y compara las opciones disponibles. |
| Cancelación de suscripción | subscription-cancellation.md | Solicita la cancelación de la suscripción de la organización. |
| Facturas de Stripe | billing-invoices.md | Lista el historial de facturas de Stripe cuando existe cliente de Stripe. |
| Recarga de wallet | wallet-recharge.md | Añade fondos prepagos al wallet mediante Stripe. |
| Auto-recarga de wallet | wallet-auto-recharge.md | Configura el umbral y monto para recargar automáticamente cuando el saldo baja. |
| Protecciones de auto-recarga | wallet-safeguards.md | Desactiva futuras auto-recargas anómalas y muestra el motivo al superar los límites móviles de 24 horas o 30 días. |
| Uso de wallet | wallet-usage.md | Muestra el consumo por día y concepto, respetando la zona horaria de la organización. |
| Transacciones de wallet | wallet-transactions.md | Consulta créditos, débitos y referencias de movimientos de saldo. |
| Notificaciones de cobro fallido | billing-notifications.md | Envía email a owners y admins de cliente cuando falla el cobro del plan o un reintento. |
Relaciones
- Depende de: organizaciones, miembros y autenticación.
- Usado por: CRM, automatizaciones y las integraciones descritas.
Limitaciones y notas
- Se documenta únicamente el comportamiento confirmado en frontend, servicios y hooks revisados.
id: community app: plataforma nombre: Community estado: shipped permiso: Por confirmar
Community
Espacio público de producto para compartir ideas, seguir el roadmap y leer anuncios.
Para que sirve
- Clientes de software proponen mejoras concretas desde una comunidad pública.
- Equipos de producto identifican interés mediante votos y comentarios sobre una idea.
- Un prospecto revisa iniciativas y anuncios para entender la evolución del producto.
Que lo hace diferente
- Reúne propuestas, votos, comentarios, roadmap y anuncios en una superficie pública de producto.
- Separa los anuncios de novedades de las alertas operativas mostradas dentro de la aplicación autenticada.
- Vincula la conversación de una idea con su detalle público, en vez de limitarse a un formulario de sugerencias.
Acceso
- Ruta principal:
/community. - Como se llega: navegación pública de Community.
- Permiso requerido: Por confirmar según la acción.
Alcance tecnico
- Frontend: rutas
/community, ideas, roadmap y announcements. - Backend: servicios community de ideas, votos, comentarios y
community-announcements. - Superficies publicas: rutas Community.
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Explorar ideas | ideas.md | Lista y detalle de ideas. |
| Proponer una idea | submit-idea.md | Formulario de contribución. |
| Votar y comentar | idea-engagement.md | Participación sobre una idea. |
| Consultar roadmap | roadmap.md | Estado de iniciativas de producto. |
| Leer anuncios | announcements.md | Novedades de Community. |
Relaciones
- Depende de: servicios Community y anuncios.
- Usado por: comunidad y visitantes autorizados.
Limitaciones y notas
- Por confirmar: requisitos de autenticación para votar y comentar.
id: developers app: plataforma nombre: Developers estado: shipped permiso: owner o admin de la organización
Developers
Herramientas de integración técnica de la organización.
Para que sirve
- Una empresa conecta un sistema propio con la API REST mediante claves revocables de organización.
- Un equipo habilita el conector oficial para que ChatGPT o Claude consulte y opere datos autorizados de Apex.
- Una compañía exporta entidades seleccionadas a BigQuery para análisis corporativo.
Que lo hace diferente
- Las API keys se administran por organización, mientras el acceso MCP usa consentimiento con identidad de Apex y selección de organizaciones autorizadas.
- El servidor MCP descubre herramientas en tiempo de ejecución: puede gestionar contactos, conversaciones y mensajes, deals, facturas, reservas, proyectos, tareas, productos, formularios, asistentes IA y datos autorizados de la organización.
- Los conectores MCP no reciben el JWT del backend; el acceso se limita a las organizaciones concedidas durante OAuth.
Acceso
- Ruta principal:
/[orgId]/settings - Como se llega:
Avatar menu > Settings - Permiso requerido: owner o admin de la organización
Alcance tecnico
- Frontend: rutas de Settings y My Profile relacionadas
- Backend: servicios Feathers de este módulo
- Superficies publicas: no aplica salvo integraciones de terceros
- Integraciones externas: Stripe, Google, Microsoft, Wise, Meta, S3 o proveedores de voz según la funcionalidad
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Claves de API | api-keys.md | Crea y revoca claves para integraciones REST. |
| Activación de MCP | mcp-access.md | Activa o desactiva el acceso MCP de la organización y permite copiar la URL del servidor. |
| Conexión de conectores MCP | mcp-connectors.md | Guía la configuración de conectores de Claude y ChatGPT, incluido inicio de sesión y selección de organizaciones. |
| Sincronización de datos | data-sync.md | Configura la exportación programada de datos de la organización a BigQuery y sus entidades. |
Relaciones
- Depende de: organizaciones, miembros y autenticación.
- Usado por: CRM, automatizaciones y las integraciones descritas.
Limitaciones y notas
- Se documenta únicamente el comportamiento confirmado en frontend, servicios y hooks revisados.
id: equipo-permisos app: plataforma nombre: Equipo y permisos estado: shipped permiso: owner o admin de la organización
Equipo y permisos
Gestiona miembros, invitaciones y las reglas de acceso de cada organización.
Para que sirve
- Una clínica incorpora recepcionistas con acceso solo a las áreas que necesitan para atender pacientes.
- Una agencia crea roles reutilizables para ejecutivos de cuenta, operadores y administradores de cada cliente.
- Una empresa reasigna trabajo pendiente antes de retirar a un colaborador.
Que lo hace diferente
- Combina permisos por sección y módulo con acciones granulares de ver, crear, editar o eliminar sobre registros propios o de todos.
- Los roles personalizados se aplican dentro de cada organización y se integran con el control de acceso de los módulos operativos.
- La salida de un miembro contempla las referencias que deben reasignarse, en lugar de dejar asignaciones huérfanas.
Acceso
- Ruta principal:
/[orgId]/settings - Como se llega:
Avatar menu > Settings - Permiso requerido: owner o admin de la organización
Alcance tecnico
- Frontend: rutas de Settings y My Profile relacionadas
- Backend: servicios Feathers de este módulo
- Superficies publicas: no aplica salvo integraciones de terceros
- Integraciones externas: Stripe, Google, Microsoft, Wise, Meta, S3 o proveedores de voz según la funcionalidad
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Listado de miembros | team-members.md | Lista miembros facturables, implementadores y personal Apex; permite buscar. |
| Invitación de miembros | member-invitations.md | Invita por email y asigna rol o rol personalizado. |
| Invitaciones pendientes | pending-invitations.md | Revisa el estado de invitaciones enviadas. |
| Roles personalizados | organization-roles.md | Crea y edita roles reutilizables para miembros de la organización. |
| Permisos por sección y módulo | granular-permissions.md | Define acceso a secciones, módulos y acciones de ver, crear, editar o eliminar propias/todas. |
| Remoción de miembros | member-removal.md | Permite reasignar referencias antes de retirar a una persona. |
Relaciones
- Depende de: organizaciones, miembros y autenticación.
- Usado por: CRM, automatizaciones y las integraciones descritas.
Limitaciones y notas
- Se documenta únicamente el comportamiento confirmado en frontend, servicios y hooks revisados.
id: marketing-site app: plataforma nombre: Sitio de marketing estado: public permiso: ninguno
Sitio de marketing
Conjunto de páginas públicas en español para adquisición, información comercial y solicitud de demostraciones.
Para que sirve
- Un prospecto conoce las capacidades y planes antes de solicitar una demo o registrarse.
- Un comprador explora cada producto por separado y entiende tanto sus funciones como el resultado operativo que produce.
- Una empresa explica su principal necesidad para recibir una demostración enfocada en su proceso.
- Una organización comparte un formulario de consentimiento SMS con sus contactos.
Que lo hace diferente
- Reúne adquisición, producto y consentimiento SMS en superficies públicas de Apex.
- Presenta Apex como un sistema conectado alrededor de un contacto único y no como una lista de herramientas independientes.
- Cada producto principal tiene una ruta pública propia bajo
/producto/{slug}, con capacidades, resultados, casos de uso y conexiones con el resto de Apex. - El formulario de consentimiento SMS se asocia a una organización y registra el consentimiento mediante Apex.
Acceso
- Ruta principal:
/. - Como se llega: sitio público.
- Permiso requerido: ninguno.
Alcance tecnico
- Frontend:
src/app/(site)/**, además de SMS opt-in y desuscripción de correo. - Backend:
blog-posts,blog-categoriesy formularios relacionados. - Superficies publicas: todas las rutas del sitio.
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Presentar producto | home-and-pricing.md | Inicio y planes. |
| Explorar páginas de producto | product-pages.md | Índice de plataforma y páginas públicas por producto. |
| Solicitar una demostración | request-demo.md | Formulario vigente de contacto comercial y confirmación. |
| Gestionar consentimiento SMS | sms-opt-in.md | Formulario público por organización. |
| Desuscribir correo | email-unsubscribe.md | Página pública de preferencias de correo. |
Relaciones
- Depende de: blog, formularios y configuración pública.
- Usado por: prospectos, clientes y partners.
Limitaciones y notas
- Las páginas de pruebas técnicas públicas no se consideran funcionalidades de adquisición.
id: mi-perfil app: plataforma nombre: Mi perfil estado: shipped permiso: usuario autenticado
Mi perfil
Preferencias personales del usuario dentro de una organización.
Para que sirve
- Un asesor comercial conecta su calendario para trabajar reuniones y disponibilidad desde Apex.
- Un equipo de ventas usa una cuenta de Gmail personal para intercambiar correo desde el CRM o automatizaciones autorizadas.
- Un usuario ajusta alertas y dispositivos para enterarse de mensajes, asignaciones y recordatorios relevantes.
Que lo hace diferente
- Cada persona controla integraciones y preferencias propias sin alterar la configuración compartida de la organización.
- La sincronización de calendario contempla modos bidireccional, unidireccional y de solo consulta, además del registro de reuniones con enlace de video.
- La cuenta de Gmail puede habilitarse para compartirla o utilizarla en automatizaciones, conectando comunicación personal y operación de CRM.
Acceso
- Ruta principal:
/[orgId]/my-profile/profile - Como se llega:
Header > My Account - Permiso requerido: usuario autenticado
Alcance tecnico
- Frontend: rutas de Settings y My Profile relacionadas
- Backend: servicios Feathers de este módulo
- Superficies publicas: no aplica salvo integraciones de terceros
- Integraciones externas: Stripe, Google, Microsoft, Wise, Meta, S3 o proveedores de voz según la funcionalidad
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Datos del perfil | profile-details.md | Actualiza nombre, email y teléfono del usuario. |
| Foto de perfil | profile-photo.md | Carga o elimina el avatar personal y lo guarda de inmediato. |
| Restablecimiento de contraseña | password-reset.md | Confirma el cierre de sesión y redirige al flujo de recuperación. |
| Sincronización de calendario | calendar-sync.md | Conecta Google Calendar u Outlook y configura sincronización bidireccional, unidireccional o solo consulta. |
| Grabación de reuniones de calendario | meeting-recording.md | Activa que el bot registre reuniones con enlace de video, independientemente del tipo de sincronización. |
| Integración personal de Gmail | gmail-sync.md | Conecta Gmail para enviar/recibir desde CRM y habilita compartir la cuenta o usarla en automatizaciones. |
| Preferencias y dispositivos de notificación | notification-preferences.md | Configura alertas in-app y del navegador para mensajes, asignaciones y recordatorios; permite registrar, probar y desactivar dispositivos. |
Relaciones
- Depende de: organizaciones, miembros y autenticación.
- Usado por: CRM, automatizaciones y las integraciones descritas.
Limitaciones y notas
- Se documenta únicamente el comportamiento confirmado en frontend, servicios y hooks revisados.
id: notificaciones app: plataforma nombre: Notificaciones estado: shipped permiso: usuario autenticado
Notificaciones
Agrupa avisos in-app, preferencias de notificación, push y banners operativos de plataforma.
Para que sirve
- Un asesor abre avisos pendientes desde el encabezado para continuar con un recurso relacionado.
- Un usuario ajusta qué notificaciones recibe desde su perfil.
- Una organización recibe avisos push en dispositivos registrados cuando sucede un evento relevante.
- La plataforma comunica una incidencia o cambio operativo mediante un banner autenticado.
Que lo hace diferente
- Integra avisos del producto, preferencias por usuario, entrega push y alertas globales.
- Las alertas operativas pueden programarse, traducirse y recordarse como descartadas por usuario.
- Distingue las alertas operativas de los anuncios públicos de Community.
- Las notificaciones pueden dirigir al recurso de Apex que originó el aviso.
Acceso
- Ruta principal:
/[orgId]/my-profile/notification-preferences. - Como se llega:
Header > NotificationsyHeader > avatar > My profile. - Permiso requerido: usuario autenticado; alertas globales para usuarios autenticados.
Alcance tecnico
- Frontend: header, preferencias,
PlatformAlertsBanner. - Backend:
notifications,push-notifications,user-notification-preferences,platform-alerts,platform-alert-dismissals,community-announcements.
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Consultar avisos in-app | in-app-notifications.md | Notificaciones disponibles desde el header. |
| Configurar preferencias | notification-preferences.md | Preferencias del perfil. |
| Recibir push | push-notifications.md | Entrega push basada en eventos. |
| Ver alertas de plataforma | platform-alerts.md | Banner global activo y programado. |
| Leer anuncios | announcements-banner.md | Relación de anuncios con superficies de aviso. |
Relaciones
- Depende de: sesión, perfil y eventos de módulos.
- Usado por: usuarios autenticados y Community.
Limitaciones y notas
- Los anuncios de Community y las alertas operativas son funcionalidades distintas.
id: nova app: plataforma nombre: Nova estado: shipped permiso: Por confirmar
Nova
Copilot interno para consultar y operar información de la organización desde áreas autenticadas. Requiere un asistente de tipo ai-chat.
Para que sirve
- Un equipo comercial consulta contactos y crea o actualiza deals sin salir del CRM.
- Una empresa de servicios pide a Nova el estado de conversaciones para priorizar seguimiento.
- Un operador revisa productos, reservas o automatizaciones desde una misma consola.
Que lo hace diferente
- Trabaja dentro de la sesión de la organización y sobre las capacidades habilitadas para su asistente.
- Puede ejecutar herramientas para operar contactos, conversaciones, deals, productos, automatizaciones y reservas, cuando estén activadas.
- Permite revisar cada herramienta ejecutada y su resultado desde el chat.
- Conserva conversaciones separadas por asistente y admite dictado desde el navegador.
Acceso
- Ruta principal: disponible sobre rutas autenticadas de la organización.
- Como se llega:
Header > Nova. - Permiso requerido: Por confirmar: control de acceso específico del panel.
Alcance tecnico
- Frontend:
NovaIcon,NovaConsole,NovaProvideryHeader. - Backend:
ai-chat-conversations,ai-chat-messagesy respuesta del asistente. - Integraciones externas: proveedores de IA configurados para AI Assistant y dictado de voz.
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Abrir y consultar a Nova | chat.md | Conversación contextual con un asistente ai-chat. |
| Elegir asistente y herramientas | assistant-tools.md | Cambia de asistente y revisa capacidades activas. |
| Gestionar historial | conversation-history.md | Crea, abre y renombra conversaciones. |
| Revisar proceso y ejecuciones | thinking-and-tools.md | Muestra razonamiento y resultados de herramientas. |
| Dictar mensajes | voice-input.md | Graba y transcribe una pregunta. |
Relaciones
- Depende de: AI Assistant, permisos de organización y módulos habilitados como herramientas.
- Usado por: usuarios autenticados.
Limitaciones y notas
- Nova no está disponible si no existe un asistente
ai-chat. - Las acciones dependen de las herramientas habilitadas en el asistente.
id: nova-support app: plataforma nombre: Nova Support estado: shipped permiso: usuario autenticado
Nova Support
Asistente de ayuda dentro de la app que responde desde guías estructuradas y el contexto de la página actual.
Para que sirve
- Un nuevo agente de soporte pregunta cómo operar la pantalla que tiene abierta.
- Un administrador adjunta una captura para explicar un bloqueo en una configuración.
- Un equipo de producto recoge valoraciones sobre respuestas de ayuda para identificar guías que deben mejorar.
Que lo hace diferente
- Recibe la ruta actual y carga guías estructuradas de esa página o de componentes relacionados.
- Puede consultar datos de la organización en modo de solo lectura para orientar la respuesta.
- Admite imágenes y captura de pantalla como evidencia visual.
- Una valoración negativa puede alimentar la revisión interna y la creación de casos de soporte.
Acceso
- Ruta principal: disponible en
/[orgId]/.... - Como se llega:
Header > Help. - Permiso requerido: usuario autenticado en una organización.
Alcance tecnico
- Frontend:
NovaSupportIcon,NovaSupportConsole,NovaSupportProvider,src/support-skills. - Backend:
support-chat-conversations,support-chat-messages,support-chat-response,support-skills,support-chat-message-feedback. - Integraciones externas: carga de imágenes.
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Consultar soporte contextual | contextual-chat.md | Preguntas guiadas por la ruta actual. |
| Adjuntar evidencia visual | image-attachments.md | Comparte imágenes y captura la pantalla. |
| Consultar historial | conversation-history.md | Retoma conversaciones de soporte. |
| Calificar una respuesta | message-feedback.md | Registra valoración positiva o negativa. |
| Alimentar las guías | support-metas.md | Explica el origen de las metas de soporte. |
Relaciones
- Depende de: catálogo de metas de soporte y de la sesión autenticada.
- Usado por: todas las áreas autenticadas.
Limitaciones y notas
- La gestión administrativa de feedback y knowledge no se documenta en este módulo.
- Solo se admiten imágenes JPEG, PNG, WEBP y GIF.
id: organizacion app: plataforma nombre: Organización estado: shipped permiso: owner o admin de la organización
Organización
Configuración compartida de la organización y catálogos que alimentan el CRM.
Para que sirve
- Una inmobiliaria adapta formularios y catálogos para registrar la información que necesita en contactos, empresas y oportunidades.
- Un centro de atención distribuye conversaciones y tickets entre equipos según su capacidad y horarios.
- Una empresa con varias líneas comerciales mantiene etiquetas y motivos de cierre consistentes para medir la operación.
Que lo hace diferente
- La configuración alimenta directamente CRM, conversaciones, tickets, reservas y documentos de venta; no opera como un catálogo aislado.
- Los campos personalizados se pueden aplicar a varias entidades operativas, incluidas reservas y productos, y los campos de archivos se adjuntan al registro ya creado.
- La asignación automática cubre conversaciones y tickets, con modos básico y avanzado separados.
Acceso
- Ruta principal:
/[orgId]/settings - Como se llega:
Avatar menu > Settings - Permiso requerido: owner o admin de la organización
Alcance tecnico
- Frontend: rutas de Settings y My Profile relacionadas
- Backend: servicios Feathers de este módulo
- Superficies publicas: no aplica salvo integraciones de terceros
- Integraciones externas: Stripe, Google, Microsoft, Wise, Meta, S3 o proveedores de voz según la funcionalidad
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Configuración general de la organización | organization-settings.md | Actualiza nombre, zona horaria, idioma predeterminado, código telefónico y logo. |
| Eliminación de organización | organization-deletion.md | Muestra un preflight, enlaza los bloqueos y exige escribir el nombre antes de confirmar. |
| Gestión de etiquetas | tags-management.md | Crea, edita, duplica, elimina y copia etiquetas de la organización. |
| Definición de campos personalizados | custom-fields-management.md | Crea, edita, elimina y reordena campos para contactos, empresas, deals, tickets, reservas, productos y documentos de venta. |
| Categorías de campos personalizados | custom-field-categories.md | Organiza campos personalizados en categorías visibles en formularios. |
| Archivos en campos personalizados | custom-field-files.md | Permite campos File y Multiple files; los archivos se adjuntan cuando ya existe el registro. |
| Motivos de pérdida de deals | deal-lost-reasons.md | Mantiene el catálogo de motivos disponible al marcar un deal como perdido. |
| Motivos de rechazo de cotizaciones | quote-declined-reasons.md | Mantiene los motivos disponibles al rechazar una cotización. |
| Modos de asignación automática | conversation-auto-assignment.md | Configura de forma independiente la asignación de conversaciones y tickets como Off, Basic o Advanced. |
| Distribución básica de conversaciones | basic-assignment.md | Selecciona el equipo que recibe la distribución simple de conversaciones o tickets. |
| Reglas avanzadas de asignación | advanced-assignment.md | Configura distribución ponderada, horarios y límites por usuario; los tickets tienen su configuración avanzada separada. |
Relaciones
- Depende de: organizaciones, miembros y autenticación.
- Usado por: CRM, automatizaciones y las integraciones descritas.
Limitaciones y notas
- Se documenta únicamente el comportamiento confirmado en frontend, servicios y hooks revisados.
id: partners-affiliates app: plataforma nombre: Agencias y afiliados estado: partial permiso: owner o admin de la organización
Agencias y afiliados
Superficie tenant del programa de partners: captación, clientes, comisiones y cobros.
Para que sirve
- Una agencia incorpora organizaciones cliente y sigue las comisiones derivadas de sus suscripciones y consumo elegible.
- Un afiliado comparte enlaces de referido y revisa las visitas y clientes atribuidos.
- Un partner solicita el pago de comisiones elegibles hacia una cuenta bancaria o de mobile money configurada para Wise.
Que lo hace diferente
- Agencia y afiliado comparten un programa de atribución, clientes y libro de comisiones dentro de la misma plataforma donde se facturan los clientes.
- Las comisiones se registran por eventos de cobro y se distinguen entre pendientes, elegibles, pagadas o canceladas.
- Los payouts se solicitan hacia destinos Wise o bancarios gestionados por el partner, sin exportar el seguimiento a otra herramienta.
Acceso
- Ruta principal:
/[orgId]/settings - Como se llega:
Avatar menu > Settings - Permiso requerido: owner o admin de la organización
Alcance tecnico
- Frontend: rutas de Settings y My Profile relacionadas
- Backend: servicios Feathers de este módulo
- Superficies publicas: no aplica salvo integraciones de terceros
- Integraciones externas: Stripe, Google, Microsoft, Wise, Meta, S3 o proveedores de voz según la funcionalidad
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Solicitud de agencia | partner-application.md | Permite postular la organización al programa de agencias. |
| Enlaces de referido | referral-links.md | Muestra y copia enlaces de registro e inicio con atribución de partner. |
| Asignación de organizaciones cliente | partner-clients.md | Crea y asigna un cliente o vincula una organización existente al partner. |
| Resumen y proyección de comisiones | partner-commissions.md | Muestra saldo pendiente, elegible, pagado, clientes y gráficas diarias/mensuales de ganancias. |
| Historial de transacciones de comisión | partner-transactions.md | Lista transacciones de comisión y su estado. |
| Cuenta de cobro Wise | payout-accounts.md | Registra destinos bancarios o de mobile money y presenta el resumen enmascarado. |
| Solicitud de payout | partner-payouts.md | Solicita el retiro de comisiones elegibles hacia la cuenta activa. |
Relaciones
- Depende de: organizaciones, miembros y autenticación.
- Usado por: CRM, automatizaciones y las integraciones descritas.
Limitaciones y notas
- Se documenta únicamente el comportamiento confirmado en frontend, servicios y hooks revisados.
id: softphone app: plataforma nombre: SoftPhone estado: shipped permiso: agente de voz configurado
SoftPhone
Teléfono WebRTC dentro de la aplicación para agentes de voz, con marcación, llamadas entrantes y controles de llamada.
Para que sirve
- Un contact center atiende llamadas entrantes y salientes desde el CRM.
- Una clínica devuelve llamadas a pacientes desde el contacto o el historial reciente.
- Un equipo comercial toma la siguiente llamada de una cola sin cambiar de aplicación.
Que lo hace diferente
- Se conecta como agente mediante WebRTC desde el
Header, sin ingresar credenciales SIP. - Relaciona contactos y llamadas recientes con la marcación desde la misma aplicación.
- Incluye cola, disponibilidad del agente y controles de audio durante la llamada.
- Usa la infraestructura de llamadas de Telnyx configurada para la organización.
Acceso
- Ruta principal: disponible en
/[orgId]/.... - Como se llega:
Header > Phone icon. - Permiso requerido: ser agente de voz y tener un número activo en la organización.
Alcance tecnico
- Frontend:
VoiceIcon,SoftPhone,VoiceProvidery paneles de voz. - Backend: canales y eventos de voz; credenciales WebRTC.
- Integraciones externas: Telnyx WebRTC.
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Conectarse al teléfono | webrtc-connection.md | Conexión automática como agente. |
| Llamar desde el marcador | outbound-calling.md | Número, país e identificador de salida. |
| Atender llamadas entrantes | incoming-calls.md | Aceptar o rechazar la llamada. |
| Controlar una llamada | call-controls.md | Silencio, espera, DTMF y colgar. |
| Usar cola de llamadas | call-queue.md | Atiende el siguiente o uno específico. |
| Consultar contactos e historial | contacts-and-recents.md | Llamadas desde CRM y recientes. |
Relaciones
- Depende de: Calling & SMS, agentes de voz, números activos y permisos del navegador.
- Usado por: conversaciones, CRM e historial de llamadas.
Limitaciones y notas
- No se ingresan credenciales SIP en el SoftPhone; se conecta automáticamente.
- Las credenciales para Zoiper se consultan aparte en
Settings > Calling & SMS > Agents.
APP: presentations
id: presentations app: presentations nombre: Presentations estado: shipped permiso: can_access_presentations
Presentations
Creador de presentaciones con diapositivas HTML/CSS, IA, versiones y reproducción pública. Esta app es un módulo único; sus capacidades viven directamente en esta carpeta.
Para que sirve
- Una consultora crea y comparte una propuesta comercial con un enlace público que solo muestra la versión aprobada.
- Un equipo de ventas adapta un deck a la identidad de cada cuenta, genera un PDF y conserva su guion de presentación.
- Una agencia duplica una presentación de referencia para acelerar entregables sin reutilizar el enlace público anterior.
- Una empresa prepara una capacitación con animaciones, gráficos y notas sincronizadas para el facilitador.
Que lo hace diferente
- Presentation AI puede crear, reordenar y editar diapositivas, generar imágenes y consultar una web pública desde el builder.
- Cada deck separa el borrador de la versión
Live: los cambios de trabajo no alteran el enlace compartido hastaPublish. - El enlace público usa un token y ofrece modo de presentación, notas sincronizadas y descarga de la versión
Liveen PDF. - El contexto y las skills se conservan por deck, e incluyen capacidades nativas para movimiento y gráficos de diapositivas.
Acceso
- Ruta principal:
/[orgId]/presentations - Como se llega:
Header app switcher > Presentations - Permiso requerido:
can_access_presentations
Alcance tecnico
- Frontend: lista, builder y vistas públicas de Presentations
- Backend: decks, slides, render, IA, versiones y PDFs
- Superficies públicas:
/p/[token]y/p/[token]/notes - Integraciones externas: S3, OpenRouter y Puppeteer
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Crear una presentación | create-presentation.md | CreatePresentationDialog.tsx |
| Organizar carpetas y acceso | collections-access.md | PresentationsListView.tsx, PresentationAccessDialog.tsx |
| Duplicar una presentación | duplicate-presentation.md | DuplicatePresentationDialog.tsx |
| Gestionar y editar diapositivas | slides-inline-editing.md | PresentationsBuilderView.tsx, PresentationReplaceImageDialog.tsx |
| Añadir notas y guion del orador | speaker-notes.md | PresentationSlideNotesDialog.tsx |
| Configurar tema y marca | presentation-theme.md | PresentationThemePanel.tsx, GetThemeFromWebsiteDialog.tsx |
| Crear con Presentation AI | presentation-ai.md | usePresentationBuilderAI.ts, PresentationsBuilderView.tsx |
| Configurar contexto y skills de Presentation AI | presentation-ai-context-skills.md | PresentationAIContextPanel.tsx |
| Gestionar versiones y publicar Live | versions-publish.md | PresentationVersionsMenu.tsx |
| Compartir y presentar públicamente | public-presentation.md | PresentationPublicView.tsx, PresentationSpeakerNotesView.tsx |
| Descargar presentación en PDF | presentation-pdf.md | PresentationsBuilderView.tsx, PresentationPublicView.tsx |
Relaciones
- Depende de: Organizations, wallet y recursos S3.
- Usado por: personas presentadoras y visitantes con enlace público.
Limitaciones y notas
- El borrador no actualiza el enlace público hasta
Publish. - La visibilidad interna y el enlace público son controles independientes.
APP: reservations
Reservations
Citas, servicios, recursos y booking publico.
- Etapa: Produccion
- Landing:
/{orgId}/reservations/calendar
Modulos
| Modulo | Slug | Estado | Proposito |
|---|---|---|---|
| Calendar | calendar |
shipped | Calendario de citas. |
| Services | services |
shipped | Servicios reservables. |
| Resources | resources |
shipped | Recursos y disponibilidad. |
| Booking links | booking-links |
shipped | Links de reserva de staff. |
| Notifications | notifications |
shipped | Emails de confirmacion y reminder. |
| Booking publico | booking-publico |
public | Self-booking /b/{orgId}/{slug}. |
Funcionalidades internas
40 funcionalidades documentadas en 6 modulos. Ver la tabla de cada modulo.
id: booking-links app: reservations nombre: Booking links estado: shipped permiso: can_access_reservations
Booking links
Configura URLs públicas de reserva con servicios, formulario y presentación por enlace.
Para que sirve
- Una barbería comparte un enlace por cada profesional o servicio para captar citas sin intervención manual.
- Una clínica inserta su reserva en el sitio web con un formulario y políticas propias.
- Un coworking comparte una URL para reservar salas o todos los servicios disponibles.
Que lo hace diferente
- El enlace publica servicios y disponibilidad definidos dentro del calendario operativo de Apex.
- Cada reserva del enlace termina vinculada a un contacto CRM, no solo a una cuenta externa.
- Puede convivir con asistentes IA, automatizaciones y notificaciones de la organización.
- Permite seleccionar servicios, formulario y presentación por enlace.
Acceso
- Ruta principal:
/[orgId]/reservations/booking-links - Como se llega:
Header app switcher > Reservations > Booking Links - Permiso requerido:
can_access_reservations; gestión para propietarios y administradores.
Alcance tecnico
- Frontend:
BookingLinksManagement.tsx,BookingLinkEditorPage.tsxy secciones de editor. - Backend:
reservation-booking-linksypublic-reservation-booking. - Superficies publicas:
/b/[orgId]/[slug].
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Crear booking link | create-booking-link.md | Crea una URL pública. |
| Editar servicios incluidos | booking-link-services.md | Publica uno, varios o todos los servicios. |
| Configurar formulario | booking-link-form.md | Personaliza datos del cliente e identificación. |
| Personalizar contenido | booking-link-content.md | Edita hero, textos y políticas. |
| Personalizar tema | booking-link-theme.md | Define colores, medios y diseño. |
| Compartir e insertar | share-and-embed.md | Copia URL o iframe. |
| Activar, desactivar o eliminar | booking-link-lifecycle.md | Gestiona disponibilidad del enlace. |
Relaciones
- Depende de: Services.
- Usado por: Booking público.
Limitaciones y notas
- Solo servicios activos y públicos son visibles a visitantes.
id: booking-publico app: reservations nombre: Booking publico estado: public permiso: ninguno
Booking publico
Permite a visitantes reservar desde una URL sin iniciar sesión.
Para que sirve
- Una clínica permite que pacientes soliciten una consulta desde una URL sin crear una cuenta.
- Una barbería capta citas desde un enlace o iframe y muestra solo horarios disponibles.
- Un coworking recibe reservas de salas y las incorpora al calendario de su equipo.
Que lo hace diferente
- La reserva pública crea o identifica al contacto dentro del CRM de Apex.
- Los horarios se calculan con servicios, recursos, disponibilidad y excepciones reales.
- La confirmación puede activar los correos organizacionales y automatizaciones de reserva.
- El asistente IA puede operar sobre la misma disponibilidad y crear reservas cuando tiene las herramientas habilitadas.
Acceso
- Ruta principal:
/b/[orgId]/[slug] - Como se llega: URL compartida o iframe del booking link.
- Permiso requerido: ninguno.
Alcance tecnico
- Frontend: página pública de booking.
- Backend:
public-reservation-booking,reservation-available-slotsyreservations. - Superficies publicas: página, consulta de slots y creación de reserva.
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Elegir servicio | select-service.md | Muestra los servicios permitidos. |
| Elegir fecha y horario | select-slot.md | Consulta disponibilidad mensual y slots. |
| Identificar contacto | identify-contact.md | Precarga por email o teléfono si está activado. |
| Confirmar reserva | confirm-public-booking.md | Crea contacto y reserva pública. |
| Confirmación y calendario | booking-confirmation.md | Muestra resumen y opciones de calendario. |
Relaciones
- Depende de: Booking links, Services y Resources.
- Dispara / afecta: Calendar, Contactos y Notifications.
Limitaciones y notas
- El enlace debe estar activo; los servicios deben ser activos y públicos.
- El flujo público no expone una pantalla para gestionar o cancelar una reserva después de confirmarla.
id: calendar app: reservations nombre: Calendario de reservas estado: shipped permiso: can_access_reservations
Calendario de reservas
Consulta y administra las reservas de la organización desde CRM o desde la app Reservations.
Para que sirve
- Una clínica agenda y reprograma consultas vinculadas al paciente y al profesional disponible.
- Una barbería administra citas del equipo desde un calendario compartido y evita saturar recursos.
- Un coworking organiza reservas de salas con contactos, empresas y oportunidades del CRM.
- Un gimnasio programa clases o sesiones y controla cancelaciones, ausencias y completadas.
Que lo hace diferente
- Cada reserva se relaciona con un contacto, empresa u oportunidad del CRM de Apex.
- El asistente IA puede consultar disponibilidad y crear reservas mediante sus herramientas internas habilitadas.
- Las reservas y cambios de estado pueden disparar automatizaciones y correos de la organización.
- La disponibilidad considera servicios, recursos y sus excepciones, no solo un calendario personal.
Acceso
- Ruta principal:
/[orgId]/reservations/calendar - Como se llega:
Header app switcher > Reservations > Reservations - Permiso requerido:
can_access_reservations; las acciones dependen de los permisos granulares de Reservations.
Alcance tecnico
- Frontend:
ReservationsView.tsx,ReservationsCalendarView.tsxyReservationFormDialog.tsx. - Backend:
reservations,reservation-available-slotsyreservations-bulk-actions. - Superficies publicas: ninguna.
- Integraciones externas: Automatizaciones y emails de reservas.
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Vistas del calendario | calendar-views.md | Vistas Month, Week y Day. |
| Buscar y filtrar reservas | reservation-filters.md | Filtra por texto y estado. |
| Crear reserva manual | create-manual-reservation.md | Registra una cita desde el calendario o un registro CRM. |
| Editar y reprogramar reserva | edit-reservation.md | Cambia datos, recurso o horario. |
| Cambiar estado de reserva | reservation-statuses.md | Gestiona el ciclo operativo de una cita. |
| Cancelar reserva | cancel-reservation.md | Cancela desde la ficha de la reserva. |
| Eliminar reserva | delete-reservation.md | Quita una reserva mediante borrado lógico. |
| Acciones masivas | bulk-actions.md | Aplica acciones a varias reservas. |
| Reserva vinculada al CRM | crm-linked-reservations.md | Vincula contacto, empresa y deal. |
| Asignación de recursos | reservation-resource-assignment.md | Valida y asigna recursos al crear. |
| Asistente de configuración | setup-wizard.md | Prepara el flujo de reservas públicas. |
| Guía de configuración | setup-guide.md | Ofrece ayuda integrada de Reservations. |
Relaciones
- Depende de: Services, Resources, Contactos y campos personalizados.
- Usado por: Booking público, Automatizaciones y notificaciones.
Limitaciones y notas
- La app abre en
Week; CRM conserva/[orgId]/reservations. - Las reservas canceladas, completadas y
no_showno ocupan capacidad.
id: notifications app: reservations nombre: Notifications estado: shipped permiso: can_access_reservations
Notificaciones de reservas
Configura correos organizacionales de confirmación, aviso al personal y recordatorios de reservas.
Para que sirve
- Una clínica confirma citas y reduce ausencias con recordatorios previos.
- Un spa avisa a cada profesional cuando recibe una reserva asociada.
- Un gimnasio comunica cambios de reserva con plantillas organizacionales.
Que lo hace diferente
- Los correos usan los datos reales de la reserva, el servicio y el contacto CRM.
- Los recordatorios los ejecuta la organización desde Apex, junto con el calendario operativo.
- Para recorridos más complejos, los cambios de reserva se conectan con Automatizaciones y sus canales.
Acceso
- Ruta principal:
/[orgId]/reservations/settings - Como se llega:
Header app switcher > Reservations > Notifications - Permiso requerido:
can_access_reservations; configuración para propietarios y administradores.
Alcance tecnico
- Frontend:
ReservationNotificationsSettingsView.tsx. - Backend:
organization-reservations-settings,reservationsycron-reservation-reminders. - Integraciones externas: AWS SES y Email Builder.
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Confirmación al cliente | confirmation-email.md | Activa y diseña el email posterior a la reserva. |
| Aviso al personal | staff-notification.md | Notifica recursos de persona vinculados a usuarios. |
| Recordatorios | reservation-reminders.md | Configura hasta tres avisos previos. |
| Plantillas y vista previa | email-templates-preview.md | Selecciona Email Builder y revisa el resultado. |
Relaciones
- Depende de: Email Builder y datos de contacto.
- Usado por: Calendar y Booking público.
Limitaciones y notas
- La configuración aplica a toda la organización, no a un booking link.
- WhatsApp y SMS personalizados se gestionan con Automatizaciones.
id: resources app: reservations nombre: Resources estado: shipped permiso: can_access_reservations
Recursos de reservas
Administra personas, espacios, equipos y otros recursos que entregan servicios reservables.
Para que sirve
- Una clínica asigna consultorios y profesionales con horarios y cierres específicos.
- Un spa administra cabinas, terapeutas y equipos para no prometer el mismo recurso dos veces.
- Un coworking bloquea festivos o define horarios especiales para salas y espacios compartidos.
Que lo hace diferente
- La disponibilidad combina recursos, horarios semanales y excepciones de fecha.
- Un recurso puede asociarse a varios servicios y participa en la validación de disponibilidad.
- Los recursos respaldan reservas CRM, booking público y las consultas del asistente IA.
Acceso
- Ruta principal:
/[orgId]/reservations/resources - Como se llega:
Header app switcher > Reservations > Resources - Permiso requerido:
can_access_reservations; catálogo para propietarios y administradores.
Alcance tecnico
- Frontend:
ReservationSettingsView.tsx,ImportResourcesDialog.tsxy diálogos de recursos. - Backend:
reservation-resources,reservation-resource-availability,reservation-resource-exceptions.
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Crear recurso | create-resource.md | Añade un recurso al catálogo. |
| Editar recurso | edit-resource.md | Actualiza sus datos y estado. |
| Eliminar recurso | delete-resource.md | Lo retira mediante borrado lógico. |
| Disponibilidad semanal | weekly-availability.md | Configura franjas por día. |
| Excepciones de fecha | resource-exceptions.md | Bloquea fechas o define horarios especiales. |
| Importar recursos | import-resources.md | Importa Excel con horarios y excepciones. |
| Calendario por recurso | resource-calendar.md | Consulta las reservas de un recurso. |
Relaciones
- Depende de: Services para vincularlos.
- Usado por: Calendar y Booking público.
Limitaciones y notas
- Las excepciones pueden aplicarse a un recurso o a toda la organización.
id: services app: reservations nombre: Services estado: shipped permiso: can_access_reservations
Servicios reservables
Define qué puede reservar un cliente y las reglas operativas de cada oferta.
Para que sirve
- Una clínica define consulta inicial, control y procedimiento con distinta duración y capacidad.
- Una barbería publica cortes, tratamientos y turnos grupales con sus reglas de reserva.
- Un coworking ofrece salas, escritorios o equipos como servicios reservables.
Que lo hace diferente
- Cada servicio puede requerir, aceptar o elegir entre recursos reales de la organización.
- Los servicios alimentan la disponibilidad que ve el booking público y puede consultar el asistente IA.
- Se conectan al calendario, booking links y contactos CRM en lugar de vivir en un catálogo aislado.
Acceso
- Ruta principal:
/[orgId]/reservations/services - Como se llega:
Header app switcher > Reservations > Services - Permiso requerido:
can_access_reservations; catálogo visible para propietarios y administradores.
Alcance tecnico
- Frontend:
ReservationSettingsView.tsxy diálogos desetup/dialogs.tsx. - Backend:
reservation-servicesyreservation-service-resources. - Superficies publicas: los servicios activos y públicos aparecen en Booking público.
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Crear servicio | create-service.md | Define una oferta reservable. |
| Editar servicio | edit-service.md | Ajusta configuración y visibilidad. |
| Eliminar servicio | delete-service.md | Retira el servicio del catálogo. |
| Configurar capacidad y reservas | service-capacity.md | Controla grupo, cupos y límites de reserva. |
| Asociar recursos | service-resources.md | Define recursos requeridos, opcionales o alternativos. |
Relaciones
- Depende de: Resources y Currencies.
- Usado por: Calendar, Booking links y Booking público.
Limitaciones y notas
- Un servicio inactivo no puede reservarse.
APP: sites
id: sites app: sites nombre: Sites estado: shipped permiso: can_access_sites
Sites
Constructor de sitios web de una organización con IA, recursos, SEO y publicación. Esta app es un módulo único; sus capacidades viven directamente en esta carpeta.
Para que sirve
- Una clínica crea un sitio informativo con páginas de servicios, SEO y formulario para convertir consultas web en contactos.
- Una inmobiliaria publica un sitio de proyectos con navegación y recursos de marca sin depender de un desarrollo separado.
- Una agencia importa una base HTML y la adapta para entregar micrositios a sus clientes.
- Un comercio local lanza una página de campaña en un subdominio de Apex y después la conecta a su propio dominio.
Que lo hace diferente
- Sites AI puede crear páginas y modificar contenido, navegación, header, footer, estilos y recursos dentro del mismo builder.
- El contexto, la memoria y las skills se guardan por sitio para que la IA conserve reglas de marca y trabajo entre conversaciones.
- Puede incrustar formularios publicados de Apex: los envíos no son solo visuales, se registran en Forms para la organización.
- La publicación incluye un subdominio gratuito de Apex; el dominio propio se conecta con validación y una suscripción de $5 USD/mes.
Acceso
- Ruta principal:
/[orgId]/sites - Como se llega:
Header app switcher > Sites - Permiso requerido:
can_access_sites
Alcance tecnico
- Frontend: rutas de lista y builder de Sites, con componentes en
components/sites - Backend:
sites, páginas, layouts, recursos, IA, render y publicación - Superficies públicas: sitios publicados bajo
pages.achieveapex.com - Integraciones externas: S3, CloudFront, Stripe y OpenRouter
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Crear un sitio | create-site.md | Crea un proyecto de sitio con una página inicial y un diseño compartido listos para editar. |
| Importar HTML | import-html.md | Incorpora HTML existente al sitio nuevo o a una página del sitio abierto. |
| Gestionar páginas, rutas y SEO | pages-seo-navigation.md | Organiza la página de inicio, las rutas de las páginas y sus metadatos para el sitio completo. |
| Configurar header, footer y diseños | site-layout.md | Administra el chrome compartido del sitio: header, footer y estilos comunes que pueden reutilizar sus páginas. |
| Personalizar tema y tipografía | theme-typography.md | Define colores, radios y tipografías que el renderer aplica como tema reutilizable del sitio. |
| Gestionar recursos del sitio | site-assets.md | Carga y reutiliza imágenes del sitio, incluidas las que el usuario adjunta al chat o genera la IA. |
| Insertar formularios de AchieveApex | embed-forms.md | Permite a Sites AI preferir e insertar formularios publicados de la organización para captar envíos reales en un sitio estático. |
| Editar el sitio con Sites AI | sites-ai.md | Permite pedir cambios de contenido y diseño, crear páginas, modificar layouts y generar imágenes mediante una conversación con IA. |
| Mantener contexto y memoria de IA | ai-context-memory.md | Guarda instrucciones durables del usuario y aprendizajes de la IA que sobreviven a conversaciones distintas. |
| Administrar skills de Sites AI | ai-skills.md | Activa guías de IA para el sitio y permite mantener una biblioteca reutilizable de skills de la organización. |
| Restaurar versiones de páginas | site-versions.md | Consulta el historial de una página y permite volver a un borrador o a la copia publicada sin perder el estado actual. |
| Previsualizar páginas y dispositivos | site-preview.md | Muestra una composición del sitio en un iframe y permite revisar la página en Desktop, Tablet o Mobile. |
| Publicar y republicar un sitio | publish-site.md | Hace público el sitio completo en un subdominio gratuito de AchieveApex y permite actualizarlo con Republish. |
| Conectar dominio propio | custom-domain.md | Asocia un hostname del cliente a un sitio ya publicado y guía su validación mediante CNAME. |
| Despublicar un sitio | unpublish-site.md | Retira los archivos públicos del sitio sin borrar el proyecto ni sus borradores. |
| Eliminar un sitio | delete-site.md | Elimina un sitio desde su tarjeta para retirarlo del listado de la organización. |
Relaciones
- Depende de: Organizations, wallet, Forms y permisos.
- Usado por: visitantes públicos y formularios embebidos.
Limitaciones y notas
- La publicación es de todo el sitio.
- El subdominio de plataforma es gratuito; un dominio propio cuesta $5 USD/mes.
APP: support-admin
id: support-admin app: support-admin nombre: Administración de soporte estado: admin permiso: admin o superadmin
Administración de soporte
Consola global para que el equipo de plataforma gestione y responda los casos de soporte de organizaciones.
Para que sirve
- Centralizar y priorizar las solicitudes de soporte de todas las organizaciones.
- Crear casos administrativos para incidencias recibidas fuera de la aplicación.
- Responder a clientes, adjuntar evidencia y conservar notas privadas del equipo.
- Asignar casos manualmente o distribuir los nuevos por routing ponderado.
- Resolver escalaciones creadas desde Nova Support o desde una mala calificación.
Que lo hace diferente
- Los casos de Nova y su feedback conservan el vínculo con la conversación que motivó la escalación.
- El routing ponderado considera agentes de plataforma y sus asignaciones recientes.
- Las notas internas están separadas de las respuestas que recibe el cliente.
- Las respuestas visibles activan notificaciones por correo y pueden resolver el caso en el mismo flujo.
- La consola es global para el equipo de AchieveApex, no una bandeja por organización.
Acceso
- Ruta principal:
/support-admin - Como se llega:
Header app switcher > Internal > Support - Permiso requerido: rol de plataforma
adminosuperadmin; el routing requieresuperadmin
Alcance tecnico
- Frontend:
src/app/(support-admin)/support-admin/ysrc/components/support-cases/ - Backend:
support-cases,support-case-messagesysupport-agent-routing - Superficies publicas: ninguna
- Integraciones externas: correo para notificaciones de casos
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Inbox de casos | support-inbox.md | Consulta, filtra y administra la cola global. |
| Creación de casos | support-case-creation.md | Crea un caso en nombre de un miembro. |
| Detalle de caso | support-case-detail.md | Consulta conversación, solicitante y responsabilidad. |
| Respuestas y notas | support-case-replies.md | Envía respuestas, adjuntos y notas internas. |
| Estados y asignación | support-case-status-assignment.md | Cambia el estado o responsable individual y masivamente. |
| Routing de agentes | support-agent-routing.md | Configura distribución ponderada de nuevos casos. |
| Escalaciones de Nova | nova-support-escalations.md | Gestiona casos creados desde Nova o su feedback. |
Relaciones
- Depende de: Support Cases, Nova Support y Organizations.
- Usado por: personal de plataforma y solicitantes de soporte.
Limitaciones y notas
- Los mensajes internos no se muestran a los usuarios de las organizaciones.
APP: whiteboards
id: whiteboards app: whiteboards nombre: Whiteboards estado: shipped permiso: can_access_whiteboards
Whiteboards
Canvas de colaboración visual para ideas, diagramas, nodos CRM/Operations y generación con IA. Esta app es un módulo único; sus capacidades viven directamente en esta carpeta.
Para que sirve
- Una agencia diseña el flujo de una campaña con notas, enlaces y entregables en un solo canvas.
- Un equipo comercial relaciona contactos, deals y productos con un mapa de cuenta para preparar una oportunidad.
- Una empresa de servicios visualiza tareas y roadmap de un proyecto junto con sus decisiones y recursos.
- Un equipo de producto convierte un brief en un diagrama inicial con IA y lo ajusta antes de compartirlo externamente.
Que lo hace diferente
- El canvas puede vincular tarjetas vivas de contactos, deals, productos, tareas y proyectos de Apex, en lugar de limitarse a contenido dibujado.
- Los módulos de Operations incorporan vistas de tareas y roadmap dentro del whiteboard para quien tiene acceso a esa app.
- Whiteboard AI crea y conecta nodos, organiza layouts y genera imágenes sobre el documento existente, con control de versiones.
- Puede compartirse con un enlace público de solo lectura; los nodos CRM muestran una instantánea y los módulos de Operations no exponen datos sin iniciar sesión.
Acceso
- Ruta principal:
/[orgId]/whiteboards - Como se llega:
Header app switcher > Whiteboards - Permiso requerido:
can_access_whiteboards
Alcance tecnico
- Frontend: lista, editor React Flow y vista pública de Whiteboards
- Backend: documentos, versiones, IA y links públicos
- Superficies públicas:
/wb/[token] - Integraciones externas: S3, OpenRouter, CRM y Operations
Funcionalidades internas
| Funcionalidad | Archivo | Resumen |
|---|---|---|
| Crear un whiteboard | create-whiteboard.md | CreateWhiteboardDialog.tsx |
| Administrar carpetas y acceso | whiteboard-access.md | WhiteboardAccessDialog.tsx |
| Editar canvas y nodos | canvas-nodes.md | WhiteboardEditorView.tsx, WhiteboardNodes.tsx |
| Conectar nodos y organizar layouts | connections-layout.md | WhiteboardEditorView.tsx, layoutEngine.ts |
| Añadir multimedia y enlaces | media-and-links.md | WhiteboardNodes.tsx |
| Vincular CRM y Operations en vivo | live-crm-operations.md | CrmLiveNodes.tsx, OperationsLiveCards.tsx |
| Crear con Whiteboard AI | whiteboard-ai.md | WhiteboardAIChat.tsx, useWhiteboardBuilderAI.ts |
| Deshacer y restaurar cambios | versions-undo.md | WhiteboardEditorView.tsx, WhiteboardAIChat.tsx |
| Compartir whiteboard públicamente | public-whiteboard.md | WhiteboardPublicView.tsx |
Relaciones
- Depende de: Organizations, wallet y permisos de CRM/Operations cuando se usan nodos vivos.
- Usado por: equipos internos y espectadores externos autorizados por enlace.
Limitaciones y notas
- Los cambios manuales se guardan automáticamente.
- La colaboración simultánea en tiempo real no quedó confirmada como capacidad documentable en las superficies revisadas.