Skip to content This library is free, offered as dana. If it helps your work, donate here →

This is one of 3,622 free prompts in the penguin tree ai library. Sign up once and the whole library opens, with new prompts by email.

open the library →

Customer complaint de-escalation script generator

Generates ready-to-use de-escalation scripts for difficult in-store customer situations — with an opening acknowledgment, empathy language, boundary-setting phrases, resolution options tiered by authority level, and…

download .md

Purpose

Produce word-for-word, brand-voice-aligned scripts that frontline retail staff can use in the moment to de-escalate upset customers, resolve complaints, and protect the customer relationship. Removes the guesswork of what to say under pressure and turns inconsistent, improvised responses into a repeatable standard.

When to Use

Invoke this skill when the user asks to:

  • Create scripts for handling angry or upset in-store customers
  • Give staff language for refund, return, or exchange disputes
  • Defuse a public confrontation or a customer making a scene
  • Standardize how the team responds to a recurring complaint type
  • Train new hires on complaint handling with specific phrasing
  • Handle a specific escalation (loud complaint, demand to see a manager, threat to post a review)

Inputs Required

Before starting, collect:

  • Complaint type: The situation being handled (e.g., defective product, long wait, out-of-stock item, staff dispute, pricing error, refund refusal)
  • Brand voice: How the brand speaks — warm/casual, premium/formal, playful, no-nonsense, etc.
  • Staff role/authority: Who is running the script and what they're allowed to offer (frontline associate vs. shift lead vs. store manager)
  • Resolution levers available: What staff can actually give (refunds, exchanges, discounts, store credit, comps, escalation only)
  • Policy constraints: Hard limits — what cannot be offered under any circumstances
  • Setting: In-store at the counter, on the floor with other customers watching, private back-office, or phone
  • Desired outcome: Retain the customer, resolve fast, protect other shoppers' experience, or minimize refund exposure

If brand voice or authority level is missing, default to a warm-but-professional tone at frontline-associate authority and note the assumption.

Instructions

Step 1: Diagnose the Emotional State and Escalation Level

Classify where the customer is so the script matches the moment:

  • Frustrated (Level 1): Annoyed but reasonable — wants to be heard and helped
  • Angry (Level 2): Raised voice, blaming, may be interrupting — needs acknowledgment before any solution
  • Escalated (Level 3): Making a scene, threatening (reviews, chargebacks, "I'll never shop here again"), or drawing an audience — needs containment, privacy, and authority

Match script intensity to level. Level 1 can move to resolution quickly; Levels 2–3 require full acknowledgment and pacing before any offer.

Step 2: Build the Script in Five Sequenced Blocks

Every script follows the same proven arc. Write actual, speakable lines — not descriptions of what to say.

Block 1 — Open with Acknowledgment (no defense, no "but") The first line must validate the feeling before addressing the facts.

  • Never open with a policy statement or a justification
  • Ban the word "but" — replace with "and" or a full stop
  • Formats: "You're right to be frustrated — let's fix this." / "I hear you, and I'm going to help sort this out."

Block 2 — Empathy and Ownership Take ownership of the resolution without necessarily admitting fault.

  • Use "I" and "we," never "you should have" or "the system"
  • Name the specific inconvenience: the wait, the defect, the wasted trip
  • Formats: "That's not the experience we want you to have." / "I'd be frustrated too if I'd made a trip for this."

Block 3 — Clarify and Contain Ask one calming, information-gathering question and — if Level 2–3 — move the interaction to a lower-audience setting.

  • One question, not an interrogation
  • Containment line for public settings: "Let's step over here where I can give you my full attention."

Block 4 — Resolution Offer (tiered by authority) Present what can be done, ordered from the least costly acceptable option to the highest, within the authority level given.

  • Tier 1 (frontline): The default resolution the associate can offer immediately
  • Tier 2 (shift lead): A stronger option if Tier 1 is refused
  • Tier 3 (manager): The escalation offer, plus a clean handoff line
  • Always frame as choice: "Here's what I can do for you right now — [option A] or [option B]. Which works better?"
  • Include one honest boundary line for requests outside policy: "That one I can't do — here's what I can do instead."

Block 5 — Recovery and Close End on a relationship-repairing note that leaves the door open.

  • Confirm the resolution back to them
  • Add a small goodwill or invitation-to-return line where appropriate
  • Formats: "You're all set — and I'm sorry it took this to get there." / "Come find me next time you're in."

Step 3: Add De-escalation Guardrails

Alongside the script, provide a short tactical sidebar:

  • Phrases to never say (3–5): e.g., "Calm down," "That's our policy," "There's nothing I can do," "You should have..."
  • Body language / pacing cues (3–4): lower voice, slow down, uncross arms, don't stand over the customer
  • Hard-stop line: One professional exit line for abusive or unsafe behavior that ends the interaction and escalates to a manager

Step 4: Produce Two Variations

Generate the full script plus:

  • A short version (3–4 lines) for quick, Level 1 counter interactions
  • A branch line for when the customer refuses the first resolution offer, so staff aren't caught without a next move

Output Format

  • Structure: One primary five-block script, then a short version, a refusal branch, and a guardrails sidebar
  • Length: 600–900 words
  • Format: Scripted dialogue with clearly labeled blocks; guardrails as scannable lists
  • Sections: Escalation level note → Full 5-block script → Short version → Refusal branch → Guardrails sidebar (never-say / body language / hard-stop line)
  • Tone: Every spoken line written in the specified brand voice; instructional labels kept plain and directive

Quality Checklist

Before delivering output, verify:

  • [ ] All five blocks are present and in order (Acknowledge → Empathize → Clarify → Resolve → Recover)
  • [ ] No script line contains "but," "calm down," "policy," or "there's nothing I can do"
  • [ ] Resolution offers stay within the stated authority level and never offer anything on the policy-constraint list
  • [ ] Spoken lines match the specified brand voice — not generic corporate filler
  • [ ] The guardrails sidebar includes at least 3 never-say phrases and a hard-stop line
  • [ ] Both a short version and a refusal-branch line are included

Notes

  • The single highest-impact block is the opening acknowledgment — most escalations get worse because staff jump to policy before the customer feels heard
  • Scripts are starting frameworks, not robotic lines — coach staff to keep the sequence but use their own natural cadence
  • For recurring complaint types, generate a set and turn it into a one-page counter reference or new-hire training sheet
  • If the situation involves safety, theft, or abuse, the hard-stop line and manager escalation take priority over any resolution attempt

How to use this skill

This file is a Claude Code skill in Anthropic's standard format — markdown with YAML frontmatter at the top.

Installing in Claude Code:

  • ~/.claude/skills/<folder-name>/SKILL.md — auto-loads in every session anywhere on your machine (recommended for skills you'll use across multiple projects)
  • <your-project>/.claude/skills/<folder-name>/SKILL.md — auto-loads only when working in that project (recommended for project-specific skills)

Restart Claude Code or open a new session to register.

Using in Claude.ai, ChatGPT, Gemini, or other AI tools:

  1. Drag this file into a new chat, or copy and paste its contents
  2. Send your task or request as your next message — the AI will apply the skill where it fits

For Claude Code skill details: https://docs.anthropic.com/en/docs/claude-code/skills