Inferensys

Prompt

SLA Tier Assignment Prompt for Incoming Requests

A practical prompt playbook for using SLA Tier Assignment Prompt for Incoming Requests in production AI workflows.
Developer doing prompt engineering on laptop, prompt variations visible on screen, casual coding session.
PROMPT PLAYBOOK

When to Use This Prompt

Determines when to apply the SLA tier assignment prompt and when to choose a different routing strategy.

This prompt is for platform engineers and support operations teams who need to map incoming customer requests to the correct SLA tier before the request enters a queue. The prompt takes a customer's contract entitlements, account metadata, and the request content, then returns a deterministic SLA tier with a justification, first-response deadline, and escalation path. Use this when your routing middleware must respect commercial agreements and when a wrong tier assignment creates contractual risk or customer dissatisfaction. This prompt assumes you have already extracted the customer identifier and can look up their contract data before invoking the model.

The ideal scenario is a multi-tenant SaaS platform where different customers have different support tiers—Basic, Premium, Enterprise—and each tier carries distinct response-time obligations. Before invoking this prompt, your system should resolve the customer ID from the incoming request (via API key, session token, or email domain) and retrieve the corresponding contract record from your CRM or billing system. The prompt then combines that structured entitlement data with the unstructured request body to produce a tier assignment that is auditable and consistent. Do not use this prompt when you lack reliable contract data, when the request volume exceeds your model's latency budget for synchronous routing, or when the SLA tier is already determined by a deterministic rules engine that doesn't require natural language reasoning.

Avoid using this prompt for real-time, sub-100ms routing decisions where a simple lookup table suffices. If your customer base has only one SLA tier, or if tier assignment is purely a function of a single database field with no ambiguity, the model adds latency and cost without benefit. Similarly, do not use this prompt when the request content is irrelevant to tier assignment—for example, when all Enterprise customers get the same SLA regardless of what they ask. In those cases, a direct database lookup is faster, cheaper, and more reliable. Reserve this prompt for environments where contract entitlements interact with request content in ways that require reasoning: a Premium-tier customer reporting a complete outage might need escalation beyond their standard SLA, while an Enterprise customer asking a how-to question might not need the full Enterprise response commitment.

Before deploying, validate the prompt against a golden dataset of at least 50 labeled examples covering all tier combinations, edge cases like expired contracts or grandfathered entitlements, and ambiguous requests where the severity is unclear. Log every tier assignment with the input context, model output, and final routing decision so you can audit SLA compliance over time. If the model's tier assignment conflicts with a human reviewer's judgment more than 5% of the time, investigate whether your contract metadata is incomplete or whether the prompt's severity-assessment instructions need refinement.

PRACTICAL GUARDRAILS

Use Case Fit

Where the SLA Tier Assignment Prompt works, where it breaks, and the operational preconditions required before deployment.

01

Good Fit: Deterministic Contract Mapping

Use when: You have structured customer account data with explicit contract tiers and issue severity classifications. The prompt excels at combining two known fields into a deterministic SLA tier with a first-response deadline. Guardrail: Validate the prompt output against a lookup table of expected tier assignments before exposing it to downstream queues.

02

Bad Fit: Implied or Missing Entitlements

Avoid when: The prompt must infer a customer's SLA tier from unstructured text, conversation history, or sentiment alone. Without explicit contract metadata, the model will hallucinate entitlements. Guardrail: Gate the prompt behind a data-fetch step that retrieves the customer's actual contract tier from a system of record. If the fetch fails, route to a human for manual classification.

03

Required Inputs: Contract Data and Severity

What to watch: The prompt is only as reliable as its inputs. Missing or stale customer tier data produces incorrect SLA assignments that cascade into missed deadlines and breach penalties. Guardrail: Implement a pre-flight check that confirms both customer_tier and issue_severity are present and non-null before invoking the prompt. Log any invocations with missing inputs for audit.

04

Operational Risk: Escalation Path Drift

What to watch: The prompt may suggest an escalation path or team name that does not exist in your current incident management tool. This creates a dead-end where critical issues are assigned to a non-existent queue. Guardrail: Constrain the output schema to reference only escalation targets from an approved, machine-readable service catalog. Validate the generated escalation path against that catalog in post-processing.

05

Operational Risk: Overconfident Justifications

What to watch: The model generates fluent justifications that sound authoritative but may misrepresent the contract terms or severity definitions. Operators may trust the text and skip verification. Guardrail: Treat the justification field as a draft for human review in high-severity cases. For P0/P1 issues, require a human to confirm the justification before the SLA timer starts.

06

Operational Risk: Time-Bound Staleness

What to watch: The first-response deadline is calculated at invocation time but the ticket may sit in a backlog before processing begins. The deadline becomes stale and misleading. Guardrail: Recalculate the deadline dynamically in the consuming system based on the assigned tier and the time the ticket actually enters the queue, not the time the prompt ran.

PROMPT PLAYBOOK

Copy-Ready Prompt Template

A copy-ready prompt template for assigning an SLA tier to a customer request based on contract entitlements and issue criticality.

This prompt template is designed to be wired directly into a support platform's intake pipeline. It forces the model to act as a deterministic router, not a creative assistant. The core instruction is to map a customer's request and their associated contract metadata to a specific SLA tier, producing a structured JSON object that downstream systems—like queue dispatchers, alerting tools, and escalation workflows—can consume without further parsing. The prompt explicitly forbids inventing contract terms and requires an 'UNCLEAR' tier when data is insufficient, preventing silent misrouting.

text
You are an SLA tier assignment system. Your only job is to map the incoming customer request to a single SLA tier based on the provided contract entitlements and issue criticality.

You must follow these rules exactly:
1. Use ONLY the provided [CONTRACT_ENTITLEMENTS] and [ISSUE_CRITICALITY] to determine the tier.
2. Do not invent, assume, or infer any contract terms, support levels, or customer statuses that are not explicitly stated in the provided data.
3. If the provided information is insufficient to determine a tier with high confidence, you MUST set the tier to 'UNCLEAR' and explain exactly what information is missing.
4. Your output must be a single, valid JSON object conforming to the [OUTPUT_SCHEMA].

[INPUT]
Customer Request: [CUSTOMER_REQUEST_TEXT]

[CONTEXT]
Contract Entitlements: [CONTRACT_ENTITLEMENTS]
Issue Criticality: [ISSUE_CRITICALITY]

[OUTPUT_SCHEMA]
{
  "sla_tier": "string (one of: 'CRITICAL', 'HIGH', 'MEDIUM', 'LOW', 'UNCLEAR')",
  "justification": "string (a concise, evidence-based reason for the tier assignment, citing specific contract terms or criticality markers)",
  "first_response_deadline": "string (ISO 8601 datetime or 'N/A' if UNCLEAR)",
  "escalation_path": "string (the named team or protocol for this tier, or 'N/A' if UNCLEAR)"
}

[CONSTRAINTS]
- The 'justification' field must be a factual summary, not a recommendation or apology.
- If tier is 'UNCLEAR', set 'first_response_deadline' and 'escalation_path' to 'N/A'.
- Do not include any text outside the JSON object.

To adapt this template, you must replace the placeholders with data from your application layer. [CUSTOMER_REQUEST_TEXT] is the raw, unmodified body of the request. [CONTRACT_ENTITLEMENTS] should be a structured text block containing the customer's specific support plan, SLA targets, and any account-specific overrides, fetched from your CRM or account database. [ISSUE_CRITICALITY] is a pre-assessed label (e.g., 'System Down', 'Feature Bug', 'General Inquiry') that should be determined by a separate classification step before this prompt is called. The [OUTPUT_SCHEMA] can be extended, but the sla_tier enum values must match your downstream routing logic exactly. For high-stakes environments, implement a validation layer that checks the JSON schema and, if the tier is 'UNCLEAR', automatically triggers a human review task instead of routing to a standard queue.

IMPLEMENTATION TABLE

Prompt Variables

Placeholders required for the SLA Tier Assignment Prompt. Each variable must be populated from a trusted system of record before prompt assembly. Missing or incorrect inputs are the most common cause of misassigned tiers.

PlaceholderPurposeExampleValidation Notes

[CUSTOMER_ACCOUNT_ID]

Unique identifier for the customer account to query contract entitlements and SLA metadata.

cust-98421

Must match an existing account ID in the CRM or billing system. Null or unknown IDs should abort the prompt and route to manual review.

[CUSTOMER_TIER]

The contracted support tier for this account, fetched from the account system of record.

Premium

Must be one of the enumerated tier values defined in the contract schema. If the tier is missing or unrecognized, default to the lowest SLA tier and flag for review.

[ISSUE_DESCRIPTION]

The full, unredacted text of the incoming request or incident as submitted by the user.

Our payment gateway is returning 503 errors for all customers in the EU region.

Must be a non-empty string. Truncated or sanitized descriptions can hide criticality signals. Validate length and character encoding before injection.

[AFFECTED_SERVICE_ID]

Identifier for the primary service or component affected, mapped from a service catalog.

svc-payment-gateway

Must resolve to a valid entry in the service catalog. Null is acceptable only if the service cannot be determined, which should lower the criticality confidence.

[USER_IMPACT_COUNT]

Estimated number of users or accounts affected, if known.

1250

Must be an integer or null. If null, the prompt should treat impact scope as unknown and avoid assuming low impact. Validate that the value is non-negative.

[CONTRACT_SLA_METADATA]

JSON object containing the customer's specific SLA targets, response times, and escalation paths.

{"p1_response_mins": 15, "p1_resolution_hours": 4}

Must be valid JSON. Schema validation required: check for required fields like p1_response_mins. A missing or malformed object should halt automated assignment and trigger an on-call alert.

[REQUEST_TIMESTAMP]

ISO 8601 timestamp of when the request was received, used to calculate SLA deadlines.

2025-03-15T09:22:00Z

Must be a valid ISO 8601 datetime string. Future timestamps or timestamps older than the SLA window should be rejected. This value is critical for first-response deadline calculation.

PROMPT PLAYBOOK

Implementation Harness Notes

A practical guide for wiring the SLA Tier Assignment prompt into a production request pipeline with validation, caching, and audit trails.

This prompt is designed to be a deterministic step in your request ingestion pipeline, not a standalone chatbot interaction. It should be called after customer identification and before the request is dispatched to a processing queue. The core integration involves resolving the requester to a [CUSTOMER_ACCOUNT_DATA] object via your internal account API, loading the [SLA_DEFINITIONS] from a configuration service or feature flag, and assembling the final prompt with the raw [REQUEST_CONTENT]. The model's output is a structured JSON object that must be programmatically validated before any routing decision is made.

To integrate, build a small service or middleware function that executes the following sequence: First, call your customer account API with the authenticated user's ID to fetch their current tier, contract entitlements, and any special SLA overrides. Second, retrieve the active SLA definitions from your configuration store—these should map tier names to response time targets and escalation paths. Third, inject these into the prompt template along with the raw request text. After receiving the model's JSON response, validate the tier field against a strict enum of your known SLA tiers (e.g., PLATINUM, GOLD, STANDARD). If the tier is UNCLEAR or the JSON fails schema validation, do not route the request automatically. Instead, push it to a manual triage queue and log the failure with the full input snapshot, model output, and validation error for immediate review.

For high-throughput production systems, implement two key optimizations. Cache the [SLA_DEFINITIONS] and customer tier lookups aggressively, as these change infrequently and a live API call on every request adds unnecessary latency. Use a read-through cache with a time-to-live (TTL) aligned with your SLA update cadence. Additionally, log every assignment as an immutable audit record containing the input request snapshot, the resolved customer tier, the model's raw output, the final routed queue, and a timestamp. This audit trail is critical for debugging misroutes, demonstrating SLA compliance to customers, and providing a dataset for future model fine-tuning or evaluation.

Avoid wiring this prompt directly to a customer-facing response. The output is a machine-readable routing instruction, not a message to the end user. If the model returns a justification, treat it as internal metadata for auditors and support agents, not as a public explanation. Finally, set a low timeout and a single retry for the model call; if the model is unavailable or times out, fall back to a default routing rule based solely on the customer's contracted tier rather than blocking the request pipeline.

IMPLEMENTATION TABLE

Expected Output Contract

Defines the required fields, types, and validation rules for the SLA tier assignment response. Use this contract to build a post-processing validator that rejects malformed or ungrounded outputs before they reach downstream routing logic.

Field or ElementType or FormatRequiredValidation Rule

assigned_sla_tier

string (enum: P1, P2, P3, P4)

Must match one of the allowed enum values. Reject if value is not in the defined set.

tier_justification

string

Must contain at least one quoted excerpt from [REQUEST_BODY] or [CUSTOMER_ACCOUNT_DATA]. Reject if no direct evidence is cited.

first_response_deadline_utc

ISO 8601 datetime string

Must be a valid future datetime. Reject if the datetime is in the past or cannot be parsed by a standard ISO 8601 parser.

escalation_path

array of strings

Must contain at least one valid team name from [ESCALATION_POLICY]. Reject if the array is empty or contains an unrecognized team identifier.

customer_entitlement_used

string

Must match a contract ID or entitlement name present in [CUSTOMER_ACCOUNT_DATA]. Reject if the value cannot be found in the provided account context.

confidence_score

number (0.0 to 1.0)

Must be a float between 0.0 and 1.0 inclusive. If below 0.7, flag for human review before automated routing.

missing_information_flags

array of strings

If present, each string must describe a specific piece of missing data that prevented higher-confidence assignment. Null allowed if no information is missing.

PRACTICAL GUARDRAILS

Common Failure Modes

SLA tier assignment fails silently when the model hallucinates entitlements, ignores contract metadata, or produces unjustified tiers. These are the most common production failure patterns and how to prevent them.

01

Hallucinated Entitlement Lookup

What to watch: The model guesses a customer's SLA tier instead of using the provided account metadata. It may assign 'Platinum' to an unknown account or invent contract terms. Guardrail: Require the prompt to cite the exact customer_tier field from input metadata. If the field is missing, the output must be TIER_UNKNOWN with an escalation flag, never a guess.

02

Severity-Tier Mismatch

What to watch: A Sev-1 total outage is assigned a low SLA tier because the model focused on polite language or a single low-impact keyword. Guardrail: Implement a cross-validation rule in the harness: if issue_severity is critical but sla_tier is standard or lower, flag for human review before the routing decision takes effect.

03

Missing Escalation Path

What to watch: The prompt returns a valid SLA tier but omits the required escalation contact or team, leaving operators with no action path when the first-response deadline is missed. Guardrail: Make escalation_contact a required field in the output schema. Validate non-empty string in the harness and reject the response if absent.

04

Deadline Calculation Errors

What to watch: The model miscalculates the first-response deadline by using the wrong timezone, ignoring business-hours-only SLA terms, or adding minutes instead of hours. Guardrail: Post-process the deadline in application code using a deterministic time library and the known SLA rules per tier. The prompt should output the tier and duration; the harness calculates the actual timestamp.

05

Override Without Justification

What to watch: The model overrides the standard tier mapping with a higher or lower tier but provides no traceable reason, making the decision unauditable. Guardrail: Require an override_reason field whenever the assigned tier differs from the default mapping. Validate that the reason references specific evidence from the request or account data, not generic statements.

06

Multi-Issue Confusion

What to watch: A single request contains multiple issues at different severity levels, and the model averages them into a mid-tier SLA that serves none correctly. Guardrail: Instruct the prompt to assign tier based on the highest-severity issue present, not an average. Add a harness check that extracts all detected severities and verifies the assigned tier matches the maximum.

IMPLEMENTATION TABLE

Evaluation Rubric

Use this rubric to evaluate the SLA Tier Assignment Prompt's output quality before shipping. Each criterion targets a specific failure mode observed in production routing systems.

CriterionPass StandardFailure SignalTest Method

Tier Accuracy

Assigned SLA tier matches the expected tier from the golden dataset based on [CUSTOMER_TIER] and [ISSUE_CRITICALITY]

Tier mismatch between output and expected value in the test case

Run against a golden dataset of 50+ labeled request/customer pairs and measure exact-match accuracy

Justification Grounding

Justification references specific fields from [CUSTOMER_ACCOUNT_DATA] or [REQUEST_BODY] with quoted evidence

Justification contains generic reasoning or hallucinated contract terms not present in the input

Parse justification for quoted strings and verify each quote exists in the provided input context

Deadline Calculation

First-response deadline is correctly calculated as current timestamp + [SLA_RESPONSE_WINDOW] for the assigned tier

Deadline is missing, uses wrong window, or references a timestamp not derivable from the input

Validate deadline against known SLA windows; check that deadline minus current time equals the tier's response window

Escalation Path Validity

Escalation path matches the predefined path for the assigned tier in [ESCALATION_MATRIX]

Escalation target is missing, references a non-existent team, or uses a path from the wrong tier

Cross-reference output escalation path against the escalation matrix; flag any team name not in the allowed set

Tier Override Handling

When [OVERRIDE_FLAG] is true, the output uses the override tier and notes the reason from [OVERRIDE_REASON]

Override is ignored, or override is applied when [OVERRIDE_FLAG] is false or missing

Test with explicit override=true and override=false cases; verify output tier matches override only when flag is true

Missing Data Resilience

When required fields like [CUSTOMER_TIER] are null or missing, output returns an error object with a clear missing-field message

Prompt hallucinates a tier, defaults to highest tier without noting uncertainty, or returns a malformed response

Send requests with intentionally missing [CUSTOMER_TIER] and verify the output contains an error field, not a guessed tier

Output Schema Compliance

Output is valid JSON matching the [OUTPUT_SCHEMA] with all required fields present and correctly typed

Output is missing required fields, contains extra untyped fields, or is not parseable JSON

Validate output against the JSON schema; reject any response that fails structural validation

ADAPTATION OPTIONS

Adapt This Prompt

How to adapt

Use the base prompt with a single example SLA tier mapping. Skip the full contract metadata lookup and have the model infer tier from the request body alone. Accept free-text output instead of strict JSON.

Prompt snippet

code
You are an SLA tier classifier. Given the request below, assign one tier: [TIER_1], [TIER_2], [TIER_3].

Request: [REQUEST_BODY]

Return: tier, one-sentence justification.

Watch for

  • Model hallucinating contract terms that aren't in the prompt
  • Inconsistent tier assignment across similar requests
  • No way to validate against actual customer entitlements
Prasad Kumkar

About the author

Prasad Kumkar

CEO & MD, Inference Systems

Prasad Kumkar is the CEO & MD of Inference Systems and writes about AI systems architecture, LLM infrastructure, model serving, evaluation, and production deployment. Over 5+ years, he has worked across computer vision models, L5 autonomous vehicle systems, and LLM research, with a focus on taking complex AI ideas into real-world engineering systems.

His work and writing cover AI systems, large language models, AI agents, multimodal systems, autonomous systems, inference optimization, RAG, evaluation, and production AI engineering.