---
id: chatgpt-how-to-write-a-great-prompt
lang: en
track: chatgpt
title: "How to write a great prompt"
seoTitle: "How to write a great ChatGPT prompt"
description: "A simple five-part recipe for ChatGPT prompts that work: role, task, context, examples, and format. With a copy-ready template and a real business example."
part: prompting
partTitle: "Prompting"
partOrder: 3
order: 2
level: Beginner
durationMinutes: 4
outcome: "Write a strong ChatGPT prompt from a simple, repeatable recipe."
summary: "A strong prompt has five parts: role, task, context, examples, and format. Give ChatGPT those and you get usable work the first time."
draft: false
updated: "2026-10-14"
furtherReading:
  - title: "Prompting (ChatGPT Learn)"
    url: "https://learn.chatgpt.com/docs/prompting"
    note: "OpenAI's four building blocks: goal, context, output, boundaries."
  - title: "Prompt engineering best practices for ChatGPT"
    url: "https://help.openai.com/en/articles/10032626-prompt-engineering-best-practices-for-chatgpt"
    note: "Be specific, refine, set the tone: the short version."
  - title: "Prompt engineering guide (OpenAI)"
    url: "https://platform.openai.com/docs/guides/prompt-engineering"
    note: "The deeper developer guide behind the same ideas."
  - title: "Prompt engineering (Wikipedia)"
    url: "https://en.wikipedia.org/wiki/Prompt_engineering"
    note: "Background and further sources."
keywords:
  - how to write a ChatGPT prompt
  - ChatGPT prompt template
  - prompt structure
  - prompt recipe
  - better ChatGPT prompts
  - ChatGPT prompt examples
quiz:
  intro: "Four quick questions. Ace all four and the next lesson unlocks."
  passScore: 4
  questions:
    - q: "What are the five ingredients of a strong prompt?"
      options:
        - "Greeting, request, sign-off"
        - "Who, what, when, where, why"
        - "Length, tone, language, deadline, budget"
        - "Role, task, context, examples, format"
      answer: 3
      explain: "Role, task, context, examples, format. That is the whole recipe."
    - q: "Which part does everyone skip, though it matters most?"
      options:
        - "Role"
        - "Format"
        - "Context"
        - "Examples"
      answer: 2
      explain: "Context. ChatGPT may know your role from memory, but it knows nothing about this client or this deadline until you tell it."
    - q: "Your prompt says \"make it better\" and the result is no better. What is the fix?"
      options:
        - "Say what better means: shorter, warmer, plainer"
        - "Add please and thank you to make the request friendlier"
        - "Ask for a longer, more detailed version"
        - "Switch to the highest thinking level"
      answer: 0
      explain: "Name what \"better\" means. ChatGPT cannot read the frown on your face, and more thinking does not fix a vague ask."
    - q: "OpenAI's own guide adds 'boundaries' to a prompt. What is a boundary?"
      options:
        - "The maximum length a prompt may have"
        - "A limit like 'use only the attached figures'"
        - "The point in a long prompt where ChatGPT stops reading"
        - "A rule about how long ChatGPT may think"
      answer: 1
      explain: "A boundary is one or two hard rules that keep the answer safe and usable: stick to these sources, keep these figures unchanged, prepare a draft instead of acting."
  pass:
    badge: "Perfect score"
    title: "Boom. You've got the recipe."
    body: "Full marks. Your prompts just levelled up. Now let's make the answers even sharper."
  retry: "Check the marked answers and give it another go. You've got this."
---

> **Level:** Beginner · **Reading time:** ~4 min
>
> **What you'll be able to do:** write a strong ChatGPT prompt from a simple, repeatable recipe.

Most people talk to ChatGPT like they're texting a psychic. They type "write me an email," hit send, and wait for it to read their mind. Then they act betrayed when it hands back something a nervous intern would be too shy to send.

Here's the thing: ChatGPT didn't fail. The prompt did. **A vague ask gets a vague answer, every time.** The good news: a good prompt isn't a dark art or a 40-line "mega-prompt" you buy off the internet. It's **a recipe with five ingredients**. Learn it once, use it forever.

## The recipe: five ingredients

A strong prompt usually has five parts. You won't need all five every time, but when the output matters, the more you give, the less you'll be let down.

### 1. Role: who should ChatGPT be?

Tell it who to act as, and who *you* are. "You're my assistant, writing as me" lands very differently from "You're a sharp financial analyst." Same tool, different hat.

### 2. Task: what exactly do you want?

One clear job. Not "help me with this client" but "draft a two-line reply that says no without burning the relationship." Vague verbs like *handle*, *improve*, and *look at* are where good answers go to die.

### 3. Context: what does it need to know?

This is the part everyone skips, and it's the one that matters most. Who's the audience? What's the backstory? What are the constraints? ChatGPT may remember your job title, but it knows nothing about this Tuesday. Tell it, or attach the file that does.

### 4. Examples: show, don't just tell

If you have a sample you like (an old email, a report in the right style), paste it. "Match this tone" beats three paragraphs describing the tone.

### 5. Format: what should the answer look like?

Say the shape you want: length, structure, tone. "Three subject lines and a body under 120 words" gets you exactly that. "Some ideas" gets you a wall of text and a small headache.

<figure class="lesson-svg" aria-labelledby="chatgpt-recipe-title">
<svg viewBox="0 0 640 500" width="100%" height="auto" role="img" xmlns="http://www.w3.org/2000/svg" font-family="Inter, system-ui, sans-serif">
<title id="chatgpt-recipe-title">The prompt recipe</title>
<desc>The prompt recipe: Role, Task, Context, Examples and Format, each with a one-line description, plus an optional boundary: one or two hard rules from OpenAI&#x27;s own guide.</desc>
<text x="0" y="22" font-size="21" font-weight="800" fill="var(--ink,#1F2328)">The prompt recipe</text>
<text x="0" y="46" font-size="13.5" fill="var(--soft-gray,#6E747C)">Five ingredients. You only need all five when the output really matters.</text>
<rect x="0" y="62" width="640" height="66" rx="14" fill="#fff" stroke="var(--line,#E7E9EC)"/>
<circle cx="40" cy="95" r="19" fill="var(--part,#1FA98C)"/>
<text x="40" y="101" font-size="17" font-weight="800" fill="#fff" text-anchor="middle">1</text>
<text x="76" y="90" font-size="16" font-weight="800" fill="var(--ink,#1F2328)">Role</text>
<text x="76" y="112" font-size="13.5" fill="var(--med-gray,#5B6169)">Who should ChatGPT be? And who are you?</text>
<rect x="0" y="136" width="640" height="66" rx="14" fill="#fff" stroke="var(--line,#E7E9EC)"/>
<circle cx="40" cy="169" r="19" fill="var(--part,#1FA98C)"/>
<text x="40" y="175" font-size="17" font-weight="800" fill="#fff" text-anchor="middle">2</text>
<text x="76" y="164" font-size="16" font-weight="800" fill="var(--ink,#1F2328)">Task</text>
<text x="76" y="186" font-size="13.5" fill="var(--med-gray,#5B6169)">One clear job. Skip vague verbs like &quot;handle&quot; or &quot;improve&quot;.</text>
<rect x="0" y="210" width="640" height="66" rx="14" fill="#fff" stroke="var(--line,#E7E9EC)"/>
<circle cx="40" cy="243" r="19" fill="var(--part,#1FA98C)"/>
<text x="40" y="249" font-size="17" font-weight="800" fill="#fff" text-anchor="middle">3</text>
<text x="76" y="238" font-size="16" font-weight="800" fill="var(--ink,#1F2328)">Context</text>
<text x="76" y="260" font-size="13.5" fill="var(--med-gray,#5B6169)">What must it know? Audience, backstory, constraints, files.</text>
<rect x="0" y="284" width="640" height="66" rx="14" fill="#fff" stroke="var(--line,#E7E9EC)"/>
<circle cx="40" cy="317" r="19" fill="var(--part,#1FA98C)"/>
<text x="40" y="323" font-size="17" font-weight="800" fill="#fff" text-anchor="middle">4</text>
<text x="76" y="312" font-size="16" font-weight="800" fill="var(--ink,#1F2328)">Examples</text>
<text x="76" y="334" font-size="13.5" fill="var(--med-gray,#5B6169)">Paste a sample you like: &quot;like this, not like that&quot;.</text>
<rect x="0" y="358" width="640" height="66" rx="14" fill="#fff" stroke="var(--line,#E7E9EC)"/>
<circle cx="40" cy="391" r="19" fill="var(--part,#1FA98C)"/>
<text x="40" y="397" font-size="17" font-weight="800" fill="#fff" text-anchor="middle">5</text>
<text x="76" y="386" font-size="16" font-weight="800" fill="var(--ink,#1F2328)">Format</text>
<text x="76" y="408" font-size="13.5" fill="var(--med-gray,#5B6169)">The shape of the answer: length, structure, tone.</text>
<rect x="0" y="432" width="640" height="52" rx="14" fill="var(--part-tint,#E9F7F3)" stroke="var(--part,#1FA98C)"/>
<text x="20" y="453" font-size="13.5" font-weight="800" fill="var(--part-ink,#16806A)">Optional: a boundary</text>
<text x="20" y="472" font-size="12.5" fill="var(--part-ink,#16806A)">One or two hard rules: &quot;use only the attached figures&quot;, &quot;draft it, don&#x27;t send it&quot;.</text>
</svg>
</figure>

## Watch it work

Say a client was promised a report on Friday. It'll be late. You need to send the email nobody enjoys sending.

The lazy prompt:

```
Write an email to my client about the delay.
```

You'll get something. It'll open with "I hope this email finds you well," bury the point in paragraph three, and sound like a fax machine. Now the recipe version:

```
You're my assistant, writing as me. I'm an account manager, warm but straight-talking.

Task: draft a short email telling a client their report will be two days late.

Context: the client is Devlin & Co. We promised Friday; it'll land Tuesday. The delay is on us: a data source broke. They matter to us and they're a little anxious. I don't want to grovel, but I want them to feel in safe hands.

Format: three subject lines and a body under 120 words. Plain English, no "please be advised." End with a clear next step.
```

Ten seconds more typing. The second one comes back short, honest, and nearly ready to send, in a writing block you can tweak directly.

## OpenAI's version: four blocks

OpenAI's own prompting guide splits a prompt into four blocks: **goal, context, output, and boundaries.** Same idea, different labels. Goal is our task, output is our format. The one worth borrowing is **boundaries**: one or two hard rules, such as "use only the figures in the attached file," "keep the prices unchanged," or "draft it, don't send it." Add a boundary when a mistake would cost you.

## Four ways it goes wrong

**"Make it better."** Better how? Shorter, warmer, less like a robot? Name it.

**Skipping the backstory.** You know the client is furious and the deadline moved twice. ChatGPT doesn't.

**Asking for everything at once.** "Write the strategy, the email, and the deck" gets you three half-finished things. One job per prompt, then build on the result. (That's the [next lesson](/learn/chatgpt/prompting/iterating).)

**Forgetting the format.** If you don't say how long or what shape, you get ChatGPT's guess. Its guess is usually "longer than you wanted."

## The template

Keep this somewhere you can grab it:

```
Role:     Who should ChatGPT be? And who are you?
Task:     What exactly do you want? (one clear job)
Context:  What must it know? (audience, backstory, constraints, files)
Examples: Got a sample you like? Paste it.
Format:   What should the answer look like? (length, structure, tone)
```

Quick questions don't need all five. But the moment the output matters, run down the list. Things you'd repeat in every prompt, like your role and tone, belong in your custom instructions instead.

## Try it

Grab a real email you've been putting off. Write it two ways: first one lazy line, then the recipe version with role, task, context, and format. Send both, each in a fresh chat.

Read them side by side. The gap is exactly the value of ninety seconds of thinking before you hit send.

## Key terms

[Prompt](/glossary#prompt), [Context](/glossary#context), [Prompt engineering](/glossary#prompt-engineering), [Writing block](/glossary#writing-block)
