CRM de Limpieza
Construir con Agente AI
Backend del CRM de limpieza

Plantilla del backend del CRM de limpieza
Sitios de clientes, horarios de limpieza, inventario de suministros e informes de inspección

Un backend CRM de limpieza listo para producción en Back4app con registros de ClientSite, asignaciones de CleaningSchedule, SupplyInventory y entradas de SiteInspectionLog. Incluye diagrama ER, diccionario de datos, esquema JSON, playground de API y un prompt de Agente AI para un arranque rápido.

Conclusiones del CRM de limpieza

Esta plantilla te proporciona un backend de CRM de limpieza con ClientSite, CleaningSchedule, SupplyInventory y SiteInspectionLog para que los coordinadores y el personal de campo puedan permanecer en el mismo flujo de trabajo.

  1. Control del sitio del clienteRastrear cada ClientSite con siteName, siteCode, address, clientName, serviceLevel, primaryContact y active.
  2. Flujo de asignación de programaciónUsa CleaningSchedule para conectar site, assignedTo, serviceDate, startTime, endTime, frequency, status y notes.
  3. Visibilidad del suministroAlmacenar SupplyInventory por sitio con itemName, sku, category, quantityOnHand, reorderLevel, unit y lastRestockedAt.
  4. Registro de inspecciónRegistre las entradas de SiteInspectionLog con sitio, programación, inspector, fecha de inspección, puntuación, hallazgos, acciones correctivas y photoUrl.
  5. Operaciones conscientes del rolAplique reglas de ACL y CLP para que coordinadores, técnicos, inspectores y clientes vean las filas correctas de Usuario, ClientSite, CleaningSchedule y SiteInspectionLog.

Descripción general: CRM de limpieza

La generación de informes en el CRM de limpieza debería responder a las preguntas de liderazgo sin una búsqueda manual a través de carpetas y hilos de mensajes. La solución es operativa, no motivacional. Con ClientSite, CleaningSchedule, SupplyInventory y SiteInspectionLog en Back4app, los equipos de CRM de limpieza pueden hacer cumplir la separación de deberes mientras colaboran en el mismo registro de caso. El esquema cubre Usuario, ClientSite (nombreDelSitio, códigoDelSitio, dirección, nombreDelCliente, nivelDeServicio, contactoPrincipal, activo), CleaningSchedule (sitio, asignadoA, fechaDeServicio, horaDeInicio, horaDeFin, frecuencia, estado, notas), SupplyInventory (sitio, nombreDelArtículo, sku, categoría, cantidadEnMano, nivelDeReorden, unidad, últimaFechaReabastecida) y SiteInspectionLog (sitio, programación, inspector, fechaDeInspección, puntuación, hallazgos, accionesCorrectivas, photoUrl) con controles de acceso de autenticación y operacionales integrados. Conéctese a su frontend preferido y envíe más rápido.

Mejor para:

Operaciones de limpieza comercialAplicaciones de programación de limpiezaHerramientas de seguimiento de inventario de suministrosSistemas de registro de inspección del sitioLanzamientos de MVPEquipos eligiendo BaaS para operaciones de servicio

Resumen del backend de CRM de limpieza

Los cambios estacionales afectan más al CRM de limpieza cuando cambian el personal, pero el modelo de datos no se ajusta a nuevos SKU, sitios o políticas.

Si estás evaluando Back4app, ClientSite, CleaningSchedule y SupplyInventory demuestran cuánta estructura obtienes antes de escribir SQL personalizado.

Funciones del CRM de limpieza

Cada tarjeta de tecnología en este hub utiliza el mismo esquema de backend de CRM de limpieza con Usuario, SitioCliente, HorarioDeLimpieza, InventarioDeSuministros y RegistroDeInspecciónDeSitio.

Gestión de roles de usuario

El usuario almacena el nombre de usuario, correo electrónico, rol y nombre completo para coordinadores, técnicos, inspectores y clientes.

Perfiles de sitio del cliente

ClientSite vincula cada ubicación a un siteName, siteCode, dirección, clientName, serviceLevel, primaryContact y bandera activa.

Seguimiento del programa de limpieza

CleaningSchedule almacena sitio, asignadoA, fechaDelServicio, horaDeInicio, horaDeFin, frecuencia, estado y notas.

Suministrar controles de inventario

SupplyInventory captura nombreDelArticulo, sku, categoria, cantidadEnMano, nivelDeReorden, unidad y ultimaReposicion.

Registros de inspección del sitio

SiteInspectionLog registra sitio, horario, inspector, fechaDeInspección, puntaje, hallazgos, accionesCorrectivas y fotoUrl.

¿Por qué construir tu backend de CRM de limpieza con Back4app?

Back4app te proporciona elementos básicos de sitio, horario, inventario e inspección para que tu equipo pueda centrarse en la entrega de servicios en lugar de la plomería de backend.

  • ClientSite y CleaningSchedule se mantienen alineados: Vincula cada CleaningSchedule a un ClientSite para que los equipos sepan dónde trabajar y los supervisores puedan actualizar la frecuencia de servicio sin hojas de cálculo duplicadas.
  • SupplyInventory apoya los controles de reposición: Almacena filas de SupplyInventory para cada sitio para que el personal pueda comparar quantityOnHand con reorderLevel antes de que un armario se quede sin existencias.
  • Visibilidad de inspección en vivo: Usa Live Queries en SiteInspectionLog para que los hallazgos de un recorrido por el sitio aparezcan rápidamente para coordinadores y personal en contacto con el cliente.

Construye y actualiza flujos de trabajo de limpieza rápidamente con un solo contrato de backend en todas las plataformas.

Beneficios del CRM de limpieza

Un backend de CRM de limpieza que ayuda a las operaciones a mantenerse precisas sin añadir trabajo administrativo adicional.

Planificación de ruta y turno más rápida

Comienza con un esquema completo de SitioCliente y HorarioDeLimpieza en lugar de reconstruir calendarios de servicio desde cero.

Controles de inventario que coinciden con la estantería

Utiliza campos de InventarioDeSuministros como cantidadEnMano, nivelDeReorden y unidad para que las escaseces sean visibles antes del siguiente servicio de piso.

Seguimiento de inspecciones

Almacena los hallazgos del RegistroDeInspecciónDeSitio, puntuación, accionesCorrectivas y photoUrl para que los supervisores puedan cerrar el ciclo sobre los problemas del sitio.

Limpiar límites de acceso

Aplicar reglas de ACL y CLP para que solo los roles de usuario adecuados puedan editar los registros de ClientSite, CleaningSchedule o SiteInspectionLog.

Un backend para herramientas de campo y oficina

Exponer los mismos datos del CRM de limpieza a través de REST y GraphQL para despacho, equipos móviles y paneles de oficina.

Bootstrap asistido por IA

Generar rápidamente la estructura de backend y la guía de integración con un aviso estructurado.

¿Listo para lanzar tu CRM de limpieza?

Deja que el Agente de IA de Back4app estructure tu backend de CRM de limpieza y genere registros de ClientSite, asignaciones de CleaningSchedule, seguimiento de SupplyInventory y entradas de SiteInspectionLog desde un solo aviso.

Gratis para empezar — 50 indicaciones de agente AI/mes, no se requiere tarjeta de crédito

Tecnología de CRM de limpieza

Todo incluido en esta plantilla comercial de backend de CRM de limpieza.

Frontend
13+ tecnologías
Backend
Back4app
Base de datos
MongoDB
Autenticación
Autenticación + sesiones integradas
API
REST y GraphQL
En tiempo real
Live Queries

Mapa de relación de limpieza

Modelo de relación de entidad para el esquema de backend del CRM de limpieza.

Ver fuente del diagrama
Mermaid
erDiagram
    User ||--o{ ClientSite : "primaryContact"
    User ||--o{ CleaningSchedule : "assignedTo"
    User ||--o{ SiteInspectionLog : "inspector"
    ClientSite ||--o{ CleaningSchedule : "site"
    ClientSite ||--o{ SupplyInventory : "site"
    ClientSite ||--o{ SiteInspectionLog : "site"
    CleaningSchedule ||--o{ SiteInspectionLog : "schedule"

    User {
        String objectId PK
        String username
        String email
        String password
        String role
        String fullName
        Date createdAt
        Date updatedAt
    }

    ClientSite {
        String objectId PK
        String siteName
        String siteCode
        String address
        String clientName
        String serviceLevel
        String primaryContactId FK
        Boolean active
        Date createdAt
        Date updatedAt
    }

    CleaningSchedule {
        String objectId PK
        String siteId FK
        String assignedToId FK
        Date serviceDate
        String startTime
        String endTime
        String frequency
        String status
        String notes
        Date createdAt
        Date updatedAt
    }

    SupplyInventory {
        String objectId PK
        String siteId FK
        String itemName
        String sku
        String category
        Number quantityOnHand
        Number reorderLevel
        String unit
        Date lastRestockedAt
        Date createdAt
        Date updatedAt
    }

    SiteInspectionLog {
        String objectId PK
        String siteId FK
        String scheduleId FK
        String inspectorId FK
        Date inspectionDate
        Number score
        String findings
        String correctiveActions
        String photoUrl
        Date createdAt
        Date updatedAt
    }

Flujo de la aplicación de limpieza

Flujo de ejecución típico para autenticación, carga de sitio del cliente, horarios de limpieza, inventario de suministros y registros de inspección.

Ver fuente del diagrama
Mermaid
sequenceDiagram
  participant User
  participant App as Commercial Janitorial CRM App
  participant Back4app as Back4app Cloud

  User->>App: Sign in to the janitorial dashboard
  App->>Back4app: POST /login
  Back4app-->>App: Session token

  User->>App: Load cleaning schedules for assigned sites
  App->>Back4app: GET /classes/CleaningSchedule?include=site,assignedTo
  Back4app-->>App: CleaningSchedule rows

  User->>App: Create a site inspection log
  App->>Back4app: POST /classes/SiteInspectionLog
  Back4app-->>App: SiteInspectionLog objectId

  User->>App: Check supply inventory by site and reorder level
  App->>Back4app: GET /classes/SupplyInventory?include=site&order=quantityOnHand
  Back4app-->>App: SupplyInventory rows

  App->>Back4app: Listen for schedule and inventory updates
  Back4app-->>App: LiveQuery change events

Guía de campo

Referencia completa a nivel de campo para cada clase en el esquema CRM de limpieza.

CampoTipoDescripciónRequerido
objectIdStringAuto-generated unique identifierAutomático
usernameStringLogin name for the account
emailStringContact email address
passwordStringHashed password stored by Parse
roleStringWork role such as admin, coordinator, technician, inspector, or client
fullNameStringDisplay name for dispatch and client communication
createdAtDateAuto-generated creation timestampAutomático
updatedAtDateAuto-generated last-update timestampAutomático

8 campos en User

Acceso y permisos

Cómo la estrategia ACL y CLP asegura usuarios, sitios, horarios, inventario y registros de inspección.

Controles de usuario conscientes del rol

Solo el propietario de la cuenta o un rol de administrador debe actualizar los registros de usuario y las preferencias operativas.

Integridad del sitio y del horario

Restringir las escrituras de ClientSite y CleaningSchedule a coordinadores o supervisores, luego validar los cambios en Cloud Code.

Ámbito de inventario e inspección

Limitar las lecturas de SupplyInventory y SiteInspectionLog al personal asignado, supervisores de sitio y usuarios autorizados en contacto con el cliente.

Esquema JSON

Definición de esquema JSON en bruto lista para copiar en Back4app o utilizar como referencia de implementación.

JSON
{
  "classes": [
    {
      "className": "User",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "username": {
          "type": "String",
          "required": true
        },
        "email": {
          "type": "String",
          "required": true
        },
        "password": {
          "type": "String",
          "required": true
        },
        "role": {
          "type": "String",
          "required": true
        },
        "fullName": {
          "type": "String",
          "required": false
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "ClientSite",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "siteName": {
          "type": "String",
          "required": true
        },
        "siteCode": {
          "type": "String",
          "required": true
        },
        "address": {
          "type": "String",
          "required": true
        },
        "clientName": {
          "type": "String",
          "required": true
        },
        "serviceLevel": {
          "type": "String",
          "required": true
        },
        "primaryContact": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "active": {
          "type": "Boolean",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "CleaningSchedule",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "site": {
          "type": "Pointer",
          "required": true,
          "targetClass": "ClientSite"
        },
        "assignedTo": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "serviceDate": {
          "type": "Date",
          "required": true
        },
        "startTime": {
          "type": "String",
          "required": true
        },
        "endTime": {
          "type": "String",
          "required": true
        },
        "frequency": {
          "type": "String",
          "required": true
        },
        "status": {
          "type": "String",
          "required": true
        },
        "notes": {
          "type": "String",
          "required": false
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "SupplyInventory",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "site": {
          "type": "Pointer",
          "required": true,
          "targetClass": "ClientSite"
        },
        "itemName": {
          "type": "String",
          "required": true
        },
        "sku": {
          "type": "String",
          "required": true
        },
        "category": {
          "type": "String",
          "required": true
        },
        "quantityOnHand": {
          "type": "Number",
          "required": true
        },
        "reorderLevel": {
          "type": "Number",
          "required": true
        },
        "unit": {
          "type": "String",
          "required": true
        },
        "lastRestockedAt": {
          "type": "Date",
          "required": false
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "SiteInspectionLog",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "site": {
          "type": "Pointer",
          "required": true,
          "targetClass": "ClientSite"
        },
        "schedule": {
          "type": "Pointer",
          "required": false,
          "targetClass": "CleaningSchedule"
        },
        "inspector": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "inspectionDate": {
          "type": "Date",
          "required": true
        },
        "score": {
          "type": "Number",
          "required": true
        },
        "findings": {
          "type": "String",
          "required": true
        },
        "correctiveActions": {
          "type": "String",
          "required": false
        },
        "photoUrl": {
          "type": "String",
          "required": false
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    }
  ]
}

Sugerencia de construcción de IA

Utiliza el agente AI de Back4app para generar una aplicación de CRM de limpieza real a partir de esta plantilla, que incluye frontend, backend, autenticación y flujos de programación de limpieza, inventario e inspección.

Back4app Agente AI
Listo para construir
Crea un backend de aplicación CRM de limpieza en Back4app con este esquema y comportamiento exactos.

Esquema:
1. Usuario (usa la autenticación integrada de Back4app): nombre de usuario, correo electrónico, contraseña, rol, nombreCompleto; objectId, createdAt, updatedAt (sistema).
2. ClienteSitio: nombreSitio, códigoSitio, dirección, nombreCliente, nivelServicio, contactoPrincipal (apuntador a Usuario), activo; objectId, createdAt, updatedAt (sistema).
3. ProgramaLimpieza: sitio (apuntador a ClienteSitio), asignadoA (apuntador a Usuario), fechaServicio, horaInicio, horaFin, frecuencia, estado, notas; objectId, createdAt, updatedAt (sistema).
4. InventarioSuministros: sitio (apuntador a ClienteSitio), nombreElemento, sku, categoría, cantidadDisponible, nivelReabastecimiento, unidad, últimaReposición; objectId, createdAt, updatedAt (sistema).
5. RegistroInspecciónSitio: sitio (apuntador a ClienteSitio), programa (apuntador a ProgramaLimpieza), inspector (apuntador a Usuario), fechaInspección, puntuación, hallazgos, accionesCorrectivas, fotoUrl; objectId, createdAt, updatedAt (sistema).

Seguridad:
- Los coordinadores gestionan las filas de ClienteSitio y asignan elementos de ProgramaLimpieza. Los técnicos solo pueden actualizar el estado de su propio ProgramaLimpieza y agregar entradas de RegistroInspecciónSitio para los sitios asignados. Los inspectores pueden crear y editar filas de RegistroInspecciónSitio para los sitios a los que están asignados. Las actualizaciones de inventario deben estar restringidas a roles de coordinador o supervisor. Los clientes pueden leer sus propios resúmenes de ClienteSitio y resultados de inspección solo cuando se les otorge explícitamente.

Autenticación:
- Registro, inicio de sesión, cierre de sesión.

Comportamiento:
- Listar sitios, crear horarios, rastrear stock de suministros y registrar hallazgos de inspección con fotos.

Entrega:
- Aplicación Back4app con esquema, CLPs, ACLs y un frontend para horarios, alertas de inventario y registro de inspección.

Presiona el botón de abajo para abrir el Agente con este aviso de plantilla prellenado.

Este es el aviso base sin un sufijo tecnológico. Puedes adaptar la pila de frontend generada más tarde.

Desplegar en minutos50 avisos gratuitos / mesNo se requiere tarjeta de crédito

Probador de API

Intenta los endpoints REST y GraphQL contra el esquema del CRM de limpieza. Las respuestas utilizan datos simulados y no requieren una cuenta de Back4app.

Cargando entorno de pruebas…

Usa el mismo esquema que esta plantilla.

Elige un Stack

Expande cada tarjeta para ver cómo integrar ClientSite, CleaningSchedule y SupplyInventory con tu stack elegido.

Flutter CRM de limpieza Backend

React CRM de limpieza Backend

React Nativo CRM de limpieza Backend

Next.js CRM de limpieza Backend

JavaScript CRM de limpieza Backend

Android CRM de limpieza Backend

iOS CRM de limpieza Backend

Vue CRM de limpieza Backend

Angular CRM de limpieza Backend

GraphQL CRM de limpieza Backend

REST API CRM de limpieza Backend

PHP CRM de limpieza Backend

.NET CRM de limpieza Backend

Lo que obtienes con cada tecnología

Cada stack utiliza el mismo esquema de backend de CRM de limpieza y contratos de API.

Estructura de datos unificada para operaciones de limpieza

Administra fácilmente los registros de Usuario, ClienteSitio, HorarioDeLimpieza, InventarioDeSuministros y RegistroDeInspecciónDeSitios con un esquema consistente.

Visibilidad del inventario de suministros para los equipos de limpieza

Realiza un seguimiento de los registros de InventarioDeSuministros para que las reposiciones ocurran antes de que los equipos se queden sin materiales.

Seguimiento de inspecciones para cada sitio

Almacena los resultados del RegistroDeInspecciónDeSitios con puntaje, hallazgos, accionesCorrectivas y fotoUrl.

Flujos de trabajo conscientes del rol para el personal de limpieza

Define el acceso para coordinadores, técnicos, inspectores y clientes sin cableado adicional en el backend.

Comparación de Tecnología CRM de Limpieza

Compara la velocidad de configuración, el estilo del SDK y el soporte de IA entre todas las tecnologías soportadas.

MarcoTiempo de ConfiguraciónBeneficio del CRM de limpiezaTipo de SDKSoporte de IA
Aproximadamente 5 minBase de código única para aplicaciones de tripulación y coordinador.SDK tipadoCompleto
Menos de 5 minutosPanel web rápido para horarios de limpieza.SDK tipadoCompleto
~3–7 minAplicación móvil multiplataforma para inspecciones.SDK tipadoCompleto
Configuración rápida (5 min)Portal de administración renderizado en servidor para operaciones.SDK tipadoCompleto
~3–5 minIntegración web ligera para herramientas de despacho.SDK escritoCompleto
Aproximadamente 5 minAplicación nativa Android para equipos de campo.SDK escritoCompleto
Menos de 5 minutosAplicación nativa iOS para supervisores.SDK escritoCompleto
~3–7 minInterfaz web React para planificación de usuarios y sitios.SDK escritoCompleto
Configuración rápida (5 min)Aplicación web empresarial para operaciones de limpieza.SDK escritoCompleto
Menos de 2 minAPI flexible GraphQL para consultas anidadas de sitios e inspección.API GraphQLCompleto
Configuración rápida (2 min)REST API integración para operaciones de limpieza.REST APICompleto
~3 minBackend de PHP del lado del servidor para la coordinación de servicios.REST APICompleto
~3–7 minBackend de .NET para operaciones de limpieza.SDK TipadoCompleto

El tiempo de configuración refleja la duración esperada desde el inicio del proyecto hasta la primera consulta de ClientSite, CleaningSchedule o SiteInspectionLog utilizando este esquema de plantilla.

Preguntas frecuentes sobre el CRM de limpieza

Preguntas comunes sobre cómo construir un backend de CRM de limpieza con esta plantilla.

¿Qué métricas son realmente importantes para la entrega del CRM de limpieza más allá de 'ocupado'?
¿Cómo deberían conectarse los asuntos del CRM de limpieza con documentos, plazos y comunicaciones en los datos?
¿Es el modelo de acceso lo suficientemente detallado para los socios y contratistas del CRM de limpieza?
¿Cómo realizo consultas para sitios y horarios de limpieza con Flutter?
¿Cómo gestiono el acceso al CRM de limpieza con Next.js Server Actions?
¿Puede React almacenar en caché los registros de inspección fuera de línea?
¿Cómo evito ediciones no autorizadas en las inspecciones?
¿Cuál es la mejor manera de mostrar los conteos de suministros en Android?
¿Cómo funciona el flujo del cronograma de limpieza de principio a fin?
¿Qué clases alimentan esta plantilla de CRM de limpieza?

Confiado por desarrolladores en todo el mundo

Únete a equipos que envían productos de CRM de limpieza más rápido con plantillas de Back4app

G2 Users Love Us Badge

¿Listo para construir tu aplicación CRM de limpieza?

Comienza tu proyecto de CRM de limpieza en minutos. No se requiere tarjeta de crédito.

Elegir Tecnología