Perfis de Hospedes
O perfil do hospede e o registro central que reune todas as informacoes de uma pessoa no Opero: dados pessoais, documentos, historico de estadias, preferencias e tags. Cada hospede pertence a um tenant (conta) e pode ter reservas em qualquer propriedade desse tenant — o cadastro e compartilhado entre propriedades da mesma rede.
Este guia detalha a estrutura completa do perfil, como criar e editar registros, e funcionalidades avancadas como mesclagem de duplicatas e busca.
Criando um Perfil de Hospede
Ha tres formas de criar um perfil:
- Manual pelo painel — Acesse Hospedes > Novo Hospede e preencha o formulario
- Durante uma reserva — Clique em “Criar novo hospede” no fluxo de reserva
- Automatico via Guest Booking Portal — Quando o hospede faz uma reserva pelo motor de reservas, o perfil e criado automaticamente e ja nasce verificado
Formulario de cadastro
O dialogo de criacao (guest-form-dialog) solicita os seguintes campos:
| Campo | Obrigatorio | Descricao |
|---|---|---|
| Nome completo | Sim | Nome e sobrenome do hospede |
| Nao | Endereco de e-mail para comunicacao e verificacao | |
| Telefone | Nao | Numero com DDD e codigo do pais |
| Tipo de documento | Nao | CPF, RG, Passaporte, DNI, CC ou Outro |
| Numero do documento | Nao | Numero do documento selecionado |
| Pais do documento | Nao | Pais emissor (codigo ISO) |
| Tags | Nao | Rotulos livres para segmentacao |
Ao salvar, o sistema gera automaticamente um slug unico a partir do nome (ex: maria-silva, maria-silva-2 em caso de homonimo). O slug e usado internamente para URLs amigaveis e busca.
Nota: Campos adicionais como endereco, contato de emergencia, data de nascimento e nacionalidade podem ser preenchidos posteriormente na edicao do perfil.
Campos do Perfil
O perfil completo do hospede contem os seguintes campos:
Dados pessoais
| Campo | Tipo | Descricao |
|---|---|---|
name | Texto | Nome completo do hospede |
slug | Texto (auto) | Identificador unico gerado a partir do nome |
email | Texto | Endereco de e-mail |
phone | Texto | Telefone com codigo do pais |
birthDate | Data | Data de nascimento |
nationality | Texto | Codigo ISO do pais de origem |
isActive | Booleano | Indica se o perfil esta ativo (padrao: true) |
Documento de identificacao
| Campo | Tipo | Descricao |
|---|---|---|
document | Texto (criptografado) | Numero completo do documento — armazenado com criptografia AES-256-GCM via AWS KMS |
documentLast6 | Texto (mascarado) | Ultimos 6 caracteres do documento para exibicao: ***LAST6 |
documentType | Enum | Tipo do documento: CPF, RG, PASSPORT, DNI, CC, OTHER |
documentCountry | Texto | Pais emissor do documento (codigo ISO) |
documentExpiration | Data | Data de validade (obrigatoria para passaportes) |
Seguranca: O campo
documentnunca e exibido em tela. A interface mostra apenas odocumentLast6no formato***LAST6(ex:***456789). Para revelar o documento completo, o usuario precisa acionar o endpoint de revelacao, que exige permissao de Admin e registra a acao na trilha de auditoria. Veja mais em LGPD e Privacidade.
Endereco
| Campo | Tipo | Descricao |
|---|---|---|
address | JSONB | Objeto com: street, number, complement, neighborhood, city, state, zipCode, country |
Contato de emergencia
| Campo | Tipo | Descricao |
|---|---|---|
emergencyContact | JSONB | Objeto com: name, phone, relationship |
Estatisticas de Estadia
O perfil mantem tres metricas calculadas automaticamente a cada check-out:
| Metrica | Campo | Descricao |
|---|---|---|
| Total de estadias | stayCount | Numero de reservas concluidas (com check-out realizado) |
| Total gasto | totalSpent | Soma de todas as diarias e servicos consumidos (em centavos, convertido para exibicao) |
| Ultima estadia | lastStayDate | Data do check-out mais recente |
Essas metricas sao utilizadas pelo sistema para:
- Elegibilidade VIP — o calculo de nivel (Silver, Gold, Platinum) considera
stayCountetotalSpent - Segmentacao de campanhas — filtros no OCP usam essas metricas para definir publico-alvo
- Relatorios de receita — receita por hospede, ticket medio, frequencia de retorno
Importante: Os valores financeiros sao armazenados em inteiros (centavos) usando dinero.js. O campo
totalSpentnunca usa ponto flutuante. A conversao para exibicao (ex: R$ 1.234,56) e feita exclusivamente no frontend.
Preferencias
O campo preferences armazena em JSONB as preferencias pessoais do hospede, registradas pela equipe ou informadas pelo proprio hospede:
| Preferencia | Chave | Valores de exemplo |
|---|---|---|
| Tipo de quarto | roomType | suite, standard, dormitory |
| Andar preferido | floor | high, low, any |
| Configuracao de cama | bedConfig | double, twin, bunk |
| Restricoes alimentares | dietary | vegetarian, vegan, gluten-free, none |
| Acessibilidade | accessibility | wheelchair, visual, hearing, none |
| Solicitacoes especiais | specialRequests | Texto livre (ex: “travesseiro extra”, “longe do elevador”) |
Como usar preferencias na operacao
- Check-in — ao atribuir unidade, o sistema exibe as preferencias do hospede como sugestao para o recepcionista
- Governanca — preferencias de acessibilidade ou solicitacoes especiais informam a equipe de limpeza sobre preparacao especial do quarto
- Reservas futuras — ao criar uma nova reserva para o hospede, as preferencias aparecem automaticamente no resumo
Dica: Mantenha as preferencias sempre atualizadas. Pergunte ao hospede a cada check-in se houve alguma mudanca — isso demonstra atencao e melhora a experiencia.
Tags
Tags sao rotulos livres armazenados como array JSONB no perfil do hospede. Elas permitem segmentacao flexivel sem depender de campos fixos.
Exemplos de tags comuns
| Tag | Uso |
|---|---|
business | Viajantes corporativos |
repeat | Hospedes recorrentes (retorno frequente) |
group-leader | Lider de grupo ou excursao |
early-bird | Costuma reservar com antecedencia |
last-minute | Reservas de ultima hora |
evento-2026 | Participante de evento especifico |
alta-manutencao | Hospede que demanda atencao extra da equipe |
Gerenciando tags
- Acesse o perfil do hospede
- Na secao Tags, digite a nova tag e pressione Enter
- Para remover, clique no X ao lado da tag
Tags podem ser usadas como:
- Filtro na listagem — encontre todos os hospedes com a tag
business - Segmentacao no OCP — envie campanhas de e-mail apenas para hospedes com tags especificas
- Relatorios — analise receita por segmento de hospede
Mesclagem de Hospedes (Deduplicacao)
E comum que o mesmo hospede exista em duplicata — por exemplo, cadastrado manualmente pela recepcao e depois criado automaticamente pelo motor de reservas. O Opero oferece uma funcionalidade de merge para unificar esses registros.
Passo a passo
- Acesse o perfil de um dos hospedes duplicados
- Clique em Acoes > Mesclar com outro hospede
- Busque e selecione o hospede duplicado
- O sistema exibe uma comparacao lado a lado dos dois registros
- Escolha qual informacao manter para cada campo divergente
- Confirme a mesclagem
O que acontece tecnicamente
O merge envolve dois identificadores: sourceGuestId (hospede que sera absorvido) e targetGuestId (hospede que permanece ativo).
| Acao | Descricao |
|---|---|
| Transferencia de reservas | Todas as reservas do sourceGuestId sao reatribuidas ao targetGuestId |
| Combinacao de estatisticas | stayCount, totalSpent e lastStayDate sao recalculados somando ambos os registros |
| Marcacao do registro origem | O sourceGuestId recebe o campo mergedIntoId apontando para o targetGuestId e e marcado como isActive: false |
| Preservacao do historico | O registro de origem nao e deletado fisicamente — permanece no banco para rastreabilidade |
| Auditoria | A operacao e registrada na trilha de auditoria com ambos os IDs e o usuario que executou |
Atenção: O merge e irreversivel. Revise cuidadosamente a comparacao lado a lado antes de confirmar. Em caso de duvida, consulte o historico de estadias de ambos os registros para ter certeza de que sao a mesma pessoa.
Dica: O sistema pode sugerir hospedes possivelmente duplicados com base em nome similar, e-mail ou ultimos 6 digitos do documento. Fique atento as notificacoes de “possivel duplicata” no painel.
Busca de Hospedes
O diretorio de hospedes suporta busca textual com correspondencia parcial (ILIKE) nos seguintes campos:
| Campo | Exemplo de busca | Resultado |
|---|---|---|
| Nome | Maria | Encontra “Maria Silva”, “Ana Maria Santos” |
| Slug | maria-silva | Encontra o hospede com esse slug exato |
maria@ | Encontra todos os e-mails que contem “maria@“ | |
| Ultimos 6 do documento | 456789 | Encontra hospedes cujo documentLast6 contem “456789” |
A busca e case-insensitive e funciona com digitacao parcial — nao e necessario digitar o valor completo.
Filtros avancados
Alem da busca textual, a listagem oferece filtros combinaveis:
- Status VIP — Todos, Silver, Gold, Platinum
- Verificacao — Verificados, Nao verificados
- Nacionalidade — Lista de paises
- Faixa de estadias — 1-5, 6-10, 10+
- Ultima estadia — Intervalo de datas
- Tags — Uma ou mais tags
Dica: Combine filtros para encontrar segmentos valiosos. Exemplo: VIP Gold + mais de 10 estadias + tag
business= seus melhores clientes corporativos.
Mascaramento de PII e Auditoria
O Opero trata dados pessoais (PII) com rigor em conformidade com a LGPD e GDPR:
Criptografia em repouso
- O campo
documente criptografado com AES-256-GCM via AWS KMS antes de ser gravado no banco - A chave de criptografia e gerenciada pelo KMS — nunca fica em texto puro no servidor
- Mesmo com acesso direto ao banco de dados, o numero do documento e ilegivel sem a chave KMS
Mascaramento na interface
- A interface exibe documentos no formato
***LAST6(ex:***456789) - O campo
documentLast6e armazenado separadamente para permitir busca sem descriptografar - A revelacao do documento completo requer acionamento de um endpoint especifico
Revelacao auditada
Para visualizar o documento completo de um hospede:
- O usuario precisa ter permissao de Admin
- Clique em Revelar documento no perfil do hospede
- O sistema registra na trilha de auditoria: quem solicitou, quando, qual hospede e qual documento foi revelado
- O documento e exibido temporariamente e oculto novamente ao sair da tela
Importante: Toda revelacao de documento e registrada com proposito de compliance. Acessos frequentes ou injustificados podem ser flaggeados em auditorias internas.
Boas Praticas
-
Cadastro completo desde o inicio — Preencha o maximo de campos possivel no primeiro contato. Perfis incompletos dificultam a operacao e a comunicacao futura.
-
Use tags consistentes — Defina um conjunto padrao de tags com a equipe e evite variacoes (ex: nao use
corporativo,businessecorppara o mesmo conceito). -
Verifique antes de criar — Sempre busque pelo nome, e-mail ou documento antes de criar um novo hospede. Duplicatas geram confusao no historico e nas estatisticas.
-
Mescle duplicatas imediatamente — Ao identificar uma duplicata, faca o merge o quanto antes. Quanto mais reservas se acumulam em registros separados, mais confuso fica o historico.
-
Atualize preferencias a cada estadia — Pergunte ao hospede no check-in se suas preferencias mudaram. Informacoes desatualizadas podem gerar experiencias negativas.
-
Nao compartilhe documentos — Nunca copie ou exporte numeros de documentos fora do sistema. Use o campo mascarado (
***LAST6) para comunicacao interna. -
Respeite o consentimento LGPD — Antes de usar dados do hospede para marketing ou comunicacao nao essencial, verifique se ha consentimento registrado. Veja LGPD e Privacidade.
-
Mantenha tags limpas — Revise periodicamente as tags em uso. Remova tags obsoletas (ex:
evento-2024) e consolide tags redundantes.