Set up ticket pipelines & SLA rules for MSP multi-client management
By the end of this tutorial, you will have a fully configured ticket pipeline with SLA tiers for each client type, automated escalation rules, omnichannel ticket intake, and a working client portal - all connected and live.
By the end of this tutorial, you will have a fully configured ticket pipeline with SLA tiers for each client type, automated escalation rules, omnichannel ticket intake, and a working client portal - all connected and live.
Prerequisites
- ·Admin access to CrmLeaf (Settings > System Admin role)
- ·Your client list ready (company name, contract tier, primary contacts)
- ·Your SLA commitments defined per contract tier (response + resolution times)
- ·Technician team structure mapped (groups/teams if applicable)
Configure ticket categories and priority levels
Before creating SLA rules, you need a clean category structure that reflects your actual service types. Vague categories like 'General' or 'Other' make SLA assignment and reporting meaningless.
- 1
Click Add Category and create your primary service categories. Recommended starting structure for an MSP:
- Network & Connectivity
- End-User Support (Hardware/Software)
- Cloud & Server Management
- Cybersecurity Incidents
- Billing & Account Queries
- 2
For each category, click Add Sub-category to add specific issue types. Example for Network & Connectivity: Internet outage, VPN access issue, Firewall configuration, Wireless connectivity.
- 3
Navigate to Settings → Priority Levels. Configure 4 standard priority levels:
Priority Level Label Typical Trigger Default Urgency P1 Critical System down, business impacted Immediate response P2 High Major function impaired Within 2 hours P3 Medium Partial impairment, workaround available Within 4 hours P4 Low Minor issue, no business impact Next business day P1
- Label
- Critical
- Typical Trigger
- System down, business impacted
- Default Urgency
- Immediate response
P2
- Label
- High
- Typical Trigger
- Major function impaired
- Default Urgency
- Within 2 hours
P3
- Label
- Medium
- Typical Trigger
- Partial impairment, workaround available
- Default Urgency
- Within 4 hours
P4
- Label
- Low
- Typical Trigger
- Minor issue, no business impact
- Default Urgency
- Next business day
Enable the Auto-priority suggestion toggle. CrmLeaf will suggest a priority level based on keywords in the ticket subject and body - your technicians can accept or override. This speeds up triage significantly for busy queues.
Create SLA profiles for each client tier
SLA profiles are the engine of your service commitments. Each profile defines response time and resolution time targets per priority level, plus business hours.
- 1
Click Create SLA Profile. You will create three profiles to start:
Profile Name P1 Response P1 Resolution P2 Response P3 Response Hours Coverage Platinum 30 min 4 hours 1 hour 4 hours 24/7 Gold 1 hour 8 hours 2 hours 8 hours Business hours + on-call Standard 4 hours Next day 8 hours 2 business days Business hours only Platinum
- P1 Response
- 30 min
- P1 Resolution
- 4 hours
- P2 Response
- 1 hour
- P3 Response
- 4 hours
- Hours Coverage
- 24/7
Gold
- P1 Response
- 1 hour
- P1 Resolution
- 8 hours
- P2 Response
- 2 hours
- P3 Response
- 8 hours
- Hours Coverage
- Business hours + on-call
Standard
- P1 Response
- 4 hours
- P1 Resolution
- Next day
- P2 Response
- 8 hours
- P3 Response
- 2 business days
- Hours Coverage
- Business hours only
- 2
For each profile, configure Business Hours under the profile settings. Define your working days and hours. For 24/7 profiles, enable all days and set 00:00–23:59.
- 3
Enable SLA Pause Rules if applicable. Common pause triggers: 'Waiting for client response' status pauses the resolution clock automatically.
- 4
Under each profile, enable Breach Alerts: set alerts to fire at 75% of time elapsed (warning) and 90% (escalation trigger). Never wait for 100%.
Setting breach alerts at 100% means you are notified after the SLA has already been broken. Always set your escalation trigger at 75–80% of the time window so your team has time to act.
Assign SLA profiles to clients
- 1
Open each client profile. Under Contract Settings, select the appropriate SLA profile from the dropdown.
- 2
Set the client's Billing Type: Fixed Monthly, Time & Materials, or Hybrid.
- 3
Enable the Client Portal toggle to give this client portal access. Set their portal login email(s).
- 4
Save. CrmLeaf will now automatically apply this client's SLA profile to every ticket they submit.
For bulk assignment, use Settings → Bulk Client Update → SLA Profile to assign the same profile to multiple clients simultaneously - useful when first setting up.
Configure auto-assignment rules
Auto-assignment ensures tickets land with the right technician or group the moment they arrive - no queue manager needed.
- 1
Click Create Rule. Rules are evaluated top-to-bottom; order matters.
- 2
Example rule set for an MSP:
Rule Name Condition Action Platinum Critical Client Tier = Platinum AND Priority = P1 Assign to Senior Tech group + notify Team Lead Cybersecurity Incidents Category = Cybersecurity Incidents Assign to Security Team group Network issues Category = Network & Connectivity Assign to Network Team group Billing queries Category = Billing & Account Assign to Account Manager queue Default assignment All other tickets Assign to General Support queue (round robin) Platinum Critical
- Condition
- Client Tier = Platinum AND Priority = P1
- Action
- Assign to Senior Tech group + notify Team Lead
Cybersecurity Incidents
- Condition
- Category = Cybersecurity Incidents
- Action
- Assign to Security Team group
Network issues
- Condition
- Category = Network & Connectivity
- Action
- Assign to Network Team group
Billing queries
- Condition
- Category = Billing & Account
- Action
- Assign to Account Manager queue
Default assignment
- Condition
- All other tickets
- Action
- Assign to General Support queue (round robin)
- 3
Enable round-robin distribution within groups to prevent one technician from receiving all tickets.
Set up escalation rules
- 1
Create escalation rules linked to your SLA profiles. Recommended structure:
Trigger Action Notification SLA 75% elapsed, unresolved Assign secondary technician Alert Team Lead via email + in-app SLA 90% elapsed, unresolved Escalate to Senior Technician Alert Operations Manager SLA 100% (breach) Flag as SLA Breached, notify client Email client + alert Director No technician activity for 2 hours Reassign to available tech Alert original assignee SLA 75% elapsed, unresolved
- Action
- Assign secondary technician
- Notification
- Alert Team Lead via email + in-app
SLA 90% elapsed, unresolved
- Action
- Escalate to Senior Technician
- Notification
- Alert Operations Manager
SLA 100% (breach)
- Action
- Flag as SLA Breached, notify client
- Notification
- Email client + alert Director
No technician activity for 2 hours
- Action
- Reassign to available tech
- Notification
- Alert original assignee
- 2
Enable the Daily SLA Report under Reports → Scheduled Reports. This sends a morning digest of all tickets approaching their SLA window - the single most important habit for SLA compliance.
Connect omnichannel ticket intake
- 1
Email: connect your support@ inbox via IMAP/SMTP. Incoming emails auto-create tickets and are threaded to the correct client profile by domain matching.
- 2
Client Portal: already active from Step 3. Customise the portal URL and branding under Settings → Portal → Branding.
- 3
Chat: enable the live chat widget. Embed the snippet on your website. Chat sessions auto-create tickets when a client submits.
- 4
WhatsApp: connect via WhatsApp Business API. Clients message your WhatsApp number; messages route into the ticket queue automatically.
Start with email and the portal in Week 1. Add chat and WhatsApp in Week 2 once your team is comfortable with the ticket flow. Activating all channels simultaneously creates a flood that overwhelms teams still learning the system.
Activate time tracking on tickets
- 1
Enable Ticket Time Tracking globally.
- 2
Set Billable defaults per contract type: Fixed Monthly tickets default to Non-billable (covered by retainer); Time & Materials tickets default to Billable.
- 3
Enable the Time Entry Prompt: when a technician changes a ticket to Resolved, CrmLeaf prompts them to confirm their time entry before closing. This is the single most effective anti-leakage feature.
- 4
Connect time entries to your billing cycle: Settings → Billing → Time Entry Rules → Auto-pull to Invoice Draft.
Validation checklist
01.SLA profiles assigned to all clients
Clients → Filter by SLA Profile = None
02.Test ticket from each channel
Submit test tickets via email, portal, chat
03.SLA clock firing correctly
Check ticket detail → SLA panel shows correct deadline
04.Escalation rule test
Create a test P1 ticket, wait for 75% trigger alert
05.Time entry prompt active
Resolve a test ticket, confirm prompt appears
06.Client portal accessible
Log in as a test client user, raise a ticket
07.Invoice draft pull
Approve a time entry, check Billing → Draft Invoices
✓ Ready to launch when all items are checked
MSP service desk setup - frequently asked questions
Go to the client profile → Contract Settings → SLA Profile and change the assignment. All new tickets will immediately use the new SLA. Existing open tickets can be bulk-updated via the ticket list view filter.
Yes. Each technician has a personal dashboard showing their ticket queue, average resolution time, SLA compliance rate, and open escalations. Admins can view aggregated team performance in the Analytics Dashboard.
CrmLeaf creates the ticket and flags it as Unmatched Client. The admin receives an alert to either match it to an existing client or create a new one. The SLA clock starts only after the client is matched.
Related guides
Ready to put this tutorial into practice?
Start free, migrate from any tool, and configure your service-desk workflows in days, not weeks.
Free 14-day trial · Free onboarding · Free data migration · Cancel anytime
