Free guide! 5 ways to test and measure UX content. Get the guide.

UX CONTENT BLOG

How to build a custom GPT for content design

AI is shifting the landscape of content design from static documents, guidelines, glossaries, and messaging frameworks to dynamic LLMs that can provide stunning results in seconds.

Companies like Coinbase, where I previously worked, have empowered their employees to spin up their own custom GPTs in minutes trained on internal documents and data, with permissioning functionality and the like built in.

In this article, I’ll walk you through how to build a custom GPT using OpenAI that generates structured error messages following our rules and guidelines. While my example applies to error messages, the approach outlined here can be used to build any type of custom GPT to meet your organization’s content needs.

But remember, using AI tools still requires strong UX writing fundamentals and judgment. Just like a developer needs to know when GPT has written bad or broken code, content designers need to recognize whether the output is actually clear, useful, and on-brand. Ironically, in a world where anyone can use LLMs to write content, those fundamentals matter more than ever.

So let’s dive in!

What we’re going to build

We’re going to use ChatGPT to build a custom GPT for writing structured error messages. This use case will be a great jumping-off point for anyone who wants to move past prompt engineering and wade into slightly deeper AI waters.

Why error messages?

Because error messages often end up as pesky afterthoughts, written on the fly by PMs and engineers. Sometimes they work. Other times, not so much. A custom GPT could empower anyone to write accurate, structured, and well-written error messages in seconds that hit the mark—or at least don’t miss it entirely.

Step 1. Categorize error messages by type

AI really likes well-structured data. So we’re going to create a common framework that makes it easier for our custom GPT to retrieve the correct error message type when prompted.

Think of all the types of error messages in your company. There may be hundreds. All of them can be categorized based on what is causing the issue for users. Here are my categories, influenced by working in fintech:

1. General failure – Something went wrong, but the cause is unclear.
2. Connectivity issues – Internet or network problems.
3. Conditional errors – User needs to adjust their input to proceed.
4. Regulatory – Compliance restrictions affecting availability or desired action.
5. Fraud – User is suspected of fraud.
6. Technical constraints – System limitations or unsupported actions.

Every individual error message in the previous two companies I worked for could fall under one of these six categories. With those in place, let’s move on to CTA buttons.

Step 2. Map CTA buttons to each error type

List all of the CTA buttons that will appear in your error messages. Then describe how they should be used based on the error scenario. Here are my CTA buttons and descriptions:

[OK] – Use this CTA button when there is no action the user can take. (Used for ‘Regulatory’ error types).
[Learn more] – Use this CTA when linking to a Help Center article. (Example: “Learn more about withdrawal limits.”)
[Try again] – Use this CTA when we’ve told the user how they can fix the issue. For example, “Try sending a smaller amount.” (‘Conditional’ errors always use this).
[Learn more about…X] – Use this CTA when it’s a link and there’s space to provide more contextual information about the issue they’re dealing with. For example, “Learn more about daily deposit limits.”
[Contact Support] – Use this CTA for critical actions that require immediate attention from a support specialist. (Fraud errors always use this).

Step 3. Add character limits

This optional but recommended step is useful for keeping your custom GPT concise. Here are my character constraints:

  • Headline: Max 60 characters (Conditional errors do not have headlines)

  • Body: Max 250 characters

  • CTA button: Max 25 characters

Side note: If I were building this out at the enterprise level, I’d want to include instructions for how error types map to component types and provide character constraints for those as well. For example: ‘Toasts’ should have fewer characters than ‘Dialogues’.

Step 4. Write examples for each error message type

To help your custom GPT generate error messages that meet your criteria, it helps to provide at least one example for each error message category. The more examples you provide, the better. This is especially helpful when the AI is confronted with an error message it’s never seen before. Here are my examples:

Example 1

Error type: General

Headline: Something went wrong

Body: Try again or contact support if the problem continues.

CTA: Try again
Secondary CTA: Contact Support

Example 2

Error type: Connectivity
Headline: You’re offline
Body: Check your internet connection and try again.
CTA: OK

Example 3

Error type: Regulatory
Headline: Bitcoin can’t be purchased
Body: Bitcoin is currently unavailable in your location.
CTA: OK
Secondary CTA: Learn more

Example 4

Error type: Conditional
Body: You must deposit at least $1
CTA: Try again

Example 5

Error type: Fraud
Headline: Unable to withdraw money
Body: Contact support to continue with this transaction.
CTA: Contact Support

Example 6

Error type: Technical constraints
Headline: Wrong network
Body: You can’t send Solana on the Ethereum network. Check the network and try again.
CTA: Try again

Step 5. Define strict output requirements

Define the ways your custom GPT should behave when it comes to the general writing rules and guidelines it should follow. Here are my strict requirements:

  • Always follow the structured response format exactly as outlined above.

  • Do not add extra explanations, disclaimers, or unnecessary context.

  • For conditional errors, never include a headline.

  • If the request is unclear, ask the user to clarify before generating an error message.

  • Use sentence case for headlines and CTA buttons.

Setting up your custom GPT

Now that we’ve created a framework and some rules for our AI to follow, we’re going to actually set up our custom GPT. After this step, we’ll be able to prompt our custom GPT to write structured error messages.

Step 1. Go to https://openai.com/

Step 2. Log in or create an account

Step 3. Click on the icon in the top right corner. Then, select ‘My GPTs’ from the menu.

Step 4. Select ‘Create a GPT’

From here, you’ll be able to configure your GPT.

Step 5. Give your GPT a name. Something like “Error message writer” will work. Then write a short description like, “A UX writing assistant that generates clear, structured error messages following predefined rules.”

Step 6. Copy and paste the text below into the ‘Instructions’ field:

Step 7. Add conversation starters. These are quick example prompts that show users what your GPT can do. Here are some examples of conversation starters:

  • “Write me an error for an invalid email address.”

  • “Help me write a regulatory error for a restricted country.”

  • “Write a connectivity error when the app can’t reach the server.”

  • “Give me a general error for an unknown system issue.”

  • “Make a fraud error for a flagged login attempt.”

  • “What’s the right CTA button for when a user should retry something?”

  • “Help me write an error message when a payment fails due to network issues.”

Step 8. Give your GPT some ‘Knowledge.’ Upload files that will provide even more guidance to your GPT. This can be a content style guide, best practices for writing error messages, or more contextual knowledge.

Uploading files that your GPT should reference first is known as RAG (Retrieval-Augmented Generation).

You set up a custom GPT! 🤖

Now use it to write some error messages and see what it can do! You’ll notice it won’t be perfect. This post provides the basic building blocks for getting your GPT set up properly. But to make it truly game-time ready will require a lot more refinement. I’ll leave that up to you. Have fun and enjoy the process of figuring it out. And remember, we’re all figuring it out.

Final thoughts

This post was written for the curious content designer who is still exploring AI tools and thinking about what they can build. Think of it as educational, a springboard for anyone at the early stages of their AI journey as a content designer, like myself.

If you’ve made it this far, thank you for reading. Feel free to reach out to me on LinkedIn if you want to chat. I’m always open to it.

Hunter Gebron is a content designer with expeirence at Kraken, Coinbase, and Meta. Connect with him on LinkedIn. 

Free UX content resources in your inbox!

Get our weekly Dash newsletter packed with links, regular updates with resources, discounts, and more.