US-003 — Múltiples números por cliente
Detalle de la historia¶
Historia¶
Como titular de una cuenta en FleteChat, quiero mantener un teléfono activo único por contacto y, además, asociar a personas de mi equipo (colaboradores) con su propio teléfono activo y aislamiento de información, para centralizar toda mi operación, cambiar mi número cuando lo necesite sin perder el historial, y dar acceso operativo a quien me ayuda con la logística sin exponer mi información personal.
Persona de usuario¶
Aplica a dos perfiles:
- Titular de la cuenta: la persona que creó la cuenta. Gestiona qué colaboradores se asocian, puede cambiar su propio teléfono activo, y tiene visibilidad completa sobre la actividad de la cuenta.
- Colaborador: persona distinta al titular a quien el titular autoriza a interactuar con FleteChat en nombre de su cuenta (típicamente un asistente, un comprador del equipo, un coordinador de logística). Cada colaborador también mantiene un teléfono activo único.
El titular típico es un cliente corporativo; los colaboradores son miembros de su equipo. Aplica también a clientes individuales que cambian de número (de personal a trabajo, o por reemplazo del teléfono): en ese caso conservan un único teléfono activo a la vez, y los anteriores quedan como históricos.
Contexto de negocio¶
Cuando una persona —María— contrata el servicio, ocurren dos hechos distintos a lo largo del tiempo:
- María puede cambiar su número. Reemplaza el celular, migra de operadora, separa personal y trabajo. Ese cambio no debe romper su historial: las cotizaciones, los embarques y las notificaciones que estaban a su nombre siguen siéndolo, y las notificaciones futuras se entregan al nuevo número.
- María tiene gente que le ayuda. En empresas pequeñas y medianas, gran parte de la operación la ejecutan colaboradores: un asistente coordina envíos, un comprador pide cotizaciones, un coordinador hace seguimiento. Trabajan bajo la cuenta de María, pero no son María.
Sin un modelo explícito de teléfono activo único + históricos por contacto y de titular + colaboradores por cuenta, el sistema enfrentaría tres problemas:
- Pérdida de continuidad al cambiar de número: si el sistema solo guarda el "último número conocido" y lo sobreescribe, el historial bajo el número viejo queda colgando.
- Confusión de identidad: si el asistente escribe y FleteChat lo saluda como "María", se pierde naturalidad y se degradan los saludos y las notificaciones.
- Privacidad entre contactos: si cualquier número asociado a la cuenta puede ver todo el historial de la cuenta, un colaborador que ya no trabaja con el titular podría seguir accediendo a información sensible.
El modelo de teléfono activo único + históricos por contacto resuelve la continuidad: cada contacto (titular o colaborador) tiene un único número activo al día, y los anteriores quedan archivados con su trazabilidad. El modelo de titular + colaboradores resuelve la identidad y la privacidad: cada contacto tiene su propio nombre, su propio hilo de conversación, y el historial operativo es propio de quien lo generó (salvo para el titular, que ve todo).
Diálogo de referencia¶
Titular cambia su propio teléfono activo¶
Cliente (titular, María, desde +507 7000-0000): Hola, soy María Pérez. Cambié de número. Mi número de aquí en adelante es este.
Agente: Hola, María. Encontré su cuenta. Le envié un enlace a maria@ejemplo.com para confirmar que este teléfono pasa a ser su número activo. Al hacer clic, queda verificado como su número activo y el anterior queda archivado en su historial — sus operaciones y notificaciones futuras llegan a este número.
Titular agrega un colaborador¶
Cliente (titular, María): Quisiera asociar el número de mi asistente para que también pueda escribirles en nombre mío.
Agente: Con gusto. ¿Cuál es el número y cómo se llama la persona que lo va a usar?
Cliente: +507 6000-0000, Juan Rodríguez.
Agente: Listo. Para asociar a Juan Rodríguez como colaborador en su cuenta le envié un enlace al correo maria@ejemplo.com; al hacer clic, Juan queda habilitado para escribirnos y coordinar operaciones en nombre de su cuenta. Recuerde que Juan verá solo lo que él mismo trabaje, no su historial personal.
Colaborador escribe desde un número no asociado¶
Cliente (desde +507 6000-0000): Hola, soy Juan, el asistente de María Pérez.
Agente: Hola, Juan. Este número no está asociado a ninguna cuenta todavía. Para asociarlo a la cuenta de María como colaborador suyo necesito que ella lo autorice. ¿Me confirma el correo de María?
Cliente: maria@ejemplo.com
Agente: Listo. Le envié un enlace a María para que autorice asociarlo como colaborador. Apenas ella lo confirme, lo atiendo con las operaciones que usted inicie.
Colaborador confirma que recibe notificación de la aceptación¶
Agente (a Juan, tras la confirmación de María): María Pérez confirmó su asociación como colaborador. Desde ahora puede coordinar operaciones en nombre de su cuenta. Si esta asociación no era la que esperaba, responda "No deseo asociarme" y la deshago.
Colaborador consulta información del titular¶
Cliente (Juan, ya autorizado): ¿Cuánto cotizó María la semana pasada para Miami?
Agente: Esa operación la inició María directamente, así que su detalle queda con ella. Si necesita esa información puede consultarla con María. ¿Le ayudo con algo propio suyo?
Titular consulta actividad de un colaborador¶
Cliente (titular, María): ¿Qué ha cotizado Juan esta semana?
Agente: Juan inició dos cotizaciones esta semana: C150 (Bogotá → Panamá) y C151 (Medellín → Colón). ¿Quiere que le muestre el detalle de alguna?
Criterios de aceptación¶
Estructura de la cuenta¶
- Toda cuenta tiene exactamente un titular, que es la persona que la creó. El titular no cambia automáticamente durante la vida de la cuenta (ver PR-037 y, para el flujo operativo de transferencia, US-006 + PR-234).
- Una cuenta puede tener cero o más colaboradores autorizados por el titular.
- Cada contacto de la cuenta (titular o colaborador) tiene un nombre y un rol, y mantiene un único teléfono activo a la vez más una lista de teléfonos históricos (los que fueron activos en algún momento y luego se sustituyeron). Un teléfono no se borra: pasa a histórico.
Cambiar el teléfono activo¶
- Cuando un contacto verificado pide cambiar su teléfono activo (porque cambió de número), FleteChat envía un enlace de verificación al correo del titular. Al confirmar:
- El número nuevo queda como activo del contacto.
- El número anterior queda como histórico con la fecha de desactivación.
- Las operaciones, embarques y registros previos del contacto permanecen ligados a su identidad (no a un número específico).
- Las notificaciones proactivas pendientes en cola que estaban dirigidas a ese contacto se redirigen al nuevo número activo (ver US-026).
- Solo puede haber un número activo verificado por contacto en un momento dado. Si un contacto sin colaborador comparte la cuenta, la regla aplica a cada contacto por separado (titular y cada colaborador).
Agregar un colaborador¶
- El titular, desde su número activo verificado, puede pedirle a FleteChat asociar a un colaborador. FleteChat pide el número y el nombre del colaborador. El número queda pendiente de verificación hasta que el titular haga clic en el enlace enviado a su correo.
- Cuando una persona escribe desde un número no asociado y, durante el onboarding, el correo que provee coincide con el correo del titular de una cuenta existente, FleteChat lo trata como solicitud de colaborador:
- Si el nombre coincide con el del titular, FleteChat lo interpreta como solicitud del titular para cambiar su teléfono activo (AC 4).
- Si el nombre es distinto, FleteChat envía al titular un enlace de autorización para asociarlo como colaborador.
- Mientras un colaborador esté pendiente de verificación, FleteChat puede conversar con él y recolectar datos, pero no emite cotizaciones ni inicia embarques desde ese número.
- Cuando el titular confirma la asociación de un colaborador, FleteChat envía al colaborador una notificación de confirmación con opción de declinar la asociación (consentimiento propio del colaborador, PR-213).
Aislamiento entre contactos¶
- FleteChat no comparte el historial ni las operaciones del titular con ningún colaborador, ni por pregunta explícita ni por inferencia. Si un colaborador pregunta por algo que pertenece al titular (o a otro colaborador), FleteChat declina de forma cordial y lo remite al titular.
- Cada colaborador ve únicamente sus propias conversaciones y las operaciones que él inició. No ve las de otros colaboradores ni las del titular.
- El titular sí puede consultar, desde su WhatsApp, la actividad de cualquier colaborador de su cuenta (cotizaciones, embarques, estatus). FleteChat se lo entrega identificando claramente al colaborador.
Saludos e identidad del contacto¶
- Cuando un número activo verificado escribe, FleteChat saluda a la persona por el nombre de contacto asociado a ese número, no por el nombre del titular.
- Las notificaciones proactivas (cambios de estatus, vencimientos) se envían al contacto que inició la operación, no al titular por defecto, dirigidas al teléfono activo del contacto en el momento del envío.
Administración desde el backoffice¶
- Los operadores de FleteChat ven, para cada cuenta: el titular, los colaboradores, el teléfono activo de cada uno, los teléfonos históricos con sus fechas, el estado (verificado o pendiente) y la fecha de cada asociación.
- Un operador puede desactivar a un colaborador (por ejemplo, cuando deja la empresa). El histórico de conversaciones se conserva; el número activo del colaborador deja de poder escribir en nombre de la cuenta.
- La conversión de un colaborador en titular se ejecuta desde backoffice por un operador con autorización del titular actual, conforme a US-006 (no por el agente conversacional). Ver PR-234.
Edge cases¶
- Alguien escribe desde un número nuevo diciendo "soy [nombre del titular]" pero el nombre está mal escrito. FleteChat no revela la identidad del titular; pide el correo, y si coincide trata como solicitud válida. La verificación por correo (PR-027/PR-028 en US-004) es la única autorización.
- Cliente A desactiva un número y el cliente B lo registra después. Es válido: el número está disponible. La verificación por correo de B es la garantía (PR-233). El sistema no marca al número como "ex-A"; A conserva su fila histórica para la trazabilidad del audit log.
- Colaborador pide ver el historial del titular o de otro colaborador. FleteChat declina con cortesía y explica que esa información queda con su propietario original.
- Titular pide remover a un colaborador desde el chat. FleteChat acepta el pedido viniendo del titular y confirma antes de ejecutar. El colaborador removido deja de poder escribir en nombre de la cuenta.
- Colaborador intenta asociar otro número o colaborador. FleteChat declina: solo el titular puede autorizar nuevas asociaciones.
- Número pendiente que nunca se verifica. Si tras el plazo definido (ver PR-026) el número sigue pendiente, FleteChat notifica al operador para revisión y puede dar de baja la solicitud.
- Alguien pretende ser titular sin serlo. FleteChat no revela el correo del titular ni información de la cuenta; ofrece handoff al operador para validar identidad por otros medios.
- Titular cambia de correo. Todos los enlaces pendientes quedan invalidados (ver US-006). Las asociaciones ya verificadas se mantienen.
- Titular escribe desde su teléfono histórico tras haber cambiado al nuevo. FleteChat trata ese número como no activo: lo identifica como histórico del titular y le ofrece reactivarlo (lo cual dispara la verificación, que dejaría como histórico al actual activo).
Tamaño, prioridad y tipo¶
- Tamaño: L
- Prioridad: P0 — indispensable para clientes corporativos desde el primer día, tanto por usabilidad (cambios de número), identidad y privacidad.
- Tipo: feature
Premisas¶
La historia está redactada bajo las siguientes premisas. Si alguna cambia, la historia debe revisarse y ajustarse en consecuencia. Todas deben ser confirmadas por el cliente antes de cerrar la historia.
- PR-024 — Autorización para asociar un colaborador o cambiar el activo. El factor que autoriza toda asociación nueva (colaborador) o cambio de teléfono activo del titular es el clic del titular en el enlace enviado a su correo. La solicitud puede originarse desde un número ya verificado de la cuenta o desde el propio número nuevo durante el onboarding, pero la consumación siempre requiere el clic del titular.
- PR-025 — Límite de contactos por cuenta. No hay máximo técnico de colaboradores. Si una cuenta supera 10 contactos activos entre titular y colaboradores, FleteChat alerta al operador para revisión.
- PR-026 — Número pendiente sin verificar. Si un número queda pendiente por más de 7 días, FleteChat notifica al operador para seguimiento o baja de la solicitud.
- PR-037 — Titular único e inmutable por el agente conversacional. Cada cuenta tiene exactamente un titular, que es quien la creó. El agente conversacional no transfiere titularidad bajo ninguna circunstancia. La transferencia operativa por backoffice se rige por PR-234 (ver US-006).
- PR-038 — Nombre por contacto. Cada contacto lleva un nombre (la persona real que usa el número activo), capturado al momento de asociar al contacto a la cuenta.
- PR-039 — Aislamiento entre contactos. FleteChat no comparte historial ni operaciones entre contactos distintos de una misma cuenta. Cada colaborador ve solo lo propio.
- PR-040 — Visibilidad del titular. El titular puede consultar desde su WhatsApp la actividad de cualquier colaborador de su cuenta. Esta visibilidad es asimétrica: ningún colaborador ve al titular ni a otros colaboradores.
- PR-041 — Alcance de acción del colaborador verificado. Un colaborador verificado puede iniciar cotizaciones y embarques en nombre de la cuenta. No puede editar datos de la cuenta, asociar otros colaboradores ni dar de baja al titular.
- PR-213 — Consentimiento propio del colaborador. La autorización del titular habilita la asociación del número del colaborador a la cuenta, pero el colaborador, como titular de sus propios datos personales (nombre, número, historial conversacional propio), da su consentimiento informado directamente a FleteChat la primera vez que escribe desde el número ya asociado. Adicionalmente, al confirmarse la asociación, el colaborador recibe notificación de la confirmación con opción de declinar (AC 9). Sin su aceptación, FleteChat no persiste datos del colaborador más allá de lo estrictamente necesario para declinar el servicio.
- PR-232 — Teléfono activo único por contacto + históricos + un número activo por cuenta. Cada contacto de una cuenta (titular o colaborador) tiene un único teléfono activo verificado a la vez. A nivel de sistema, un número activo verificado pertenece a una sola cuenta: no es posible que el mismo número esté activo como titular de la cuenta A y como colaborador de la cuenta B al mismo tiempo (la dedup
ux_clients_phone_verifiedlo impide). Cuando el contacto cambia de número, el nuevo se verifica y queda como activo; el anterior pasa a estado histórico con fecha de desactivación. Los teléfonos históricos no se borran: se conservan para trazabilidad operativa, redirección de cola pendiente al activo nuevo (US-026) y audit log. - PR-233 — Política de reasignación de número entre clientes. Un número que fue activo del cliente A y se desactivó queda disponible para ser registrado por el cliente B sin restricciones del sistema. La verificación por correo de B (PR-024) es la única garantía. No hay cooldown ni bloqueo permanente. El registro histórico del número en la cuenta de A se conserva sin afectar al alta del cliente B. Justificación operativa: en Panamá las operadoras móviles reasignan los números cancelados a otros usuarios, por lo que cualquier cooldown del lado del sistema sería arbitrario.
Refinamiento y Definition of Ready¶
Notas¶
| Fecha | Participantes | Acuerdo / Nota |
|---|---|---|
| 2026-04-17 | Kaeus | Versión inicial. |
| 2026-04-20 | Kaeus | Se añade PR-213 (consentimiento propio del colaborador) y PR-214 (resolución cuando un número pertenece a más de una cuenta). |
| 2026-05-27 | Kaeus | v2.0 — Refinamientos derivados del feedback de Zeverium consolidado en docs/spec/customer-feedback/impact-analysis-2026-05.md. Reescritura estructural para modelar teléfono activo único + históricos por contacto (cambia AC 3, agrega AC 4–5; refleja la decisión del cliente del 2026-05-26 sobre cambio de número con traslado de historial). Se agrega AC 9 (notificación al colaborador de la confirmación + opción de declinar; comentario #5 del 2026-05-26) y se ajusta AC 17 para alinear con la transferencia operativa de US-006. Premisas nuevas PR-232 (activo único + históricos) y PR-233 (política de reasignación libre, opción §7.1=c respondida 2026-05-27). PR-037 reformulada para acotar su alcance al agente conversacional, dejando el flujo de transferencia por backoffice gobernado por PR-234 en US-006. |
| 2026-05-27 | Kaeus | v2.0 (corrección) — Se retira PR-214 ("número pertenece a más de una cuenta") por contradicción con PR-232: el modelo nuevo declara que un número activo verificado pertenece a una sola cuenta a la vez. La dedup ux_clients_phone_verified lo impone a nivel de schema. El caso "número en dos cuentas" deja de ser un escenario real; en su lugar, un mismo número puede estar activo en una cuenta y como histórico en otra (caso secuencial: el cliente A se cambia de número, luego B lo registra — gobernado por PR-233). La regla "un número activo = una cuenta" se incorporó al cuerpo de PR-232. |
Checklist¶
- ✅ Historia escrita en formato Como / Quiero / Para
- ✅ Persona de usuario identificada
- ✅ Contexto de negocio documentado
- ✅ Criterios de aceptación observables y pass/fail
- ✅ Edge cases relevantes listados
- ✅ Tamaño y prioridad asignados
- ⬜ Premisas PR-024 a PR-026, PR-037 a PR-041, PR-213 y PR-232 a PR-233 confirmadas por el cliente
- ⬜ Reglas de negocio aplicables aprobadas
- ⬜ Requerimientos funcionales aplicables aprobados
- ⬜ Historia aprobada formalmente por el cliente