分析Oct 4, 2026·7 min read

Prompt: Draft a Fair Customer Complaint Reply

A reusable prompt that turns a pasted complaint plus your remediation limits into a review-ready reply draft, an issue list and a self-check.

Agent ready

Ready-to-run agent install

This asset can be installed after the agent chooses its runtime, checks the plan, and runs the matching command.

Native · 96/100Policy: allow
Agent surface
Any MCP/CLI agent
Kind
Prompt
Install
Single
Trust
Trust: Established
Entrypoint
PROMPT.md
Direct install command
npx -y tokrepo@latest install 7a450d2c-7031-4354-b370-02dd86207e60 --target codex

Run after dry-run confirms the install plan.

Start here

This is a plain prompt you paste into an ordinary AI chat that accepts text. No terminal, API or account setup is needed. Nothing is sent, refunded or credited — you only get a draft for a human to review.

Paste, in this order:

  1. The customer's own words, in full (keep order numbers and timestamps).
  2. FACTS_I_CONFIRM — what you personally verified. Write "none verified" if nothing is confirmed.
  3. REMEDIATION_LIMITS — exactly what you may offer, including caps (for example: "replacement allowed up to 30 days", "no goodwill credit without manager approval").
  4. TONE — one line, e.g. "plain, accountable, no corporate hedging".
  5. CHANNEL_AND_LENGTH — e.g. "email, under 250 words".

Then paste the prompt itself. If the complaint text or your limits are empty, the prompt asks you to stop and supply them instead of inventing policy.

Check the output before using it: does every numbered grievance match the customer's own framing; is each row marked supported, contradicted or unverified; does every offer trace back to your stated limits; does the self-check honestly report pass or fail on all four checks; and is every guess tagged "assumed"? Ask a colleague to confirm anything that changes money owed before anything is sent.

What it does

It produces, in plain Markdown: an issue list table (number | grievance | fact status | disposition | approval needed), a draft letter, missing inputs and assumptions, self-check findings, and a final revised draft. The included worked example is fictional and labelled as such.

Prerequisites, permissions and limits

  • You supply the complaint text and your authorization limits; the prompt has no access to accounts, order systems, billing or email.
  • You may not claim the prompt sent, logged, credited or escalated anything.
  • Legal liability, employment matters and regulated refund rules should go to a human.
  • Keep customer data within your workplace rules; do not paste personal data into a tool you are not permitted to use.
  • source reviewed; runtime not tested.

FAQ

Why does it refuse to fill in a missing policy? Because inventing limits could promise money you are not allowed to spend. Empty limits mean the prompt stops and asks.

Can I use the answer as-is? No. It is preparation only; a human checks the assumptions and the flagged items before sending.

Source

Original TokRepo prompt (CC BY 4.0), category: office. Reference context: ChatGPT release notes, reviewed 2026-10-04. External reference material keeps its own rights.

Complete reusable prompt

You are drafting a customer complaint response letter for a human to review before anything is sent or credited. You have no access to accounts, order systems, billing, or email; you cannot apply refunds, issue credits, or send messages. Your only job is to produce a draft plus a check list from the material below.

INPUTS (fill these in before running):

  1. COMPLAINT_TEXT — the customer's own words, pasted in full (keep original wording and any timestamps or order references).
  2. FACTS_I_CONFIRM — what you, the responder, have verified as true (order date, delivery status, staff involved, prior replies). Write "none verified" if nothing is confirmed yet.
  3. REMEDIATION_LIMITS — exactly what you are authorized to offer, and what you are not. Include hard caps (for example: "replacement allowed up to X", "refund not allowed beyond Y days", "no goodwill credit without manager approval").
  4. TONE — one line, e.g. "plain, accountable, no corporate hedging".
  5. CHANNEL_AND_LENGTH — e.g. "email, under 250 words" or "public comment reply, short".

WHAT TO DO: Step 1 — Issue list. Extract every distinct grievance the customer raises, one per line, in the customer's own framing, numbered. Do not merge two different complaints into one line. If the complaint implies a grievance without stating it (for example, anger with no named cause), record it as "inferred" and mark it. Step 2 — Fact check column. For each numbered issue, state what FACTS_I_CONFIRM supports: "supported", "contradicted", or "unverified". Never upgrade "unverified" to "supported" on your own. Step 3 — Disposition per issue. Using only REMEDIATION_LIMITS: mark "in limits", "needs approval" (give the exact approval needed), or "cannot offer" (state the stated limit as the reason). Offer nothing outside those limits, and invent no policy, no timeline, and no compensation. Step 4 — Draft the letter. Structure: (a) one sentence acknowledging the specific problem, (b) a short factual account drawn only from FACTS_I_CONFIRM (skip or label anything unverified), (c) the offer for each issue that is within limits, stated plainly, (d) what the customer must do next, if anything, (e) one clear closing line. Match TONE and CHANNEL_AND_LENGTH. Plain sentences, no flattery, no promises about future policy or speed you cannot guarantee. Step 5 — Missing inputs. List what you needed but did not have, and what you assumed in its place, each tagged "assumed". Any assumption that could change money owed or policy interpretation must be flagged as requiring human confirmation before sending. Step 6 — Self-check. Re-read your own draft and report: (i) every claim in the letter not traceable to FACTS_I_CONFIRM, (ii) every offer not traceable to REMEDIATION_LIMITS, (iii) any sentence that sounds like an admission of legal fault or a guarantee, (iv) any issue from Step 1 that the letter silently ignores. Then give pass/fail on each of the four checks and fix failures in a revised draft.

OUTPUT FORMAT (plain Markdown, in this order):

  • Issue list table: number | customer's grievance | supported/contradicted/unverified | disposition | approval needed
  • Draft letter
  • Missing inputs and assumptions (tagged)
  • Self-check findings with pass/fail per check
  • Final revised draft

WORKED FICTIONAL EXAMPLE (illustration only; not real data): COMPLAINT_TEXT: "My tote bag arrived with the strap torn. I emailed on the 3rd and nobody replied. I want a replacement and an apology." FACTS_I_CONFIRM: delivery confirmed on the 2nd; no reply on record. REMEDIATION_LIMITS: replacement allowed within 30 days; apology allowed; no refunds beyond 30 days; compensation credits need manager approval. Expected shape: Issue 1 "torn strap" — supported — in limits → replacement offered. Issue 2 "no reply to 3rd" — supported — in limits → apology offered. Then the draft, the assumption tag for the missing order number, and the self-check. Task-specific checks on this example: FAIL if the letter promises a refund or a deadline not in REMEDIATION_LIMITS; FAIL if it states "we shipped on the 2nd" when FACTS_I_CONFIRM says delivered, not shipped; FAIL if issue 2 is dropped from the letter; FAIL if any unconfirmed fact appears without an "assumed" tag.

BOUNDARIES: this is preparation only. Do not claim to have sent, logged, credited, or escalated anything. Do not advise on legal liability, employment consequences, or regulated refund rules; flag those to a human instead. If COMPLAINT_TEXT or REMEDIATION_LIMITS is empty, stop and ask for it rather than filling the gap with plausible policy.

References and reuse

Original TokRepo prompt · CC BY 4.0. Reference documents retain their own rights.

Discussion

Sign in to join the discussion.
No comments yet. Be the first to share your thoughts.

Related Assets