Inferensys

Prompt

VIP Customer Identification Prompt

A practical prompt playbook for identifying VIP, strategic, and executive-escalation accounts in production support routing workflows.
Developer doing prompt engineering on laptop, prompt variations visible on screen, casual coding session.
PROMPT PLAYBOOK

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.

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.

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.

PRACTICAL GUARDRAILS

Use Case Fit

Where this prompt works, where it fails, and the operational risks to manage before routing real customers.

01

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.

02

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.

03

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.

04

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.

05

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.

06

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.

PROMPT PLAYBOOK

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.

code
SYSTEM:
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.

IMPLEMENTATION TABLE

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.

PlaceholderPurposeExampleValidation 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

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.

PROMPT PLAYBOOK

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.

IMPLEMENTATION TABLE

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 ElementType or FormatRequiredValidation 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.

PRACTICAL GUARDRAILS

Common Failure Modes

What breaks first when identifying VIP customers in production and how to guard against it.

01

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.

02

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.

03

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.

04

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.

05

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.

06

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.

IMPLEMENTATION TABLE

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.

CriterionPass StandardFailure SignalTest 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

ADAPTATION OPTIONS

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