This prompt is designed for support platform engineers who need to flag high-value, strategic, or executive-escalation accounts before a ticket enters the routing engine. The primary job-to-be-done is to produce a deterministic VIP boolean with a tier justification and special-handling instructions, ensuring that your routing middleware respects commercial agreements and prevents high-touch accounts from landing in standard queues. The ideal user is an engineering lead or platform developer embedding this classification step into a pre-routing middleware layer, where the output directly controls queue assignment, agent notification, and SLA enforcement.
Prompt
VIP Customer Identification Prompt

When to Use This Prompt
Defines the exact job-to-be-done, the ideal user, required context, and the boundaries where this prompt should not be applied.
Use this prompt when you have access to structured account metadata—such as a customer tier label, a contract segment, or an executive escalation flag—and you need a normalized VIP decision that downstream systems can act on without ambiguity. The prompt expects inputs like [ACCOUNT_TIER], [ESCALATION_FLAGS], and [REQUEST_CONTEXT] to make a binary classification. It is not designed for general priority scoring, sentiment-based urgency detection, or SLA breach prediction; those tasks require separate classification steps that incorporate time-series data, queue depth, and agent availability. Applying this prompt to those problems will produce brittle results because it lacks the temporal and operational context those decisions demand.
Before wiring this into production, ensure you have a clear definition of what constitutes a VIP account in your organization. The prompt's effectiveness depends entirely on the quality and consistency of the [VIP_CRITERIA] you provide. If your account tier data is stale, if executive escalation lists are maintained manually, or if 'strategic' is a subjective label, you will get false positives that degrade queue fairness and erode trust in the routing system. The next section provides the copy-ready template; after that, the implementation harness explains how to add validation, logging, and human review checkpoints to catch these failure modes before they reach production.
Use Case Fit
Where this prompt works, where it fails, and the operational risks to manage before routing real customers.
Good Fit: Structured Account Metadata
Use when: the system has access to clean, structured account fields (tier, spend, CSM flag, contract type). The prompt reliably maps explicit signals to a VIP boolean. Avoid when: VIP status depends on implicit relationship signals not present in the data.
Bad Fit: Implicit or Political VIP Status
Risk: VIP status derived from tone, name recognition, or social media presence without structured data. The model will guess and produce false positives. Guardrail: Require at least one explicit signal (executive escalation flag, named account list, spend threshold) before the prompt runs.
Required Inputs
Minimum: account tier, support entitlement, and escalation history. Ideal: spend bracket, contract type, named account list membership, and recent churn risk score. Guardrail: If required fields are null, the prompt must return vip: false with a missing_data reason rather than guessing.
Operational Risk: Queue Fairness Degradation
Risk: Overly aggressive VIP flagging starves standard queues and trains the model to escalate whenever it sees executive language. Guardrail: Monitor the VIP flag rate daily. If it exceeds 5% of total volume without a corresponding increase in true VIP accounts, recalibrate thresholds and add negative examples.
Operational Risk: VIP Bypass Abuse
Risk: Users learn that mentioning executives or using urgent language triggers VIP routing, creating a shadow escalation path. Guardrail: Cross-reference VIP flags against the named account list. If a flagged account is not on the list, route to a review queue instead of immediate priority handling.
Operational Risk: Stale Tier Data
Risk: Recently downgraded accounts retain VIP routing because the prompt reads cached tier data. Guardrail: Validate the tier_updated_at timestamp. If older than the contract effective date, fetch fresh data or route conservatively as standard tier until confirmed.
Copy-Ready Prompt Template
A copy-ready prompt template for identifying VIP customers from account and ticket data before routing.
This prompt template is designed to be pasted directly into your routing middleware. It accepts live account and ticket data, evaluates it against configurable VIP criteria, and returns a structured boolean decision with tier justification and special-handling instructions. The template uses square-bracket placeholders for all dynamic inputs, ensuring it can be adapted to any CRM, ticketing system, or account data model without leaking implementation details.
codeSYSTEM: You are a VIP customer identification router. Your job is to analyze account and ticket data to determine if a customer qualifies for VIP treatment before routing. You must be conservative: only flag as VIP when evidence is clear. False positives degrade queue fairness for genuine high-priority customers. INPUT DATA: - Account Tier: [ACCOUNT_TIER] - Contract SLA: [CONTRACT_SLA] - Annual Revenue: [ANNUAL_REVENUE] - Strategic Flag: [STRATEGIC_FLAG] - Executive Contact: [EXECUTIVE_CONTACT] - Support History: [SUPPORT_HISTORY_SUMMARY] - Ticket Subject: [TICKET_SUBJECT] - Ticket Priority: [TICKET_PRIORITY] - Requesting User Role: [USER_ROLE] - Escalation History: [ESCALATION_HISTORY] VIP CRITERIA: A customer is VIP if ANY of the following are true: 1. Account tier is "Enterprise" or "Strategic" AND contract SLA is "Platinum" or "Diamond" 2. Annual revenue exceeds [REVENUE_THRESHOLD] 3. Strategic flag is explicitly set to TRUE 4. Executive contact field is populated AND ticket priority is "Critical" or "Urgent" 5. Escalation history shows prior executive or VP-level involvement in last 90 days [ADDITIONAL_VIP_RULES] OUTPUT SCHEMA: { "is_vip": boolean, "confidence": "high" | "medium" | "low", "matched_criteria": ["criterion_1", "criterion_2"], "tier_justification": "string explaining why VIP status was assigned or denied", "special_handling": { "priority_queue": boolean, "dedicated_agent_required": boolean, "executive_notification": boolean, "sla_override_minutes": number | null, "handling_instructions": "string with specific routing or response requirements" }, "fallback_tier": "string indicating standard routing tier if not VIP" } CONSTRAINTS: - Do not flag as VIP based on a single weak signal (e.g., ticket priority alone without account context) - If account data is missing or incomplete, set confidence to "low" and default to standard routing - For trial or freemium accounts, only flag as VIP if executive contact is present AND ticket is critical - Do not use customer name, industry, or sentiment as VIP signals unless explicitly listed in criteria - If multiple criteria are partially met but none fully satisfied, explain ambiguity in tier_justification USER: Analyze the provided account and ticket data against the VIP criteria. Return only the JSON output.
To adapt this template, replace each square-bracket placeholder with live data from your CRM, ticketing system, or account database. The [ADDITIONAL_VIP_RULES] placeholder allows you to inject organization-specific criteria, such as partner status, NPS score thresholds, or recent expansion signals. The [REVENUE_THRESHOLD] should be set to a concrete value matching your segmentation model. Ensure that all input fields are populated before invocation; missing fields should be passed as null or empty strings rather than omitted, so the model can correctly assess data completeness and adjust confidence accordingly.
Before deploying, validate this prompt against your golden test set, including edge cases like trial accounts with executive contacts, enterprise accounts with missing SLA data, and recently downgraded accounts still in grace periods. Run eval checks for false-positive VIP flags that would unfairly prioritize non-critical requests over genuine high-priority work. If your routing middleware supports it, log the full prompt and response for audit trails and observability into VIP classification decisions over time.
Prompt Variables
Inputs the VIP Customer Identification Prompt needs to work reliably. Validate each before invoking the model to prevent false-positive VIP flags that degrade queue fairness.
| Placeholder | Purpose | Example | Validation Notes |
|---|---|---|---|
[CUSTOMER_PROFILE] | Full account record including tier, contract type, support plan, and account age | {"tier": "enterprise", "plan": "premium_support", "age_days": 730, "arr": 250000} | Schema check: must contain tier, plan, and arr fields. Null allowed only if account is unclassified. Reject empty objects. |
[REQUEST_CONTEXT] | Current support ticket or incoming request with subject, body, and channel | {"subject": "Production outage - API gateway down", "body": "All endpoints returning 503 since 14:22 UTC...", "channel": "priority_slack"} | Schema check: must contain subject and body. Channel must be one of [email, chat, phone, priority_slack, executive_email]. Reject if body is empty string. |
[ESCALATION_HISTORY] | Recent escalation events, executive contacts, or prior VIP flags for this account | [{"type": "executive_reachout", "date": "2025-01-10", "contact": "cfo@example.com"}] | Array check: must be valid JSON array. Empty array is valid. Each entry must have type and date fields. Null allowed if no history exists. |
[TIER_THRESHOLDS] | Business rules defining which tiers, ARR bands, or contract types qualify as VIP | {"vip_tiers": ["enterprise", "strategic"], "vip_arr_min": 100000, "vip_plans": ["premium_support", "dedicated_tam"]} | Schema check: vip_tiers must be non-empty array. vip_arr_min must be positive integer. vip_plans must be array of valid plan identifiers. Reject if thresholds are missing. |
[EXECUTIVE_CONTACTS_LIST] | Known executive email domains, names, or escalation contacts that trigger VIP treatment | ["@fortune500.com", "ceo@bigcorp.com", "board@example.org"] | List check: must be array of strings. Each entry must be valid email or domain pattern. Empty array means no executive contact matching. Validate no wildcard-only entries that match everything. |
[OUTPUT_SCHEMA] | Expected JSON structure for the VIP classification result | {"is_vip": boolean, "tier": string, "justification": string, "special_handling": string[], "confidence": number} | Schema check: must be valid JSON Schema object. is_vip must be boolean. confidence must be 0-1. special_handling must be array of strings from allowed handling codes. Reject schemas missing required fields. |
[FALSE_POSITIVE_CONSTRAINTS] | Rules preventing over-classification: max VIP rate, exclusion criteria, and review triggers | {"max_vip_rate": 0.05, "exclude_tiers": ["trial", "freemium"], "require_review_if": ["first_contact", "low_confidence"]} | Threshold check: max_vip_rate must be between 0.01 and 0.20. exclude_tiers must not overlap with vip_tiers from TIER_THRESHOLDS. require_review_if must use valid trigger codes. Reject if constraints would never allow VIP classification. |
Implementation Harness Notes
How to wire the VIP identification prompt into a production routing middleware with validation, retries, and audit logging.
The VIP identification prompt is not a standalone chatbot; it is a classification component inside a routing middleware pipeline. When a support ticket, email, or API request arrives, the middleware must first resolve the customer's account context—pulling CRM fields, contract metadata, and support history—before calling the model. The prompt receives this resolved context as [CUSTOMER_PROFILE] and returns a structured VIP boolean with tier justification. The middleware then uses this output to branch the request into premium queues, assign named support engineers, or trigger executive escalation workflows. The model's job is narrow: read the evidence and produce a deterministic classification. The application owns the routing action.
Wire the prompt into a classification step with a strict JSON schema validator. The expected output shape is { "is_vip": boolean, "vip_tier": "executive" | "strategic" | "enterprise" | "standard", "confidence": 0.0-1.0, "justification": ["string"], "special_handling": ["string"] }. If the model returns malformed JSON, missing required fields, or an invalid enum value, the harness should retry once with a repair prompt that includes the validation error. If the retry also fails, log the failure and route the request to a manual review queue rather than guessing. For high-throughput systems, consider a lightweight regex pre-check on the account tier field before invoking the model—if the CRM already has a definitive tier: enterprise with a vip_flag: true, you can short-circuit the LLM call entirely and save latency and cost.
Model choice matters here. This is a classification task with high precision requirements, not a creative generation task. A smaller, faster model (e.g., Claude Haiku, GPT-4o-mini, or a fine-tuned open-weight model) is usually sufficient and keeps per-request cost low. However, if your VIP criteria involve nuanced judgment—such as detecting executive escalation tone in free-text notes or weighing contradictory account signals—test whether a larger model reduces false positives. Log every classification decision with the input context, model output, validator result, and final routing action. This audit trail is essential when a VIP customer is misrouted to a standard queue and your team needs to diagnose whether the prompt, the account data, or the routing logic failed.
Avoid over-escalation drift. The most common production failure mode is the prompt becoming too generous with VIP flags over time, degrading queue fairness for non-VIP customers. Implement a false-positive monitor: track the ratio of VIP classifications to total requests and alert if it exceeds historical baselines. Periodically run a golden eval set containing known VIP and non-VIP accounts through the prompt and compare against expected labels. If you add new VIP criteria (e.g., a new strategic partner program), update the eval set before deploying the prompt change. For regulated industries, require a human reviewer to confirm VIP classifications above a configurable confidence threshold before the request bypasses standard queues.
Expected Output Contract
Validate the model response against this contract before routing. Every field must pass the specified check or trigger a repair or fallback.
| Field or Element | Type or Format | Required | Validation Rule |
|---|---|---|---|
vip_flag | boolean | Must be exactly true or false. Null or string values fail. | |
vip_tier | string (enum) | Must match one of: [EXECUTIVE_ESCALATION, STRATEGIC, HIGH_VALUE, STANDARD]. Case-sensitive. | |
confidence_score | number (0.0-1.0) | Must be a float between 0.0 and 1.0 inclusive. Values outside range fail. | |
justification_summary | string | Must be 1-3 sentences referencing specific account attributes. Empty string fails. | |
matched_criteria | array of strings | Must contain at least one item from the allowed criteria list. Unknown criteria trigger a warning. | |
special_handling_instructions | array of strings | If present, each item must be a non-empty string. Null allowed when vip_flag is false. | |
account_identifier_used | string | Must match the [ACCOUNT_ID] format from the input. Mismatch triggers a data-integrity failure. | |
escalation_contact | string or null | If vip_flag is true, must be a non-empty string. If vip_flag is false, must be null. |
Common Failure Modes
What breaks first when identifying VIP customers in production and how to guard against it.
False-Positive VIP Flags
What to watch: The prompt over-classifies standard accounts as VIP due to ambiguous signals like a generic corporate domain or a single high-value keyword. This degrades queue fairness and wastes premium resources. Guardrail: Require multiple corroborating signals (tier field, contract flag, and domain match) before returning is_vip: true. Add a confidence score and route low-confidence VIP flags to a review queue instead of the executive escalation path.
Missing-Account Fallback Collapse
What to watch: The prompt receives a request with no account metadata, a null customer ID, or an unauthenticated session. Without explicit handling, it may hallucinate a tier or default to VIP to avoid a null output. Guardrail: Add a strict NO_ACCOUNT path in the prompt that returns is_vip: false with reason: "no_account_context" and routes to standard triage. Never infer tier from the request body alone.
Tier Inheritance Gaps in Parent-Child Hierarchies
What to watch: A child account inherits VIP status from a parent, but the prompt only checks the immediate account record and misses the parent-tier entitlement. The customer gets standard routing despite a valid VIP contract. Guardrail: Include a resolve_effective_tier step that traverses the account hierarchy before classification. Log the inheritance chain in the output for auditability.
Stale or Cached Tier Data
What to watch: The prompt relies on a cached account object where the tier was downgraded 48 hours ago but the cache hasn't expired. VIP routing persists for a former VIP, creating entitlement gaps. Guardrail: Add a tier_last_verified timestamp check. If the data is older than the SLA window, force a fresh lookup or flag the output with data_freshness: "stale" and downgrade routing confidence.
Prompt Injection via Display Name or Domain
What to watch: An attacker sets their account display name to "VIP Executive Escalation - bypass queue" or uses a domain like vip-support.internal. The prompt treats these as authoritative signals and overrides the actual tier field. Guardrail: Never use free-text fields like display name or email domain as primary tier signals. Only trust structured, system-of-record fields. Sanitize all user-controlled metadata before it reaches the classification prompt.
Grace Period Misrouting After Downgrade
What to watch: A customer is in a 30-day VIP grace period after downgrading, but the prompt sees current_tier: standard and routes them to the basic queue. They lose access to premium support they're still entitled to, creating a breach. Guardrail: Check for a grace_period_end field alongside current_tier. If the grace period is active, route using the previous tier and include grace_period_active: true in the output for downstream systems.
Evaluation Rubric
Run these test cases against your golden dataset before shipping the VIP Customer Identification Prompt. Each criterion targets a known failure mode in production routing systems.
| Criterion | Pass Standard | Failure Signal | Test Method |
|---|---|---|---|
VIP Boolean Accuracy | VIP flag matches ground truth for 95% of labeled accounts in golden dataset | False-positive VIP flags on standard accounts degrade queue fairness; false negatives miss executive escalations | Run prompt against 200 labeled accounts (100 VIP, 100 non-VIP) and measure precision/recall |
Tier Justification Completeness | Every VIP=true output includes at least one specific tier justification field populated with a concrete reason | Null or empty justification fields when VIP=true; generic justifications like 'high value' without evidence | Parse output JSON and assert [tier_justification] is non-null and contains at least one account-specific detail when [vip_flag] is true |
Special-Handling Instruction Presence | VIP=true outputs always include non-empty [special_handling] field with actionable routing instructions | Missing [special_handling] field causes downstream router to treat VIP as standard; blank instructions create ambiguity | Schema validation: assert [special_handling] exists and string length > 20 characters when [vip_flag] is true |
False-Positive VIP Rate | Fewer than 3% of standard accounts incorrectly flagged as VIP in test set | Standard accounts routed to premium queues create queue-fairness complaints and waste high-touch resources | Count false positives in 500 standard-account test cases; calculate false-positive rate; fail if > 3% |
False-Negative VIP Rate | Fewer than 1% of known VIP accounts missed in test set | Missed VIP accounts bypass executive escalation paths and risk SLA breach on high-value customers | Count false negatives in 200 known-VIP test cases; calculate false-negative rate; fail if > 1% |
Edge Case: Trial VIP Accounts | Trial accounts with executive-sponsor flag correctly identified as VIP with trial-stage caveat in rationale | Trial accounts with VIP signals routed as standard or missing trial-stage context in justification | Run 20 trial-VIP edge cases through prompt; assert [routing_tier] is premium and [decision_rationale] mentions trial context |
Edge Case: Recently Downgraded Accounts | Accounts downgraded within 7 days correctly flagged with [grace_period_active] true and tier reflects prior level | Recently downgraded accounts immediately routed as standard, violating grace-period commitments | Run 15 recently-downgraded test cases; assert [grace_period_active] is true and [routing_tier] matches prior tier |
Output Schema Compliance | 100% of outputs parse as valid JSON matching the full output contract | Malformed JSON, missing required fields, or extra fields break downstream dispatch middleware | Parse every output with JSON schema validator; reject any response that fails schema validation or contains unexpected fields |
Enabling Efficiency, Speed & Accuracy
Intelligent Analysis, Decision & Execution
We build AI systems for teams that need search across company data, workflow automation across tools, or AI features inside products and internal software.
Talk to Us
Search across company data
Give teams answers from docs, tickets, runbooks, and product data with sources and permissions.
Useful when people spend too long searching or get different answers from different systems.

Automate internal workflows
Use AI to route work, draft outputs, trigger actions, and keep approvals and logs in place.
Useful when repetitive work moves across multiple tools and teams.

Add AI to products and internal tools
Build assistants, guided actions, or decision support into the software your team or customers already use.
Useful when AI needs to be part of the product, not a separate tool.
Adapt This Prompt
How to adapt
Start with the base prompt and a simple JSON schema. Use a lightweight model call without retries or strict validation. Focus on getting the VIP boolean and tier justification correct before adding production guardrails.
code[SYSTEM] You are a customer tier classifier. Given [ACCOUNT_CONTEXT], return a JSON object with: - "is_vip": boolean - "tier": string - "justification": string - "special_handling": string[] [ACCOUNT_CONTEXT] [TICKET_METADATA] [USER_PROFILE_FIELDS]
Watch for
- Missing schema checks causing downstream parse errors
- Overly broad VIP definitions that flag too many accounts
- No handling for missing account fields or null values

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.
Partnered with leading AI, data, and software stack.
How We Work
Custom AI workflows for your Business
One-fit-all AI don't work for modern businesses. At Inferensys, we aim to understand your business & custom requirements; which we use to define most efficient agentic workflows, the data, and the tools for your business.
01
Review the use case
We understand the task, the users, and where AI can actually help.
Read more02
Pick the right approach
We define what needs search, automation, or product integration.
Read more03
Build the first useful version
We implement the part that proves the value first.
Read more04
Improve from there
We add the checks and visibility needed to keep it useful.
Read moreThe first call is a practical review of your use case and the right next step.
Talk to Us