AchieveApex: app plataforma
Generado desde
achieveApex-Frontend/public/ai-docsel 2026-10-15. Contiene 115 archivos de la appplataforma. Para el contexto general del producto verapex-resumen.md.
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: academy-admin modulo: academy app: plataforma nombre: Administrar Academy tipo: configuracion
Administrar Academy
Ofrece páginas administrativas separadas para gestionar cursos, lecciones, categorías y el contenido de un curso.
Que se logra
- Resultado: un equipo responsable mantiene el catálogo formativo y sus lecciones actualizados.
- Caso de uso: una empresa SaaS publica un curso para usuarios nuevos y organiza sus lecciones por categoría.
- Se combina con: catálogo de cursos, lecciones y progreso de Academy.
Donde esta
- Ruta:
/academy/admin,/academy/admin/courses,/academy/admin/lessons,/academy/admin/categoriesy/academy/[localization]/course/[courseId]/admin. - Acceso en UI: área
Academy admin. - Componente(s): páginas de administración de Academy.
Como funciona
- Abrir el área administrativa.
- Elegir cursos, lecciones o categorías.
- Crear o actualizar el contenido disponible.
- Abrir la administración específica desde un curso cuando corresponda.
Reglas y validaciones
- Por confirmar: roles autorizados para estas rutas.
Backend
- Servicios:
academy-courses,academy-categories,academy-chapters,academy-lessons.
Relaciones
- Requiere: contenido de Academy.
- Dispara / afecta: catálogo y experiencia de aprendizaje.
Notas
- La administración por curso conserva la localización y el identificador del curso en la URL.
id: courses modulo: academy app: plataforma nombre: Explorar cursos tipo: vista
Explorar cursos
Presenta el catálogo de cursos de Academy en la localización elegida.
Que se logra
- Resultado: los estudiantes encuentran el contenido formativo publicado en el idioma o localización elegidos.
- Caso de uso: un nuevo cliente explora los cursos de onboarding antes de configurar su organización.
- Se combina con: lecciones y progreso de Academy.
Donde esta
- Ruta:
/academy/[localization]. - Acceso en UI: página principal de Academy.
- Componente(s): página de Academy.
Como funciona
- Abrir Academy con la localización deseada.
- Revisar los cursos publicados.
- Seleccionar un curso para abrir su detalle.
Reglas y validaciones
- La ruta incluye la localización del contenido.
Backend
- Servicios:
academy-courses(find/get),academy-categories(find).
Relaciones
- Requiere: cursos y categorías.
- Dispara / afecta: navegación al detalle de curso.
Notas
- Por confirmar: filtros y criterios de visibilidad del catálogo.
id: lesson-progress modulo: academy app: plataforma nombre: Registrar progreso de lecciones tipo: automatizacion
Registrar progreso de lecciones
Conserva el avance del usuario sobre las lecciones para reflejar su progreso formativo.
Que se logra
- Resultado: Academy conserva el avance individual de cada estudiante por lección.
- Caso de uso: un equipo distribuido puede retomar su formación y ver qué lecciones ya ha recorrido.
- Se combina con: cursos y lecciones de Academy.
Donde esta
- Ruta:
/academy/[localization]/course/[courseId]/lesson/[lessonId]. - Acceso en UI: al consumir una lección.
- Componente(s): página de lección.
Como funciona
- Abrir una lección.
- Interactuar con el contenido.
- El avance se registra para el usuario.
Reglas y validaciones
- Por confirmar: condición exacta que marca una lección como completada.
Backend
- Servicios:
academy-lesson-progress(find/create/patch).
Relaciones
- Requiere: usuario y lección.
- Dispara / afecta: progreso mostrado en Academy.
Notas
- El código confirma el servicio de progreso, no el criterio visual exacto de finalización.
id: lessons modulo: academy app: plataforma nombre: Consumir lecciones tipo: vista
Consumir lecciones
Permite abrir la estructura de un curso, navegar por sus lecciones y consultar una lección individual.
Que se logra
- Resultado: el estudiante recorre contenido organizado por cursos y lecciones.
- Caso de uso: un agente nuevo sigue las lecciones de un curso para aprender el proceso de atención de su empresa.
- Se combina con: catálogo de cursos y registro de progreso.
Donde esta
- Ruta:
/academy/[localization]/course/[courseId]y/academy/[localization]/course/[courseId]/lesson/[lessonId]. - Acceso en UI:
Academy > curso > lección. - Componente(s): páginas de curso y lección.
Como funciona
- Abrir un curso del catálogo.
- Revisar las lecciones disponibles.
- Elegir una lección para abrir su contenido.
- Volver al curso para continuar la navegación.
Reglas y validaciones
- La lección se resuelve dentro del curso y de la localización de la ruta.
Backend
- Servicios:
academy-courses,academy-chapters,academy-lessons(find/get).
Relaciones
- Requiere: curso, capítulos y lecciones publicados.
- Dispara / afecta: progreso de lección.
Notas
- También existe una ruta de lección fuera del detalle de curso.
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: conversion-history modulo: ads app: plataforma nombre: Historial de conversiones Meta tipo: vista
Historial de conversiones Meta
Filtra contactos atribuidos por Click-to-WhatsApp o Lead Ads y permite enviar manualmente eventos de conversión.
Que se logra
- Resultado: El equipo revisa contactos atribuidos y puede enviar conversiones manuales cuando aplica.
- Caso de uso: Una agencia valida conversiones de una campaña Click-to-WhatsApp antes de optimizarla.
- Se combina con: Contactos, conversaciones, automatizaciones y conversiones Meta.
Donde esta
- Ruta:
/[orgId]/settings/meta-conversions/history - Acceso en UI:
Meta Conversions >View history`` - Componente(s):
ConversionHistoryPage.tsx
Como funciona
- El usuario abre la sección indicada.
- Revisa o completa las opciones disponibles.
- Confirma la acción con el control de la interfaz cuando aplica.
- La interfaz actualiza el resultado o informa el error.
Reglas y validaciones
- La columna de eventos muestra los envíos ya registrados.
Backend
- Servicios:
meta-conversions - Hooks relevantes solo si cambian el comportamiento visible: validación, autorización y efectos de integración asociados.
- Efectos: se aplican los movimientos, sincronizaciones, notificaciones o webhooks descritos por esta capacidad.
Relaciones
- Requiere: organización activa y acceso a la sección.
- Dispara / afecta: las entidades e integraciones administradas por esta funcionalidad.
Notas
- Los comportamientos no expuestos en las superficies revisadas no se detallan.
id: lead-ads-connection modulo: ads app: plataforma nombre: Conexión de Meta Lead Ads tipo: integracion
Conexión de Meta Lead Ads
Conecta cuentas y páginas de Meta para recibir envíos de formularios Instant Form.
Que se logra
- Resultado: Apex recibe los envíos de formularios Instant Form de las cuentas y páginas conectadas.
- Caso de uso: Una inmobiliaria centraliza en el CRM los interesados captados desde Meta.
- Se combina con: Contactos, conversaciones, automatizaciones y conversiones Meta.
Donde esta
- Ruta:
/[orgId]/settings/facebook-ads - Acceso en UI:
Settings > Channels > Meta Lead Ads - Componente(s):
FacebookAdsSettings.tsx
Como funciona
- El usuario abre la sección indicada.
- Revisa o completa las opciones disponibles.
- Confirma la acción con el control de la interfaz cuando aplica.
- La interfaz actualiza el resultado o informa el error.
Reglas y validaciones
- No permite crear, editar ni pausar anuncios; eso se gestiona en Meta Ads Manager.
Backend
- Servicios:
facebook-ads-connections - Hooks relevantes solo si cambian el comportamiento visible: validación, autorización y efectos de integración asociados.
- Efectos: se aplican los movimientos, sincronizaciones, notificaciones o webhooks descritos por esta capacidad.
Relaciones
- Requiere: organización activa y acceso a la sección.
- Dispara / afecta: las entidades e integraciones administradas por esta funcionalidad.
Notas
- Los comportamientos no expuestos en las superficies revisadas no se detallan.
id: lead-ads-forms modulo: ads app: plataforma nombre: Formularios y mapeo de leads tipo: configuracion
Formularios y mapeo de leads
Configura la recepción de formularios y el mapeo de respuestas hacia contactos.
Que se logra
- Resultado: Las respuestas de formularios se traducen a información útil de contactos.
- Caso de uso: Una universidad mapea programa, ciudad y teléfono del aspirante a su ficha de CRM.
- Se combina con: Contactos, conversaciones, automatizaciones y conversiones Meta.
Donde esta
- Ruta:
/[orgId]/settings/facebook-ads - Acceso en UI:
Meta Lead Ads > página conectada - Componente(s):
FacebookAdsConnectionsList.tsx
Como funciona
- El usuario abre la sección indicada.
- Revisa o completa las opciones disponibles.
- Confirma la acción con el control de la interfaz cuando aplica.
- La interfaz actualiza el resultado o informa el error.
Reglas y validaciones
- Al llegar un lead se crea o actualiza el contacto con atribución de Facebook Lead.
Backend
- Servicios:
facebook-ads-forms, facebook-ads-leads - Hooks relevantes solo si cambian el comportamiento visible: validación, autorización y efectos de integración asociados.
- Efectos: se aplican los movimientos, sincronizaciones, notificaciones o webhooks descritos por esta capacidad.
Relaciones
- Requiere: organización activa y acceso a la sección.
- Dispara / afecta: las entidades e integraciones administradas por esta funcionalidad.
Notas
- Los comportamientos no expuestos en las superficies revisadas no se detallan.
id: lead-ads-history modulo: ads app: plataforma nombre: Leads y campañas de Meta tipo: vista
Leads y campañas de Meta
Consulta leads sincronizados, detalle por página y el resumen de campañas de solo lectura.
Que se logra
- Resultado: El equipo consulta los leads sincronizados y el resumen disponible de campañas.
- Caso de uso: Marketing revisa qué formularios trajeron prospectos a ventas.
- Se combina con: Contactos, conversaciones, automatizaciones y conversiones Meta.
Donde esta
- Ruta:
/[orgId]/settings/facebook-ads/leads - Acceso en UI:
Meta Lead Ads >View LeadsoCampaigns`` - Componente(s):
FacebookAdsLeadsTableView.tsx
Como funciona
- El usuario abre la sección indicada.
- Revisa o completa las opciones disponibles.
- Confirma la acción con el control de la interfaz cuando aplica.
- La interfaz actualiza el resultado o informa el error.
Reglas y validaciones
- Las campañas no se gestionan desde AchieveApex.
Backend
- Servicios:
facebook-ads-leads, facebook-ads-campaigns - Hooks relevantes solo si cambian el comportamiento visible: validación, autorización y efectos de integración asociados.
- Efectos: se aplican los movimientos, sincronizaciones, notificaciones o webhooks descritos por esta capacidad.
Relaciones
- Requiere: organización activa y acceso a la sección.
- Dispara / afecta: las entidades e integraciones administradas por esta funcionalidad.
Notas
- Los comportamientos no expuestos en las superficies revisadas no se detallan.
id: lead-distribution modulo: ads app: plataforma nombre: Distribución y automatización de leads tipo: automatizacion
Distribución y automatización de leads
Distribuye propietarios según reglas configuradas y puede disparar automatizaciones.
Que se logra
- Resultado: Los leads entrantes se asignan a propietarios y pueden iniciar automatizaciones.
- Caso de uso: Un concesionario reparte solicitudes entre asesores y dispara el primer seguimiento.
- Se combina con: Contactos, conversaciones, automatizaciones y conversiones Meta.
Donde esta
- Ruta:
/[orgId]/settings/facebook-ads - Acceso en UI:
Meta Lead Ads > configuración de página - Componente(s):
FacebookAdsSettings.tsx
Como funciona
- El usuario abre la sección indicada.
- Revisa o completa las opciones disponibles.
- Confirma la acción con el control de la interfaz cuando aplica.
- La interfaz actualiza el resultado o informa el error.
Reglas y validaciones
- Una persona referenciada por distribución de Lead Ads bloquea su remoción del equipo.
Backend
- Servicios:
facebook-ads-leads, conversations-auto-assignment-rules - Hooks relevantes solo si cambian el comportamiento visible: validación, autorización y efectos de integración asociados.
- Efectos: se aplican los movimientos, sincronizaciones, notificaciones o webhooks descritos por esta capacidad.
Relaciones
- Requiere: organización activa y acceso a la sección.
- Dispara / afecta: las entidades e integraciones administradas por esta funcionalidad.
Notas
- Los comportamientos no expuestos en las superficies revisadas no se detallan.
id: meta-conversions modulo: ads app: plataforma nombre: Configuración de Meta Conversions tipo: configuracion
Configuración de Meta Conversions
Configura dataset, eventos, pruebas de conexión y mapeo de etapas estándar o personalizadas para WhatsApp y Lead Ads.
Que se logra
- Resultado: Los eventos de conversión del CRM se configuran contra el dataset y las etapas elegidas.
- Caso de uso: Un ecommerce devuelve a Meta el avance comercial de contactos provenientes de anuncios.
- Se combina con: Contactos, conversaciones, automatizaciones y conversiones Meta.
Donde esta
- Ruta:
/[orgId]/settings/meta-conversions - Acceso en UI:
Settings > Channels > Meta Conversions - Componente(s):
MetaConversionsSettings.tsx
Como funciona
- El usuario abre la sección indicada.
- Revisa o completa las opciones disponibles.
- Confirma la acción con el control de la interfaz cuando aplica.
- La interfaz actualiza el resultado o informa el error.
Reglas y validaciones
- Los eventos se envían a Meta para optimización de campañas.
Backend
- Servicios:
meta-capi-configs, meta-conversions - Hooks relevantes solo si cambian el comportamiento visible: validación, autorización y efectos de integración asociados.
- Efectos: se aplican los movimientos, sincronizaciones, notificaciones o webhooks descritos por esta capacidad.
Relaciones
- Requiere: organización activa y acceso a la sección.
- Dispara / afecta: las entidades e integraciones administradas por esta funcionalidad.
Notas
- Los comportamientos no expuestos en las superficies revisadas no se detallan.
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: assistant-voice-tools modulo: ai-voices app: plataforma nombre: Voces desde asistentes IA tipo: integracion
Voces desde asistentes IA
Permite al asistente listar voces guardadas y sintetizar audio para respuestas.
Que se logra
- Resultado: Un asistente IA autorizado puede elegir voces guardadas y responder con audio sintetizado.
- Caso de uso: Un negocio ofrece respuestas de voz automáticas para consultas repetitivas.
- Se combina con: Conversaciones y asistentes IA.
Donde esta
- Ruta:
/[orgId]/ai-assistant - Acceso en UI:
AI Assistant > Tools > Internal - Componente(s):
AssistantSettingsForm.tsx
Como funciona
- El usuario abre la sección indicada.
- Revisa o completa las opciones disponibles.
- Confirma la acción con el control de la interfaz cuando aplica.
- La interfaz actualiza el resultado o informa el error.
Reglas y validaciones
- Requiere habilitar
Can send audio, herramientas internas y saldo de wallet; el audio bajo demanda no se guarda en generaciones.
Backend
- Servicios:
organization-ai-voices, ai-voice-synthesize - Hooks relevantes solo si cambian el comportamiento visible: validación, autorización y efectos de integración asociados.
- Efectos: se aplican los movimientos, sincronizaciones, notificaciones o webhooks descritos por esta capacidad.
Relaciones
- Requiere: organización activa y acceso a la sección.
- Dispara / afecta: las entidades e integraciones administradas por esta funcionalidad.
Notas
- Los comportamientos no expuestos en las superficies revisadas no se detallan.
id: saved-voices modulo: ai-voices app: plataforma nombre: Biblioteca de voces tipo: configuracion
Biblioteca de voces
Administra voces guardadas y abre la generación de audio desde cada voz.
Que se logra
- Resultado: Las voces disponibles para la organización se mantienen listas para generar audio.
- Caso de uso: Un equipo de soporte reutiliza su voz aprobada en distintos mensajes.
- Se combina con: Conversaciones y asistentes IA.
Donde esta
- Ruta:
/[orgId]/settings/ai-voices/my-voices - Acceso en UI:
AI Voices > My Voices - Componente(s):
OrganizationAiVoicesList.tsx
Como funciona
- El usuario abre la sección indicada.
- Revisa o completa las opciones disponibles.
- Confirma la acción con el control de la interfaz cuando aplica.
- La interfaz actualiza el resultado o informa el error.
Reglas y validaciones
- Guardar una voz es un marcador local y no elimina generaciones al quitarla.
Backend
- Servicios:
organization-ai-voices - Hooks relevantes solo si cambian el comportamiento visible: validación, autorización y efectos de integración asociados.
- Efectos: se aplican los movimientos, sincronizaciones, notificaciones o webhooks descritos por esta capacidad.
Relaciones
- Requiere: organización activa y acceso a la sección.
- Dispara / afecta: las entidades e integraciones administradas por esta funcionalidad.
Notas
- Los comportamientos no expuestos en las superficies revisadas no se detallan.
id: voice-cloning modulo: ai-voices app: plataforma nombre: Clonación de voz tipo: vista
Clonación de voz
Presenta la pestaña de clonación como Coming Soon.
Que se logra
- Resultado: La interfaz comunica que la clonación de voz está prevista, sin habilitar aún una operación.
- Caso de uso: Una productora identifica el lugar donde se ofrecerá esa capacidad cuando esté disponible.
Donde esta
- Ruta:
/[orgId]/settings/ai-voices/clone - Acceso en UI:
AI Voices > Clone Voice - Componente(s):
CloneVoicePage.tsx
Como funciona
- El usuario abre la sección indicada.
- Revisa o completa las opciones disponibles.
- Confirma la acción con el control de la interfaz cuando aplica.
- La interfaz actualiza el resultado o informa el error.
Reglas y validaciones
- No existe un flujo operativo de clonación en el código revisado; la pestaña solo muestra
Coming Soon.
Backend
- Servicios:
ninguno - Hooks relevantes solo si cambian el comportamiento visible: validación, autorización y efectos de integración asociados.
- Efectos: se aplican los movimientos, sincronizaciones, notificaciones o webhooks descritos por esta capacidad.
Relaciones
- Requiere: organización activa y acceso a la sección.
- Dispara / afecta: las entidades e integraciones administradas por esta funcionalidad.
Notas
- Los comportamientos no expuestos en las superficies revisadas no se detallan.
id: voice-collections modulo: ai-voices app: plataforma nombre: Carpetas de generaciones tipo: configuracion
Carpetas de generaciones
Crea, renombra, elimina y organiza generaciones por carpetas.
Que se logra
- Resultado: Las generaciones se organizan por carpetas para encontrarlas en la operación.
- Caso de uso: Una agencia separa locuciones de campañas, soporte y anuncios.
- Se combina con: Conversaciones y asistentes IA.
Donde esta
- Ruta:
/[orgId]/settings/ai-voices/generations - Acceso en UI:
Generations > sidebar de folders - Componente(s):
AiVoiceGenerationsList.tsx
Como funciona
- El usuario abre la sección indicada.
- Revisa o completa las opciones disponibles.
- Confirma la acción con el control de la interfaz cuando aplica.
- La interfaz actualiza el resultado o informa el error.
Reglas y validaciones
- Al eliminar una carpeta, sus generaciones quedan como
Uncategorized.
Backend
- Servicios:
ai-voice-collections - Hooks relevantes solo si cambian el comportamiento visible: validación, autorización y efectos de integración asociados.
- Efectos: se aplican los movimientos, sincronizaciones, notificaciones o webhooks descritos por esta capacidad.
Relaciones
- Requiere: organización activa y acceso a la sección.
- Dispara / afecta: las entidades e integraciones administradas por esta funcionalidad.
Notas
- Los comportamientos no expuestos en las superficies revisadas no se detallan.
id: voice-conversation-audio modulo: ai-voices app: plataforma nombre: Audio de voz en conversaciones tipo: integracion
Audio de voz en conversaciones
Envía una generación guardada o crea audio nuevo para WhatsApp, Instagram, Messenger y Webchat.
Que se logra
- Resultado: Un audio generado se envía a los canales de conversación que admiten audio.
- Caso de uso: Una tienda responde por WhatsApp con una guía de compra hablada.
- Se combina con: Conversaciones y asistentes IA.
Donde esta
- Ruta:
/[orgId]/conversations - Acceso en UI:
Conversation composer > botón de audio IA - Componente(s):
AiVoiceGenerationPicker.tsx
Como funciona
- El usuario abre la sección indicada.
- Revisa o completa las opciones disponibles.
- Confirma la acción con el control de la interfaz cuando aplica.
- La interfaz actualiza el resultado o informa el error.
Reglas y validaciones
- La creación desde el compositor puede no guardarse, pero se cobra; el archivo se copia en servidor al adjuntarlo.
Backend
- Servicios:
ai-voice-synthesize, conversation-files - Hooks relevantes solo si cambian el comportamiento visible: validación, autorización y efectos de integración asociados.
- Efectos: se aplican los movimientos, sincronizaciones, notificaciones o webhooks descritos por esta capacidad.
Relaciones
- Requiere: organización activa y acceso a la sección.
- Dispara / afecta: las entidades e integraciones administradas por esta funcionalidad.
Notas
- Los comportamientos no expuestos en las superficies revisadas no se detallan.
id: voice-generation modulo: ai-voices app: plataforma nombre: Generación de audio tipo: accion
Generación de audio
Convierte texto a voz con voz y modelo seleccionados y guarda el resultado.
Que se logra
- Resultado: Un texto se convierte en un archivo de audio que puede conservarse y reutilizarse.
- Caso de uso: Una inmobiliaria crea una explicación de visita para enviarla a prospectos.
- Se combina con: Conversaciones y asistentes IA.
Donde esta
- Ruta:
/[orgId]/settings/ai-voices/generations - Acceso en UI:
AI Voices > Generations >Generate audio`` - Componente(s):
AiVoiceGenerateDialog.tsx
Como funciona
- El usuario abre la sección indicada.
- Revisa o completa las opciones disponibles.
- Confirma la acción con el control de la interfaz cuando aplica.
- La interfaz actualiza el resultado o informa el error.
Reglas y validaciones
- Consume wallet; el costo no se presenta en la UI y las generaciones de Settings siempre se guardan.
Backend
- Servicios:
ai-voice-synthesize, ai-voice-generations - Hooks relevantes solo si cambian el comportamiento visible: validación, autorización y efectos de integración asociados.
- Efectos: se aplican los movimientos, sincronizaciones, notificaciones o webhooks descritos por esta capacidad.
Relaciones
- Requiere: organización activa y acceso a la sección.
- Dispara / afecta: las entidades e integraciones administradas por esta funcionalidad.
Notas
- Los comportamientos no expuestos en las superficies revisadas no se detallan.
id: voice-marketplace modulo: ai-voices app: plataforma nombre: Marketplace de voces tipo: vista
Marketplace de voces
Busca, filtra, ordena, previsualiza y agrega voces del catálogo a la biblioteca.
Que se logra
- Resultado: El equipo descubre voces y añade las que necesita a su biblioteca de organización.
- Caso de uso: Una marca de ecommerce selecciona una voz en español para sus comunicaciones de audio.
- Se combina con: Conversaciones y asistentes IA.
Donde esta
- Ruta:
/[orgId]/settings/ai-voices/marketplace - Acceso en UI:
Settings > AI Voices > Marketplace - Componente(s):
AiVoiceMarketplace.tsx
Como funciona
- El usuario abre la sección indicada.
- Revisa o completa las opciones disponibles.
- Confirma la acción con el control de la interfaz cuando aplica.
- La interfaz actualiza el resultado o informa el error.
Reglas y validaciones
- La previsualización de catálogo es gratis. El filtro de acento aparece tras elegir idioma.
Backend
- Servicios:
ai-voice-marketplace - Hooks relevantes solo si cambian el comportamiento visible: validación, autorización y efectos de integración asociados.
- Efectos: se aplican los movimientos, sincronizaciones, notificaciones o webhooks descritos por esta capacidad.
Relaciones
- Requiere: organización activa y acceso a la sección.
- Dispara / afecta: las entidades e integraciones administradas por esta funcionalidad.
Notas
- Los comportamientos no expuestos en las superficies revisadas no se detallan.
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: api-reference modulo: api-docs app: plataforma nombre: Navegar la referencia REST tipo: publico
Navegar la referencia REST
Organiza la documentación por recurso y muestra las operaciones disponibles con su método HTTP.
Que se logra
- Resultado: un integrador identifica qué operaciones REST usar para conectar recursos de Apex.
- Caso de uso: un sistema de reservas consulta la referencia para sincronizar servicios o disponibilidad.
- Se combina con: autenticación, códigos de error y conexiones MCP.
Donde esta
- Ruta:
/docs/api-reference. - Acceso en UI:
Docs > API Reference. - Componente(s):
sidebar.tsx.
Como funciona
- Abrir una categoría de recurso en la barra lateral.
- Elegir la vista general o una operación.
- Revisar el método mostrado como
GET,POST,PATCHoDELETE.
Reglas y validaciones
- La navegación incluye recursos como contactos, compañías, conversaciones, deals, productos, reservas, asistentes y organizaciones.
Backend
- Servicios: las rutas REST documentadas por cada página.
Relaciones
- Requiere: autenticación cuando la operación lo exige.
- Dispara / afecta: integración por API externa.
Notas
- La estructura de navegación está definida estáticamente en la barra lateral.
id: authentication modulo: api-docs app: plataforma nombre: Autenticarse con API key tipo: publico
Autenticarse con API key
Explica la autenticación requerida para consumir la API REST de AchieveApex.
Que se logra
- Resultado: una aplicación externa puede autenticarse para operar recursos autorizados de una organización.
- Caso de uso: una empresa conecta su sistema interno para consultar contactos y crear deals con una API key.
- Se combina con: referencia REST y permisos de la organización.
Donde esta
- Ruta:
/docs/api-reference/authentication. - Acceso en UI:
Docs > API Reference > Authentication. - Componente(s): página de autenticación.
Como funciona
- Abrir la guía de
Authentication. - Generar u obtener una API key desde la configuración correspondiente.
- Incluir la key en las solicitudes REST según la guía.
Reglas y validaciones
- Las operaciones documentadas respetan los permisos de la identidad o contexto asociado.
Backend
- Servicios: autenticación y servicios REST protegidos.
Relaciones
- Requiere: API key válida.
- Dispara / afecta: acceso programático a recursos de la organización.
Notas
- Por confirmar: interfaz exacta de generación de la API key enlazada desde esta página.
id: error-codes modulo: api-docs app: plataforma nombre: Consultar códigos de error tipo: publico
Consultar códigos de error
Agrupa códigos de error conocidos para ayudar a diagnosticar integraciones, con una sección dedicada a WhatsApp.
Que se logra
- Resultado: un equipo técnico traduce un código recibido en una causa y un punto de diagnóstico.
- Caso de uso: una empresa que integra WhatsApp identifica un error de Meta y decide qué revisar en su configuración.
- Se combina con: referencia REST y tutoriales.
Donde esta
- Ruta:
/docs/error-codesy/docs/error-codes/whatsapp. - Acceso en UI:
Docs > Error Codes. - Componente(s):
sidebar.tsx.
Como funciona
- Abrir
Error Codes. - Elegir
WhatsAppcuando el error corresponde a ese canal. - Abrir el código concreto para revisar su descripción.
Reglas y validaciones
- La barra lateral incluye códigos de WhatsApp como
130403,130472,131026y131050.
Backend
- Servicios: no aplica; es documentación pública.
Relaciones
- Requiere: conocer el código recibido.
- Dispara / afecta: diagnóstico operativo de integraciones.
Notas
- La lista concreta puede evolucionar con los códigos de Meta.
id: tutorials modulo: api-docs app: plataforma nombre: Aprender con tutoriales tipo: publico
Aprender con tutoriales
Ofrece guías paso a paso de funcionalidades de plataforma, separadas de la referencia técnica de API.
Que se logra
- Resultado: un usuario o partner aprende flujos de producto antes de configurarlos en una organización.
- Caso de uso: un implementador sigue un tutorial de contactos y deals para preparar una demostración comercial.
- Se combina con: referencia REST, autenticación y documentación de códigos de error.
Donde esta
- Ruta:
/docs/tutorials. - Acceso en UI:
Docs > Tutorials. - Componente(s):
sidebar.tsx.
Como funciona
- Abrir una categoría de tutoriales.
- Seleccionar una guía.
- Seguir el flujo descrito en la página.
Reglas y validaciones
- Hay categorías para canales, contactos, deals, productos y tickets, además de
Quick Start.
Backend
- Servicios: no aplica; es documentación pública.
Relaciones
- Requiere: ninguna autenticación para lectura.
- Dispara / afecta: adopción de funcionalidades del producto.
Notas
- Los tutoriales documentan uso de producto, no contratos REST.
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: billing-invoices modulo: billing-wallet app: plataforma nombre: Facturas de Stripe tipo: vista
Facturas de Stripe
Lista el historial de facturas de Stripe cuando existe cliente de Stripe.
Que se logra
- Resultado: El responsable consulta las facturas emitidas por Stripe.
- Caso de uso: Finanzas descarga el historial para conciliación mensual.
- Se combina con: Suscripción, asistentes IA, voces de IA y mensajería.
Donde esta
- Ruta:
/[orgId]/settings/billing - Acceso en UI:
Billing >Invoices`` - Componente(s):
BillingInvoices.tsx
Como funciona
- El usuario abre la sección indicada.
- Revisa o completa las opciones disponibles.
- Confirma la acción con el control de la interfaz cuando aplica.
- La interfaz actualiza el resultado o informa el error.
Reglas y validaciones
- No aparece si la organización no tiene cliente asociado.
Backend
- Servicios:
stripe - Hooks relevantes solo si cambian el comportamiento visible: validación, autorización y efectos de integración asociados.
- Efectos: se aplican los movimientos, sincronizaciones, notificaciones o webhooks descritos por esta capacidad.
Relaciones
- Requiere: organización activa y acceso a la sección.
- Dispara / afecta: las entidades e integraciones administradas por esta funcionalidad.
Notas
- Los comportamientos no expuestos en las superficies revisadas no se detallan.
id: billing-notifications modulo: billing-wallet app: plataforma nombre: Notificaciones de cobro fallido tipo: automatizacion
Notificaciones de cobro fallido
Envía email a owners y admins de cliente cuando falla el cobro del plan o un reintento.
Que se logra
- Resultado: Owners y admins reciben aviso cuando falla el cobro del plan o un reintento.
- Caso de uso: Una pyme corrige una tarjeta antes de que el estado de su suscripción afecte su servicio.
- Se combina con: Suscripción, asistentes IA, voces de IA y mensajería.
Donde esta
- Ruta:
/[orgId]/settings/billing - Acceso en UI:
Automática, desde Stripe - Componente(s):
BillingPlan.tsx
Como funciona
- El usuario abre la sección indicada.
- Revisa o completa las opciones disponibles.
- Confirma la acción con el control de la interfaz cuando aplica.
- La interfaz actualiza el resultado o informa el error.
Reglas y validaciones
- No avisa por complementos de teléfonos/10DLC y no modifica la suscripción desde la ruta de notificación.
Backend
- Servicios:
stripe-webhooks - Hooks relevantes solo si cambian el comportamiento visible: validación, autorización y efectos de integración asociados.
- Efectos: se aplican los movimientos, sincronizaciones, notificaciones o webhooks descritos por esta capacidad.
Relaciones
- Requiere: organización activa y acceso a la sección.
- Dispara / afecta: las entidades e integraciones administradas por esta funcionalidad.
Notas
- Los comportamientos no expuestos en las superficies revisadas no se detallan.
id: plan-changes modulo: billing-wallet app: plataforma nombre: Cambio de plan tipo: accion
Cambio de plan
Permite actualizar o reducir el plan y compara las opciones disponibles.
Que se logra
- Resultado: El responsable puede seleccionar una alternativa de plan acorde con la operación.
- Caso de uso: Un negocio estacional ajusta su plan después de una campaña.
- Se combina con: Suscripción, asistentes IA, voces de IA y mensajería.
Donde esta
- Ruta:
/[orgId]/settings/billing - Acceso en UI:
Billing >Change plan`` - Componente(s):
PlanComparison.tsx
Como funciona
- El usuario abre la sección indicada.
- Revisa o completa las opciones disponibles.
- Confirma la acción con el control de la interfaz cuando aplica.
- La interfaz actualiza el resultado o informa el error.
Reglas y validaciones
- Free admite 1 asiento, o 2 con partner; Basic 2; Pro y Enterprise no tienen límite.
Backend
- Servicios:
stripe, organizations - Hooks relevantes solo si cambian el comportamiento visible: validación, autorización y efectos de integración asociados.
- Efectos: se aplican los movimientos, sincronizaciones, notificaciones o webhooks descritos por esta capacidad.
Relaciones
- Requiere: organización activa y acceso a la sección.
- Dispara / afecta: las entidades e integraciones administradas por esta funcionalidad.
Notas
- Los comportamientos no expuestos en las superficies revisadas no se detallan.
id: stripe-checkout modulo: billing-wallet app: plataforma nombre: Checkout de Stripe tipo: integracion
Checkout de Stripe
Inicia el checkout de Stripe para contratar o cambiar la suscripción.
Que se logra
- Resultado: La contratación o cambio de suscripción se completa en el checkout seguro de Stripe.
- Caso de uso: Una empresa pasa a un plan superior al incorporar nuevos equipos.
- Se combina con: Suscripción, asistentes IA, voces de IA y mensajería.
Donde esta
- Ruta:
/[orgId]/settings/billing - Acceso en UI:
Billing > elegir plan - Componente(s):
BillingPlan.tsx
Como funciona
- El usuario abre la sección indicada.
- Revisa o completa las opciones disponibles.
- Confirma la acción con el control de la interfaz cuando aplica.
- La interfaz actualiza el resultado o informa el error.
Reglas y validaciones
- El retorno válido requiere una sesión de Stripe.
Backend
- Servicios:
stripe - Hooks relevantes solo si cambian el comportamiento visible: validación, autorización y efectos de integración asociados.
- Efectos: se aplican los movimientos, sincronizaciones, notificaciones o webhooks descritos por esta capacidad.
Relaciones
- Requiere: organización activa y acceso a la sección.
- Dispara / afecta: las entidades e integraciones administradas por esta funcionalidad.
Notas
- Los comportamientos no expuestos en las superficies revisadas no se detallan.
id: subscription-cancellation modulo: billing-wallet app: plataforma nombre: Cancelación de suscripción tipo: accion
Cancelación de suscripción
Solicita la cancelación de la suscripción de la organización.
Que se logra
- Resultado: La organización puede solicitar la cancelación de su suscripción.
- Caso de uso: Una compañía que deja de operar centraliza el cierre de su plan.
- Se combina con: Suscripción, asistentes IA, voces de IA y mensajería.
Donde esta
- Ruta:
/[orgId]/settings/billing - Acceso en UI:
Billing > gestión de suscripción - Componente(s):
BillingPlan.tsx
Como funciona
- El usuario abre la sección indicada.
- Revisa o completa las opciones disponibles.
- Confirma la acción con el control de la interfaz cuando aplica.
- La interfaz actualiza el resultado o informa el error.
Reglas y validaciones
- Una suscripción activa impide eliminar la organización.
Backend
- Servicios:
stripe - Hooks relevantes solo si cambian el comportamiento visible: validación, autorización y efectos de integración asociados.
- Efectos: se aplican los movimientos, sincronizaciones, notificaciones o webhooks descritos por esta capacidad.
Relaciones
- Requiere: organización activa y acceso a la sección.
- Dispara / afecta: las entidades e integraciones administradas por esta funcionalidad.
Notas
- Los comportamientos no expuestos en las superficies revisadas no se detallan.
id: subscription-plan modulo: billing-wallet app: plataforma nombre: Plan de suscripción tipo: vista
Plan de suscripción
Muestra el plan y complementos recurrentes, con acceso a cambio de plan.
Que se logra
- Resultado: La organización visualiza su plan y complementos recurrentes para administrar su capacidad contratada.
- Caso de uso: Una agencia revisa el plan de cada cliente antes de ampliar su operación.
- Se combina con: Suscripción, asistentes IA, voces de IA y mensajería.
Donde esta
- Ruta:
/[orgId]/settings/billing - Acceso en UI:
Settings > Billing & Subscription >Subscription Plan`` - Componente(s):
BillingPlan.tsx
Como funciona
- El usuario abre la sección indicada.
- Revisa o completa las opciones disponibles.
- Confirma la acción con el control de la interfaz cuando aplica.
- La interfaz actualiza el resultado o informa el error.
Reglas y validaciones
- La reducción se bloquea si los miembros activos exceden el límite del plan destino.
Backend
- Servicios:
stripe - Hooks relevantes solo si cambian el comportamiento visible: validación, autorización y efectos de integración asociados.
- Efectos: se aplican los movimientos, sincronizaciones, notificaciones o webhooks descritos por esta capacidad.
Relaciones
- Requiere: organización activa y acceso a la sección.
- Dispara / afecta: las entidades e integraciones administradas por esta funcionalidad.
Notas
- Los comportamientos no expuestos en las superficies revisadas no se detallan.
id: wallet-auto-recharge modulo: billing-wallet app: plataforma nombre: Auto-recarga de wallet tipo: configuracion
Auto-recarga de wallet
Configura el umbral y monto para recargar automáticamente cuando el saldo baja.
Que se logra
- Resultado: El wallet se repone automáticamente cuando el saldo baja del umbral configurado.
- Caso de uso: Una tienda evita interrumpir respuestas automatizadas durante horas no laborales.
- Se combina con: Suscripción, asistentes IA, voces de IA y mensajería.
Donde esta
- Ruta:
/[orgId]/settings/billing - Acceso en UI:
Billing > Wallet > configuración de auto-recarga - Componente(s):
BillingWallet.tsx
Como funciona
- El usuario abre la sección indicada.
- Revisa o completa las opciones disponibles.
- Confirma la acción con el control de la interfaz cuando aplica.
- La interfaz actualiza el resultado o informa el error.
Reglas y validaciones
- El umbral minimo es $5 USD.
- El umbral no puede estar por debajo del consumo diario promedio de los ultimos 5 dias.
- El monto de recarga debe ser mayor que el umbral.
Backend
- Servicios:
organizations, organization-wallet-usage, wallet-auto-recharge-webhook - Hooks relevantes solo si cambian el comportamiento visible: validación, autorización y efectos de integración asociados.
- Efectos: se aplican los movimientos, sincronizaciones, notificaciones o webhooks descritos por esta capacidad.
Relaciones
- Requiere: organización activa y acceso a la sección.
- Dispara / afecta: las entidades e integraciones administradas por esta funcionalidad.
Notas
- Los comportamientos no expuestos en las superficies revisadas no se detallan.
id: wallet-recharge modulo: billing-wallet app: plataforma nombre: Recarga de wallet tipo: accion
Recarga de wallet
Añade fondos prepagos al wallet mediante Stripe.
Que se logra
- Resultado: El saldo prepago queda disponible para consumos variables después del pago por Stripe.
- Caso de uso: Un contact center añade saldo antes de una campaña de mensajería e IA.
- Se combina con: Suscripción, asistentes IA, voces de IA y mensajería.
Donde esta
- Ruta:
/[orgId]/settings/billing - Acceso en UI:
Billing > Wallet >Add Funds`` - Componente(s):
AddFundsDialog.tsx
Como funciona
- El usuario abre la sección indicada.
- Revisa o completa las opciones disponibles.
- Confirma la acción con el control de la interfaz cuando aplica.
- La interfaz actualiza el resultado o informa el error.
Reglas y validaciones
- La recarga genera una transacción de wallet.
Backend
- Servicios:
stripe, organization-wallet-transactions - Hooks relevantes solo si cambian el comportamiento visible: validación, autorización y efectos de integración asociados.
- Efectos: se aplican los movimientos, sincronizaciones, notificaciones o webhooks descritos por esta capacidad.
Relaciones
- Requiere: organización activa y acceso a la sección.
- Dispara / afecta: las entidades e integraciones administradas por esta funcionalidad.
Notas
- Los comportamientos no expuestos en las superficies revisadas no se detallan.
id: wallet-safeguards modulo: billing-wallet app: plataforma nombre: Protecciones de auto-recarga tipo: automatizacion
Protecciones de auto-recarga
Desactiva futuras auto-recargas anómalas y muestra el motivo al superar los límites móviles de 24 horas o 30 días.
Que se logra
- Resultado: Las recargas futuras se detienen ante un patrón anómalo y se muestra la causa.
- Caso de uso: Un administrador detecta un ciclo de consumo antes de que siga generando recargas.
- Se combina con: Suscripción, asistentes IA, voces de IA y mensajería.
Donde esta
- Ruta:
/[orgId]/settings/billing - Acceso en UI:
Billing > Wallet - Componente(s):
BillingWallet.tsx
Como funciona
- El usuario abre la sección indicada.
- Revisa o completa las opciones disponibles.
- Confirma la acción con el control de la interfaz cuando aplica.
- La interfaz actualiza el resultado o informa el error.
Reglas y validaciones
- La recarga ya pagada se conserva; las recargas manuales también cuentan. Rehabilitar no borra el historial.
Backend
- Servicios:
organization-wallet-transactions, wallet-auto-recharge-webhook - Hooks relevantes solo si cambian el comportamiento visible: validación, autorización y efectos de integración asociados.
- Efectos: se aplican los movimientos, sincronizaciones, notificaciones o webhooks descritos por esta capacidad.
Relaciones
- Requiere: organización activa y acceso a la sección.
- Dispara / afecta: las entidades e integraciones administradas por esta funcionalidad.
Notas
- Los comportamientos no expuestos en las superficies revisadas no se detallan.
id: wallet-transactions modulo: billing-wallet app: plataforma nombre: Transacciones de wallet tipo: vista
Transacciones de wallet
Consulta créditos, débitos y referencias de movimientos de saldo.
Que se logra
- Resultado: Créditos y débitos quedan disponibles para auditar el saldo.
- Caso de uso: Finanzas explica una variación de saldo con sus referencias de movimiento.
- Se combina con: Suscripción, asistentes IA, voces de IA y mensajería.
Donde esta
- Ruta:
/[orgId]/settings/billing - Acceso en UI:
Billing > Wallet - Componente(s):
BillingWallet.tsx
Como funciona
- El usuario abre la sección indicada.
- Revisa o completa las opciones disponibles.
- Confirma la acción con el control de la interfaz cuando aplica.
- La interfaz actualiza el resultado o informa el error.
Reglas y validaciones
- Los movimientos reflejan recargas y consumos de la organización.
Backend
- Servicios:
organization-wallet-transactions - Hooks relevantes solo si cambian el comportamiento visible: validación, autorización y efectos de integración asociados.
- Efectos: se aplican los movimientos, sincronizaciones, notificaciones o webhooks descritos por esta capacidad.
Relaciones
- Requiere: organización activa y acceso a la sección.
- Dispara / afecta: las entidades e integraciones administradas por esta funcionalidad.
Notas
- Los comportamientos no expuestos en las superficies revisadas no se detallan.
id: wallet-usage modulo: billing-wallet app: plataforma nombre: Uso de wallet tipo: vista
Uso de wallet
Muestra el consumo por día y concepto, respetando la zona horaria de la organización.
Que se logra
- Resultado: El negocio observa el consumo de saldo por día y concepto en su propia zona horaria.
- Caso de uso: Una agencia compara el uso de IA y mensajería entre periodos de campaña.
- Se combina con: Suscripción, asistentes IA, voces de IA y mensajería.
Donde esta
- Ruta:
/[orgId]/settings/billing - Acceso en UI:
Billing > Wallet - Componente(s):
WalletUsageGraph.tsx
Como funciona
- El usuario abre la sección indicada.
- Revisa o completa las opciones disponibles.
- Confirma la acción con el control de la interfaz cuando aplica.
- La interfaz actualiza el resultado o informa el error.
Reglas y validaciones
- Incluye costos como generaciones de voz y servicios que consumen saldo.
Backend
- Servicios:
organization-wallet-usage - Hooks relevantes solo si cambian el comportamiento visible: validación, autorización y efectos de integración asociados.
- Efectos: se aplican los movimientos, sincronizaciones, notificaciones o webhooks descritos por esta capacidad.
Relaciones
- Requiere: organización activa y acceso a la sección.
- Dispara / afecta: las entidades e integraciones administradas por esta funcionalidad.
Notas
- Los comportamientos no expuestos en las superficies revisadas no se detallan.
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: announcements modulo: community app: plataforma nombre: Leer anuncios de Community tipo: vista
Leer anuncios de Community
Presenta los anuncios de producto publicados para la comunidad.
Que se logra
- Resultado: la comunidad consulta novedades de producto en una página pública y permanente.
- Caso de uso: una agencia revisa los anuncios para conocer una función nueva antes de recomendarla a sus clientes.
- Se combina con: roadmap e ideas de Community.
Donde esta
- Ruta:
/community/announcements. - Acceso en UI:
Community > Announcements. - Componente(s): página de anuncios.
Como funciona
- Abrir
Announcements. - Consultar los anuncios disponibles.
Reglas y validaciones
- Por confirmar: criterios de publicación, fijación y archivo.
Backend
- Servicios:
community-announcements(find/get).
Relaciones
- Requiere: anuncios publicados.
- Dispara / afecta: comunicación de novedades de plataforma.
Notas
- Los anuncios de Community son distintos de los banners de alerta autenticados.
id: idea-engagement modulo: community app: plataforma nombre: Votar y comentar ideas tipo: accion
Votar y comentar ideas
Permite interactuar con una propuesta desde su página de detalle mediante votos y comentarios.
Que se logra
- Resultado: la comunidad expresa interés y aporta contexto sobre una propuesta concreta.
- Caso de uso: varios administradores votan una mejora de reservas y explican en comentarios cómo afectaría su operación.
- Se combina con: exploración y envío de ideas.
Donde esta
- Ruta:
/community/ideas/[id]. - Acceso en UI:
Community > Ideas > idea. - Componente(s): página de detalle de idea.
Como funciona
- Abrir una idea.
- Emitir o retirar un voto según las opciones disponibles.
- Escribir y publicar un comentario.
Reglas y validaciones
- Por confirmar: requisitos de sesión, edición y eliminación de comentarios.
Backend
- Servicios: servicios Community de votos y comentarios.
Relaciones
- Requiere: una idea existente.
- Dispara / afecta: prioridad social y discusión de la propuesta.
Notas
- Los nombres exactos de los servicios no se confirman en el alcance inspeccionado.
id: ideas modulo: community app: plataforma nombre: Explorar ideas tipo: vista
Explorar ideas
Muestra las ideas de la comunidad y permite abrir el detalle de una propuesta.
Que se logra
- Resultado: los visitantes encuentran propuestas de mejora y su discusión asociada.
- Caso de uso: un cliente de una plataforma B2B revisa si una necesidad ya fue propuesta antes de crear una nueva idea.
- Se combina con: envío de ideas, votos y comentarios.
Donde esta
- Ruta:
/community/ideasy/community/ideas/[id]. - Acceso en UI:
Community > Ideas. - Componente(s): páginas de ideas.
Como funciona
- Abrir
Ideas. - Revisar las propuestas listadas.
- Seleccionar una idea para abrir su detalle.
Reglas y validaciones
- Por confirmar: filtros, orden y visibilidad de estados.
Backend
- Servicios: servicios Community de ideas (find/get).
Relaciones
- Requiere: ideas publicadas.
- Dispara / afecta: voto y comentarios de idea.
Notas
- La idea usa un identificador dinámico en la ruta.
id: roadmap modulo: community app: plataforma nombre: Consultar roadmap tipo: vista
Consultar roadmap
Presenta la página pública del roadmap de producto.
Que se logra
- Resultado: los clientes pueden consultar las iniciativas de producto visibles y su estado.
- Caso de uso: un comprador de software revisa el roadmap para evaluar si una capacidad relevante está contemplada.
- Se combina con: ideas y anuncios de Community.
Donde esta
- Ruta:
/community/roadmap. - Acceso en UI:
Community > Roadmap. - Componente(s): página de roadmap.
Como funciona
- Abrir
Roadmap. - Revisar las iniciativas y sus estados visibles.
Reglas y validaciones
- Por confirmar: fuente y estados exactos del roadmap.
Backend
- Servicios: Por confirmar: servicio que alimenta el roadmap.
Relaciones
- Requiere: datos de roadmap publicados.
- Dispara / afecta: comprensión de prioridades de producto.
Notas
- No se asume que una idea votada entre automáticamente al roadmap.
id: submit-idea modulo: community app: plataforma nombre: Proponer una idea tipo: accion
Proponer una idea
Permite enviar una nueva propuesta desde la comunidad.
Que se logra
- Resultado: una necesidad de cliente queda registrada como propuesta visible en Community.
- Caso de uso: una agencia propone una mejora para el flujo de campañas y la comparte con otros usuarios.
- Se combina con: exploración de ideas, votos y comentarios.
Donde esta
- Ruta:
/community/ideas/submit-idea. - Acceso en UI:
Community > Ideas > Submit idea. - Componente(s): página de envío de idea.
Como funciona
- Abrir
Submit idea. - Completar el formulario.
- Enviar la propuesta.
- Revisar la idea creada.
Campos y opciones
Por confirmar: campos, obligatoriedad y categorías del formulario.
Reglas y validaciones
- Por confirmar: validaciones y flujo de moderación.
Backend
- Servicios: servicios Community de ideas (create).
Relaciones
- Requiere: participación en Community.
- Dispara / afecta: listado y detalle de ideas.
Notas
- La existencia de la ruta de envío está confirmada; los campos no se documentan sin confirmarlos.
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: api-keys modulo: developers app: plataforma nombre: Claves de API tipo: configuracion
Claves de API
Crea y revoca claves para integraciones REST.
Que se logra
- Resultado: Integraciones externas autentican operaciones de API con claves de organización que se pueden revocar.
- Caso de uso: Un ERP sincroniza clientes con Apex sin compartir credenciales personales.
- Se combina con: CRM, reservas, proyectos, facturación, asistentes IA y automatizaciones.
Donde esta
- Ruta:
/[orgId]/settings/developers/api-keys - Acceso en UI:
Settings > Developers > API Keys - Componente(s):
ApiKeysList.tsx
Como funciona
- El usuario abre la sección indicada.
- Revisa o completa las opciones disponibles.
- Confirma la acción con el control de la interfaz cuando aplica.
- La interfaz actualiza el resultado o informa el error.
Reglas y validaciones
- El secreto completo se muestra una sola vez al crearlo.
Backend
- Servicios:
organization-api-keys - Hooks relevantes solo si cambian el comportamiento visible: validación, autorización y efectos de integración asociados.
- Efectos: se aplican los movimientos, sincronizaciones, notificaciones o webhooks descritos por esta capacidad.
Relaciones
- Requiere: organización activa y acceso a la sección.
- Dispara / afecta: las entidades e integraciones administradas por esta funcionalidad.
Notas
- Los comportamientos no expuestos en las superficies revisadas no se detallan.
id: data-sync modulo: developers app: plataforma nombre: Sincronización de datos tipo: integracion
Sincronización de datos
Configura la exportación programada de datos de la organización a BigQuery y sus entidades.
Que se logra
- Resultado: Las entidades seleccionadas se exportan de forma programada a BigQuery.
- Caso de uso: Una empresa consolida datos de Apex con su analítica corporativa.
- Se combina con: CRM, reservas, proyectos, facturación, asistentes IA y automatizaciones.
Donde esta
- Ruta:
/[orgId]/settings/developers/data-sync - Acceso en UI:
Settings > Developers > Data Sync - Componente(s):
DataSyncSettings.tsx
Como funciona
- El usuario abre la sección indicada.
- Revisa o completa las opciones disponibles.
- Confirma la acción con el control de la interfaz cuando aplica.
- La interfaz actualiza el resultado o informa el error.
Reglas y validaciones
- Disponible solo para Enterprise, AdminOnly o Implementor; la documentación pública de API permanece en
/docs.
Backend
- Servicios:
export-data - Hooks relevantes solo si cambian el comportamiento visible: validación, autorización y efectos de integración asociados.
- Efectos: se aplican los movimientos, sincronizaciones, notificaciones o webhooks descritos por esta capacidad.
Relaciones
- Requiere: organización activa y acceso a la sección.
- Dispara / afecta: las entidades e integraciones administradas por esta funcionalidad.
Notas
- Los comportamientos no expuestos en las superficies revisadas no se detallan.
id: mcp-access modulo: developers app: plataforma nombre: Activación de MCP tipo: configuracion
Activación de MCP
Activa o desactiva el acceso MCP de la organización y permite copiar la URL del servidor.
Que se logra
- Resultado: La organización controla si sus datos pueden usarse desde el servidor MCP oficial.
- Caso de uso: Una empresa habilita su conector de IA solo después de aprobar el uso por organización.
- Se combina con: CRM, reservas, proyectos, facturación, asistentes IA y automatizaciones.
Donde esta
- Ruta:
/[orgId]/settings/developers/mcp - Acceso en UI:
Settings > Developers > MCP - Componente(s):
McpSettingsPage.tsx
Como funciona
- El usuario abre la sección indicada.
- Revisa o completa las opciones disponibles.
- Confirma la acción con el control de la interfaz cuando aplica.
- La interfaz actualiza el resultado o informa el error.
Reglas y validaciones
- MCP activo bloquea la eliminación de organización hasta desactivarlo.
Backend
- Servicios:
organizations - Hooks relevantes solo si cambian el comportamiento visible: validación, autorización y efectos de integración asociados.
- Efectos: se aplican los movimientos, sincronizaciones, notificaciones o webhooks descritos por esta capacidad.
Relaciones
- Requiere: organización activa y acceso a la sección.
- Dispara / afecta: las entidades e integraciones administradas por esta funcionalidad.
Notas
- Los comportamientos no expuestos en las superficies revisadas no se detallan.
id: mcp-connectors modulo: developers app: plataforma nombre: Conexión de conectores MCP tipo: integracion
Conexión de conectores MCP
Guía la configuración de conectores de Claude y ChatGPT, incluido inicio de sesión y selección de organizaciones.
Que se logra
- Resultado: ChatGPT o Claude se conectan mediante OAuth y pueden actuar dentro de las organizaciones autorizadas.
- Caso de uso: Un equipo comercial pide a Claude crear un contacto y preparar una reserva en la cuenta correcta.
- Se combina con: CRM, reservas, proyectos, facturación, asistentes IA y automatizaciones.
Donde esta
- Ruta:
/[orgId]/settings/developers/mcp - Acceso en UI:
MCP >View guide`` - Componente(s):
McpSettingsPage.tsx
Como funciona
- El usuario abre la sección indicada.
- Revisa o completa las opciones disponibles.
- Confirma la acción con el control de la interfaz cuando aplica.
- La interfaz actualiza el resultado o informa el error.
Reglas y validaciones
- Cada llamada opera en una organización autorizada; los permisos granulares de roles no se aplican dentro de herramientas MCP.
Backend
- Servicios:
mcp-internal-tools, mcp-tool-connection-proxy - Hooks relevantes solo si cambian el comportamiento visible: validación, autorización y efectos de integración asociados.
- Efectos: se aplican los movimientos, sincronizaciones, notificaciones o webhooks descritos por esta capacidad.
Relaciones
- Requiere: organización activa y acceso a la sección.
- Dispara / afecta: las entidades e integraciones administradas por esta funcionalidad.
Notas
- Los comportamientos no expuestos en las superficies revisadas no se detallan.
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: granular-permissions modulo: equipo-permisos app: plataforma nombre: Permisos por sección y módulo tipo: configuracion
Permisos por sección y módulo
Define acceso a secciones, módulos y acciones de ver, crear, editar o eliminar propias/todas.
Que se logra
- Resultado: Cada rol limita el alcance por sección, módulo y acción sobre registros propios o de todos.
- Caso de uso: Una inmobiliaria permite a sus asesores editar solo sus oportunidades y a un gerente ver todas.
- Se combina con: Miembros, roles y todos los módulos protegidos de Apex.
Donde esta
- Ruta:
/[orgId]/settings/team-members - Acceso en UI:
Manage Roles > editor de permisos - Componente(s):
PermissionsEditor.tsx
Como funciona
- El usuario abre la sección indicada.
- Revisa o completa las opciones disponibles.
- Confirma la acción con el control de la interfaz cuando aplica.
- La interfaz actualiza el resultado o informa el error.
Reglas y validaciones
- Si una bandera no existe aún se interpreta como permitida por compatibilidad.
Backend
- Servicios:
organization-roles - Hooks relevantes solo si cambian el comportamiento visible: validación, autorización y efectos de integración asociados.
- Efectos: se aplican los movimientos, sincronizaciones, notificaciones o webhooks descritos por esta capacidad.
Relaciones
- Requiere: organización activa y acceso a la sección.
- Dispara / afecta: las entidades e integraciones administradas por esta funcionalidad.
Notas
- Los comportamientos no expuestos en las superficies revisadas no se detallan.
id: member-invitations modulo: equipo-permisos app: plataforma nombre: Invitación de miembros tipo: accion
Invitación de miembros
Invita por email y asigna rol o rol personalizado.
Que se logra
- Resultado: Un nuevo colaborador recibe una invitación con el rol definido para comenzar.
- Caso de uso: Una clínica incorpora una recepcionista con el acceso correspondiente.
- Se combina con: Miembros, roles y todos los módulos protegidos de Apex.
Donde esta
- Ruta:
/[orgId]/settings/team-members - Acceso en UI:
Team Members >Invite Member`` - Componente(s):
InviteMemberDialog.tsx
Como funciona
- El usuario abre la sección indicada.
- Revisa o completa las opciones disponibles.
- Confirma la acción con el control de la interfaz cuando aplica.
- La interfaz actualiza el resultado o informa el error.
Reglas y validaciones
- Se bloquea al alcanzar el límite de asientos; la persona también puede aceptar o rechazar desde el menú de avatar.
Backend
- Servicios:
organizations-users-invites - Hooks relevantes solo si cambian el comportamiento visible: validación, autorización y efectos de integración asociados.
- Efectos: se aplican los movimientos, sincronizaciones, notificaciones o webhooks descritos por esta capacidad.
Relaciones
- Requiere: organización activa y acceso a la sección.
- Dispara / afecta: las entidades e integraciones administradas por esta funcionalidad.
Notas
- Los comportamientos no expuestos en las superficies revisadas no se detallan.
id: member-removal modulo: equipo-permisos app: plataforma nombre: Remoción de miembros tipo: accion
Remoción de miembros
Permite reasignar referencias antes de retirar a una persona.
Que se logra
- Resultado: Las referencias pendientes se reasignan antes de retirar a una persona.
- Caso de uso: Una agencia transfiere clientes y tareas cuando un ejecutivo deja la cuenta.
- Se combina con: Miembros, roles y todos los módulos protegidos de Apex.
Donde esta
- Ruta:
/[orgId]/settings/team-members - Acceso en UI:
Fila de miembro > eliminar - Componente(s):
RemoveMemberDialog.tsx
Como funciona
- El usuario abre la sección indicada.
- Revisa o completa las opciones disponibles.
- Confirma la acción con el control de la interfaz cuando aplica.
- La interfaz actualiza el resultado o informa el error.
Reglas y validaciones
- No se puede quitar al último owner ni usuarios sin permiso; bloquean asignaciones de CRM, tickets, documentos, integraciones, automatizaciones, handoffs, voz, reservas y Lead Ads.
Backend
- Servicios:
organizations-users - Hooks relevantes solo si cambian el comportamiento visible: validación, autorización y efectos de integración asociados.
- Efectos: se aplican los movimientos, sincronizaciones, notificaciones o webhooks descritos por esta capacidad.
Relaciones
- Requiere: organización activa y acceso a la sección.
- Dispara / afecta: las entidades e integraciones administradas por esta funcionalidad.
Notas
- Los comportamientos no expuestos en las superficies revisadas no se detallan.
id: organization-roles modulo: equipo-permisos app: plataforma nombre: Roles personalizados tipo: configuracion
Roles personalizados
Crea y edita roles reutilizables para miembros de la organización.
Que se logra
- Resultado: La organización reutiliza perfiles de acceso consistentes para puestos recurrentes.
- Caso de uso: Un BPO crea un rol de supervisor y lo asigna a cada líder de turno.
- Se combina con: Miembros, roles y todos los módulos protegidos de Apex.
Donde esta
- Ruta:
/[orgId]/settings/team-members - Acceso en UI:
Team Members >Manage Roles`` - Componente(s):
ManageRolesDialog.tsx
Como funciona
- El usuario abre la sección indicada.
- Revisa o completa las opciones disponibles.
- Confirma la acción con el control de la interfaz cuando aplica.
- La interfaz actualiza el resultado o informa el error.
Reglas y validaciones
- Owners y admins tienen acceso sin restricciones; las restricciones aplican a miembros.
Backend
- Servicios:
organization-roles - Hooks relevantes solo si cambian el comportamiento visible: validación, autorización y efectos de integración asociados.
- Efectos: se aplican los movimientos, sincronizaciones, notificaciones o webhooks descritos por esta capacidad.
Relaciones
- Requiere: organización activa y acceso a la sección.
- Dispara / afecta: las entidades e integraciones administradas por esta funcionalidad.
Notas
- Los comportamientos no expuestos en las superficies revisadas no se detallan.
id: pending-invitations modulo: equipo-permisos app: plataforma nombre: Invitaciones pendientes tipo: vista
Invitaciones pendientes
Revisa el estado de invitaciones enviadas.
Que se logra
- Resultado: El administrador puede detectar invitaciones que aún no se han aceptado.
- Caso de uso: Un gerente hace seguimiento a la incorporación de un nuevo equipo comercial.
- Se combina con: Miembros, roles y todos los módulos protegidos de Apex.
Donde esta
- Ruta:
/[orgId]/settings/team-members - Acceso en UI:
Team Members >Pending Invitations`` - Componente(s):
PendingInvitationsDialog.tsx
Como funciona
- El usuario abre la sección indicada.
- Revisa o completa las opciones disponibles.
- Confirma la acción con el control de la interfaz cuando aplica.
- La interfaz actualiza el resultado o informa el error.
Reglas y validaciones
- Las invitaciones tienen estado y expiración administrados por el backend.
Backend
- Servicios:
organizations-users-invites - Hooks relevantes solo si cambian el comportamiento visible: validación, autorización y efectos de integración asociados.
- Efectos: se aplican los movimientos, sincronizaciones, notificaciones o webhooks descritos por esta capacidad.
Relaciones
- Requiere: organización activa y acceso a la sección.
- Dispara / afecta: las entidades e integraciones administradas por esta funcionalidad.
Notas
- Los comportamientos no expuestos en las superficies revisadas no se detallan.
id: team-members modulo: equipo-permisos app: plataforma nombre: Listado de miembros tipo: vista
Listado de miembros
Lista miembros facturables, implementadores y personal Apex; permite buscar.
Que se logra
- Resultado: Los responsables visualizan quién integra la organización y su condición de acceso.
- Caso de uso: Una agencia confirma qué implementadores y usuarios atienden la cuenta de un cliente.
- Se combina con: Miembros, roles y todos los módulos protegidos de Apex.
Donde esta
- Ruta:
/[orgId]/settings/team-members - Acceso en UI:
Settings > Organization > Team Members - Componente(s):
TeamMembersList.tsx
Como funciona
- El usuario abre la sección indicada.
- Revisa o completa las opciones disponibles.
- Confirma la acción con el control de la interfaz cuando aplica.
- La interfaz actualiza el resultado o informa el error.
Reglas y validaciones
- El personal de plataforma e implementadores no consumen asientos.
Backend
- Servicios:
organizations-users - Hooks relevantes solo si cambian el comportamiento visible: validación, autorización y efectos de integración asociados.
- Efectos: se aplican los movimientos, sincronizaciones, notificaciones o webhooks descritos por esta capacidad.
Relaciones
- Requiere: organización activa y acceso a la sección.
- Dispara / afecta: las entidades e integraciones administradas por esta funcionalidad.
Notas
- Los comportamientos no expuestos en las superficies revisadas no se detallan.
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: email-unsubscribe modulo: marketing-site app: plataforma nombre: Desuscribir correo tipo: publico
Desuscribir correo
Proporciona una página pública para tramitar la desuscripción de comunicaciones por correo.
Que se logra
- Resultado: un destinatario puede gestionar la desuscripción desde un enlace incluido en una comunicación por correo.
- Caso de uso: un comercio reduce envíos no deseados cuando un suscriptor solicita dejar de recibir sus campañas.
- Se combina con: email broadcasts y preferencias de notificación.
Donde esta
- Ruta:
/email-broadcast-unsubscribe. - Acceso en UI: enlace de desuscripción recibido en email.
- Componente(s): página pública de email unsubscribe.
Como funciona
- Abrir el enlace incluido en una comunicación por correo.
- Confirmar o gestionar la preferencia disponible.
Reglas y validaciones
- Por confirmar: validación del enlace y alcance de la desuscripción.
Backend
- Servicios: integración de correo y desuscripción.
Relaciones
- Requiere: enlace público emitido desde una comunicación.
- Dispara / afecta: preferencias de recepción de email.
Notas
- La página está en un grupo de rutas público independiente del sitio de marketing.
id: home-and-pricing modulo: marketing-site app: plataforma nombre: Presentar producto y precios tipo: publico
Presentar producto y precios
Comunica en español la propuesta de AchieveApex como plataforma todo en uno y presenta sus opciones comerciales.
Que se logra
- Resultado: un prospecto entiende que Apex conecta el recorrido completo del cliente y accede a las opciones comerciales publicadas.
- Caso de uso: una empresa de servicios compara la oferta antes de solicitar una demostración o registrarse.
- Se combina con: páginas de producto, solicitud de demostración y registro.
Donde esta
- Ruta:
/,/pricingy/pricing/ai-assistant. - Acceso en UI: sitio público.
- Componente(s):
HomePageContent,PlanComparisonyPricingFAQ.
Como funciona
- Abrir la página principal.
- Recorrer la historia desde el primer mensaje hasta venta, entrega, cobro y soporte.
- Explorar los productos o abrir
Preciospara comparar la oferta. - Crear una cuenta o solicitar una demostración enfocada en un proceso.
Reglas y validaciones
- No requiere sesión para lectura.
- El contenido principal y la navegación pública se presentan en español.
- Los espacios reservados para screenshots y videos describen la demostración de producto que debe reemplazarlos.
Backend
- Servicios: Por confirmar: fuentes de precios visibles.
Relaciones
- Requiere: sitio público.
- Dispara / afecta: registro, demo o selección comercial según CTA.
Notas
- No se infieren precios o condiciones sin confirmarlos en la interfaz.
id: product-pages modulo: marketing-site app: plataforma nombre: Explorar páginas públicas de producto tipo: publico
Explorar páginas públicas de producto
Presenta la plataforma completa y explica cada producto principal por sus capacidades, resultados y relación con el resto de Apex.
Que se logra
- Resultado: un prospecto puede evaluar el producto que resuelve su necesidad inmediata sin perder de vista la ventaja de operar todo en una plataforma conectada.
- Caso de uso: una clínica comienza evaluando Reservas y descubre cómo se combina con contactos, asistentes de IA y automatizaciones.
- Se combina con: inicio, precios, registro y solicitud de demo.
Donde esta
- Ruta:
/productoy/producto/[slug]. - Acceso en UI:
Header > Productoo las tarjetas de plataforma en la página de inicio. - Componente(s):
ProductModulePage,MarketingVisualySiteHeaderDark.
Como funciona
- Abrir
Productodesde el header flotante. - Elegir un producto agrupado bajo vender y atender, operar y cobrar, crear y compartir, o conectar y ampliar.
- Revisar su promesa, capacidades, resultados y casos de uso.
- Ver con qué otras áreas de Apex comparte contexto.
- Iniciar el registro gratuito o solicitar una demo.
Reglas y validaciones
- No requiere sesión.
- Cada slug publicado debe existir en
marketingModules; un slug desconocido responde con página no encontrada. - Las páginas se generan estáticamente a partir del inventario de marketing.
- Los bloques de media presentan una vista visual provisional hasta que se reemplacen por capturas o videos reales.
- El contenido no presenta métricas de clientes no verificadas.
- Finanzas, Mesa de ayuda, Contratos y Enlaces inteligentes se identifican como Beta.
Backend
- Servicios: ninguno para lectura; las llamadas a registro, login y demo llevan a sus flujos públicos existentes.
Relaciones
- Requiere: catálogo técnico de funcionalidades como fuente de capacidades confirmadas.
- Dispara / afecta: registro, solicitud de demo y navegación hacia precios.
Notas
- Las páginas cubren CRM y conversaciones, asistentes de IA, automatizaciones, Finanzas, Operaciones, Mesa de ayuda, Reservas, Eventos, Reuniones, Sitios, Presentaciones, Pizarras, Contratos, Enlaces inteligentes, y Plataforma y API.
id: request-demo modulo: marketing-site app: plataforma nombre: Solicitar una demostración tipo: publico
Solicitar una demostración
Recoge el contexto inicial de un prospecto para coordinar una demostración enfocada en el proceso que quiere mejorar.
Que se logra
- Resultado: el equipo comercial recibe los datos de contacto, empresa y necesidad principal de un prospecto sin prometer una fecha inexistente.
- Caso de uso: una empresa de servicios explica que quiere conectar sus ventas por WhatsApp con reservas y cobros antes de coordinar la demostración.
- Se combina con: inicio, páginas de producto, precios y registro.
Donde esta
- Ruta:
/demoy confirmación/demo/confirmacion. - Acceso en UI: CTA
Ver Apex en acción,Solicitar una demooHablar con un especialista. - Componente(s):
DemoRequestForm.
Como funciona
- Abrir la solicitud de demostración desde un CTA del sitio.
- Completar nombre, apellido, correo de trabajo, empresa y necesidad principal.
- Enviar la solicitud.
- Ver una confirmación genérica que indica que el equipo coordinará el siguiente paso.
Campos
| Campo | Tipo | Requerido | Regla |
|---|---|---|---|
| Nombre | texto | Sí | Usa autocompletado de nombre. |
| Apellido | texto | Sí | Usa autocompletado de apellido. |
| Correo de trabajo | Sí | Validación nativa de email. | |
| Empresa | texto | Sí | Usa autocompletado de organización. |
| Necesidad principal | texto largo | Sí | Describe el proceso a revisar. |
Reglas y validaciones
- El botón muestra estado de envío y queda deshabilitado para evitar duplicados.
- Una respuesta HTTP fallida muestra un error inline y ofrece un correo alternativo.
- La confirmación no coloca nombre ni email en la URL.
- La página no promete una fecha, hora o invitación de calendario hasta que el equipo la coordine.
- La confirmación usa
noindex.
Backend
- Servicios: webhook comercial existente de Make.
- Efectos visibles: envío de la solicitud y navegación a la confirmación.
Relaciones
- Requiere: endpoint comercial disponible.
- Dispara / afecta: seguimiento del prospecto por el equipo de AchieveApex.
Notas
- Las rutas legadas bajo
discovery-vdeo-callredirigen a las rutas vigentes en español.
id: sms-opt-in modulo: marketing-site app: plataforma nombre: Gestionar consentimiento SMS tipo: publico
Gestionar consentimiento SMS
Ofrece un formulario público de consentimiento de SMS asociado a una organización.
Que se logra
- Resultado: una organización recoge consentimiento de SMS mediante un enlace público asociado a su cuenta.
- Caso de uso: una clínica comparte el enlace en su web para registrar el consentimiento de pacientes que desean recibir recordatorios.
- Se combina con: configuración de SMS y contactos de la organización.
Donde esta
- Ruta:
/sms-opt-in/[orgId]. - Acceso en UI: enlace público compartido por la organización.
- Componente(s): página de SMS opt-in.
Como funciona
- Abrir el enlace de la organización.
- Completar el formulario de consentimiento.
- Enviar la solicitud.
Campos y opciones
Por confirmar: campos exactos y textos visibles del formulario.
Reglas y validaciones
- La organización se obtiene desde la ruta.
Backend
- Servicios:
public-sms-opt-in(create).
Relaciones
- Requiere: una organización con enlace compartido.
- Dispara / afecta: consentimiento de mensajería SMS del contacto.
Notas
- Es independiente de las campañas SMS autenticadas.
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: calendar-sync modulo: mi-perfil app: plataforma nombre: Sincronización de calendario tipo: integracion
Sincronización de calendario
Conecta Google Calendar u Outlook y configura sincronización bidireccional, unidireccional o solo consulta.
Que se logra
- Resultado: Las reuniones y disponibilidad se sincronizan con Google Calendar u Outlook según el modo elegido.
- Caso de uso: Un consultor evita duplicar citas entre su calendario y el CRM.
- Se combina con: Calendario, CRM, conversaciones y automatizaciones.
Donde esta
- Ruta:
/[orgId]/my-profile/calendar-sync - Acceso en UI:
My Profile > Calendar Sync >Add Account`` - Componente(s):
ConnectCalendarDialog.tsx
Como funciona
- El usuario abre la sección indicada.
- Revisa o completa las opciones disponibles.
- Confirma la acción con el control de la interfaz cuando aplica.
- La interfaz actualiza el resultado o informa el error.
Reglas y validaciones
- Solo se sincronizan eventos futuros; Google bidireccional puede requerir
Renew.
Backend
- Servicios:
organization-users-calendar-integrations - Hooks relevantes solo si cambian el comportamiento visible: validación, autorización y efectos de integración asociados.
- Efectos: se aplican los movimientos, sincronizaciones, notificaciones o webhooks descritos por esta capacidad.
Relaciones
- Requiere: organización activa y acceso a la sección.
- Dispara / afecta: las entidades e integraciones administradas por esta funcionalidad.
Notas
- Los comportamientos no expuestos en las superficies revisadas no se detallan.
id: gmail-sync modulo: mi-perfil app: plataforma nombre: Integración personal de Gmail tipo: integracion
Integración personal de Gmail
Conecta Gmail para enviar/recibir desde CRM y habilita compartir la cuenta o usarla en automatizaciones.
Que se logra
- Resultado: El correo personal de Gmail se conecta para enviar y recibir desde flujos autorizados de CRM.
- Caso de uso: Un asesor atiende correos de clientes sin salir del historial comercial.
- Se combina con: Calendario, CRM, conversaciones y automatizaciones.
Donde esta
- Ruta:
/[orgId]/my-profile/gmail-sync - Acceso en UI:
My Profile > Gmail Sync - Componente(s):
GmailSyncSettings.tsx
Como funciona
- El usuario abre la sección indicada.
- Revisa o completa las opciones disponibles.
- Confirma la acción con el control de la interfaz cuando aplica.
- La interfaz actualiza el resultado o informa el error.
Reglas y validaciones
- Una integración activa se desconecta primero; eliminar permanentemente solo está disponible inactiva.
Backend
- Servicios:
organization-users-gmail-integrations - Hooks relevantes solo si cambian el comportamiento visible: validación, autorización y efectos de integración asociados.
- Efectos: se aplican los movimientos, sincronizaciones, notificaciones o webhooks descritos por esta capacidad.
Relaciones
- Requiere: organización activa y acceso a la sección.
- Dispara / afecta: las entidades e integraciones administradas por esta funcionalidad.
Notas
- Los comportamientos no expuestos en las superficies revisadas no se detallan.
id: meeting-recording modulo: mi-perfil app: plataforma nombre: Grabación de reuniones de calendario tipo: configuracion
Grabación de reuniones de calendario
Activa que el bot registre reuniones con enlace de video, independientemente del tipo de sincronización.
Que se logra
- Resultado: Las reuniones de calendario con enlace de video pueden registrarse mediante el bot.
- Caso de uso: Un equipo de ventas conserva evidencia de sus reuniones de descubrimiento.
- Se combina con: Calendario, CRM, conversaciones y automatizaciones.
Donde esta
- Ruta:
/[orgId]/my-profile/calendar-sync - Acceso en UI:
Calendar Sync >Record my meetings`` - Componente(s):
EditSyncSettingsDialog.tsx
Como funciona
- El usuario abre la sección indicada.
- Revisa o completa las opciones disponibles.
- Confirma la acción con el control de la interfaz cuando aplica.
- La interfaz actualiza el resultado o informa el error.
Reglas y validaciones
- Las grabaciones y transcripciones aparecen en Meetings.
Backend
- Servicios:
organization-users-calendar-integrations - Hooks relevantes solo si cambian el comportamiento visible: validación, autorización y efectos de integración asociados.
- Efectos: se aplican los movimientos, sincronizaciones, notificaciones o webhooks descritos por esta capacidad.
Relaciones
- Requiere: organización activa y acceso a la sección.
- Dispara / afecta: las entidades e integraciones administradas por esta funcionalidad.
Notas
- Los comportamientos no expuestos en las superficies revisadas no se detallan.
id: notification-preferences modulo: mi-perfil app: plataforma nombre: Preferencias y dispositivos de notificación tipo: configuracion
Preferencias y dispositivos de notificación
Configura alertas in-app y del navegador para mensajes, asignaciones y recordatorios; permite registrar, probar y desactivar dispositivos.
Que se logra
- Resultado: El usuario decide qué avisos y dispositivos usar para eventos operativos.
- Caso de uso: Un agente recibe alertas del navegador para nuevas asignaciones mientras atiende chats.
- Se combina con: Calendario, CRM, conversaciones y automatizaciones.
Donde esta
- Ruta:
/[orgId]/my-profile/notification-preferences - Acceso en UI:
My Profile > Notification Preferences - Componente(s):
NotificationPreferences.tsx
Como funciona
- El usuario abre la sección indicada.
- Revisa o completa las opciones disponibles.
- Confirma la acción con el control de la interfaz cuando aplica.
- La interfaz actualiza el resultado o informa el error.
Reglas y validaciones
- Email aparece como
Coming soon. Los recordatorios se envían 10 minutos antes.
Backend
- Servicios:
user-notification-preferences - Hooks relevantes solo si cambian el comportamiento visible: validación, autorización y efectos de integración asociados.
- Efectos: se aplican los movimientos, sincronizaciones, notificaciones o webhooks descritos por esta capacidad.
Relaciones
- Requiere: organización activa y acceso a la sección.
- Dispara / afecta: las entidades e integraciones administradas por esta funcionalidad.
Notas
- Los comportamientos no expuestos en las superficies revisadas no se detallan.
id: password-reset modulo: mi-perfil app: plataforma nombre: Restablecimiento de contraseña tipo: accion
Restablecimiento de contraseña
Confirma el cierre de sesión y redirige al flujo de recuperación.
Que se logra
- Resultado: El usuario inicia el flujo seguro de recuperación y cierra la sesión actual.
- Caso de uso: Un colaborador recupera acceso después de olvidar su contraseña.
- Se combina con: Calendario, CRM, conversaciones y automatizaciones.
Donde esta
- Ruta:
/[orgId]/my-profile/profile - Acceso en UI:
Profile >Reset Password`` - Componente(s):
ProfileSettings.tsx
Como funciona
- El usuario abre la sección indicada.
- Revisa o completa las opciones disponibles.
- Confirma la acción con el control de la interfaz cuando aplica.
- La interfaz actualiza el resultado o informa el error.
Reglas y validaciones
- El usuario debe autenticarse nuevamente.
Backend
- Servicios:
users - Hooks relevantes solo si cambian el comportamiento visible: validación, autorización y efectos de integración asociados.
- Efectos: se aplican los movimientos, sincronizaciones, notificaciones o webhooks descritos por esta capacidad.
Relaciones
- Requiere: organización activa y acceso a la sección.
- Dispara / afecta: las entidades e integraciones administradas por esta funcionalidad.
Notas
- Los comportamientos no expuestos en las superficies revisadas no se detallan.
id: profile-details modulo: mi-perfil app: plataforma nombre: Datos del perfil tipo: configuracion
Datos del perfil
Actualiza nombre, email y teléfono del usuario.
Que se logra
- Resultado: El usuario conserva sus datos de contacto actualizados para su operación en Apex.
- Caso de uso: Un asesor actualiza su teléfono corporativo tras cambiar de línea.
- Se combina con: Calendario, CRM, conversaciones y automatizaciones.
Donde esta
- Ruta:
/[orgId]/my-profile/profile - Acceso en UI:
My Profile > Profile & Account - Componente(s):
ProfileSettings.tsx
Como funciona
- El usuario abre la sección indicada.
- Revisa o completa las opciones disponibles.
- Confirma la acción con el control de la interfaz cuando aplica.
- La interfaz actualiza el resultado o informa el error.
Reglas y validaciones
- Nombre y apellido son obligatorios; el teléfono solo admite dígitos.
Backend
- Servicios:
users - Hooks relevantes solo si cambian el comportamiento visible: validación, autorización y efectos de integración asociados.
- Efectos: se aplican los movimientos, sincronizaciones, notificaciones o webhooks descritos por esta capacidad.
Relaciones
- Requiere: organización activa y acceso a la sección.
- Dispara / afecta: las entidades e integraciones administradas por esta funcionalidad.
Notas
- Los comportamientos no expuestos en las superficies revisadas no se detallan.
id: profile-photo modulo: mi-perfil app: plataforma nombre: Foto de perfil tipo: accion
Foto de perfil
Carga o elimina el avatar personal y lo guarda de inmediato.
Que se logra
- Resultado: La cuenta muestra un avatar personal reconocible dentro del equipo.
- Caso de uso: Un contact center facilita identificar al responsable de una conversación.
- Se combina con: Calendario, CRM, conversaciones y automatizaciones.
Donde esta
- Ruta:
/[orgId]/my-profile/profile - Acceso en UI:
Profile > avatar - Componente(s):
ProfileSettings.tsx
Como funciona
- El usuario abre la sección indicada.
- Revisa o completa las opciones disponibles.
- Confirma la acción con el control de la interfaz cuando aplica.
- La interfaz actualiza el resultado o informa el error.
Reglas y validaciones
- Acepta JPEG, PNG o GIF de hasta 5 MB.
Backend
- Servicios:
users, s3-url-signing - Hooks relevantes solo si cambian el comportamiento visible: validación, autorización y efectos de integración asociados.
- Efectos: se aplican los movimientos, sincronizaciones, notificaciones o webhooks descritos por esta capacidad.
Relaciones
- Requiere: organización activa y acceso a la sección.
- Dispara / afecta: las entidades e integraciones administradas por esta funcionalidad.
Notas
- Los comportamientos no expuestos en las superficies revisadas no se detallan.
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: announcements-banner modulo: notificaciones app: plataforma nombre: Relación entre anuncios y avisos tipo: vista
Relación entre anuncios y avisos
Aclara que Community publica novedades y que el banner autenticado se reserva para alertas operativas de plataforma.
Que se logra
- Resultado: el equipo elige la superficie correcta para comunicar una novedad o una incidencia operativa.
- Caso de uso: un equipo de producto publica una novedad en Community y reserva el banner para informar una interrupción.
- Se combina con: anuncios de Community y alertas de plataforma.
Donde esta
- Ruta:
/community/announcementsy layouts autenticados. - Acceso en UI:
Community > Announcementso banner de plataforma. - Componente(s): página de anuncios,
PlatformAlertsBanner.tsx.
Como funciona
- Abrir
Announcementspara leer novedades de Community. - Consultar el banner autenticado cuando exista una alerta operativa.
Reglas y validaciones
- Las alertas pueden tener programación y cierre por usuario; los anuncios de Community no comparten ese flujo confirmado.
Backend
- Servicios:
community-announcements(find/get),platform-alerts(find).
Relaciones
- Requiere: anuncios o alertas publicados.
- Dispara / afecta: comunicación de producto u operación.
Notas
- No se deben confundir las dos superficies al comunicar una incidencia.
id: in-app-notifications modulo: notificaciones app: plataforma nombre: Consultar avisos in-app tipo: vista
Consultar avisos in-app
Permite recibir y consultar notificaciones generadas por acciones de la plataforma desde la experiencia autenticada.
Que se logra
- Resultado: el usuario ve avisos originados por la plataforma y puede continuar hacia el recurso relacionado.
- Caso de uso: un asesor recibe una notificación de una actividad pendiente y abre el contexto desde el encabezado.
- Se combina con: preferencias de notificación y los módulos que generan avisos.
Donde esta
- Ruta:
/[orgId]/.... - Acceso en UI:
Header > Notifications. - Componente(s): Header.
Como funciona
- Ingresar a la organización.
- Abrir el área de notificaciones del header cuando haya avisos.
- Seleccionar el aviso para continuar con el recurso relacionado, si aplica.
Reglas y validaciones
- Por confirmar: comportamiento de lectura, agrupación y retención en la UI.
Backend
- Servicios:
notifications(find/get/create/patch).
Relaciones
- Requiere: evento que origine una notificación.
- Dispara / afecta: navegación y seguimiento de acciones.
Notas
- La disponibilidad de cada aviso depende del módulo que lo genera.
id: notification-preferences modulo: notificaciones app: plataforma nombre: Configurar preferencias de notificación tipo: configuracion
Configurar preferencias de notificación
Ofrece una página de perfil para gestionar preferencias de notificación del usuario.
Que se logra
- Resultado: cada usuario controla las opciones de notificación disponibles en su perfil.
- Caso de uso: un gerente ajusta sus avisos para mantenerse informado sin recibir interrupciones innecesarias.
- Se combina con: avisos in-app y notificaciones push.
Donde esta
- Ruta:
/[orgId]/my-profile/notification-preferences. - Acceso en UI:
Header > avatar > My profile > Notification preferences. - Componente(s): página de notification preferences.
Como funciona
- Abrir
My profile. - Elegir
Notification preferences. - Ajustar las opciones disponibles y guardar.
Campos y opciones
Por confirmar: categorías, canales y estados presentados.
Reglas y validaciones
- Las preferencias pertenecen al usuario.
Backend
- Servicios:
user-notification-preferences(find/get/create/patch).
Relaciones
- Requiere: usuario autenticado.
- Dispara / afecta: entrega de avisos del producto.
Notas
- Esta página es distinta de la disponibilidad de chat o de voz.
id: platform-alerts modulo: notificaciones app: plataforma nombre: Ver alertas de plataforma tipo: vista
Ver alertas de plataforma
Muestra un banner global para avisos operativos activos, programados y traducidos de la plataforma.
Que se logra
- Resultado: los usuarios autenticados reciben una comunicación visible sobre un incidente o cambio operativo.
- Caso de uso: una plataforma informa a todos los equipos sobre una incidencia de canal y ofrece un enlace de seguimiento.
- Se combina con: anuncios de Community cuando la comunicación es una novedad de producto, no una alerta operativa.
Donde esta
- Ruta: sobre layouts autenticados.
- Acceso en UI: banner de ancho completo sobre header y sidebar.
- Componente(s):
PlatformAlertsBanner.tsx.
Como funciona
- Ingresar a una vista autenticada.
- La aplicación consulta alertas activas y vigentes.
- Leer el título, detalle y enlace opcional.
- Si aparece
X, cerrar la alerta para el usuario actual.
Reglas y validaciones
- Las alertas críticas no son descartables de forma predeterminada.
- Solo se puede descartar una alerta activa que sea descartable.
- El cierre se recuerda por usuario.
Backend
- Servicios:
platform-alerts(find),platform-alert-dismissals(create). - Efectos: el banner se actualiza periódicamente.
Relaciones
- Requiere: autenticación.
- Dispara / afecta: comunicación de incidentes o cambios relevantes.
Notas
- La creación y administración de alertas está restringida a administradores y se excluye de este módulo.
id: push-notifications modulo: notificaciones app: plataforma nombre: Recibir notificaciones push tipo: integracion
Recibir notificaciones push
Permite que la plataforma entregue avisos push asociados a eventos de producto.
Que se logra
- Resultado: un evento relevante puede avisar al usuario fuera de la vista activa de Apex.
- Caso de uso: un asesor recibe un aviso en su dispositivo cuando ocurre una acción que requiere seguimiento.
- Se combina con: preferencias de notificación y avisos in-app.
Donde esta
- Ruta: no tiene ruta propia.
- Acceso en UI: depende del sistema operativo y del dispositivo.
- Componente(s): Por confirmar: superficie cliente de registro push.
Como funciona
- El usuario habilita permisos de notificación en su dispositivo cuando se le solicite.
- Un evento de la plataforma genera una notificación.
- El servicio de push la entrega al dispositivo registrado.
Reglas y validaciones
- La entrega depende de permiso del dispositivo y de la preferencia aplicable.
Backend
- Servicios:
push-notifications(create),notifications(create).
Relaciones
- Requiere: configuración push y permiso de notificaciones.
- Dispara / afecta: aviso fuera de la vista activa.
Notas
- Por confirmar: canales cliente y gestión de dispositivos registrados.
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: assistant-tools modulo: nova app: plataforma nombre: Elegir asistente y herramientas tipo: configuracion
Elegir asistente y herramientas
Nova permite alternar entre los asistentes disponibles y consultar qué herramientas tiene habilitadas el seleccionado.
Que se logra
- Resultado: el usuario elige el asistente con las capacidades adecuadas y conoce el alcance de sus acciones.
- Caso de uso: una agencia selecciona un asistente con herramientas de CRM para buscar contactos y crear deals.
- Se combina con: configuración de AI Assistant y consultas de Nova.
Donde esta
- Ruta: disponible en
/[orgId]/.... - Acceso en UI:
Header > Nova > Switch AI AssistantyTools. - Componente(s):
NovaConsole.tsx.
Como funciona
- Abrir el selector del asistente.
- Elegir un asistente de la lista.
- Nova abre o recupera la conversación correspondiente.
- Si el asistente tiene herramientas activas, abrir
Toolspara verlas. - Usar
Configure tools in AI Assistant settingspara ir a su configuración.
Reglas y validaciones
- El primer asistente con herramientas internas habilitadas se selecciona preferentemente.
- Solo se muestran herramientas activadas para ese asistente.
Backend
- Servicios:
ai-assistants(find/get/patch). - Efectos: cambia el contexto y las capacidades del chat.
Relaciones
- Requiere: AI Assistant.
- Dispara / afecta: consultas de CRM, conversaciones, productos, automatizaciones o reservas según las herramientas habilitadas.
Notas
- La lista de herramientas no concede permisos adicionales al usuario.
id: chat modulo: nova app: plataforma nombre: Consultar a Nova tipo: accion
Consultar a Nova
Permite enviar preguntas en lenguaje natural a un asistente de la organización y recibir respuestas en formato Markdown.
Que se logra
- Resultado: consultas y respuestas operativas sobre la organización desde el área donde trabaja el usuario.
- Caso de uso: un gerente comercial pregunta qué contactos requieren seguimiento y recibe una respuesta sin abrir varios módulos.
- Se combina con: herramientas de AI Assistant e historial de conversaciones de Nova.
Donde esta
- Ruta: disponible en
/[orgId]/.... - Acceso en UI:
Header > Nova. - Componente(s):
NovaIcon.tsx,NovaConsole.tsx.
Como funciona
- Abrir Nova desde el encabezado.
- Elegir un asistente si hay más de uno.
- Escribir una pregunta y pulsar enviar, o usar
Enter. - Esperar el estado
Nova is working...y revisar la respuesta.
Reglas y validaciones
- No se envían mensajes vacíos ni se permite un segundo envío mientras el actual está en curso.
- El panel informa
No AI Assistants Availablecuando no hay asistenteai-chat.
Backend
- Servicios:
ai-chat-conversations(find/get/create/patch),ai-chat-messages(create). - Efectos: el mensaje puede provocar la ejecución de herramientas del asistente.
Relaciones
- Requiere: AI Assistant de tipo
ai-chat. - Dispara / afecta: historial y ejecución de herramientas de Nova.
Notas
- La bienvenida cambia según la ruta actual.
id: conversation-history modulo: nova app: plataforma nombre: Historial de conversaciones de Nova tipo: vista
Historial de conversaciones de Nova
Conserva conversaciones por asistente para reabrirlas, iniciar una nueva o cambiar su título.
Que se logra
- Resultado: consultas recurrentes quedan organizadas y se pueden retomar con su contexto anterior.
- Caso de uso: un equipo de ventas conserva una conversación sobre oportunidades y la continúa en el siguiente turno.
- Se combina con: consultas de Nova y herramientas del asistente.
Donde esta
- Ruta: disponible en
/[orgId]/.... - Acceso en UI:
Header > Nova > Conversation history. - Componente(s):
NovaConsole.tsx.
Como funciona
- Pulsar
Conversation history. - Elegir una conversación para cargar sus mensajes.
- Pulsar
New Conversationpara comenzar otra. - Pasar sobre una conversación y usar
Rename conversation. - Confirmar el nombre con el icono de confirmación,
Enter, o salir conEscape.
Reglas y validaciones
- No se guarda un título vacío.
- El historial se consulta para el asistente seleccionado.
Backend
- Servicios:
ai-chat-conversations(find/create/patch),ai-chat-messages(find).
Relaciones
- Requiere: un asistente
ai-chat. - Dispara / afecta: el contexto que Nova usa en el chat.
Notas
- Las fechas se presentan de forma relativa para conversaciones recientes.
id: thinking-and-tools modulo: nova app: plataforma nombre: Proceso y ejecuciones de Nova tipo: vista
Proceso y ejecuciones de Nova
Muestra opcionalmente el proceso de trabajo de Nova y el detalle de las herramientas ejecutadas para una respuesta.
Que se logra
- Resultado: el usuario puede verificar qué operación realizó Nova y cuál fue el resultado antes de actuar.
- Caso de uso: un administrador confirma si Nova consultó contactos o ejecutó una acción sobre una automatización.
- Se combina con: selección de herramientas y chat de Nova.
Donde esta
- Ruta: disponible en
/[orgId]/.... - Acceso en UI:
Header > Nova > Show thinking process; expandir una ejecución de herramienta. - Componente(s):
NovaConsole.tsx.
Como funciona
- Abrir Nova.
- Usar el icono de ojo para mostrar u ocultar el proceso.
- Expandir una herramienta para revisar su estado, parámetros y resultado.
- Usar los iconos de copia para copiar el detalle visible.
Reglas y validaciones
- Al ocultar el proceso solo permanecen visibles los mensajes de usuario y las respuestas.
- La ejecución indica éxito, error o procesamiento.
Backend
- Servicios:
ai-chat-messages(find/create). - Efectos: registra mensajes de herramientas internos o de API junto a la conversación.
Relaciones
- Requiere: herramientas habilitadas en el asistente.
- Dispara / afecta: las operaciones disponibles de los módulos integrados.
Notas
- El detalle expone los resultados de la ejecución dentro de la consola.
id: voice-input modulo: nova app: plataforma nombre: Dictado para Nova tipo: accion
Dictado para Nova
Permite grabar una pregunta, transcribirla y enviarla directamente al chat de Nova.
Que se logra
- Resultado: una consulta hablada se convierte en una pregunta enviada a Nova.
- Caso de uso: un asesor que está revisando conversaciones dicta una consulta sin interrumpir su atención al cliente.
- Se combina con: chat e historial de conversaciones de Nova.
Donde esta
- Ruta: disponible en
/[orgId]/.... - Acceso en UI:
Header > Nova > Start voice input. - Componente(s):
NovaConsole.tsx,useVoiceRecorder.ts.
Como funciona
- Abrir Nova y una conversación.
- Pulsar
Start voice input. - Hablar y pulsar el mismo control para detener la grabación.
- Nova envía la transcripción cuando contiene texto.
Reglas y validaciones
- El control queda deshabilitado mientras se envía o transcribe.
- Si ocurre un error se muestra
Voice Error.
Backend
- Servicios:
ai-chat-messages(create).
Relaciones
- Requiere: permisos de micrófono en el navegador.
- Dispara / afecta: la conversación activa de Nova.
Notas
- Por confirmar: el proveedor concreto de transcripción.
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: contextual-chat modulo: nova-support app: plataforma nombre: Consultar soporte contextual tipo: accion
Consultar soporte contextual
Responde preguntas de uso basándose en la ruta actual y en las guías de producto registradas.
Que se logra
- Resultado: el usuario recibe orientación vinculada a la pantalla que está usando.
- Caso de uso: un administrador pregunta cómo configurar una función sin tener que explicar en qué sección está trabajando.
- Se combina con: guías de soporte, historial y adjuntos de Nova Support.
Donde esta
- Ruta:
/[orgId]/.... - Acceso en UI:
Header > Help. - Componente(s):
NovaSupportConsole.tsx,usePageContext.ts.
Como funciona
- Abrir
Help. - Escribir la pregunta y pulsar enviar o
Enter. - Nova Support muestra
Context:con la ruta que está usando. - Revisar la respuesta y sus enlaces internos.
Reglas y validaciones
- No se envía un mensaje vacío mientras haya otro envío o una carga activa.
- El soporte puede consultar guías y datos de la organización en modo de solo lectura.
Backend
- Servicios:
support-chat-conversations,support-chat-messages,support-chat-response,support-skills.
Relaciones
- Requiere: sesión y contexto de página.
- Dispara / afecta: selección de guías relevantes.
Notas
- Los enlaces internos de las respuestas navegan dentro de la aplicación.
id: conversation-history modulo: nova-support app: plataforma nombre: Historial de soporte tipo: vista
Historial de soporte
Permite recuperar conversaciones anteriores de Nova Support y crear una nueva.
Que se logra
- Resultado: el usuario retoma una consulta de ayuda sin volver a explicar el problema.
- Caso de uso: un administrador recupera una conversación sobre una configuración y continúa el diagnóstico al día siguiente.
- Se combina con: consulta contextual de Nova Support.
Donde esta
- Ruta:
/[orgId]/.... - Acceso en UI:
Header > Help > Conversation history. - Componente(s):
NovaSupportConsole.tsx.
Como funciona
- Abrir
Conversation history. - Seleccionar una conversación para restaurarla.
- Pulsar
New Conversationpara iniciar una consulta independiente.
Reglas y validaciones
- La conversación activa aparece resaltada.
Backend
- Servicios:
support-chat-conversations(find/create),support-chat-messages(find).
Relaciones
- Requiere: usuario autenticado.
- Dispara / afecta: el contexto conversacional de soporte.
Notas
- Los títulos que faltan se muestran como una conversación de soporte identificada por la interfaz.
id: image-attachments modulo: nova-support app: plataforma nombre: Adjuntar evidencia visual tipo: accion
Adjuntar evidencia visual
Permite enviar imágenes o una captura de la página como contexto para una consulta de soporte.
Que se logra
- Resultado: la respuesta de soporte puede considerar la evidencia visual aportada por el usuario.
- Caso de uso: un operador adjunta el mensaje de error que ve al configurar un canal para recibir una guía más precisa.
- Se combina con: consulta contextual de Nova Support.
Donde esta
- Ruta:
/[orgId]/.... - Acceso en UI:
Header > Help > Attach imageoCapture screenshot. - Componente(s):
NovaSupportConsole.tsx,uploadSupportAttachment.ts.
Como funciona
- Abrir una conversación de soporte cargada.
- Usar
Attach imagey elegir imágenes, oCapture screenshot. - Revisar las miniaturas y retirar las que no se quieren enviar.
- Escribir una pregunta opcional y enviarla.
Reglas y validaciones
- Solo acepta JPEG, PNG, WEBP y GIF.
- Se pueden adjuntar hasta cuatro imágenes.
- El adjunto se bloquea mientras hay carga o envío.
Backend
- Servicios:
support-chat-messages(create), firma/carga de archivos de soporte.
Relaciones
- Requiere: una conversación de soporte inicializada.
- Dispara / afecta: contexto visual de la respuesta.
Notas
- Si la carga expira, la interfaz solicita intentarlo de nuevo.
id: message-feedback modulo: nova-support app: plataforma nombre: Calificar respuestas de soporte tipo: accion
Calificar respuestas de soporte
Permite valorar cada respuesta de Nova Support con thumbs up o thumbs down para mejorar las guías.
Que se logra
- Resultado: se identifica si una respuesta ayudó y se conserva contexto cuando no resolvió la necesidad.
- Caso de uso: un equipo de soporte detecta que una guía de configuración falla repetidamente y puede priorizar su revisión.
- Se combina con: consulta contextual y casos internos de soporte.
Donde esta
- Ruta:
/[orgId]/.... - Acceso en UI:
Header > Help > respuesta de Nova Support > Was this helpful?. - Componente(s):
NovaSupportMessageFeedback.tsx.
Como funciona
- Recibir una respuesta de Nova Support.
- Elegir valoración positiva o negativa.
- Para una negativa, escribir el comentario y usar
Submit feedback. - La interfaz confirma con
Thanks for your feedback.
Campos y opciones
| Campo | Tipo | Obligatorio | Notas |
|---|---|---|---|
| Valoración | opción | Sí | Positiva o negativa. |
| Comentario | texto | Sí, para negativa | Mínimo cinco caracteres. |
Reglas y validaciones
- Cada usuario puede valorar una respuesta una sola vez.
- Una valoración negativa requiere comentario.
Backend
- Servicios:
support-chat-message-feedback(create).
Relaciones
- Requiere: una respuesta del asistente.
- Dispara / afecta: revisión interna de calidad y posibles casos de soporte.
Notas
- El usuario no puede cambiar la valoración después de enviarla.
id: support-metas modulo: nova-support app: plataforma nombre: Alimentar las guías de soporte tipo: integracion
Alimentar las guías de soporte
Nova Support se alimenta de metadatos estructurados de páginas y componentes, recopilados desde el frontend y publicados para el backend.
Que se logra
- Resultado: Nova Support encuentra conocimiento específico de la página o componente que el usuario está usando.
- Caso de uso: un equipo de producto actualiza una guía de una pantalla y la ayuda contextual refleja ese flujo en la aplicación.
- Se combina con: consulta contextual de Nova Support y validación de metas de soporte.
Donde esta
- Ruta: no tiene una ruta de usuario.
- Acceso en UI: no aplica.
- Componente(s):
src/support-skills/registry.ts, archivos.support-meta.ts.
Como funciona
- Un desarrollador describe una ruta, panel o diálogo real en una meta de soporte.
- La registra en el índice de metas.
- El proceso de recopilación genera el inventario consumido por soporte.
- Nova Support recibe la guía de la página actual y puede cargar guías relacionadas.
Reglas y validaciones
- Las metas deben reflejar UI, rutas y campos reales.
- Los archivos recopilados son generados y no deben editarse manualmente.
Backend
- Servicios:
support-skills(get),nova-support-knowledge-skills(find/get).
Relaciones
- Requiere: registro de metas de frontend.
- Dispara / afecta: precisión contextual de las respuestas.
Notas
- Las metas de administración interna no pertenecen a este módulo de experiencia de usuario.
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: advanced-assignment modulo: organizacion app: plataforma nombre: Reglas avanzadas de asignación tipo: configuracion
Reglas avanzadas de asignación
Configura distribución ponderada, horarios y límites por usuario; los tickets tienen su configuración avanzada separada.
Que se logra
- Resultado: La carga se reparte considerando ponderación, horarios y capacidad por usuario.
- Caso de uso: Un BPO distribuye conversaciones entre agentes disponibles sin sobrecargar a un turno.
- Se combina con: Configuración de organización, CRM y automatizaciones.
Donde esta
- Ruta:
/[orgId]/settings/conversation-auto-assignment - Acceso en UI:
Auto Assignment >Advanced`` - Componente(s):
AdvancedAssignmentConfig.tsx
Como funciona
- El usuario abre la sección indicada.
- Revisa o completa las opciones disponibles.
- Confirma la acción con el control de la interfaz cuando aplica.
- La interfaz actualiza el resultado o informa el error.
Reglas y validaciones
- Las referencias a usuarios o equipos deben retirarse antes de eliminar un miembro.
Backend
- Servicios:
conversations-auto-assignment-rules - Hooks relevantes solo si cambian el comportamiento visible: validación, autorización y efectos de integración asociados.
- Efectos: se aplican los movimientos, sincronizaciones, notificaciones o webhooks descritos por esta capacidad.
Relaciones
- Requiere: organización activa y acceso a la sección.
- Dispara / afecta: las entidades e integraciones administradas por esta funcionalidad.
Notas
- Los comportamientos no expuestos en las superficies revisadas no se detallan.
id: basic-assignment modulo: organizacion app: plataforma nombre: Distribución básica de conversaciones tipo: configuracion
Distribución básica de conversaciones
Selecciona el equipo que recibe la distribución simple de conversaciones o tickets.
Que se logra
- Resultado: El trabajo entrante se dirige al equipo definido para distribución simple.
- Caso de uso: Una tienda dirige todas las consultas de preventa al equipo comercial.
- Se combina con: Configuración de organización, CRM y automatizaciones.
Donde esta
- Ruta:
/[orgId]/settings/conversation-auto-assignment - Acceso en UI:
Auto Assignment >Basic`` - Componente(s):
BasicAssignmentConfig.tsx
Como funciona
- El usuario abre la sección indicada.
- Revisa o completa las opciones disponibles.
- Confirma la acción con el control de la interfaz cuando aplica.
- La interfaz actualiza el resultado o informa el error.
Reglas y validaciones
- Requiere guardar la configuración para activarla.
Backend
- Servicios:
conversations-auto-assignment-rules - Hooks relevantes solo si cambian el comportamiento visible: validación, autorización y efectos de integración asociados.
- Efectos: se aplican los movimientos, sincronizaciones, notificaciones o webhooks descritos por esta capacidad.
Relaciones
- Requiere: organización activa y acceso a la sección.
- Dispara / afecta: las entidades e integraciones administradas por esta funcionalidad.
Notas
- Los comportamientos no expuestos en las superficies revisadas no se detallan.
id: conversation-auto-assignment modulo: organizacion app: plataforma nombre: Modos de asignación automática tipo: configuracion
Modos de asignación automática
Configura de forma independiente la asignación de conversaciones y tickets como Off, Basic o Advanced.
Que se logra
- Resultado: Conversaciones y tickets se enrutan usando el modo de asignación seleccionado para cada flujo.
- Caso de uso: Un contact center activa reparto automático de chats y mantiene tickets con otra política.
- Se combina con: Configuración de organización, CRM y automatizaciones.
Donde esta
- Ruta:
/[orgId]/settings/conversation-auto-assignment - Acceso en UI:
Settings > Organization > Auto Assignment - Componente(s):
ConversationAutoAssignment.tsx
Como funciona
- El usuario abre la sección indicada.
- Revisa o completa las opciones disponibles.
- Confirma la acción con el control de la interfaz cuando aplica.
- La interfaz actualiza el resultado o informa el error.
Reglas y validaciones
- Una persona referenciada por una regla no se puede remover del equipo.
Backend
- Servicios:
conversations-auto-assignment-rules - Hooks relevantes solo si cambian el comportamiento visible: validación, autorización y efectos de integración asociados.
- Efectos: se aplican los movimientos, sincronizaciones, notificaciones o webhooks descritos por esta capacidad.
Relaciones
- Requiere: organización activa y acceso a la sección.
- Dispara / afecta: las entidades e integraciones administradas por esta funcionalidad.
Notas
- Los comportamientos no expuestos en las superficies revisadas no se detallan.
id: custom-field-categories modulo: organizacion app: plataforma nombre: Categorías de campos personalizados tipo: configuracion
Categorías de campos personalizados
Organiza campos personalizados en categorías visibles en formularios.
Que se logra
- Resultado: Los campos personalizados se presentan agrupados para facilitar su diligenciamiento.
- Caso de uso: Un concesionario separa datos de vehículo, financiación y documentos en sus formularios.
- Se combina con: Configuración de organización, CRM y automatizaciones.
Donde esta
- Ruta:
/[orgId]/settings/custom-fields - Acceso en UI:
Custom Fields >Manage Categories`` - Componente(s):
ManageCategoriesDialog.tsx
Como funciona
- El usuario abre la sección indicada.
- Revisa o completa las opciones disponibles.
- Confirma la acción con el control de la interfaz cuando aplica.
- La interfaz actualiza el resultado o informa el error.
Reglas y validaciones
- Las categorías agrupan antes que el orden de posición.
Backend
- Servicios:
custom-field-categories - Hooks relevantes solo si cambian el comportamiento visible: validación, autorización y efectos de integración asociados.
- Efectos: se aplican los movimientos, sincronizaciones, notificaciones o webhooks descritos por esta capacidad.
Relaciones
- Requiere: organización activa y acceso a la sección.
- Dispara / afecta: las entidades e integraciones administradas por esta funcionalidad.
Notas
- Los comportamientos no expuestos en las superficies revisadas no se detallan.
id: custom-field-files modulo: organizacion app: plataforma nombre: Archivos en campos personalizados tipo: integracion
Archivos en campos personalizados
Permite campos File y Multiple files; los archivos se adjuntan cuando ya existe el registro.
Que se logra
- Resultado: Los registros existentes pueden conservar archivos asociados a campos personalizados.
- Caso de uso: Una firma legal adjunta soportes del cliente a su ficha de CRM.
- Se combina con: Configuración de organización, CRM y automatizaciones.
Donde esta
- Ruta:
/[orgId]/settings/custom-fields - Acceso en UI:
Custom Fields >Add Custom Field`` - Componente(s):
CustomFieldFileUpload.tsx
Como funciona
- El usuario abre la sección indicada.
- Revisa o completa las opciones disponibles.
- Confirma la acción con el control de la interfaz cuando aplica.
- La interfaz actualiza el resultado o informa el error.
Reglas y validaciones
- Los formularios de creación y las superficies públicas ocultan estos campos hasta que el registro existe.
Backend
- Servicios:
custom-fields, s3-url-signing - Hooks relevantes solo si cambian el comportamiento visible: validación, autorización y efectos de integración asociados.
- Efectos: se aplican los movimientos, sincronizaciones, notificaciones o webhooks descritos por esta capacidad.
Relaciones
- Requiere: organización activa y acceso a la sección.
- Dispara / afecta: las entidades e integraciones administradas por esta funcionalidad.
Notas
- Los comportamientos no expuestos en las superficies revisadas no se detallan.
id: custom-fields-management modulo: organizacion app: plataforma nombre: Definición de campos personalizados tipo: configuracion
Definición de campos personalizados
Crea, edita, elimina y reordena campos para contactos, empresas, deals, tickets, reservas, productos y documentos de venta.
Que se logra
- Resultado: Formularios y registros capturan datos propios del negocio en las entidades que utiliza.
- Caso de uso: Una inmobiliaria agrega datos de presupuesto y tipo de inmueble a sus contactos y oportunidades.
- Se combina con: Configuración de organización, CRM y automatizaciones.
Donde esta
- Ruta:
/[orgId]/settings/custom-fields - Acceso en UI:
Settings > Organization > Custom Fields - Componente(s):
CustomFieldsList.tsx
Como funciona
- El usuario abre la sección indicada.
- Revisa o completa las opciones disponibles.
- Confirma la acción con el control de la interfaz cuando aplica.
- La interfaz actualiza el resultado o informa el error.
Reglas y validaciones
- Un nombre activo no puede repetirse en el mismo tipo de entidad; el orden se conserva por entidad.
Backend
- Servicios:
custom-fields - Hooks relevantes solo si cambian el comportamiento visible: validación, autorización y efectos de integración asociados.
- Efectos: se aplican los movimientos, sincronizaciones, notificaciones o webhooks descritos por esta capacidad.
Relaciones
- Requiere: organización activa y acceso a la sección.
- Dispara / afecta: las entidades e integraciones administradas por esta funcionalidad.
Notas
- Los comportamientos no expuestos en las superficies revisadas no se detallan.
id: deal-lost-reasons modulo: organizacion app: plataforma nombre: Motivos de pérdida de deals tipo: configuracion
Motivos de pérdida de deals
Mantiene el catálogo de motivos disponible al marcar un deal como perdido.
Que se logra
- Resultado: Las oportunidades perdidas quedan clasificadas con causas comparables.
- Caso de uso: Un equipo B2B identifica si pierde negocios por precio, competencia o falta de presupuesto.
- Se combina con: Configuración de organización, CRM y automatizaciones.
Donde esta
- Ruta:
/[orgId]/settings/deals-lost-reasons - Acceso en UI:
Settings > Organization > Deal Lost Reasons - Componente(s):
DealsLostReasonsList.tsx
Como funciona
- El usuario abre la sección indicada.
- Revisa o completa las opciones disponibles.
- Confirma la acción con el control de la interfaz cuando aplica.
- La interfaz actualiza el resultado o informa el error.
Reglas y validaciones
- Se puede agregar, editar y eliminar desde la lista.
Backend
- Servicios:
deals-lost-reasons - Hooks relevantes solo si cambian el comportamiento visible: validación, autorización y efectos de integración asociados.
- Efectos: se aplican los movimientos, sincronizaciones, notificaciones o webhooks descritos por esta capacidad.
Relaciones
- Requiere: organización activa y acceso a la sección.
- Dispara / afecta: las entidades e integraciones administradas por esta funcionalidad.
Notas
- Los comportamientos no expuestos en las superficies revisadas no se detallan.
id: organization-deletion modulo: organizacion app: plataforma nombre: Eliminación de organización tipo: accion
Eliminación de organización
Muestra un preflight, enlaza los bloqueos y exige escribir el nombre antes de confirmar.
Que se logra
- Resultado: Se evita eliminar una organización hasta conocer bloqueos y confirmar explícitamente la intención.
- Caso de uso: Una agencia cierra una cuenta inactiva sin perder de vista las dependencias que deben resolverse antes.
- Se combina con: Configuración de organización, CRM y automatizaciones.
Donde esta
- Ruta:
/[orgId]/settings/general - Acceso en UI:
General >Delete organization`` - Componente(s):
DeleteOrganizationDialog.tsx
Como funciona
- El usuario abre la sección indicada.
- Revisa o completa las opciones disponibles.
- Confirma la acción con el control de la interfaz cuando aplica.
- La interfaz actualiza el resultado o informa el error.
Reglas y validaciones
- Solo owner o superadmin. La eliminación es lógica y se bloquea con suscripción activa, auto-recarga, canales, Webchat, teléfonos, API keys, MCP o clientes de agencia.
Backend
- Servicios:
organizations - Hooks relevantes solo si cambian el comportamiento visible: validación, autorización y efectos de integración asociados.
- Efectos: se aplican los movimientos, sincronizaciones, notificaciones o webhooks descritos por esta capacidad.
Relaciones
- Requiere: organización activa y acceso a la sección.
- Dispara / afecta: las entidades e integraciones administradas por esta funcionalidad.
Notas
- Los comportamientos no expuestos en las superficies revisadas no se detallan.
id: organization-settings modulo: organizacion app: plataforma nombre: Configuración general de la organización tipo: configuracion
Configuración general de la organización
Actualiza nombre, zona horaria, idioma predeterminado, código telefónico y logo. El logo se guarda inmediatamente; los demás cambios se confirman con Update Settings.
Que se logra
- Resultado: La organización conserva una configuración común para que las áreas de Apex presenten una identidad y preferencias coherentes.
- Caso de uso: Una franquicia define idioma, zona horaria y logo para que cada operador trabaje con la misma referencia.
- Se combina con: Configuración de organización, CRM y automatizaciones.
Donde esta
- Ruta:
/[orgId]/settings/general - Acceso en UI:
Settings > Organization > General - Componente(s):
OrganizationSettingsPage.tsx
Como funciona
- El usuario abre la sección indicada.
- Revisa o completa las opciones disponibles.
- Confirma la acción con el control de la interfaz cuando aplica.
- La interfaz actualiza el resultado o informa el error.
Reglas y validaciones
- El nombre no puede estar vacío. El logo debe ser una imagen de hasta 5 MB.
Backend
- Servicios:
organizations - Hooks relevantes solo si cambian el comportamiento visible: validación, autorización y efectos de integración asociados.
- Efectos: se aplican los movimientos, sincronizaciones, notificaciones o webhooks descritos por esta capacidad.
Relaciones
- Requiere: organización activa y acceso a la sección.
- Dispara / afecta: las entidades e integraciones administradas por esta funcionalidad.
Notas
- Los comportamientos no expuestos en las superficies revisadas no se detallan.
id: quote-declined-reasons modulo: organizacion app: plataforma nombre: Motivos de rechazo de cotizaciones tipo: configuracion
Motivos de rechazo de cotizaciones
Mantiene los motivos disponibles al rechazar una cotización.
Que se logra
- Resultado: Las cotizaciones rechazadas conservan un motivo para analizar objeciones comerciales.
- Caso de uso: Un proveedor de servicios detecta por qué sus propuestas no avanzan.
- Se combina con: Configuración de organización, CRM y automatizaciones.
Donde esta
- Ruta:
/[orgId]/settings/estimates-declined-reasons - Acceso en UI:
Settings > Organization > Quote Declined Reasons - Componente(s):
EstimatesDeclinedReasonsList.tsx
Como funciona
- El usuario abre la sección indicada.
- Revisa o completa las opciones disponibles.
- Confirma la acción con el control de la interfaz cuando aplica.
- La interfaz actualiza el resultado o informa el error.
Reglas y validaciones
- Se puede agregar, editar y eliminar desde la lista.
Backend
- Servicios:
estimates-declined-reasons - Hooks relevantes solo si cambian el comportamiento visible: validación, autorización y efectos de integración asociados.
- Efectos: se aplican los movimientos, sincronizaciones, notificaciones o webhooks descritos por esta capacidad.
Relaciones
- Requiere: organización activa y acceso a la sección.
- Dispara / afecta: las entidades e integraciones administradas por esta funcionalidad.
Notas
- Los comportamientos no expuestos en las superficies revisadas no se detallan.
id: tags-management modulo: organizacion app: plataforma nombre: Gestión de etiquetas tipo: configuracion
Gestión de etiquetas
Crea, edita, duplica, elimina y copia etiquetas de la organización.
Que se logra
- Resultado: Los equipos pueden clasificar contactos y trabajo con etiquetas reutilizables.
- Caso de uso: Una clínica etiqueta prospectos por servicio de interés para segmentar su seguimiento.
- Se combina con: Configuración de organización, CRM y automatizaciones.
Donde esta
- Ruta:
/[orgId]/settings/tags - Acceso en UI:
Settings > Organization > Tags - Componente(s):
TagsList.tsx
Como funciona
- El usuario abre la sección indicada.
- Revisa o completa las opciones disponibles.
- Confirma la acción con el control de la interfaz cuando aplica.
- La interfaz actualiza el resultado o informa el error.
Reglas y validaciones
- Las etiquetas se reutilizan para segmentar entidades del CRM.
Backend
- Servicios:
tags - Hooks relevantes solo si cambian el comportamiento visible: validación, autorización y efectos de integración asociados.
- Efectos: se aplican los movimientos, sincronizaciones, notificaciones o webhooks descritos por esta capacidad.
Relaciones
- Requiere: organización activa y acceso a la sección.
- Dispara / afecta: las entidades e integraciones administradas por esta funcionalidad.
Notas
- Los comportamientos no expuestos en las superficies revisadas no se detallan.
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: partner-application modulo: partners-affiliates app: plataforma nombre: Solicitud de agencia tipo: accion
Solicitud de agencia
Permite postular la organización al programa de agencias.
Que se logra
- Resultado: Una organización puede postularse para participar como agencia.
- Caso de uso: Una consultora CRM inicia su proceso para referir y administrar clientes.
- Se combina con: Suscripciones, wallet y organizaciones cliente.
Donde esta
- Ruta:
/[orgId]/settings/agencies-and-affiliates - Acceso en UI:
Settings > Agencies & Affiliates >Apply`` - Componente(s):
AgencyApplicationDialog.tsx
Como funciona
- El usuario abre la sección indicada.
- Revisa o completa las opciones disponibles.
- Confirma la acción con el control de la interfaz cuando aplica.
- La interfaz actualiza el resultado o informa el error.
Reglas y validaciones
- La aplicación pasa por estados; las herramientas de partner requieren aprobación.
Backend
- Servicios:
partners-agency-applications - Hooks relevantes solo si cambian el comportamiento visible: validación, autorización y efectos de integración asociados.
- Efectos: se aplican los movimientos, sincronizaciones, notificaciones o webhooks descritos por esta capacidad.
Relaciones
- Requiere: organización activa y acceso a la sección.
- Dispara / afecta: las entidades e integraciones administradas por esta funcionalidad.
Notas
- Los comportamientos no expuestos en las superficies revisadas no se detallan.
id: partner-clients modulo: partners-affiliates app: plataforma nombre: Asignación de organizaciones cliente tipo: accion
Asignación de organizaciones cliente
Crea y asigna un cliente o vincula una organización existente al partner.
Que se logra
- Resultado: El partner vincula una organización cliente nueva o existente a su red.
- Caso de uso: Una agencia conecta a un cliente que acaba de implementar Apex.
- Se combina con: Suscripciones, wallet y organizaciones cliente.
Donde esta
- Ruta:
/[orgId]/settings/agencies-and-affiliates - Acceso en UI:
Agencies & Affiliates > Assign Organization - Componente(s):
AssignExistingOrganizationDialog.tsx
Como funciona
- El usuario abre la sección indicada.
- Revisa o completa las opciones disponibles.
- Confirma la acción con el control de la interfaz cuando aplica.
- La interfaz actualiza el resultado o informa el error.
Reglas y validaciones
- Una agencia con clientes activos no puede eliminar su organización.
Backend
- Servicios:
organizations, partners-metrics - Hooks relevantes solo si cambian el comportamiento visible: validación, autorización y efectos de integración asociados.
- Efectos: se aplican los movimientos, sincronizaciones, notificaciones o webhooks descritos por esta capacidad.
Relaciones
- Requiere: organización activa y acceso a la sección.
- Dispara / afecta: las entidades e integraciones administradas por esta funcionalidad.
Notas
- Los comportamientos no expuestos en las superficies revisadas no se detallan.
id: partner-commissions modulo: partners-affiliates app: plataforma nombre: Resumen y proyección de comisiones tipo: vista
Resumen y proyección de comisiones
Muestra saldo pendiente, elegible, pagado, clientes y gráficas diarias/mensuales de ganancias.
Que se logra
- Resultado: El partner sigue saldos y proyecciones de las comisiones generadas por su cartera.
- Caso de uso: Una agencia revisa sus ingresos antes de planificar el cobro del mes.
- Se combina con: Suscripciones, wallet y organizaciones cliente.
Donde esta
- Ruta:
/[orgId]/settings/agencies-and-affiliates - Acceso en UI:
Agencies & Affiliates > panel principal - Componente(s):
AgenciesAndAffiliatesPage.tsx
Como funciona
- El usuario abre la sección indicada.
- Revisa o completa las opciones disponibles.
- Confirma la acción con el control de la interfaz cuando aplica.
- La interfaz actualiza el resultado o informa el error.
Reglas y validaciones
- Las comisiones pasan a elegibles 60 días después de la transacción original.
Backend
- Servicios:
partners-metrics - Hooks relevantes solo si cambian el comportamiento visible: validación, autorización y efectos de integración asociados.
- Efectos: se aplican los movimientos, sincronizaciones, notificaciones o webhooks descritos por esta capacidad.
Relaciones
- Requiere: organización activa y acceso a la sección.
- Dispara / afecta: las entidades e integraciones administradas por esta funcionalidad.
Notas
- Los comportamientos no expuestos en las superficies revisadas no se detallan.
id: partner-payouts modulo: partners-affiliates app: plataforma nombre: Solicitud de payout tipo: accion
Solicitud de payout
Solicita el retiro de comisiones elegibles hacia la cuenta activa.
Que se logra
- Resultado: Las comisiones elegibles pueden convertirse en una solicitud de pago hacia la cuenta activa.
- Caso de uso: Un afiliado solicita el retiro de su saldo acumulado.
- Se combina con: Suscripciones, wallet y organizaciones cliente.
Donde esta
- Ruta:
/[orgId]/settings/agencies-and-affiliates - Acceso en UI:
Agencies & Affiliates >Payouts>Request Payout`` - Componente(s):
RequestPayoutDialog.tsx
Como funciona
- El usuario abre la sección indicada.
- Revisa o completa las opciones disponibles.
- Confirma la acción con el control de la interfaz cuando aplica.
- La interfaz actualiza el resultado o informa el error.
Reglas y validaciones
- Mínimo USD 100 y solo una solicitud abierta; la tarifa del proveedor se descuenta del monto recibido.
Backend
- Servicios:
partners-payouts - Hooks relevantes solo si cambian el comportamiento visible: validación, autorización y efectos de integración asociados.
- Efectos: se aplican los movimientos, sincronizaciones, notificaciones o webhooks descritos por esta capacidad.
Relaciones
- Requiere: organización activa y acceso a la sección.
- Dispara / afecta: las entidades e integraciones administradas por esta funcionalidad.
Notas
- Los comportamientos no expuestos en las superficies revisadas no se detallan.
id: partner-transactions modulo: partners-affiliates app: plataforma nombre: Historial de transacciones de comisión tipo: vista
Historial de transacciones de comisión
Lista transacciones de comisión y su estado.
Que se logra
- Resultado: Cada comisión queda trazable con su estado y evento de origen.
- Caso de uso: Un afiliado concilia qué pagos de clientes ya son elegibles para retiro.
- Se combina con: Suscripciones, wallet y organizaciones cliente.
Donde esta
- Ruta:
/[orgId]/settings/agencies-and-affiliates - Acceso en UI:
Agencies & Affiliates >Transactions`` - Componente(s):
AgencyAffiliatesTabs.tsx
Como funciona
- El usuario abre la sección indicada.
- Revisa o completa las opciones disponibles.
- Confirma la acción con el control de la interfaz cuando aplica.
- La interfaz actualiza el resultado o informa el error.
Reglas y validaciones
- Los estados visibles incluyen pendiente, elegible, pagada o cancelada.
Backend
- Servicios:
partners-transactions - Hooks relevantes solo si cambian el comportamiento visible: validación, autorización y efectos de integración asociados.
- Efectos: se aplican los movimientos, sincronizaciones, notificaciones o webhooks descritos por esta capacidad.
Relaciones
- Requiere: organización activa y acceso a la sección.
- Dispara / afecta: las entidades e integraciones administradas por esta funcionalidad.
Notas
- Los comportamientos no expuestos en las superficies revisadas no se detallan.
id: payout-accounts modulo: partners-affiliates app: plataforma nombre: Cuenta de cobro Wise tipo: configuracion
Cuenta de cobro Wise
Registra destinos bancarios o de mobile money y presenta el resumen enmascarado.
Que se logra
- Resultado: El partner registra un destino para recibir pagos y revisa su resumen protegido.
- Caso de uso: Una agencia configura su cuenta bancaria para cobrar comisiones mediante Wise.
- Se combina con: Suscripciones, wallet y organizaciones cliente.
Donde esta
- Ruta:
/[orgId]/settings/agencies-and-affiliates - Acceso en UI:
Agencies & Affiliates >Payout Method`` - Componente(s):
PayoutAccountsTab.tsx
Como funciona
- El usuario abre la sección indicada.
- Revisa o completa las opciones disponibles.
- Confirma la acción con el control de la interfaz cuando aplica.
- La interfaz actualiza el resultado o informa el error.
Reglas y validaciones
- Los detalles completos se envían al proveedor; debe existir una cuenta activa antes de solicitar retiro.
Backend
- Servicios:
partner-payout-accounts - Hooks relevantes solo si cambian el comportamiento visible: validación, autorización y efectos de integración asociados.
- Efectos: se aplican los movimientos, sincronizaciones, notificaciones o webhooks descritos por esta capacidad.
Relaciones
- Requiere: organización activa y acceso a la sección.
- Dispara / afecta: las entidades e integraciones administradas por esta funcionalidad.
Notas
- Los comportamientos no expuestos en las superficies revisadas no se detallan.
id: referral-links modulo: partners-affiliates app: plataforma nombre: Enlaces de referido tipo: vista
Enlaces de referido
Muestra y copia enlaces de registro e inicio con atribución de partner.
Que se logra
- Resultado: El partner comparte enlaces que permiten atribuir nuevos registros a su organización.
- Caso de uso: Un afiliado publica su enlace en una campaña y mide los clientes resultantes.
- Se combina con: Suscripciones, wallet y organizaciones cliente.
Donde esta
- Ruta:
/[orgId]/settings/agencies-and-affiliates - Acceso en UI:
Agencies & Affiliates > Partner Links - Componente(s):
AgenciesAndAffiliatesPage.tsx
Como funciona
- El usuario abre la sección indicada.
- Revisa o completa las opciones disponibles.
- Confirma la acción con el control de la interfaz cuando aplica.
- La interfaz actualiza el resultado o informa el error.
Reglas y validaciones
- La atribución de navegador se conserva 10 días; las visitas se deduplican 24 horas.
Backend
- Servicios:
partner-link-visits - Hooks relevantes solo si cambian el comportamiento visible: validación, autorización y efectos de integración asociados.
- Efectos: se aplican los movimientos, sincronizaciones, notificaciones o webhooks descritos por esta capacidad.
Relaciones
- Requiere: organización activa y acceso a la sección.
- Dispara / afecta: las entidades e integraciones administradas por esta funcionalidad.
Notas
- Los comportamientos no expuestos en las superficies revisadas no se detallan.
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.
id: call-controls modulo: softphone app: plataforma nombre: Controlar una llamada tipo: accion
Controlar una llamada
Durante una llamada activa, el agente puede silenciar audio, ponerla en espera, enviar tonos y terminarla.
Que se logra
- Resultado: el agente gestiona la conversación telefónica sin usar un softphone externo.
- Caso de uso: una mesa de ayuda pone en espera a un cliente mientras consulta información y después retoma la llamada.
- Se combina con: llamadas entrantes y salientes, historial de llamadas y dispositivos de audio.
Donde esta
- Ruta:
/[orgId]/.... - Acceso en UI:
Header > Phone icon > llamada activa. - Componente(s):
SoftPhone.tsx,AudioControls.tsx.
Como funciona
- Establecer o atender una llamada.
- Pulsar
Mutepara alternar el micrófono. - Pulsar
Holdpara alternar espera. - Abrir
DTMFo#y marcar tonos. - Pulsar
Hang uppara finalizar.
Reglas y validaciones
- Los controles solo aparecen durante una llamada activa.
Backend
- Servicios:
voice-call-events(create/find).
Relaciones
- Requiere: llamada WebRTC activa.
- Dispara / afecta: estado y registro de la llamada.
Notas
- La selección de micrófono y parlante está disponible en
Audio.
id: call-queue modulo: softphone app: plataforma nombre: Usar cola de llamadas tipo: vista
Usar cola de llamadas
Muestra las llamadas en espera y permite atender la siguiente o una llamada elegida por el agente.
Que se logra
- Resultado: las llamadas en espera se distribuyen a agentes disponibles desde una cola visible.
- Caso de uso: un contact center atiende primero al siguiente cliente o prioriza una llamada con mayor tiempo de espera.
- Se combina con: configuración de cola, conexión WebRTC y llamadas entrantes.
Donde esta
- Ruta:
/[orgId]/.... - Acceso en UI:
Header > Phone icon > Queue. - Componente(s):
VoiceQueuePanel.tsx.
Como funciona
- Habilitar la cola en
Settings > Calling & SMS > Calling > Queue. - Abrir
Queueen el SoftPhone. - Consultar conteo, posición y tiempo de espera.
- Elegir
Answer next in queueoAnsweren una fila.
Reglas y validaciones
- Solo se puede atender si hay conexión, disponibilidad, ninguna llamada activa y llamadas esperando.
Backend
- Servicios: canal de voz y cola.
Relaciones
- Requiere: cola habilitada y conexión WebRTC.
- Dispara / afecta: llamadas entrantes de la organización.
Notas
- La pestaña no se muestra si la cola está deshabilitada.
id: contacts-and-recents modulo: softphone app: plataforma nombre: Llamar desde contactos e historial tipo: vista
Llamar desde contactos e historial
Permite buscar contactos y reutilizar llamadas recientes desde el SoftPhone.
Que se logra
- Resultado: un agente llama a contactos o devuelve llamadas anteriores sin volver a escribir el número.
- Caso de uso: una agencia de cobro busca un cliente y devuelve su última llamada desde el mismo panel.
- Se combina con: CRM, historial de llamadas y marcador.
Donde esta
- Ruta:
/[orgId]/.... - Acceso en UI:
Header > Phone icon > ContactsoRecent. - Componente(s):
SoftPhone.tsx,useContactSearch.ts,useRecentCalls.ts.
Como funciona
- Abrir
Contactspara buscar una persona. - Pulsar el botón de teléfono del contacto.
- O abrir
Recenty seleccionar una llamada anterior. - Confirmar o editar el número antes de llamar.
Reglas y validaciones
- Se aplican los mismos requisitos de conexión y número activo del marcador.
Backend
- Servicios: contactos y
voice-call-events(find).
Relaciones
- Requiere: CRM y conexión WebRTC.
- Dispara / afecta: llamada saliente e historial.
Notas
- Por confirmar: si todas las entradas recientes permiten rellamada directa.
id: incoming-calls modulo: softphone app: plataforma nombre: Atender llamadas entrantes tipo: accion
Atender llamadas entrantes
Presenta una llamada entrante al agente conectado y permite aceptarla o rechazarla.
Que se logra
- Resultado: una llamada enrutada llega al agente disponible y se atiende desde el CRM.
- Caso de uso: un equipo de admisiones responde una llamada de un paciente sin abandonar la ficha de trabajo.
- Se combina con: conexión WebRTC, routing de llamadas y controles de llamada.
Donde esta
- Ruta:
/[orgId]/.... - Acceso en UI: aviso de llamada entrante desde
Header > Phone icon. - Componente(s):
VoiceNotifications.tsx,SoftPhone.tsx.
Como funciona
- Mantener el teléfono conectado y el agente disponible.
- Recibir el aviso de llamada.
- Elegir
AnsweroDecline.
Reglas y validaciones
- La llamada no se puede atender desde la cola si el agente no está disponible o ya tiene una llamada activa.
Backend
- Servicios:
voice-call-events(create/find).
Relaciones
- Requiere: WebRTC, disponibilidad del agente y routing configurado.
- Dispara / afecta: controles y registro de la llamada.
Notas
- La disponibilidad para voz es independiente de la disponibilidad de chat.
id: outbound-calling modulo: softphone app: plataforma nombre: Llamar desde el marcador tipo: accion
Llamar desde el marcador
Permite marcar un número o utilizar un contacto, seleccionando el identificador de llamada cuando hay varios números activos.
Que se logra
- Resultado: un agente inicia una llamada saliente usando un número válido de la organización.
- Caso de uso: una inmobiliaria devuelve una llamada a un prospecto desde el CRM y selecciona la línea de su sede.
- Se combina con: contactos, llamadas recientes y conexión WebRTC.
Donde esta
- Ruta:
/[orgId]/.... - Acceso en UI:
Header > Phone icon > Dial. - Componente(s):
SoftPhone.tsx.
Como funciona
- Abrir
Dial. - Elegir
Outgoing Caller IDsi hay varias opciones. - Escribir el número o usar el teclado y el prefijo de país.
- Pulsar
Call.
Reglas y validaciones
Callexige una llamada inactiva y al menos un número activo.
Backend
- Servicios: canales y eventos de voz.
Relaciones
- Requiere: conexión WebRTC activa.
- Dispara / afecta: historial y eventos de llamadas.
Notas
- Desde
ContactsyRecenttambién se puede iniciar una llamada.
id: webrtc-connection modulo: softphone app: plataforma nombre: Conectarse al teléfono WebRTC tipo: integracion
Conectarse al teléfono WebRTC
Abre el teléfono in-app y establece la conexión WebRTC del agente de voz.
Que se logra
- Resultado: el agente queda disponible para atender y originar llamadas desde el CRM.
- Caso de uso: un asesor de una aseguradora inicia su turno y se conecta sin configurar un teléfono externo.
- Se combina con: llamadas entrantes, marcador y cola de llamadas.
Donde esta
- Ruta:
/[orgId]/.... - Acceso en UI:
Header > Phone icon. - Componente(s):
VoiceIcon.tsx,VoiceProvider.tsx.
Como funciona
- Ingresar como agente de voz.
- Pulsar el icono de teléfono.
- Esperar el estado de conexión.
- Confirmar que el agente esté disponible antes de llamar.
Reglas y validaciones
- Requiere número de organización activo y agente configurado.
- La interfaz puede mostrar conexión, desconexión, error o indisponibilidad.
Backend
- Servicios: canales de voz y credenciales WebRTC.
Relaciones
- Requiere: Telnyx y permisos de micrófono.
- Dispara / afecta: disponibilidad de llamadas salientes y entrantes.
Notas
- Por confirmar: nombre exacto del servicio que emite las credenciales temporales.