Clientes
Ruta:
/owner/customersGestiona tu cartera de clientes con información fiscal, contacto y acceso al portal del cliente.
Vista de lista
Sección titulada «Vista de lista»La pantalla principal de Clientes muestra la lista completa de tu cartera con tarjetas de resumen:
Tarjetas de resumen:
| Tarjeta | Color | Descripcion |
|---|---|---|
| Total | — | Numero total de clientes registrados |
| Activos | Verde | Clientes con estado activo |
| Con facturas | Azul | Clientes con facturas emitidas |
| Portal | Morado | Clientes con acceso al portal |
Columnas de la tabla: Cliente, CIF/NIF, Email, Telefono, Ubicacion, Estado, Acciones
Filtros disponibles:
| Filtro | Opciones | Descripcion |
|---|---|---|
| Busqueda | Texto libre | Nombre, CIF/NIF, email o telefono |
| Estado | Activo / Inactivo / Todos | Estado del cliente |
| Provincia | Lista dinamica | Provincia del domicilio fiscal |
| Pais | Lista dinamica | Pais del domicilio fiscal |
| Contacto | Con email / Con telefono / Ambos / Todos | Tipo de contacto disponible |
Funciones
Sección titulada «Funciones»| Funcion | Descripcion | Documentacion |
|---|---|---|
| Crear Cliente | Registra un nuevo cliente con datos fiscales y contacto | Ver |
| Editar Cliente | Actualiza informacion del cliente existente | Ver |
| Importar Clientes | Carga masiva desde Excel con validaciones | Ver |
| Generar Token Portal | Crea enlace de acceso al portal del cliente | Ver |
| Ver Logs Portal | Historial de accesos del cliente al portal | Ver |
| Buscar y Filtrar | Localiza clientes por multiples criterios | Ver |
Tipos de cliente
Sección titulada «Tipos de cliente»Factux clasifica los clientes en tres tipos segun su naturaleza juridica:
| Tipo | Cuando usarlo | Caracteristicas |
|---|---|---|
| Empresa | Persona juridica con CIF | CIF obligatorio (formato: A12345678) |
| Autonomo | Persona fisica con actividad empresarial | NIF obligatorio (formato: 12345678Z) |
| Particular | Cliente final sin actividad empresarial | NIF obligatorio, sin retenciones |
Nota: El tipo de cliente determina las validaciones fiscales y las opciones de retencion disponibles.
Validaciones CIF/NIF
Sección titulada «Validaciones CIF/NIF»Factux valida automaticamente los identificadores fiscales espanoles:
Formato NIF (personas fisicas):
- 8 digitos + 1 letra de control
- Ejemplo valido:
12345678Z - La letra se calcula segun el algoritmo del DNI espanol
Formato CIF (personas juridicas):
- 1 letra inicial + 7 digitos + 1 caracter de control
- Ejemplo valido:
A12345678 - Letras iniciales validas: A, B, C, D, E, F, G, H, J, N, P, Q, R, S, U, V, W
ALERTA: Los clientes con CIF/NIF invalido no podran ser guardados. El sistema mostrara un error especifico con el formato correcto.
Portal del Cliente
Sección titulada «Portal del Cliente»El Portal del Cliente permite que tus clientes accedan a sus facturas, presupuestos y albaranes de forma segura:
Caracteristicas:
- Acceso mediante token unico y verificacion de email
- Visualizacion de facturas, presupuestos y albaranes
- Descarga de PDFs
- Historial de accesos y acciones
- Responsive para movil y tablet
Seguridad:
- Token unico por cliente (regenerable)
- Verificacion obligatoria por email
- Logs de todos los accesos con IP y timestamp
- Token configurable como activo/inactivo
Referencia tecnica
Sección titulada «Referencia tecnica»Detalles técnicos
Tablas de base de datos
Sección titulada «Tablas de base de datos»| Tabla | Columnas principales | FK |
|---|---|---|
customers | id, business_id, name, cif_nif, email, phone, address, postal_code, city, province, country, is_active, is_professional | businesses |
customer_portal_tokens | id, customer_id, token, requires_email_verification, is_active, expires_at | customers |
customer_portal_access_log | id, customer_id, token_id, access_type, resource_id, ip_address, user_agent, success, failure_reason | customers, customer_portal_tokens |
Politicas RLS
Sección titulada «Politicas RLS»| Politica | Regla |
|---|---|
customers_business_isolation | business_id = negocio del usuario autenticado |
customer_portal_tokens_via_customer | Acceso via cliente padre con mismo business_id |
customer_portal_logs_via_customer | Acceso via cliente padre con mismo business_id |
Edge Functions
Sección titulada «Edge Functions»| Funcion | Trigger | Descripcion |
|---|---|---|
whatsapp-create-customer | Comando WhatsApp | Crear cliente via chat |
whatsapp-get-customer-details | Comando WhatsApp | Obtener detalles del cliente |
whatsapp-list-customers | Comando WhatsApp | Listar clientes por busqueda |
Queries de diagnostico
Sección titulada «Queries de diagnostico»Cliente completo con facturas asociadas:
SELECT c.*, COUNT(i.id) as total_invoices, SUM(CASE WHEN i.status = 'paid' THEN 1 ELSE 0 END) as paid_invoices, SUM(CASE WHEN i.status = 'overdue' THEN 1 ELSE 0 END) as overdue_invoicesFROM customers cLEFT JOIN invoices i ON i.customer_id = c.idWHERE c.business_id = '<business_id>'GROUP BY c.id;Clientes con acceso al portal:
SELECT c.name, c.email, t.token, t.is_active, t.requires_email_verification, t.created_atFROM customers cINNER JOIN customer_portal_tokens t ON t.customer_id = c.idWHERE c.business_id = '<business_id>' AND t.is_active = true;Logs de acceso por cliente:
SELECT l.access_type, l.resource_id, l.ip_address, l.success, l.failure_reason, l.created_atFROM customer_portal_access_log lWHERE l.customer_id = '<customer_id>'ORDER BY l.created_at DESCLIMIT 50;Clientes sin email o telefono:
SELECT id, name, cif_nif, email, phoneFROM customersWHERE business_id = '<business_id>' AND (email IS NULL OR email = '') AND (phone IS NULL OR phone = '');