Tu CRM de clientes
/app/clientes centraliza todos los clientes de tu workspace, sin duplicados, con métricas de comportamiento y timeline.
Listado consolidado por workspace
El listado muestra todos los clientes independientemente de en qué local de tu workspace hayan reservado. RestaPro consolida automáticamente: si Juan reservó en Bar A y luego en Bar B, sigue siendo el mismo cliente.
Cada tarjeta muestra:
- Nombre + email/teléfono principal
- Total de reservas (en cualquier local)
- Última reserva
- Indicador "Revisar" si hay conflictos de identidad
Orden por defecto: por última actividad descendente.
Métricas por cliente
RestaPro calcula automáticamente:
- Total reservas
- Confirmadas / completadas / canceladas / no-shows
- Restaurantes visitados (cuenta de locales distintos del workspace)
- Última reserva (timestamp)
Búsqueda flexible
El buscador (Buscar cliente) acepta nombre, email o teléfono — incluso parcial:
- "Juan" → encuentra Juan García, Juanita Martín…
- "gmail" → todos los emails de Gmail
- "600" → encuentra
+34 600 123 456,+34 600 987 654… - "34 600" → mismo conjunto (RestaPro normaliza dígitos)
- "+34" → todos los españoles
El normalizador de teléfono guarda solo dígitos. Cuando buscas, RestaPro extrae los dígitos de tu query y filtra por substring contra el campo normalizado. Funciona con o sin espacios, guiones, paréntesis o +.
Búsqueda con debounce de 300 ms — actualiza al instante.
Filtro por restaurante
Dropdown "Todos los locales" para filtrar el listado por uno solo. Combinable con la búsqueda.
Identidades múltiples por cliente
Un cliente puede tener varios teléfonos y emails:
- Juan García:
juan@gmail.com,juan@empresa.com,+34 600...,+34 91 234...
Al entrar una reserva con identidad nueva, RestaPro hace fuzzy matching: si encuentra coincidencia probable con un cliente existente, vincula automáticamente.
Indicador "Requiere revisión"
Aparece cuando RestaPro tiene dudas: detectó identidades parecidas pero no idénticas. Tu equipo revisa manualmente y confirma o separa.
Ficha individual
Click en un cliente → panel lateral con:
- Cabecera: nombre, "Desde [fecha]", emails y teléfonos vinculados.
- Notas internas: textarea privado del equipo.
- Reservas: últimas 8 (si hay más, contador). Cada una con local, fecha, hora, party size, estado, referencia.
- Timeline: eventos de reservas + eventos de marketing (vistas, clicks, campañas).
Timeline
Combina dos fuentes:
- Reservation events: cambios de estado (confirmed, arrived, completed, cancelled).
- Marketing events: vistas a
/c/:slug, clicks en campañas, parámetros UTM.
Orden cronológico descendente. Permite ver el customer journey completo: primer contacto → primera reserva → segunda visita → click en email → tercera reserva.
GDPR: borrar un cliente
Solo admins. Edge function customer-gdpr ejecuta el RPC gdpr_delete_customer:
- Anonimiza nombre, email y teléfono en
reservations(mantiene la fila para auditoría/contabilidad). - Anonimiza
email_logs,email_queue,marketing_campaign_sends. - Borra todas las identidades (
customer_identities). - Borra el cliente.
- Registra el borrado en
activity_logpara auditoría legal.
El cliente aparece como "Eliminado" en reservas pasadas.
Recibir solicitudes GDPR
Si un cliente te escribe pidiendo "borren mis datos":
- Verifica que es realmente él (email coincide).
- Abre su ficha en
/app/clientes. - Acción Borrar (GDPR).
- Confirma — es irreversible.
- Comunícale por email que se ha procesado.
Plazo legal de respuesta: 30 días.