Cleaning Services-Service Cloud Implementation

Implementation Document
Cleaning Services
Service Cloud Support Desk

This document provides a step-by-step record of the build process — covering configuration decisions, sequencing, challenges encountered, and how they were resolved.


Step 1

Case Object: Fields & Data Model

The first step was to establish the Case object data model before building any screens or automation.

Custom Fields Created

FieldTypeNotes
Property TypePicklistValues: Residential, Commercial
Clean DateDateDate of the clean related to the query
FrequencyPicklistValues: One-off, Weekly, Fortnightly, Monthly
Assigned CleanerLookup (User)Links case to cleaning operative user record
Resolution NotesLong Text Area32,768 character limit

Case Status Picklist Updated

Status values updated: New, In Progress, Escalated, Awaiting Client, Resolved, Closed. Resolved and Closed are marked as Closed status values.

Design Decision — Assigned Cleaner

In the existing Sales Cloud CRM, Assigned Cleaner was a text field. For the Service Cloud build this was upgraded to a Lookup to User — enabling proper reporting. In reality most cleaners are subcontractors; in a live implementation a Contact or custom object would be more appropriate, but User lookup demonstrates the relationship concept cleanly for portfolio purposes.


Step 2

Service Console App

  • App name: CRM App (deliberately generic — avoids implying this is a live production system)
  • Navigation items: Cases, Accounts, Contacts, Entitlements, Knowledge, Tasks, Reports, Dashboards
  • Utility bar: Omni-Channel, History, Macros
  • User profiles: System Administrator, Standard User, Standard Platform User

Step 3

Case List Views

List ViewFilter Logic
All Open CasesClosed equals False — captures all non-closed cases regardless of status value
High Priority CasesPriority equals High AND Closed equals False

Columns configured: Account Name, Case Number, Contact Name, Subject, Case Type, Status, Priority, Date/Time Opened, Entitlement Name, Property Type.

Note on Filter Logic

Using ‘Closed equals False’ rather than filtering by specific status values ensures the list view automatically excludes any future closed status values without needing to be manually updated — a more scalable approach.


Step 4

Case Record Page Layout

The default Case Lightning Record Page was edited in Lightning App Builder. Template changed to Header and Three Regions for a three-column console layout.

Highlights Panel

Compact Layout updated to show: Case Number, Status, Priority, Case Origin, Clean Date, Subject.

Case Detail Sections

Classic page layout editor used to organise fields into labelled sections: Case Details, Customer Details, Service Details, Description Information, Resolution Details.

Knowledge Component

Knowledge was not initially available as a component. Enabling Lightning Knowledge in Setup made it available. Once added, articles surface automatically based on case subject — no agent search required.


Step 5

Case Assignment Rules

  • Rule Entry 1: Priority equals High → Assigned to named agent
  • Rule Entry 2: Priority equals Medium → Assigned to named agent
  • Rule Entry 3: No criteria (catch-all) → Assigned to default agent

In this demo org all entries assign to a single user. The structure demonstrates the pattern used in a live implementation with queues and multiple agents.


Step 6

Entitlements & Milestones

Enabling Entitlement Management

Entitlement Management was enabled in Setup → Entitlement Settings before any configuration could begin.

Entitlement Process

  • First Response to Customer — 60 minutes from Entitlement Process start
  • Close Case — 240 minutes from Milestone Criteria

Entitlement Record

A single Entitlement record called ‘Standard Cleaning SLA’ was created, linked to the Cleaning Support Desk SLA process.


Step 7

Flow: Auto-Assign Entitlement

A record-triggered Flow was built to automatically assign the Entitlement to cases on creation — removing the need for manual agent input.

ElementConfiguration
TriggerObject: Case. When: A record is created. Optimised for: Actions and Related Records
Get RecordsObject: Entitlement. Filter: Name equals ‘Standard Cleaning SLA’ AND Account ID equals Triggering Record > Account ID
Update RecordsSet: Entitlement ID = Entitlement from Get Records > ID
Error 1 Resolved — FIELD_INTEGRITY_EXCEPTION

The Flow was setting the Entitlement ID using the Entitlement Process ID — a different field. Resolved by mapping the correct ‘ID’ field in Update Records.

Error 2 Resolved — $Record SObject Reference

The Flow failed to activate because the Account ID filter referenced ‘$Record’ as an SObject element. Resolved by changing to ‘Triggering Record > Account ID’.


Step 8

Case Path

Path Settings was enabled and a new path created on the Case object using the Status field. Six stages configured with Key Fields and Guidance for Success text: New, In Progress, Escalated, Awaiting Client, Resolved, Closed. Activated and added to the middle region of the Case record page.


Step 9

Knowledge Base

  • What to do when a client reports a missed clean
  • How to handle an invoice or payment query
  • Processing a booking or scheduling change request
  • What to do if a clean fails inventory checks

The Knowledge component was confirmed to surface relevant articles automatically based on case subject.


Step 10

Macros

Unable to Reach Client

  • Instruction 1: Select Active Case Tab
  • Instruction 2: Update Status to Awaiting Client
  • Instruction 3: Close Tab

Request More Information

A second macro was configured to support agents requesting further information from clients.

Developer Edition Limitation

Log a Call and Create Task instruction types were not available in the Developer Edition org. This is a platform limitation, not a configuration gap. In a full production licence, the macro would also log a call and create a follow-up task.


Step 11

Quick Text

TemplateCategoryChannel
Agent GreetingGreetingEmail, Phone
Unable to Reach ClientFollow UpEmail
Case ResolvedResolutionEmail

Note: Category picklist values were not available by default and were added manually before saving each template.


Step 12

Web-to-Case

Web-to-Case was enabled and an HTML form generated including: Contact Name, Email, Phone, Subject, Property Type, Clean Date, Description, Access Details. The form was styled and embedded on the portfolio website at salesforcesharon.com. Submitted forms create a Case record and trigger assignment rules automatically.


Step 13

Reports & Dashboard

A dashboard called ‘Cleaning Service Performance Dashboard’ was created as the Service Console homepage with four components:

  • Cases By Case Type — horizontal bar chart showing volume by case type
  • Open Cases By Queue — table view with contact name, priority, subject, case number, property type
  • Cases By Priority — bar chart across High, Medium, and Low priority
  • Cases By Property Type — donut chart showing Residential vs Commercial split

Step 14

Test Data

  • Multiple accounts representing residential clients, letting agencies, and property management companies
  • Contacts linked to each account with realistic names and email addresses
  • Cases across all case types, priorities, and statuses — including Web-to-Case submissions
  • Entitlements linked to accounts so the auto-assign Flow could be tested end to end

Build Summary

  • Case object data modelling with custom fields and organised page layout sections
  • Service Console configuration with utility bar and multi-tab working
  • Automated case routing via Assignment Rules
  • SLA enforcement via Entitlements and Milestones with automated countdown timers
  • Flow automation for entitlement assignment — including real troubleshooting and resolution
  • Multi-channel case creation via Web-to-Case and Email-to-Case
  • Agent productivity tools — Macros, Quick Text, Knowledge Base
  • Real-time operational visibility via Reports and Dashboard
Portfolio Note

This build was completed as a portfolio demonstration project. All business names, client data, and scenarios are fictional. The org is a Developer Edition org and some features are limited compared to a full production licence.