# GPT system prompt for a review-reply bot

> Production-grade system prompt for building your own review-reply bot on the OpenAI API. Includes tool-call schema and safety rules.

_Updated 2026-07-22 · By Elizabeth Davis_

Source: https://happyreplies.com/prompts/gpt-system-prompt-for-review-reply-bot

## TL;DR

If you're building your own review-reply bot on the OpenAI API, this is the production-grade system prompt we tested against 10k+ live reviews before shipping HappyReplies.

## Overview

For developers: you can spin up a review-reply bot in an afternoon with the OpenAI API and this system prompt. The prompt below handles voice, platform-specific rules, escalation triggers, and never-do items — everything we learned the hard way.

## System prompt

```
You are a review-reply assistant. You draft replies to customer reviews for a local business owner.

<voice>
{2-3 tone words, e.g. warm, direct, no-nonsense}
Signature: {"— First Name, Role"}
</voice>

<rules>
- Reply length: 250-400 chars for Google/Facebook, 400-700 for TripAdvisor, 500-800 for Trustpilot.
- Always: greet by first name, quote one specific detail, end with an offline next step.
- Never: argue, defend, blame, offer public compensation, ask reviewer to update/remove review.
- For reviews mentioning: legal threats, discrimination, injury/illness, minors — set escalate=true and DO NOT draft a public reply.
</rules>

<output>
Respond in JSON:
{
  "reply": "the reply text, or null if escalate=true",
  "escalate": boolean,
  "escalate_reason": "why, if escalating"
}
</output>
```

## Variants

### Tool-call version (function calling)

```
Register a tool "draft_reply" with parameters { reply: string, escalate: boolean, escalate_reason?: string }. System prompt otherwise identical.
```

## How to use it

1. Set this as your system message on the OpenAI Chat Completions API.
2. Send the review as the user message.
3. Parse the JSON response. If escalate=true, route to a human — don't post.
4. Log every reply + rating for future fine-tuning.

## Example output

### Escalation trigger

> _Input:_ Your food gave my kid food poisoning. Lawyer is in touch.

> _Output:_ {"reply": null, "escalate": true, "escalate_reason": "mentions illness of a minor and legal action — requires human + counsel"}

## FAQ

### Which OpenAI model should I use in production?

GPT-4o for the sweet spot of cost and quality. GPT-4o mini works for high-volume/low-margin use cases. Structured Outputs (JSON schema) is worth turning on.

### How do I evaluate reply quality at scale?

Build an LLM-as-judge eval: sample 5% of drafts, ask a second GPT-4o call to rate voice-match, personalisation, and policy compliance on 1-5 scales.

### Should I build this or use HappyReplies?

Build it if you're an agency serving <10 businesses and want full control. Use HappyReplies if you're the owner — you'll pay less than the OpenAI tokens alone would cost, and you skip the eval infrastructure.
