Docs

Flujo del Invitado

Documento tecnico que describe el journey completo de un invitado en Nvito, desde el momento en que recibe la invitacion hasta despues del evento. Cubre los canales de contacto, el flujo de RSVP, los estados del invitado, el check-in y la experiencia post-evento.

CampoValor
Version1.0
FechaMarzo 2026
EstadoPublicado
AudienciaEquipo de desarrollo, arquitectos

1. Journey del Invitado

El invitado atraviesa multiples etapas desde que recibe la invitacion hasta despues del evento.


2. Canales de Contacto

Nvito contacta a los invitados a traves de multiples canales, priorizados por la configuracion del organizador:

CanalServicioCuando se usaPrerequisito
EmailNodemailer (SMTP)Invitacion, confirmacion, recordatoriosEmail del invitado registrado
WhatsAppTwilio Business APIInvitacion, recordatorios, RSVP conversacionalTelefono del invitado registrado
SMSTwilio SMSFallback cuando WhatsApp no disponibleTelefono del invitado registrado
PushFirebase/Expo PushRecordatorios, actualizaciones en tiempo realApp movil instalada con token registrado
Link directoURL publicaCompartido manualmente por el organizadorNinguno

2.1 Smart Routing

El sistema de comunicaciones incluye Smart Routing que selecciona automaticamente el mejor canal:

  1. Si el invitado tiene WhatsApp verificado y el organizador tiene credito → WhatsApp
  2. Si tiene email → Email
  3. Si tiene telefono sin WhatsApp → SMS
  4. Si tiene app instalada → Push notification como complemento

3. Visualizacion de la Invitacion

Cuando el invitado abre el link de la invitacion:

  1. nvito-invitations (Next.js ISR) sirve la pagina estatica
  2. Se muestra la pantalla de carga (loader) seleccionada por el organizador
  3. Se renderiza el HTML de la invitacion con transiciones entre secciones
  4. El script de analiticas registra la visita (VIEW event)
  5. Si es invitacion interna, las secciones se navegan con transiciones fullpage
  6. Si es invitacion externa, se renderiza el HTML tal cual fue subido

3.1 Tracking de Analiticas

Cada interaccion del invitado se registra:

EventoCuandoDatos
VIEWAl abrir la invitacionslug, userAgent, referrer, timestamp
SECTION_VIEWAl navegar a una seccionsectionType, viewDuration
RSVP_STARTAl iniciar el formulario RSVPtimestamp
RSVP_COMPLETEAl enviar la respuestaresponse, attendeesCount
LINK_CLICKAl hacer clic en un enlacelinkType (map, gift, accommodation)

4. Flujo de RSVP

El RSVP (Repondez S'il Vous Plait) es el momento central de la interaccion del invitado.

4.1 Diagrama de Flujo

4.2 Campos del RSVP

CampoTipoRequeridoDescripcion
responseCONFIRMED / DECLINEDSiRespuesta del invitado
attendeesCountnumberSi (si CONFIRMED)Numero de asistentes (incluye al invitado)
attendeeNamesstring[]NoNombres de los acompanantes
dietaryRestrictionsstringNoRestricciones alimentarias
messagestringNoMensaje para los anfitriones
needsTransportationbooleanNoSi necesita transporte
accommodationPreferencestringNoPreferencia de hospedaje

4.3 Reglas de Negocio

ReglaDescripcion
Un RSVP por par (guest, invitation)Un invitado solo puede tener una respuesta por invitacion
ActualizableEl invitado puede cambiar su respuesta multiples veces antes del cierre
attendeesCount no excede groupSizeNo puede confirmar mas asistentes que el tamano de su grupo
groupSizeDefinido por el organizador al crear el invitado (default: 1)
Invitacion cerradaNo se aceptan respuestas si la invitacion esta en estado CLOSED

5. Estados del Invitado

Cada invitado tiene un estado que refleja su progreso en el flujo:

EstadoDescripcionPuede cambiar?
PENDINGInvitado agregado pero no ha respondido RSVPSi (via RSVP)
CONFIRMEDEl invitado confirmo asistenciaSi (puede cambiar a DECLINED antes del cierre)
DECLINEDEl invitado rechazo la invitacionSi (puede cambiar a CONFIRMED antes del cierre)
ATTENDEDEl invitado hizo check-in en el eventoNo (estado final)

6. Check-in

El check-in se realiza el dia del evento, cuando el invitado llega al venue.

6.1 Metodos de Check-in

MetodoDescripcionActor
QR CodeEl host escanea el QR del invitado con la app movilHost (via nvito-client o nvito-pwa)
Busqueda manualEl host busca al invitado por nombre en la listaHost (via nvito-client o nvito-pwa)
Auto check-inEl invitado escanea un QR del venue (si habilitado)Invitado

6.2 Flujo de Check-in

6.3 Check-in Offline

Para eventos en lugares con mala conectividad:

  1. Los QR passes se pre-cargan en cache (staleTime: 10min, gcTime: 7 dias)
  2. El check-in se registra localmente en la cola offline (AsyncStorage / IndexedDB)
  3. Al recuperar conexion, useOfflineSync sincroniza automaticamente con el servidor
  4. Se resuelven conflictos por timestamp (ultimo check-in gana)

7. Acceso del Invitado a la App Movil

Los invitados pueden acceder a funcionalidades adicionales via la app movil o PWA:

nvito://guest?token={accessToken}
  1. El organizador comparte un link/QR con deep link
  2. El invitado abre el link en su dispositivo
  3. Si tiene la app: abre directamente con loginAsGuest(accessToken)
  4. Si no tiene la app: redirige a la PWA o app store

7.2 Funcionalidades para Invitados

FuncionalidadPantallaDescripcion
HomehomeVista general del evento con countdown
Itinerarioitinerary-guestPrograma del evento
Galeriagallery-guestFotos compartidas del evento
InteraccioninteractMensajes, audio guestbook, encuestas
Mesa de regalosgift-registry-guestVer y contribuir a la mesa de regalos
Compartirsharing-guestCompartir fotos y momentos
HospedajeaccommodationOpciones de hospedaje cercanas

8. Post-evento

Despues del evento, el invitado puede seguir interactuando:

AccionCanalTrigger
Recibe agradecimientoEmail/WhatsAppWorkflow POST_EVENT (automatico)
Ve galeria compartidaApp movil / PWAAcceso persistente por 30 dias
Deja mensaje en audio guestbookApp movil / PWADisponible durante y post-evento
Descarga fotosApp movil / PWAFotos del evento en alta resolucion

9. Modelo de Datos del Invitado

CampoTipoDescripcion
idUUIDIdentificador unico
eventIdUUIDEvento al que pertenece
firstNamestringNombre
lastNamestringApellido
emailstring?Email (opcional)
phonestring?Telefono (opcional)
groupSizenumberTamano del grupo (default: 1)
statusenumPENDING, CONFIRMED, DECLINED, ATTENDED
groupIdUUID?Grupo de invitados (familia, mesa)
tableIdUUID?Mesa asignada
accessTokenstringToken unico para acceso via deep link
checkedInAtDateTime?Timestamp del check-in
checkedInByUUID?Quien realizo el check-in
rsvpRespondedAtDateTime?Timestamp de la ultima respuesta RSVP

10. Archivos Clave

ArchivoUbicacionResponsabilidad
rsvp.service.tssrc/modules/rsvp/Logica de respuesta RSVP publica
rsvp.controller.tssrc/modules/rsvp/Endpoints publicos de RSVP
guests.service.tssrc/modules/guests/CRUD de invitados, estados, check-in
guests.controller.tssrc/modules/guests/Endpoints REST de invitados
guest-import.service.tssrc/modules/guests/services/Importacion masiva de invitados (CSV/Excel)
check-in.service.tssrc/modules/guests/services/Logica de check-in (QR + manual + offline)

11. Relacion con Otros Flujos

Flujo relacionadoRelacion
Ciclo de Vida de la InvitacionEl invitado solo puede ver/responder invitaciones PUBLISHED
Ciclo de Vida del EventoEl check-in solo funciona para eventos ACTIVE
Flujo de ComunicacionesLos triggers RSVP_CONFIRMED y RSVP_DECLINED disparan workflows
Flujo de PagosEl invitado puede contribuir a la mesa de regalos via PaymentLink
Esta pagina fue util?