CRM de nettoyage
Construire avec Agent IA
Backend CRM de nettoyage

Modèle Backend CRM de nettoyage
Sites clients, horaires de nettoyage, inventaire de fournitures et journaux d'inspection

Un backend CRM de nettoyage prêt pour la production sur Back4app avec enregistrements ClientSite, affectations CleaningSchedule, SupplyInventory et entrées SiteInspectionLog. Comprend un diagramme ER, un dictionnaire de données, un schéma JSON, un playground API et un prompt Agent IA pour un démarrage rapide.

Points à retenir du CRM de nettoyage

Ce modèle vous donne un backend de CRM de nettoyage avec ClientSite, CleaningSchedule, SupplyInventory et SiteInspectionLog afin que les coordinateurs et le personnel sur le terrain puissent rester sur le même flux de travail.

  1. Contrôle du site clientSuivez chaque ClientSite avec siteName, siteCode, adresse, clientName, serviceLevel, primaryContact, et actif.
  2. Flux d'attribution de planningUtilisez CleaningSchedule pour connecter site, assignedTo, serviceDate, startTime, endTime, fréquence, statut, et notes.
  3. Visibilité des fournituresStockez SupplyInventory par site avec itemName, sku, catégorie, quantityOnHand, reorderLevel, unité, et lastRestockedAt.
  4. Journalisation des inspectionsEnregistrez les entrées SiteInspectionLog avec site, calendrier, inspecteur, dateInspection, score, constatations, actionsCorrectives et photoUrl.
  5. Opérations conscientes des rôlesAppliquez les règles ACL et CLP afin que les coordinateurs, techniciens, inspecteurs et clients voient les bonnes lignes pour Utilisateur, ClientSite, CleaningSchedule et SiteInspectionLog.

Aperçu : CRM de nettoyage

Les rapports dans le CRM de nettoyage devraient répondre aux questions de la direction sans une chasse manuelle à travers des dossiers et des fils de messages. La solution est opérationnelle, pas motivationnelle. Avec ClientSite, CleaningSchedule, SupplyInventory et SiteInspectionLog sur Back4app, les équipes de CRM de nettoyage peuvent appliquer la séparation des fonctions tout en continuant à collaborer sur le même enregistrement de cas. Le schéma couvre Utilisateur, ClientSite (siteName, siteCode, adresse, clientName, serviceLevel, primaryContact, actif), CleaningSchedule (site, assignedTo, serviceDate, startTime, endTime, frequency, status, notes), SupplyInventory (site, itemName, sku, catégorie, quantitéEnStock, niveauDeRéapprovisionnement, unité, dernièreRéapprovisionnéÀ) et SiteInspectionLog (site, calendrier, inspecteur, dateInspection, score, constatations, actionsCorrectives, photoUrl) avec des contrôles d'accès auth et opérationnels intégrés. Connectez votre frontend préféré et expédiez plus rapidement.

Meilleur pour :

Opérations de nettoyage commercialApplications de planification de nettoyageOutils de suivi des stocksSystèmes de journal d'inspection de siteLancements de MVPÉquipes sélectionnant BaaS pour les opérations de service

Aperçu du backend CRM de nettoyage

Les variations saisonnières frappent le CRM de nettoyage le plus durement lorsque le personnel change, mais le modèle de données ne s'adapte pas aux nouveaux SKUs, sites ou politiques.

Si vous évaluez Back4app, ClientSite, CleaningSchedule et SupplyInventory montrent combien de structure vous obtenez avant d'écrire du SQL personnalisé.

Fonctionnalités CRM de nettoyage

Chaque carte technologique dans ce hub utilise le même schéma de backend CRM de nettoyage avec User, ClientSite, CleaningSchedule, SupplyInventory et SiteInspectionLog.

Gestion des rôles utilisateurs

L'utilisateur stocke le nom d'utilisateur, l'email, le rôle et le nom complet pour les coordinateurs, techniciens, inspecteurs et clients.

Profils de site client

ClientSite relie chaque emplacement à un nom de site, un code de site, une adresse, un nom client, un niveau de service, un contact principal et un indicateur actif.

Suivi du calendrier de nettoyage

CleaningSchedule stocke le site, attribué à, date de service, heure de début, heure de fin, fréquence, statut et notes.

Contrôles d'inventaire des fournitures

SupplyInventory capture itemName, sku, category, quantityOnHand, reorderLevel, unit, et lastRestockedAt.

Journaux d'inspection du site

SiteInspectionLog enregistre le site, le calendrier, l'inspecteur, la date d'inspection, le score, les conclusions, les actions correctives et photoUrl.

Pourquoi construire votre backend CRM de nettoyage avec Back4app ?

Back4app vous donne des primitives pour le site, le planning, l'inventaire et l'inspection afin que votre équipe puisse se concentrer sur la prestation de services plutôt que sur la plomberie de backend.

  • ClientSite et CleaningSchedule restent alignés: Liez chaque CleaningSchedule à un ClientSite afin que les équipes sachent où travailler et que les superviseurs puissent mettre à jour la fréquence de service sans feuilles de calcul dupliquées.
  • SupplyInventory prend en charge les vérifications de réapprovisionnement: Stockez des lignes SupplyInventory pour chaque site afin que le personnel puisse comparer quantityOnHand avec reorderLevel avant qu'un placard ne soit à sec.
  • Visibilité d'inspection en direct: Utilisez Live Queries sur SiteInspectionLog afin que les constatations d'une visite de site apparaissent rapidement pour les coordinateurs et le personnel en contact avec le client.

Construisez et mettez à jour rapidement les flux de travail de nettoyage avec un contrat backend unique sur toutes les plateformes.

Avantages du CRM de nettoyage

Un backend CRM de nettoyage qui aide les opérations à rester précises sans ajouter de travail administratif supplémentaire.

Planification de trajet et de quart plus rapides

Partir d'un schéma complet de ClientSite et CleaningSchedule au lieu de reconstruire les calendriers de service depuis zéro.

Contrôles d'inventaire qui correspondent à l'étagère

Utilisez des champs SupplyInventory comme quantityOnHand, reorderLevel et unit pour que les pénuries soient visibles avant le prochain service de nettoyage.

Suivi des inspections

Stockez les résultats du SiteInspectionLog, les scores, les actions correctives et le photoUrl afin que les superviseurs puissent résoudre les problèmes sur site.

Effacer les limites d'accès

Appliquer les règles ACL et CLP afin que seuls les bons rôles d'utilisateur puissent modifier les enregistrements ClientSite, CleaningSchedule ou SiteInspectionLog.

Un backend pour les outils de terrain et de bureau

Exposer les mêmes données CRM de nettoyage via REST et GraphQL pour le dispatch, les équipes mobiles et les tableaux de bord de bureau.

Bootstrap assisté par AI

Générez rapidement des échafaudages backend et des conseils d'intégration avec une invite structurée.

Prêt à lancer votre CRM de nettoyage ?

Laissez l'agent AI de Back4app échafauder votre backend de CRM de nettoyage et générer des enregistrements ClientSite, des affectations CleaningSchedule, le suivi de SupplyInventory et des entrées SiteInspectionLog à partir d'une seule invite.

Gratuit pour commencer — 50 invites d'Agent AI/mois, aucune carte de crédit requise

Technologie de pile CRM de nettoyage

Tout est inclus dans ce modèle de backend CRM de nettoyage commercial.

Frontend
13+ technologies
Backend
Back4app
Base de données
MongoDB
Authentification
Authentification intégrée + sessions
API
REST et GraphQL
Temps réel
Live Queries

Carte des relations de nettoyage

Modèle de relation d'entité pour le schéma backend CRM de nettoyage.

Voir source du diagramme
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
    }

Flux de l'application de nettoyage

Flux d'exécution typique pour l'authentification, le chargement du site client, les horaires de nettoyage, l'inventaire des fournitures, et les journaux d'inspection.

Voir source du diagramme
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

Guide de terrain

Référence complète au niveau du champ pour chaque classe dans le schéma CRM de nettoyage.

ChampTypeDescriptionRequis
objectIdStringAuto-generated unique identifierAutomatique
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 timestampAutomatique
updatedAtDateAuto-generated last-update timestampAutomatique

8 champs dans User

Accès et autorisations

Comment la stratégie ACL et CLP sécurise les utilisateurs, les sites, les plannings, l'inventaire et les journaux d'inspection.

Contrôles utilisateurs sensibles au rôle

Seul le propriétaire du compte ou un rôle d'administrateur doit mettre à jour les enregistrements des utilisateurs et les préférences opérationnelles.

Intégrité du site et du planning

Limiter les écritures de ClientSite et de CleaningSchedule aux coordonnateurs ou aux superviseurs, puis valider les modifications dans le Cloud Code.

Portée de l'inventaire et de l'inspection

Limiter les lectures de SupplyInventory et de SiteInspectionLog au personnel assigné, aux superviseurs de site et aux utilisateurs autorisés en contact avec les clients.

Schéma JSON

Définition du schéma JSON brut prête à être copiée dans Back4app ou utilisée comme référence d'implémentation.

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
        }
      }
    }
  ]
}

Invite de construction IA

Utilisez l'agent AI Back4app pour générer une application CRM de nettoyage réelle à partir de ce modèle, y compris le frontend, le backend, l'authentification, ainsi que les plannings de nettoyage, l'inventaire et les flux d'inspection.

Back4app Agent AI
Prêt à construire
Créez un backend d'application CRM de nettoyage sur Back4app avec ce schéma et ce comportement exacts.

Schéma:
1. Utilisateur (utilisez l'authentification intégrée de Back4app): nom d'utilisateur, email, mot de passe, rôle, nomComplet; objectId, createdAt, updatedAt (système).
2. ClientSite: nomDuSite, codeDuSite, adresse, nomDuClient, niveauDeService, contactPrincipal (Pointeur vers Utilisateur), actif; objectId, createdAt, updatedAt (système).
3. CleaningSchedule: site (Pointeur vers ClientSite), assignéÀ (Pointeur vers Utilisateur), dateDeService, heureDébut, heureFin, fréquence, statut, notes; objectId, createdAt, updatedAt (système).
4. SupplyInventory: site (Pointeur vers ClientSite), nomDeArticle, sku, catégorie, quantitéEnStock, niveauDeRéapprovisionnement, unité, dernièreRéapprovisionnementÀ; objectId, createdAt, updatedAt (système).
5. SiteInspectionLog: site (Pointeur vers ClientSite), planning (Pointeur vers CleaningSchedule), inspecteur (Pointeur vers Utilisateur), dateInspection, score, résultats, actionsCorrectives, photoUrl; objectId, createdAt, updatedAt (système).

Sécurité:
- Les coordinateurs gèrent les lignes ClientSite et attribuent les éléments CleaningSchedule. Les techniciens peuvent mettre à jour uniquement le statut de leur propre CleaningSchedule et ajouter des entrées SiteInspectionLog pour les sites assignés. Les inspecteurs peuvent créer et éditer des lignes SiteInspectionLog pour les sites auxquels ils sont assignés. Les mises à jour de l'inventaire doivent être restreintes aux rôles de coordinateur ou de superviseur. Les clients peuvent lire leurs propres résumés ClientSite et les résultats d'inspection uniquement lorsqu'ils y sont explicitement autorisés.

Auth:
- Inscription, connexion, déconnexion.

Comportement:
- Lister les sites, créer des plannings, suivre le stock de fournitures et enregistrer les résultats d'inspection avec des photos.

Livraison:
- Application Back4app avec schéma, CLPs, ACLs, et un frontend pour les plannings, les alertes d'inventaire, et l'enregistrement d'inspection.

Appuyez sur le bouton ci-dessous pour ouvrir l'agent avec cette invite de modèle pré-remplie.

Ceci est l'invite de base sans suffixe technologique. Vous pouvez adapter la pile frontend générée par la suite.

Déployer en quelques minutes50 invites gratuites / moisAucune carte de crédit requise

Testeur d'API

Essayez les points de terminaison REST et GraphQL contre le schéma CRM de nettoyage. Les réponses utilisent des données fictives et ne nécessitent pas de compte Back4app.

Chargement de l'aire de jeux…

Utilise le même schéma que ce modèle.

Choisir une pile

Développez chaque carte pour voir comment intégrer ClientSite, CleaningSchedule et SupplyInventory avec votre pile choisie.

Flutter CRM de nettoyage Backend

React CRM de nettoyage Backend

React Natif CRM de nettoyage Backend

Next.js CRM de nettoyage Backend

JavaScript CRM de nettoyage Backend

Android CRM de nettoyage Backend

iOS CRM de nettoyage Backend

Vue CRM de nettoyage Backend

Angular CRM de nettoyage Backend

GraphQL CRM de nettoyage Backend

REST API CRM de nettoyage Backend

PHP CRM de nettoyage Backend

.NET CRM de nettoyage Backend

Ce que vous obtenez avec chaque technologie

Chaque pile utilise le même schéma backend CRM de nettoyage et contrats API.

Structure de données unifiée pour les opérations de nettoyage

Gérez facilement les enregistrements User, ClientSite, CleaningSchedule, SupplyInventory et SiteInspectionLog avec un schéma cohérent.

Visibilité de l'inventaire des fournitures pour les équipes de nettoyage

Suivez les enregistrements de SupplyInventory afin que les réapprovisionnements se fassent avant que les équipes ne manquent de matériaux.

Suivi des inspections pour chaque site

Stockez les résultats de SiteInspectionLog avec score, conclusions, actions correctives et photoUrl.

Flux de travail prenant en compte les rôles pour le personnel de nettoyage

Définissez l'accès pour les coordinateurs, techniciens, inspecteurs et clients sans câblage backend supplémentaire.

Comparaison des technologies CRM de nettoyage

Comparez la vitesse de configuration, le style SDK et le support AI à travers toutes les technologies prises en charge.

CadreTemps de configurationAvantage CRM de nettoyageType de SDKSupport AI
Environ 5 minBase de code unique pour les applications d'équipe et de coordinateur.SDK tapéComplet
Moins de 5 minutesTableau de bord web rapide pour les horaires de nettoyage.SDK typéComplet
~3–7 minApplication mobile multiplateforme pour les inspections.SDK typéComplet
Configuration rapide (5 min)Portail administratif rendu par le serveur pour les opérations.SDK typéComplet
~3–5 minIntégration web légère pour les outils de dispatch.SDK tapéComplet
Environ 5 minApplication Android native pour les équipes sur le terrain.SDK tapéComplet
Moins de 5 minutesApplication iOS native pour les superviseurs.SDK tapéComplet
~3–7 minInterface web Reactive pour la planification des utilisateurs et des sites.SDK tapéComplet
Configuration rapide (5 min)Application web entreprise pour les opérations de nettoyage.SDK tapéComplet
Moins de 2 minAPI GraphQL flexible pour les requêtes de sites et d'inspections imbriquées.API GraphQLComplet
Configuration rapide (2 min)Intégration REST API pour les opérations de nettoyage.REST APIComplet
~3 minBackend PHP côté serveur pour la coordination des services.REST APIComplet
~3–7 minBackend .NET pour les opérations de nettoyage.SDK typéComplet

Le temps de configuration reflète la durée attendue entre le démarrage du projet et la première requête ClientSite, CleaningSchedule ou SiteInspectionLog utilisant ce schéma de modèle.

FAQ sur le CRM de nettoyage

Questions courantes sur la création d'un back-end de CRM de nettoyage avec ce modèle.

Quels métriques sont réellement importantes pour la livraison du CRM de nettoyage au-delà de "occupé" ?
Comment les enjeux du CRM de nettoyage devraient-ils relier documents, délais et communications dans les données ?
Le modèle d'accès est-il suffisamment précis pour les partenaires et contractants du CRM de nettoyage ?
Comment puis-je exécuter des requêtes pour des sites et des plannings de nettoyage avec Flutter ?
Comment gérer l'accès au CRM de nettoyage avec Next.js Server Actions ?
React Native peut-il inspecter les journaux d'inspection hors ligne ?
Comment puis-je empêcher les modifications non autorisées d'inspection ?
Quelle est la meilleure façon d'afficher les quantités de fournitures sur Android ?
Comment fonctionne le flux de calendrier de nettoyage de bout en bout ?
Quelles classes alimentent ce modèle de CRM de nettoyage ?

Fiable par des développeurs dans le monde entier

Rejoignez des équipes expédiant des produits CRM de nettoyage plus rapidement avec des modèles Back4app

G2 Users Love Us Badge

Prêt à construire votre application CRM de nettoyage ?

Commencez votre projet de CRM de nettoyage en quelques minutes. Aucune carte de crédit requise.

Choisissez la technologie