Saltar al contenido principal

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:

  1. Anonimiza nombre, email y teléfono en reservations (mantiene la fila para auditoría/contabilidad).
  2. Anonimiza email_logs, email_queue, marketing_campaign_sends.
  3. Borra todas las identidades (customer_identities).
  4. Borra el cliente.
  5. Registra el borrado en activity_log para auditoría legal.

El cliente aparece como "Eliminado" en reservas pasadas.

Recibir solicitudes GDPR​

Si un cliente te escribe pidiendo "borren mis datos":

  1. Verifica que es realmente él (email coincide).
  2. Abre su ficha en /app/clientes.
  3. Acción Borrar (GDPR).
  4. Confirma — es irreversible.
  5. Comunícale por email que se ha procesado.

Plazo legal de respuesta: 30 días.

ESENCA