An MSP has a problem an internal desk does not: different customers are owed different things, and the contract is the thing being measured. Raiseaticket handles this by matching a policy to the sender.
Create a policy for each service tier you actually sell - for example Standard, Priority and Critical - rather than one per customer. Incoming tickets are matched to a policy by the sender's email address or domain, so several clients can share a tier without duplicating the configuration.
"Priority clients" survives a contract change. "4 hour SLA" becomes wrong the moment you renegotiate, and nobody updates the name.
The policy is matched when the ticket is created and does not stack. If a client is upgraded mid-contract, tickets raised before the change keep the old targets - worth knowing before you explain a report to them.
A client paying for extended cover should have a policy whose hours reflect that, up to full calendar hours for 24x7 clients. Clients on business-hours cover should have their clock stop overnight - otherwise your own reporting will show breaches you never actually owed.
Users are mapped to a company by their email domain, so the client view builds itself. That mapping is what makes per-client reporting and company-wide ticket visibility work.
For an MSP, an approaching breach is a commercial event, not just an operational one. Nominate the person who owns the relationship as well as the agent working the queue.
Check the resolved-within-SLA figures per company before your client does. If a tier breaches consistently, either the staffing or the promise needs to change.