클리너 CRM
AI 에이전트로 구축
청소 CRM 백엔드

청소 CRM 백엔드 템플릿
클라이언트 사이트, 청소 일정, 공급 재고 및 검사 로그

생산 준비가 완료된 청소 CRM 백엔드가 Back4app에 있으며, ClientSite 기록, CleaningSchedule 할당, SupplyInventory 및 SiteInspectionLog 항목이 포함되어 있습니다. ER 다이어그램, 데이터 사전, JSON 스키마, API 플레이그라운드, 그리고 신속한 부트스트랩을 위한 AI 에이전트 프롬프트가 포함되어 있습니다.

청소 CRM의 주요 시사점

이 템플릿은 ClientSite, CleaningSchedule, SupplyInventory 및 SiteInspectionLog가 포함된 청소 CRM 백엔드를 제공하여 조정자와 현장 직원이 동일한 작업 흐름을 유지할 수 있도록 합니다.

  1. 클라이언트 사이트 제어siteName, siteCode, 주소, clientName, serviceLevel, primaryContact 및 active로 각 ClientSite를 추적하세요.
  2. 일정 할당 흐름CleaningSchedule을 사용하여 site, assignedTo, serviceDate, startTime, endTime, frequency, status 및 notes를 연결하세요.
  3. 공급 가시성SupplyInventory를 사이트별로 itemName, sku, category, quantityOnHand, reorderLevel, unit 및 lastRestockedAt으로 저장합니다.
  4. 검사 로그사이트, 일정, 검사관, 검사 날짜, 점수, 결과, 시정 조치 및 photoUrl로 SiteInspectionLog 항목을 기록합니다.
  5. 역할 인식 작업조정자, 기술자, 검사관 및 클라이언트가 올바른 사용자, 클라이언트 사이트, 청소 일정 및 SiteInspectionLog 행을 볼 수 있도록 ACL 및 CLP 규칙을 적용합니다.

개요: 청소 CRM

청소 CRM의 보고서는 수동으로 폴더 및 메시지 스레드를 검색하지 않고도 리더십 질문에 답해야 합니다. 해결책은 운영적이지, 동기 부여가 아닙니다. Back4app의 ClientSite, CleaningSchedule, SupplyInventory 및 SiteInspectionLog을 통해 청소 CRM 팀은 동일한 케이스 레코드에서 협력하면서도 역할 분리를 시행할 수 있습니다. 스키마는 사용자, ClientSite(사이트 이름, 사이트 코드, 주소, 클라이언트 이름, 서비스 수준, 주요 연락처, 활성), CleaningSchedule(사이트, 할당된 사람, 서비스 날짜, 시작 시간, 종료 시간, 빈도, 상태, 메모), SupplyInventory(사이트, 품목 이름, SKU, 카테고리, 현재 재고 수량, 재주문 수준, 단위, 마지막 재입고 시점) 및 SiteInspectionLog(사이트, 일정, 검사관, 검사 날짜, 점수, 결과, 시정 조치, photoUrl)를 포함하며, 인증 및 운영 액세스 제어가 내장되어 있습니다. 선호하는 프론트엔드를 연결하고 더 빠르게 배송하세요.

최고의 사용처:

상업 청소 작업청소 스케줄링 앱공급 재고 추적 도구사이트 검사 로그 시스템최소 기능 제품(MVP) 출시BaaS를 서비스 운영에 선택하는 팀들

청소 CRM 백엔드 개요

인력 변경 시 계절적인 변동이 청소 CRM에 가장 큰 영향을 미치지만 데이터 모델은 새로운 SKU, 사이트 또는 정책에 맞추어 유연하게 변하지 않습니다.

Back4app를 평가하고 있다면 ClientSite, CleaningSchedule 및 SupplyInventory가 맞춤형 SQL을 작성하기 전에 얼마나 많은 구조를 얻을 수 있는지 보여줍니다.

청소 CRM 기능

이 허브의 모든 기술 카드에는 User, ClientSite, CleaningSchedule, SupplyInventory 및 SiteInspectionLog와 같은 동일한 청소 CRM 백엔드 스키마가 사용됩니다.

사용자 역할 관리

사용자는 코디네이터, 기술자, 검사자 및 클라이언트를 위한 사용자 이름, 이메일, 역할 및 전체 이름을 저장합니다.

클라이언트 사이트 프로필

ClientSite는 각 위치를 사이트 이름, 사이트 코드, 주소, 클라이언트 이름, 서비스 수준, 주요 연락처 및 사용 중 플래그에 연결합니다.

청소 일정 추적

CleaningSchedule은 사이트, 담당자, 서비스 날짜, 시작 시간, 종료 시간, 빈도, 상태 및 메모를 저장합니다.

공급 재고 확인

SupplyInventory는 itemName, sku, category, quantityOnHand, reorderLevel, unit 및 lastRestockedAt을 기록합니다.

사이트 검사 로그

SiteInspectionLog는 사이트, 일정, 검사자, 검사 날짜, 점수, 발견 사항, 시정 조치 및 photoUrl을 기록합니다.

왜 Back4app로 당신의 청소 CRM 백엔드를 구축해야 할까요?

Back4app는 사이트, 일정, 재고 및 검사 프리미티브를 제공하므로 귀하의 팀이 백엔드 배관 대신 서비스 제공에 집중할 수 있습니다.

  • ClientSite와 CleaningSchedule이 일치합니다.: 각 CleaningSchedule을 ClientSite에 연결하여 팀이 작업할 위치를 알고 감독자가 중복 스프레드시트 없이 서비스 빈도를 업데이트할 수 있도록 합니다.
  • SupplyInventory는 재고 확인을 지원합니다.: 모든 사이트에 대한 SupplyInventory 행을 저장하여 직원이 재고량과 재주문 수준을 비교할 수 있도록 합니다.
  • 실시간 검사 가시성: SiteInspectionLog에서 Live Queries를 사용하여 현장 점검에서의 발견이 조정자와 클라이언트 대면 직원에게 빠르게 나타납니다.

모든 플랫폼에서 하나의 백엔드 계약으로 청소 워크플로를 신속하게 구축 및 업데이트합니다.

청소 CRM의 이점

운영이 추가 관리 작업 없이 정확하게 유지될 수 있도록 돕는 청소 CRM 백엔드.

더 빠른 경로 및 근무 계획

서비스 캘린더를 처음부터 다시 구축하는 대신 완전한 ClientSite 및 CleaningSchedule 스키마에서 시작하세요.

선반과 일치하는 재고 확인

다음 바닥 서비스 전에 부족이 보이도록 quantityOnHand, reorderLevel 및 unit과 같은 SupplyInventory 필드를 사용하세요.

점검 후속 조치

SiteInspectionLog 발견사항, 점수, correctiveActions 및 photoUrl을 저장하여 감독자가 현장 문제를 해결할 수 있도록 합니다.

액세스 경계 지우기

적절한 사용자 역할만이 ClientSite, CleaningSchedule 또는 SiteInspectionLog 레코드를 편집할 수 있도록 ACL 및 CLP 규칙을 적용하세요.

현장 및 사무실 도구를 위한 하나의 백엔드

REST와 GraphQL를 통해 동일한 청소 CRM 데이터를 공개하여 배치, 모바일 팀, 사무실 대시보드를 지원합니다.

AI 지원 부트스트랩

구조화된 프롬프트로 백엔드 스캐폴딩 및 통합 가이드를 신속하게 생성합니다.

청소 CRM을 시작할 준비가 되셨나요?

Back4app AI 에이전트가 귀하의 청소 CRM 백엔드를 스캐폴드하고, ClientSite 레코드, CleaningSchedule 할당, SupplyInventory 추적 및 SiteInspectionLog 항목을 하나의 프롬프트에서 생성하게 하세요.

무료 시작 — 50 AI 에이전트 프롬프트/월, 신용 카드 필요 없음

청소 CRM 기술 스택

상업용 청소 CRM 백엔드 템플릿에 모든 것이 포함되어 있습니다.

프론트엔드
13개 이상의 기술
백엔드
Back4app
데이터베이스
MongoDB
인증
내장 인증 + 세션
API
REST 및 GraphQL
실시간
Live Queries

청소 관계 맵

청소 CRM 백엔드 스키마의 엔티티 관계 모델입니다.

다이어그램 소스 보기
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
    }

청소 앱 흐름

인증, 클라이언트 사이트 로딩, 청소 일정, 공급 재고 및 검사 로그에 대한 일반적인 실행 흐름입니다.

다이어그램 소스 보기
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

필드 가이드

청소 CRM 스키마의 모든 클래스에 대한 전체 필드 수준 참조입니다.

필드유형설명필수
objectIdStringAuto-generated unique identifier자동
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 timestamp자동
updatedAtDateAuto-generated last-update timestamp자동

8 필드 User에서

접근 및 권한

ACL 및 CLP 전략이 사용자, 사이트, 일정, 재고 및 검사 로그를 어떻게 보호하는지.

역할 인식 사용자 제어

계정 소유자 또는 관리자 역할만 사용자의 기록 및 운영 환경 설정을 업데이트해야 합니다.

사이트 및 일정 무결성

ClientSite 및 CleaningSchedule 쓰기를 조정자 또는 감독자로 제한한 다음 Cloud Code에서 변경 사항을 검증합니다.

재고 및 검사 범위

SupplyInventory 및 SiteInspectionLog 읽기를 지정된 직원, 사이트 감독자 및 승인된 고객 대면 사용자로 제한합니다.

JSON 스키마

복사하여 Back4app에 붙여넣거나 구현 참조로 사용할 수 있는 원시 JSON 스키마 정의입니다.

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

AI 빌드 프롬프트

이 템플릿을 사용하여 프런트엔드, 백엔드, 인증, 청소 일정, 재고 및 점검 흐름을 포함하는 실제 청소 CRM 앱을 생성하기 위해 Back4app AI 에이전트를 사용하세요.

Back4app AI 에이전트
구축할 준비 완료
Back4app에서 이 정확한 스키마와 동작으로 청소 CRM 앱 백엔드를 생성하세요.

스키마:
1. 사용자 (내장 인증을 사용하는 Back4app): 사용자 이름, 이메일, 비밀번호, 역할, 전체 이름; objectId, createdAt, updatedAt (시스템).
2. 클라이언트 사이트: 사이트 이름, 사이트 코드, 주소, 클라이언트 이름, 서비스 수준, 주요 연락처 (사용자에 대한 포인터), 활성; objectId, createdAt, updatedAt (시스템).
3. 청소 일정: 사이트 (클라이언트 사이트에 대한 포인터), 담당자 (사용자에 대한 포인터), 서비스 날짜, 시작 시간, 종료 시간, 빈도, 상태, 메모; objectId, createdAt, updatedAt (시스템).
4. 재고 목록: 사이트 (클라이언트 사이트에 대한 포인터), 품목 이름, SKU, 카테고리, 재고 수량, 재주문 수준, 단위, 마지막 보충 시점; objectId, createdAt, updatedAt (시스템).
5. 사이트 점검 로그: 사이트 (클라이언트 사이트에 대한 포인터), 일정 (청소 일정에 대한 포인터), 검사자 (사용자에 대한 포인터), 점검 날짜, 점수, 발견 사항, 시정 조치, 사진 URL; objectId, createdAt, updatedAt (시스템).

보안:
- 코디네이터는 클라이언트 사이트 행을 관리하고 청소 일정 항목을 할당합니다. 기술자는 자신의 청소 일정 상태만 업데이트하고 할당된 사이트에 대한 사이트 점검 로그 항목을 추가할 수 있습니다. 검사자는 자신이 할당된 사이트의 사이트 점검 로그 행을 생성하고 편집할 수 있습니다. 재고 업데이트는 코디네이터 또는 감독 역할로 제한되어야 합니다. 클라이언트는 명시적으로 승인된 경우에만 자신의 클라이언트 사이트 요약 및 점검 결과를 읽을 수 있습니다.

인증:
- 가입, 로그인, 로그아웃.

동작:
- 사이트 목록, 일정 생성, 재고 추적 및 사진으로 점검 결과 기록.

전달:
- 스키마, CLP, ACL 및 일정, 재고 알림 및 점검 로그 작성을 위한 프런트엔드가 포함된 Back4app 앱.

아래 버튼을 눌러 이 템플릿 프롬프트가 미리 채워진 상태로 에이전트를 엽니다.

이것은 기술 접미사가 없는 기본 프롬프트입니다. 이후에 생성된 프런트엔드 스택을 조정할 수 있습니다.

몇 분 안에 배포월 50개의 무료 프롬프트신용카드 불필요

API 테스터

청소 CRM 스키마에 대해 REST와 GraphQL 엔드포인트를 시도해 보세요. 응답은 모의 데이터를 사용하며 Back4app 계정이 필요하지 않습니다.

플레이그라운드 로딩 중…

이 템플릿과 동일한 스키마를 사용합니다.

스택 선택

각 카드를 확장하여 선택한 스택과 ClientSite, CleaningSchedule, SupplyInventory를 통합하는 방법을 확인하세요.

Flutter 청소 CRM 백엔드

React 청소 CRM 백엔드

React 네이티브 청소 CRM 백엔드

Next.js 청소 CRM 백엔드

JavaScript 청소 CRM 백엔드

Android 청소 CRM 백엔드

iOS 청소 CRM 백엔드

Vue 청소 CRM 백엔드

Angular 청소 CRM 백엔드

GraphQL 청소 CRM 백엔드

REST API 청소 CRM 백엔드

PHP 청소 CRM 백엔드

.NET 청소 CRM 백엔드

모든 기술로 얻는 것

모든 스택은 동일한 청소 CRM 백엔드 스키마와 API 계약을 사용합니다.

통합된 청소 운영 데이터 구조

사용자, 클라이언트 사이트, 청소 일정, 공급 재고 및 현장 검사 로그 기록을 일관된 스키마로 쉽게 관리할 수 있습니다.

청소 팀을 위한 공급 재고 가시성

재고가 떨어지기 전에 재고 보충이 이루어지도록 공급 재고 기록을 추적합니다.

모든 사이트에 대한 검사 추적

점수, 발견 사항, 시정 조치 및 사진 URL과 함께 현장 검사 로그 결과를 저장합니다.

청소 직원들을 위한 역할 인식 워크플로우

추가 백엔드 배선 없이 협조자, 기술자, 검사관 및 클라이언트에 대한 접근을 정의합니다.

청소 CRM 기술 비교

지원되는 모든 기술에서 설정 속도, SDK 스타일 및 AI 지원을 비교하세요.

프레임워크설정 시간청소 관리 CRM 이점SDK 유형AI 지원
약 5분크루 및 코디네이터 앱을 위한 단일 코드베이스입니다.타입된 SDK전체
5분 이하청소 일정 관리를 위한 빠른 웹 대시보드입니다.타입된 SDK전체
약 3–7분검사를 위한 크로스 플랫폼 모바일 앱입니다.타입된 SDK전체
빠른 (5분) 설정운영을 위한 서버 렌더링 관리 포털입니다.타입된 SDK전체
~3–5 분전송 도구를 위한 경량 웹 통합.타입된 SDK전체
약 5 분현장 팀을 위한 네이티브 Android 앱.타입된 SDK전체
5 분 이내감독자를 위한 네이티브 iOS 앱.타입된 SDK전체
~3–7 분React 사용자 및 사이트 계획을 위한 웹 UI입니다.타입된 SDK전체
빠른 (5분) 설정청소 작업을 위한 엔터프라이즈 웹 앱입니다.타입된 SDK전체
2분 이내중첩 사이트 및 검사 쿼리를 위한 유연한 GraphQL API입니다.GraphQL API전체
빠른 (2분) 설정REST API 통합 청소 작업을 위한.REST API전체
~3 분서비스 조정을 위한 서버 측 PHP 백엔드.REST API전체
~3–7 분청소 작업을 위한 .NET 백엔드.타입된 SDK전체

설정 시간은 프로젝트 부트스트랩부터 첫 번째 ClientSite, CleaningSchedule 또는 SiteInspectionLog 쿼리가 이 템플릿 스키마를 사용하여 실행되기까지의 예상 기간을 반영합니다.

청소 CRM FAQ

이 템플릿을 사용하여 청소 CRM 백엔드를 구축하는 것에 대한 일반적인 질문입니다.

“바쁜” 것 외에 청소 CRM 제공을 위해 실제로 중요한 지표는 무엇인가요?
청소 CRM 문제는 문서, 마감일 및 데이터에서의 커뮤니케이션을 어떻게 연결해야 하나요?
접근 모델이 청소 CRM 파트너 및 계약자에게 충분히 세분화되어 있나요?
Flutter로 사이트 및 청소 일정에 대한 쿼리를 어떻게 실행하나요?
Next.js Server Actions로 청소 CRM 액세스를 어떻게 관리하나요?
React 네이티브 캐시 검사 로그를 오프라인 상태에서 확인할 수 있습니까?
무단 검사 수정을 어떻게 방지하나요?
Android에서 공급량을 표시하는 가장 좋은 방법은 무엇인가요?
청소 일정 흐름은 끝에서 끝까지 어떻게 작동하나요?
이 청소 CRM 템플릿을 지원하는 클래스는 무엇입니까?

전 세계 개발자들이 신뢰함

Back4app 템플릿으로 더 빠르게 청소 CRM 제품을 배포하는 팀에 참여하세요

G2 Users Love Us Badge

청소 CRM 앱을 구축할 준비가 되셨나요?

몇 분 안에 청소 CRM 프로젝트를 시작하세요. 신용카드 필요 없음.

기술 선택