> For the complete documentation index, see [llms.txt](https://university.obvious.in/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://university.obvious.in/product-design/microcopy/how-to-write-messages.md).

# How to write messages

## 👋 Introduction

Messages in the product, like error messages, success messages, are a combination of titles, body copy and buttons. When written well, they give the user feedback, clarity and reinforce brand voice.

***

## 1️⃣ Error messages

An error message interrupts a user’s flow and can be frustrating. A good error message eases that frustration by explaining the problem, providing a solution, and turning the delay into a neutral, if not pleasant, experience.

<figure><img src="/files/pTilS6lHf64jf6aLr8qq" alt=""><figcaption></figcaption></figure>

> **Describe the problem—**&#x54;ell the user what went wrong and why the system responded with an error.

<figure><img src="/files/yeIaY5eKzXmSSRNfdZpg" alt=""><figcaption></figcaption></figure>

> **Describe the solution—**&#x54;ell the user what to do to complete the process. If there is no solution, offer an alternative action such as turning to support.

<figure><img src="/files/UPLkwNxIA025XvyNmEvd" alt=""><figcaption></figcaption></figure>

> **In standard error messages,** you can leave out either the description of the problem or the solution to the problem.

<figure><img src="/files/ptzeTNF13l8M5UOYZWYG" alt=""><figcaption></figcaption></figure>

> **Make it human—**&#x52;ewrite the error message to reinforce the brand’s personality and to speak like a human.

***

## 2️⃣ Success messages

When users complete a task successfully, they expect a success message to confirm that the action was completed and to tell them what the next step is. There are four components of a good success message.

<figure><img src="/files/EFkhDsgBamqZyyEzLY0F" alt=""><figcaption></figcaption></figure>

> **Confirmation—**&#x47;ive a clear indication that what the user wanted to do, did in fact occur.

<figure><img src="/files/DCRmNqQ9tybUBIYweWxF" alt=""><figcaption></figcaption></figure>

> **Consequence—**&#x4E;ow that the user has completed the action, what can they expect?

<figure><img src="/files/6O9leNn5wBcQWxRXdrEx" alt=""><figcaption></figcaption></figure>

> **Guide users forward—**&#x44;irect the users to a mandatory or optional next step.

<figure><img src="/files/UCziQHRM9TjXPZiY9A3G" alt=""><figcaption></figcaption></figure>

> **Go beyond the template—**&#x44;o not use a template “x successfully completed” message for every time. Speak to your user with warmth.

***

## 3️⃣ Loading states

Every system needs time to load, process data or run a search. While the user is waiting, changing text, animation or even a progress bar can shorten the perceived time.

<figure><img src="/files/OhD5tiP45JG8yt6N9zRE" alt=""><figcaption></figcaption></figure>

> **Inform the user—**&#x54;ell the user what the system is doing for them.

<figure><img src="/files/2V3Ze0XBqVcIujJw0Yxq" alt=""><figcaption></figcaption></figure>

> **Delight the user—**&#x49;f the loading time is long, suggest an alternative way to spend time or reinforce brand voice.

***

## 4️⃣ Empty states

Empty states can set the expectation and build excitement while indicating that the empty space is intentional. Empty states can be just a title, or a title and description and a button.

### Feature before first use

<figure><img src="/files/q7UmCmG6bUBkUm2QM6ly" alt=""><figcaption></figcaption></figure>

> **Tell the user what is supposed to be there—**&#x49;f a user has never used a feature and lands on an empty page, it will turn them away,

<figure><img src="/files/JTAAcmTXThfZUGycNRck" alt=""><figcaption></figcaption></figure>

> **Add instructions—**&#x54;ell the user how to use the feature.

***

### Feature not in use

<figure><img src="/files/LkzASUq7ovkyo0NPM5v8" alt=""><figcaption></figcaption></figure>

> **Tell the user why there is nothing there—**&#x53;et expectations with the user and let them know that nothing is wrong.

<figure><img src="/files/z76OljwjPwrEvDJ5g8Dn" alt=""><figcaption></figcaption></figure>

> **Encourage the user to use the feature—**&#x57;hat can the user do next? Direct them to action.

***

### Search

Sometimes, when a user searches for something, the system might not have anything to show. When this happens, use the empty state to inform and suggest.

<figure><img src="/files/5IkReEJwwUcm2iQXAA8Q" alt=""><figcaption></figcaption></figure>

> **Inform and suggest—**&#x54;ell the user that you didn’t find what they were looking for. Suggest other ways to find what they were looking for. For example: try rephrasing your search, search for a category, check spelling.

***

## 5️⃣ Dialog boxes

Dialog boxes are useful and necessary, but that they interrupt a user’s flow. Write the copy so that the user needs to spend as little time as possible reading and understanding the copy.

### Titles

<figure><img src="/files/aS5APaVhLwXjEe1mcfvL" alt=""><figcaption></figcaption></figure>

> **Be clear—**&#x54;he dialog box is used for alerts or confirmations. In the title, speak about the action the user will take.

<figure><img src="/files/h3GoPPjI604EUszRAeDZ" alt=""><figcaption></figcaption></figure>

> **Be brutally concise.**

***

### Buttons

<figure><img src="/files/1s91CEAaNz57JgIMyeIP" alt=""><figcaption></figcaption></figure>

> **Be consistent with the title—**&#x55;se the same verb in the title and the button. Using two different verbs will confuse the user.

<figure><img src="/files/qPVQIFIYALnz7Mb0Nm7h" alt=""><figcaption></figcaption></figure>

> **Be descriptive—**&#x49;t’s important that the user knows exactly what will happen when they click on a button.

<figure><img src="/files/3K2u2QjIRT5rPBnTe0f1" alt=""><figcaption></figcaption></figure>

> **Keep two buttons—**&#x4D;ost dialog boxes need just two buttons. Add a third button only if there is a third action.

***

### Body

<figure><img src="/files/HiClnQL6PW9w7E8AaxsO" alt=""><figcaption></figcaption></figure>

> **Not all dialog boxes need body copy.** If there is nothing to add, don’t add body copy in the dialog box.

<figure><img src="/files/dZ4GcGAIZMT7T3TWbOuM" alt=""><figcaption></figcaption></figure>

> **Inform the user of the consequence—**&#x49;f the action has a consequence the user should know about, write that in the body copy.

<figure><img src="/files/1D1N1t2jRk54BRqfG0t8" alt=""><figcaption></figcaption></figure>

> **Suggest an alternative action—**&#x49;f the user can pursue an alternative course of action, let them know in the body copy.

***
