Use Cases/Customer Support

Your AI chatbot quoted a refund policy that does not exist. Now you have to honor it.

Support agents interact directly with customers. A single hallucinated response can create legal liability, damage trust, or process unauthorized refunds. Veto validates governed actions before it reaches the customer, enforcing tiered refund limits, escalation rules, and PII protection that the model does not control.

Tiered refund policiesAuto-escalationPII redaction

Chatbot promises can bind the company

Support agents fail in three expensive ways: they quote a policy exception, expose customer data, or trigger a refund outside authority. Veto checks the tool call and the response commitment before either reaches the customer.

Why customer support AI needs runtime controls

Customer support agents interact directly with your customers. A single wrong response can create an unauthorized refund, expose personal data, or commit the company to a policy exception. Prompt instructions are not an enforcement boundary; the model can hallucinate policies, ignore tone guidelines, or process actions outside its authority. Runtime guardrails operate independently of the model's reasoning at the tool-call boundary.

Hallucinated policies

AI fabricates refund policies, discount codes, or guarantees that do not exist. Courts can treat chatbot statements as company statements.

Data exposure

PII leakage, unauthorized account access, or exposure of internal systems and processes. One response can expose another customer's data.

Uncontrolled refunds

Agent processes $8,900 refund on a flagged account the same way it processes a $12 refund on a good-standing account. No tiering. No limits.

Tiered refund and escalation policies

Define exactly what your support agent can authorize, what requires approval, and what must be escalated to a human. These are the policy patterns that catch fabricated commitments and flagged-account refunds before they reach a customer.

veto/policies/support.yaml
policies:
  # Tiered refund authorization
  - name: "Auto-approve small refunds"
    match:
      tool: "process_refund"
      arguments:
        amount: { "$lte": 50 }
        account_status: "good_standing"
    action: allow

  - name: "Approve medium refunds"
    match:
      tool: "process_refund"
      arguments:
        amount: { "$gt": 50, "$lte": 500 }
    action: require_approval
    approval:
      timeout_minutes: 30
      channels: [approval_channel]

  - name: "Block high-value refunds"
    match:
      tool: "process_refund"
      arguments:
        amount: { "$gt": 500 }
    action: deny
    response:
      error: "Refunds over $500 require manager processing"

  - name: "Block refunds on flagged accounts"
    match:
      tool: "process_refund"
      arguments:
        account_status: "flagged"
    action: deny
    response:
      error: "Flagged accounts require manual refund processing"

  # Escalation rules
  - name: "Escalate legal mentions"
    match:
      tool: ["send_response", "close_ticket"]
      arguments:
        message: "(?i)(legal|lawsuit|attorney|sue|court)"
    action: deny
    escalate_to: "human_support"
    response:
      error: "Escalating to human agent: legal mention detected"

  # Response validation
  - name: "Block fabricated policies"
    match:
      tool: "send_response"
      arguments:
        content: "(?i)(refund policy|bereavement discount|legal commitment|price match)"
    action: require_approval
    approval:
      reason: "Response contains policy commitment requiring review"

  # PII redaction
  - name: "Redact sensitive data in responses"
    match:
      tool: "send_response"
    transform:
      redact_patterns:
        - pattern: "\d{4}[ -]?\d{4}[ -]?\d{4}[ -]?\d{4}"
          replacement: "[CARD REDACTED]"
        - pattern: "\d{3}-\d{2}-\d{4}"
          replacement: "[SSN REDACTED]"

  # Block unauthorized discount codes
  - name: "Block unauthorized discounts"
    match:
      tool: "send_response"
      arguments:
        content: "(?i)(DISCOUNT|VIPCODE|FRIENDS50|PROMO)"
    action: deny
    response:
      error: "Discount codes must be from the approved list"

Real-world scenarios

The flagged-account refund

The same support agent can see a routine refund, a high-value refund, and a flagged-account refund. Without a policy boundary, those requests look like ordinary tool calls. With Veto, each gets the verdict your policy requires: allow, approval, or deny.

The hallucinated policy

A support chatbot can invent a refund exception, quote a policy that does not exist, or offer a discount no one approved. A Veto policy can route those commitment-shaped responses for human review before the customer receives them.

The brand reputation attack

A support chatbot can drift into brand-damaging language after a system update. Tone validation policies that flag negative sentiment and block self-deprecating responses catch this before it reaches customers. Response validation operates independently of the model's reasoning.

The legal escalation

A customer mentions "attorney" or "lawsuit" in a chat. Veto routes the AI response and escalates to a human agent. No AI-generated response reaches the customer for legally reviewed interactions. The escalation is recorded for evidence review.

With vs without guardrails

ScenarioPrompt-onlyVeto
$8,900 refund on flagged accountProcessedBlocked
Fabricated bereavement fare policySent to customerHeld for review
Customer mentions lawsuitAI respondsEscalated to human
Credit card number in responseExposedAuto-redacted
Unauthorized discount codeSentBlocked
"You are the worst company"Model may agreeTone check blocks
Where is control enforced?Yes: model can ignoreNo: enforced at runtime

Benefits for support teams

Resolution before escalation

AI handles routine requests when policy allows. Refunds, account changes, and edge cases stay with human judgment.

Legal protection

Support agents speak on behalf of the company. Guardrails route policy commitments for review before they reach customers.

Data protection

Automatic PII detection and redaction reduces accidental exposure of customer data or internal system details in responses.

Decision records

Every governed support action keeps decision context. Track resolution quality, identify policy gaps, and show control.

Related use cases

Frequently asked questions

What control catches fabricated support commitments?
A policy that routes refund exceptions, policy commitments, or legal language for human review can catch fabricated commitments before the customer receives them. The guardrail operates independently of the model: it does not matter that the model believed the policy existed.
How do tiered refund policies work?
You define amount thresholds and account conditions. Routine refunds can auto-approve, higher-value refunds can route for human approval, and flagged-account refunds can be denied. The agent receives a clear error message and can tell the customer that a human will follow up.
Can guardrails detect and protect PII in responses?
Yes. Transform policies scan outgoing responses for patterns like credit card numbers (16 digits), SSNs (XXX-XX-XXXX), and other PII. Detected patterns are replaced with redacted placeholders before the response reaches the customer. This reduces accidental data exposure without blocking legitimate responses.
How do escalation rules work?
When a message contains legal keywords, high-value refund requests, or negative sentiment indicators, Veto blocks the AI response and routes the ticket to a human queue. The customer sees a message that a human agent will assist them. The escalation is recorded for evidence review and training purposes.
Do guardrails slow down response times?
Policy evaluation can happen locally before the tool runs. Complex policies like tone analysis can be configured asynchronously. Approval workflows add intentional delay for high-risk actions.

Your chatbot speaks on behalf of your company.

Put a policy boundary before it makes a customer commitment.