A ficha do cliente
O modelo Customer guarda tudo o que importa para reconhecer e contactar:
- Email e telefone (com código de país e número sanitizados).
- NIF português (validado quando preenchido).
- Nome e data de nascimento.
- Última visita (
last_visit) — actualizada automaticamente. - Notas internas em texto livre — para o profissional registar contexto que não cabe no histórico estruturado.
Estado do cliente
active— cliente activo no sistema.is_blacklisted— cliente bloqueado de fazer novas marcações pelo portal público.
Consentimento de marketing
O atributo accepts_marketing guarda explicitamente se o cliente autorizou comunicação não transaccional. Importante para alinhamento com RGPD.
Histórico unificado
A ficha do cliente liga-se a:
- Marcações — todas, em qualquer estado, com profissional e serviço.
- Transações — pagamentos recebidos, devoluções, créditos.
- Comentários internos (
CustomerComment) — anotações da equipa, ordenadas no tempo. - Audit log (
CustomerAuditLog) — quem alterou que dados e quando.
O contador bookings_count é desnormalizado para queries rápidas em listagens de clientes mais frequentes.
Verificação do cliente por PIN
Para reduzir fakes e marcações lixo, o FIRO suporta verificação opcional do cliente antes de finalizar a marcação:
- Cliente insere NIF (ou outro identificador) na página pública.
- Recebe um PIN por SMS ou email.
- Confirma o PIN para concluir a marcação.
Esta validação está implementada em BookingContactVerificationService + endpoint /booking/request-verification-code. É activável por tenant.
Cliente é global, marcações são por tenant
O FIRO trata o cliente como entidade global — não há um Customer por tenant. Vantagens:
- Cliente que se mude entre fornecedores no FIRO mantém o seu acesso e ficha.
- Ao registar-se uma vez, pode marcar em qualquer tenant que use FIRO sem repetir dados.
- O histórico está sempre lá quando o cliente regressa.
As marcações são tenant-scoped — cada negócio só vê as suas. O cliente é a "ponte" que liga visões entre tenants do ponto de vista do cliente, não do negócio.
Portal do cliente: /minha-conta
Cada cliente tem acesso a um portal pessoal com login por magic link ou Google OAuth. Lá pode:
- Ver o histórico de marcações com estado actual.
- Cancelar marcações futuras (sujeito ao
cancel_min_hoursconfigurado pelo tenant). - Editar o perfil — email, telefone, NIF, consentimentos.
- Abrir tickets de suporte dirigidos ao tenant.
- Pedir exportação ou eliminação RGPD dos dados.
Reduz drasticamente o volume de chamadas que a recepção atende para "mudar a marcação para outra hora".
Importação CSV de clientes
Para tenants que migram de outras ferramentas, há um pipeline de importação:
- Upload de CSV com mapeamento de colunas.
CsvSourceregista de onde veio cada lote (qual ficheiro, mapeamento, data).- Cada cliente importado fica marcado com
csv_source_idpara rastreio.
Marcações importadas em massa
Se a importação trouxer também marcações históricas, ficam com a flag is_contact_import para distinguir de marcações criadas no produto.
RGPD: exportação e eliminação
O FIRO suporta os direitos do titular dos dados via GdprRequest:
- Pedido de exportação: entrega ao cliente um pacote com os seus dados (perfil, marcações e transações).
- Pedido de eliminação: retira os dados pessoais do cliente nessa loja; as faturas ficam guardadas pelo prazo legal.
O pedido só conta depois de o cliente abrir o link enviado para o email e, se indicou telemóvel, introduzir o código enviado por SMS. Nessa altura o cliente recebe um email com o prazo legal (30 dias), o dono da loja recebe um email e um aviso no backoffice, e a equipa da plataforma recebe um email para tratar do pedido no admin.
Auditoria das alterações
Cada vez que dados sensíveis do cliente mudam, é gravado em CustomerAuditLog: quem alterou, que campo, valor anterior e novo. Isto é importante para:
- Resolver queixas ("o meu telefone no sistema está errado, alguém mudou").
- Demonstrar conformidade RGPD em caso de auditoria.
- Recuperar valores perdidos por engano.
O que dizer ao lead
A maioria das ferramentas trata o cliente como uma linha numa lista. O FIRO trata-o como entidade com histórico, contexto e direitos.
- "O cliente é teu, mas pertence-lhe a ele" — portal self-service tira chamadas da recepção e dá ao cliente o controlo (cancelamentos, dados, RGPD).
- "Verificação por PIN reduz lixo" — quem nunca teve uma marcação fake de quem dá o número errado para escapar?
- "Importas o que tens hoje" — CSV com mapeamento de colunas. O lead que vem com 800 contactos no Excel não fica para trás.
- "Cumprimento RGPD à séria" — endpoints de export/delete + audit log. Não é só ter um aviso de cookies.
Âmbito atual & roadmap
O produto evolui semana a semana. Aqui está o que existe hoje e o que está confirmado para chegar.
Hoje no produto
- Ficha completa com NIF, marketing, blacklist
- Histórico unificado (marcações + transações + notas)
- Verificação por PIN (NIF + SMS/email)
- Portal /minha-conta com Google OAuth
- Importação CSV com mapeamento
- GDPR export e delete via portal
- Audit log de todas as alterações
A caminho
- Segmentação automática (clientes inactivos, VIPs)
- Comunicação por segmento (email + SMS marketing)
- Programa de fidelização com pontos
- Aniversários + sugestões automáticas
Perguntas frequentes
O cliente é meu ou da plataforma?
O cliente é entidade global mas os dados de marcações e notas são tenant-scoped — só tu vês os teus. Em caso de saída do FIRO, exportas o histórico em CSV.
Posso bloquear um cliente que falta sempre?
Sim, com a flag is_blacklisted. O portal público recusa novas marcações; os profissionais vêem o aviso no calendário.
Os meus clientes precisam de criar conta para marcar?
Não. Basta nome + contacto. O acesso a /minha-conta é opcional e sem fricção (magic link ou Google).
Quem processa o pedido de eliminação RGPD?
O cliente abre o pedido pelo portal. A administração do tenant é notificada e processa — fica registado no GdprRequest.
Tenho 1500 clientes no Excel. Posso importar de uma vez?
Sim, via upload CSV com mapeamento de colunas. Cada lote fica marcado com a CsvSource para rastreio.
Continua à conversa com a equipa comercial
Mostramos o produto a funcionar, respondemos a dúvidas específicas do teu negócio e ajudamos-te a escolher o plano certo.