JinJin48
JinJin48
SAP Consultant | BTP · S/4HANA · US Global Rollout
· 16 min read

SAP Service Cloud Service Level Determination

Service Level Determination is not a second place where SLA times live — it is a decision table that decides which already-activated Service Level (SC-A06-01) applies to a given Case, matching on inputs such as Case Type and Priority Code and outputting a single Service Level as the result. Administrators configure it as a rules table of up to 15 columns, evaluated top to bottom with the first fully-matching row winning; row position, not a numeric priority field, is what determines precedence. The exact same mechanism — Adapt Columns, AND-within-row/OR-across-rows, top-to-bottom first match, an explicit Activate step — is reused elsewhere in Case Management for Case Routing to Employee and to Team, so this article also flags where Service Level Determination is one specific instance of a shared, generic pattern rather than a bespoke SLA engine. It also draws a hard line between this feature and an unrelated, similarly-named generic “Determination” configuration framework elsewhere in the product, which shares only a word, not a mechanism.


Part 1: Service Level Determination — Core Concepts (All Modules)

1.1) What Is the Service Level Determination Rule?

Hub-and-spoke diagram showing Service Level Determination Rule at the center with four spokes: a solid outbound arrow to Service Level (Result/output), two inbound reference arrows from Case Type and Priority Code (match column inputs), and a peer spoke to Case Routing Employee/Team (same engine, separate rule table)

A determination rule exists to answer one question every time a Case is created or edited: given this Case’s field values, which of the several possible Service Level records should govern its SLA clock? It does this by evaluating a table of administrator-defined rows against the Case, applying the Service Level named in the first row that matches. The rule itself stores no SLA times, no Milestones, and no Operating Hours — all of that lives on the Service Level record it selects (SC-A06-01).

AspectDetails
RoleDecision-table engine that selects which already-Active Service Level applies to a Case; does not itself define any SLA Milestone or duration
Modules using itSAP Service Cloud (sole owner); shares its underlying rules-table mechanism with Case Routing to Employee and Case Routing to Team (separate configuration screens, same engine design); consumes Service Level (SC-A06-01) as its Result/output value
TransactionsUser Menu → System Settings → All Settings → Cases → Service Level Determination (also seen documented as Settings → Service Level → Service Level Determination — likely a UI/version variant of the same screen)
Key TablesSAP Service Cloud: Service Level Determination rules-table business object (Admin/Core API OData entity, configured via Adapt Columns, capped at up to 15 columns including the Result column). SAP Service Cloud is a multi-tenant SaaS solution and does not expose classical ABAP tables to consultants.
S/4HANA noteConfigured natively inside the Service Cloud tenant; has no S/4HANA equivalent. The classic, Ticket-based SAP Service Cloud (Cloud for Customer heritage) has a structurally near-identical feature, “Configure Service Level Determination Rules for Tickets” (Administrator → Service and Social → SLA Setup → Determine Service Level) — same AND/OR/top-to-bottom logic and 15-column cap, with only minor UI-terminology differences (a “Swap” button instead of a sort icon). This article covers the current Case-based Service Cloud Version 2 feature.

Common misconception — this is not the same “Determination” as the generic Determination framework elsewhere in SAP Service Cloud. SAP Service Cloud also has a separate, generic configuration framework literally called “Determination” — structured as Header (name, triggering event) + Condition Block + Assignment Block, with Pre Hook (defaults a field, overridable) and Post Hook (forces a field, non-overridable) execution points, typically shown defaulting or forcing a Case’s Priority based on Case Type and Origin. No source ties Service Level assignment to this Header/Condition/Assignment framework. Service Level Determination instead uses the plain decision-table mechanism it shares with Case Routing to Employee/Team. The two features share a name fragment only — do not describe Service Level Determination as running on Pre/Post Hooks, and do not describe the generic Determination framework as SLA-related.


1.2) Rule Logic: Match Columns, Evaluation Order & Activation

Comparison grid contrasting the AND relationship between match column values within a single row against the OR relationship between rows, with a top-to-bottom arrow showing evaluation stopping at the first fully-matching row

Getting the AND/OR direction backwards is the single most common way to misconfigure this table: every value inside one row must all be true together, while separate rows are alternatives to each other — and only the first alternative that fires actually applies.

MechanicDescriptionPractical Effect
AND within a rowEvery match column value entered in a single row must evaluate true for that row to match a given CaseA row with three match columns populated is a three-condition rule; leaving a column blank in a specific row typically widens that row (fewer conditions to satisfy), not the reverse — confirm the exact blank-value behavior in a sandbox before relying on it for a production rule.
OR across rowsSeparate rows are independent alternative rules; any one of them matching is sufficientThis is how multiple, differently-scoped rules coexist in one table — e.g., one row for Gold-tier Immediate cases, a separate row for a different Case Type entirely.
Top-to-bottom, first-match-winsThe system evaluates rows in table order and stops at the first row that fully matches (short-circuit)Rows below a matching row are never evaluated for that Case, even if they would also have matched — this makes row order a functional part of the rule design, not just a display preference.
Row reordering = precedenceThere is no separate numeric priority field on a row; the sort icon (row-move control) is the only way to change precedenceWhen adding a new, more specific rule, remember that a newly added row defaults to the bottom of the table — it must be moved above any broader rule it needs to take precedence over, or it will never fire.
Explicit ActivationRules changes take effect only after an explicit Activate action; unsaved or unactivated edits leave the previously activated rule set liveDraft and test a new rule set without risk — production Case assignment continues on the last activated version until Activate is deliberately run.
Shared mechanism, not a bespoke SLA engineIdentical Adapt Columns / AND-OR / top-to-bottom / Activate design also powers Case Routing to Employee and Case Routing to TeamSkills learned configuring one of these three rules tables (Service Level Determination, Case Routing to Employee, Case Routing to Team) transfer directly to the other two — they are the same generic engine applied to a different Result column.

Design principle — row position is the priority field. Business stakeholders coming from tools with an explicit numeric “Priority” column on a rules table need to unlearn that expectation here: in Service Level Determination, the row’s physical position in the table is its priority, enforced purely by top-to-bottom, first-match-wins evaluation. There is no independent priority number to set or audit separately from the row order itself.


1.3) Organizational Levels and Data Hierarchy

Zone crop from the SAP Service Cloud Master Data Landscape showing a Service Level Determination Rule table at the tenant level with two example rows, solid outbound Result arrows to two Service Level records, and side-by-side reference arrows in from Case Type and Priority Code as match column inputs

Data hierarchy with a concrete example (tenant-level; SAP Service Cloud has no Company Code / Plant scoping above this)

Client (SAP Service Cloud Tenant)
   │
   ├── Service Level Determination Rule Table "Case SLA Assignment" (Status: Active)
   │        │
   │        ├── Row 1: Case Type = "Customer Service Case" AND Priority Code = "01 - Immediate"
   │        │            ── Result ──> Service Level "GOLD - Premium Support"
   │        │
   │        ├── Row 2 (catch-all, recommended practice — not a documented system default):
   │        │            Case Type = "*" AND Priority Code = "*"
   │        │            ── Result ──> Service Level "SILVER - Standard Support"
   │        │
   │        └── Evaluated top-to-bottom: Row 1 short-circuits the table for any matching Case;
   │             Row 2 is only reached when Row 1's conditions are not met
   │
   ├── Service Level "GOLD - Premium Support" (Status: Active) ── referenced as Row 1's Result value
   │
   ├── Service Level "SILVER - Standard Support" (Status: Active) ── referenced as Row 2's Result value
   │
   ├── Case Type "Customer Service Case" ── read by Row 1 as a match column value (no field on the
   │        rule pointing back to Case Type as an owned object — the rule only reads its current value)
   │
   └── Priority Code "01 - Immediate" (one of a fixed set of four priority codes) ── read by Row 1
            as a match column value (same one-directional read, no reverse reference)

Design principle — a catch-all final row is good practice, not a documented system default. No official source states what happens when a Case matches zero rows in the table — whether it is left with no assigned Service Level (and therefore no SLA due dates), whether some implicit default applies, or whether this is simply undefined behavior administrators are expected to prevent. Treat adding a final wildcard row (as shown in Row 2 above) as a recommended safety practice, and confirm actual no-match behavior in a sandbox tenant before assuming any specific fallback exists in production.


1.4) Integration with Other Master Data Objects

Hub-and-spoke diagram showing Service Level Determination Rule with a solid outbound arrow to Service Level (Result/output), side reference arrows from Case Type and Priority Code (match inputs, no reverse reference), and a peer spoke to Case Routing Employee/Team (same engine, separate rule table)

Service Level Determination touches several other objects, but always in the same two directions: it reads Case field values as match inputs, and it writes a single Service Level as its Result. The table is explicit about which relationships are sourced and which remain open items from the research pass.

ObjectRelationshipPractical Notes
Service Level (SC-A06-01)Direct, mandatory Result value — the reason the object existsA Service Level record cannot vary its own Milestone targets by Priority internally (“Attribute specific service level definition is not supported”), so organizations create multiple Service Level records and rely on this Determination Rule to route each Case to the correct one. Only an already-Active Service Level should be selected as a Result value.
Case TypeIndirect — match column input only, no ownership either directionCase Type is a commonly used, sourced match column (e.g., “Customer Service Case”); the Determination Rule reads its current value on the Case, but neither object stores a reference to the other.
Priority CodeIndirect — match column input only, no ownership either directionPriority Code is drawn from a small, fixed set (documented as “the four priority codes”) and is corroborated as a concrete match column example (“01 (Immediate)”). Same one-directional read as Case Type.
Case Routing to Employee / Case Routing to TeamPeer — identical underlying engine, but a separate rule table instanceBoth routing screens use the exact same Adapt Columns / AND-OR / top-to-bottom / Activate mechanism as Service Level Determination, confirmed by the official guide covering all three under the same design. They are not the same configuration record; each is its own independently activated table with its own Result column.
Case (transaction object)Downstream, indirect — via the assigned Service Level, not a direct field on the ruleOnce a row matches, the Case receives the Result Service Level’s Milestone due-dates (see SC-A06-01, Section 2.4); the Determination Rule itself does not write directly onto the Case beyond triggering this assignment.
Generic “Determination” framework (Header/Condition/Assignment, Pre/Post Hooks)No relationship — naming collision only (Section 1.1)Shares the word “Determination” and nothing else: different configuration screen, different structure, and no source ties Service Level assignment to it.
Classic Service Cloud (Ticket-based) “Configure Service Level Determination Rules for Tickets”Parallel implementation in a different product generation — not this object directlyStructurally near-identical engine (AND/OR, top-to-bottom, 15-column cap, Activate step) but configured on the older Ticket-based Cloud for Customer heritage product, reached via a different menu path and terminology (“Swap” vs. sort icon). Relevant only if a reader is working in the classic product rather than Service Cloud Version 2.

Scope notes: (1) No current, exhaustive, official field list confirms every selectable match column for the V2 rules table beyond Case Type and Priority Code — the official guide describes the mechanism (Adapt Columns, any available Case field, up to 15 columns) without enumerating a fixed default set; broader field lists appearing in community material or the classic product’s official guide (service type, product category, service category, country/region, customer group) should be treated as illustrative, not a confirmed current V2 list. (2) The underlying rules-engine technology (e.g., whether it is implemented on BRFplus or a proprietary business-rules service) is not stated in current SAP Service Cloud Version 2 documentation and should not be asserted. (3) Fallback behavior for zero matching rows is undocumented — see the Section 1.3 design principle.


Part 2: SC-Specific Field Details

2.0) Scope of SC Ownership

Checklist showing SC ownership across Service Level Determination’s five data sections: Rule Table Configuration, Rule Row, Row Sequence / Precedence, Activation State, and Bulk Maintenance

Data SectionSC InvolvementNotes
Rule Table Configuration (Adapt Columns)◎ OwnerAdministrator-chosen set of Case fields exposed as match columns, plus the fixed Result column — capped at 15 columns total.
Rule Row (Match Columns + Result Column)◎ OwnerEach row is one complete rule: AND logic across its match column values, one Result value.
Row Sequence / Precedence◎ OwnerRow position (reordered via the sort icon) is the sole precedence mechanism — no separate numeric field.
Activation State◎ OwnerDraft edits vs. the currently live, previously-Activated rule set.
Bulk Maintenance (Excel Export/Import)○ Direct involvementOptional offline editing path for large rule sets; does not replace the Adapt Columns setup step or the Activation step.

Legend: ◎ = Owner / Critical, ○ = Direct involvement


2.1) Rule Table Configuration (Adapt Columns)

Checklist of Service Level Determination’s table-configuration fields: Adapt Columns, Match Column, Result Column, Column Cap

Before any row can be entered, the table’s own column structure has to be set up — this is the one-time (though revisitable) step that decides which Case fields are even available to match against.

FieldDescriptionPractical Usage
Adapt Columns (action)Administrator-facing action that adds or removes which Case fields appear as columns in the rules tableRevisit this whenever a new match criterion is needed (e.g., adding a Product Category column later); changing columns does not retroactively populate existing rows for a newly added column, so plan a follow-up pass to fill in values for pre-existing rows.
Match Column (configurable, any available Case field)A column whose header is a Case field and whose row values are the specific values to match againstCorroborated concrete examples are limited to Case Type and Priority Code; treat any other specific field name as illustrative rather than a confirmed current default (see Section 1.4 Scope notes).
Result Column (fixed)The single output column every row must populate — the Service Level (SC-A06-01) assigned when the row matchesThis is the one column type that cannot be removed via Adapt Columns; a table with no populated Result values cannot produce an assignment.
Column CapMaximum of 15 columns total, including the Result columnLeaves at most 14 possible match columns. If more match dimensions are genuinely needed, consider whether some can be consolidated (e.g., a single custom field) rather than assuming the cap can be raised.

2.2) Rule Row (Match Columns + Result Column)

Checklist of Service Level Determination’s per-row fields: Row, Match Column Value, Result Column Value, and the recommended catch-all row pattern

Each row is the actual, individually authored rule — the atomic unit of the whole feature.

FieldDescriptionPractical Usage
RowOne complete rule: every match column value in the row must evaluate true (AND) for the row to fireDesign each row as a fully self-contained condition — a row never applies partially; if any one match column value doesn’t match the Case, the entire row is skipped.
Match Column ValueThe specific value entered in a match column for that row, e.g. Case Type = “Customer Service Case”Keep match values as specific as the business rule actually requires; an overly broad value placed too high in the table can silently intercept Cases meant for a more specific rule further down (see Section 1.2, Row reordering).
Result Column ValueThe Service Level (SC-A06-01) assigned when the row matchesMust reference an already-Active Service Level; selecting a Service Level still in Draft status is not a meaningful live assignment even if the screen allows entering its name.
Catch-all row (recommended practice, not a documented system feature)An optional final row using broad/wildcard match values intended to guarantee every Case matches somethingNo source documents what happens when zero rows match; treat this row as good administrative practice, and confirm actual current behavior in a sandbox before relying on it (see Section 1.3).

2.3) Row Sequence / Precedence

Checklist of Service Level Determination’s row-ordering fields: Row Position, Sort Icon, Top-to-Bottom Evaluation, OR-Across-Rows

This is the mechanic that determines which rule actually wins when a Case could theoretically match more than one row.

FieldDescriptionPractical Usage
Row PositionImplicit precedence value; there is no separate numeric priority field on a rule rowThe single most important concept to explain to a stakeholder used to seeing a numeric priority column elsewhere in SAP — here, position in the table is the priority.
Sort Icon (reorder action)UI control used to move a selected row up or down in the tableUse whenever a new, more specific rule needs to fire before an existing broader rule; a newly added row defaults to the bottom, so it must be moved above any rule it needs to outrank.
Top-to-Bottom EvaluationThe system checks rows in table order and stops at the first row that evaluates trueBecause evaluation short-circuits, rows after a matching row are never evaluated for that Case, even if they would also have matched — plan row order with this in mind, not just as a display convenience.
OR-Across-RowsSeparate rows are combined as alternatives to each other, even though each row’s own columns are combined with ANDThis is what lets multiple independent rules coexist in one table: rule 1 OR rule 2 OR rule 3, where each rule internally is column1 AND column2 AND …

2.4) Activation State

Checklist of Service Level Determination’s activation-lifecycle fields: Draft/Unsaved Changes, Activate action, Previously Activated Rule Set

Editing this table is deliberately non-destructive to production behavior — nothing takes effect until an explicit step is completed.

FieldDescriptionPractical Usage
Draft / Unsaved ChangesEdits made to the rules table (new rows, edited values, reordering) that have not yet been explicitly activatedTest rule changes fully before activating; unsaved changes are visible to the editing administrator but have zero effect on live Case assignment until Activation completes.
Activate (action)Explicit action required to make edited rules take effectTreat activation as a genuine go-live gate — plan the timing of this step deliberately, the same way an on-premise system’s transport of a configuration change would be planned.
Previously Activated Rule SetThe rule set the system continues to apply while newer edits sit unactivatedConfirms that editing is safe — administrators can draft a next-iteration rule set without disrupting current SLA assignment for live Cases.

2.5) Bulk Maintenance (Excel Export/Import)

Checklist of Service Level Determination’s bulk-maintenance fields: Export to Excel, Offline Edit, Re-import

For rule tables that have grown large, editing row by row in the UI stops being practical — SAP provides an offline path for exactly this case.

FieldDescriptionPractical Usage
Export to Microsoft ExcelExports the current rules table (columns and row values) to an Excel fileUseful once a table approaches the 15-column cap or accumulates dozens of rows, where row-by-row UI editing becomes impractical.
Offline EditEditing the exported file in Excel before re-importingColumn structure (which Case fields are configured as match columns) must already be set up via Adapt Columns in the UI before export/import — bulk maintenance edits row values and additions, it does not itself define new columns.
Re-importBringing the edited Excel file back into the rules tableRe-imported rows still require the same Activation step (Section 2.4) before they take effect; bulk maintenance does not bypass the Draft → Activate lifecycle.

Prerequisite: Column structure must exist first — export/import is a row-value maintenance tool, not a column-design tool. Attempting to introduce a brand-new match field via an imported file without first running Adapt Columns in the UI is not a documented workflow.


L1) Big Picture

IDCategoryTitle
sc-001OverviewWhat is SAP Service Cloud?

L2-A) Master Data

IDCategoryTitle
sc-a01OverviewSAP Service Cloud Master Data: Overview, Hierarchy & Relationships
sc-a02-01Master DataSAP Service Cloud Organizational Unit
sc-a02-02Master DataSAP Service Cloud Employee
sc-a02-03Master DataSAP Service Cloud Business Role
sc-a02-04Master DataSAP Service Cloud Business User
sc-a02-05Master DataSAP Service Cloud Team
sc-a03-01Master DataSAP Service Cloud Email Channel
sc-a03-02Master DataSAP Service Cloud Email Template
sc-a04-01Master DataSAP Service Cloud Knowledge Base Provider
sc-a05-01Master DataSAP Service Cloud Service Catalog
sc-a05-02Master DataSAP Service Cloud Service Category
sc-a05-03Master DataSAP Service Cloud Case Type
sc-a06-01Master DataSAP Service Cloud Service Level
sc-a06-02Master DataSAP Service Cloud Service Level Determination 📍
sc-a07-01Master DataSAP Service Cloud Case Routing Rules
sc-a10-04Master DataSAP Service Cloud Warranty
sc-a11-01Master DataSAP Service Cloud Installed Base
sc-a11-02Master DataSAP Service Cloud Functional Location

L2-B) Transaction

IDCategoryTitle
sc-b01OverviewSAP Service Cloud Transactions: Process Flow, Hierarchy & Relationships