Admin Tutorial · MSP Service Desk

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.

The outcome
What you will achieve

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.

Ticket pipeline configured with categories and priority levels
SLA profiles created for Platinum, Gold, and Standard client tiers
Auto-assignment rules routing tickets to the right technician group
Escalation rules firing before SLA breach - not after
Client portal activated with branded access
Time tracking connected to ticket workflow
Before you start

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)
Step-by-step
1
Step 1

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.

Navigate toSettings → Ticket Management → Categories
  1. 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. 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. 3

    Navigate to Settings → Priority Levels. Configure 4 standard priority levels:

    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
Pro Tip

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.

2
Step 2

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.

Navigate toSettings → SLA Management → SLA Profiles
  1. 1

    Click Create SLA Profile. You will create three profiles to start:

    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. 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. 3

    Enable SLA Pause Rules if applicable. Common pause triggers: 'Waiting for client response' status pauses the resolution clock automatically.

  4. 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%.

Common Mistake

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.

3
Step 3

Assign SLA profiles to clients

Navigate toClients → [Client Name] → Contract Settings → SLA Profile
  1. 1

    Open each client profile. Under Contract Settings, select the appropriate SLA profile from the dropdown.

  2. 2

    Set the client's Billing Type: Fixed Monthly, Time & Materials, or Hybrid.

  3. 3

    Enable the Client Portal toggle to give this client portal access. Set their portal login email(s).

  4. 4

    Save. CrmLeaf will now automatically apply this client's SLA profile to every ticket they submit.

Bulk assignment

For bulk assignment, use Settings → Bulk Client Update → SLA Profile to assign the same profile to multiple clients simultaneously - useful when first setting up.

4
Step 4

Configure auto-assignment rules

Auto-assignment ensures tickets land with the right technician or group the moment they arrive - no queue manager needed.

Navigate toSettings → Ticket Management → Assignment Rules
  1. 1

    Click Create Rule. Rules are evaluated top-to-bottom; order matters.

  2. 2

    Example rule set for an MSP:

    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. 3

    Enable round-robin distribution within groups to prevent one technician from receiving all tickets.

5
Step 5

Set up escalation rules

Navigate toSettings → SLA Management → Escalation Rules
  1. 1

    Create escalation rules linked to your SLA profiles. Recommended structure:

    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. 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.

6
Step 6

Connect omnichannel ticket intake

Navigate toSettings → Channels
  1. 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. 2

    Client Portal: already active from Step 3. Customise the portal URL and branding under Settings → Portal → Branding.

  3. 3

    Chat: enable the live chat widget. Embed the snippet on your website. Chat sessions auto-create tickets when a client submits.

  4. 4

    WhatsApp: connect via WhatsApp Business API. Clients message your WhatsApp number; messages route into the ticket queue automatically.

Pro Tip

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.

7
Step 7

Activate time tracking on tickets

Navigate toSettings → Time Tracking
  1. 1

    Enable Ticket Time Tracking globally.

  2. 2

    Set Billable defaults per contract type: Fixed Monthly tickets default to Non-billable (covered by retainer); Time & Materials tickets default to Billable.

  3. 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. 4

    Connect time entries to your billing cycle: Settings → Billing → Time Entry Rules → Auto-pull to Invoice Draft.

Pre-flight check

Validation checklist

  1. 01.SLA profiles assigned to all clients

    Clients → Filter by SLA Profile = None

  2. 02.Test ticket from each channel

    Submit test tickets via email, portal, chat

  3. 03.SLA clock firing correctly

    Check ticket detail → SLA panel shows correct deadline

  4. 04.Escalation rule test

    Create a test P1 ticket, wait for 75% trigger alert

  5. 05.Time entry prompt active

    Resolve a test ticket, confirm prompt appears

  6. 06.Client portal accessible

    Log in as a test client user, raise a ticket

  7. 07.Invoice draft pull

    Approve a time entry, check Billing → Draft Invoices

✓ Ready to launch when all items are checked

FAQ

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.

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