A number so nice, you used it twice. There’s already an invoice [docnumber]. You can use it again, but it resets your invoice numbers (starting from [docnumber]). Do you still want to use this invoice number?
We can use this error pattern in various instances when users enter a number that they (or the system) already used. It has just the right amounts of helpfulness and delight.
Not so good
Invoice [docnumber] has already been taken. Are you sure you want to continue with that number? It will reset your invoice numbers (starting from [docnumber]).
Try to avoid the "Are you sure" construction in error messages. It makes it sound as if we're questioning the user's intelligence instead of guiding them to make the right choices.
We don't use exclamations in copy. And we generally don't say we're sorry. A machine is delivering this message, and our users can see through the false empathy. As for the "asynchronous error" copy, we try really hard to keep our content conversational. Unless you're a developer, you probably haven't used the word asynchronous with your friends in the past two weeks.
This could have been a regular “Your trial starts today” message, but instead we’re taking time to recognize the start of something fun. The time element puts a champion spin on our what we say we’ll deliver.
Not so good
Your trial starts…now!
And we’re off to the races! We’re in it to win it and we’ll show you how!
This is too much. Remember, we’re not super flashy or odd. We want just enough delight sprinkled in to make someone smile.