Difficult complaints test exactly the skills LLMs are strongest at: reading emotional tone, matching an appropriately calm and professional register, and structuring a response (acknowledge, apologize, explain, offer next steps). Where it needs a human is the substance of the resolution — a model can write "we're happy to offer you a refund" beautifully, but it has no way to independently verify that a refund is actually the right call for this account, this policy, or this situation.
Using AI drafting safely for complaint responses
1. Let the model draft the tone and structure freely. Give it the complaint text and ask for a calm, empathetic, professional draft — this is squarely within what LLMs handle well, and iterating on tone (more apologetic, more concise, more formal) is fast and low-risk.
2. Feed it real account context, but treat its resolution suggestion as a proposal, not a decision. If you give the model order history or account status, it can suggest an appropriate resolution — but a human should confirm that suggestion actually matches policy before it's committed to in writing.
3. Require human review before sending, especially for detectably angry complaints. The same escalation principle used elsewhere in support automation applies here: draft automatically, but require a human click before an emotionally-charged or resolution-committing reply reaches the customer.
# pip install anthropic
import anthropic
client = anthropic.Anthropic()
def draft_complaint_reply(complaint_text: str, account_context: str) -> str:
response = client.messages.create(
model="claude-sonnet-5",
max_tokens=500,
system=("Draft a calm, professional, empathetic reply to this customer "
"complaint. Propose a resolution based on the account context, but "
"clearly label it as a SUGGESTION requiring human approval before sending."),
messages=[{"role": "user",
"content": f"Complaint: {complaint_text}\n\nAccount context: {account_context}"}]
)
# Output goes to a human review queue -- never auto-sent
return response.content[0].text
| Task | AI Handles Well? |
|---|---|
| Matching a calm, professional tone to an angry complaint | Yes — a genuine strength |
| Deciding whether a refund/exception is actually policy-appropriate | Only as a suggestion — needs human confirmation against real policy/account context |
| Sending the final reply without any review | No — especially for detectably angry or resolution-committing replies |
The reason this works well as an assistive tool rather than a fully autonomous one is the same principle threaded through this whole course: drafting and tone-matching are safe to automate broadly, while anything that commits the business to a specific resolution needs a human checkpoint before it goes out.
Practical Challenge
Take a real (or realistic sample) angry customer complaint, run it through the draft_complaint_reply function above, and review whether the model's proposed resolution actually matches what your policy would allow before you'd send it.
Concept Check
Sources & Further Reading
- Anthropic: Prompt Engineering Overview — guidance on role-prompting and tone control relevant to drafting complaint responses.
AI