The Daily Conversation Design Challenge

A 14 day UX Writing Challenge

Project type
Daily conversation design challenge (14 submissions)
involvement
Conversation design
year
2022
tools used
Figma logo

Background

At the end of 2022, I participated in the Daily Conversation Design Challenge, a 14 day challenge created by Hillary Black for the UX Content Collective.

The challenge consisted of a new conversation design prompt every day for 14 days, with each prompt having a unique scenario, a related challenge, and requirements to fulfill.

I posted each of my submissions onto the group LinkedIn page and received some excellent constructive criticism from Hillary and other challenge participants. I used this feedback to improve and polish my designs, and you'll find the latest version of each design on this page.

Day 1: Welcome Message

Scenario: A user is exploring nearby museum websites and opens a certain museum's website chatbot widget.
Challenge: Write the welcome message that appears when a user opens the chatbot.
Requirements: Message: 140 character limit Button(s): 20 characters max (if needed)

Text: Ahoy there! I’m Bluebeard, the chatbot here at the Maine Maritime Museum. New line: I can help you navigate the seas of our museum, buy tickets, and more. Where to first, matey?

Thought process: I wanted this bot to have a strong sense of personality, which I think is appropriate for a maritime museum guide. I incorporated unique seafaring phrases ("Ahoy there!", "navigate the seas", "matey") as a quick and easy way to establish the persona. In general, the welcome message is critical in creating a smooth user experience because first impressions are so important. I tried to keep my messages concise whilst articulating both what the bot can do and what the bot's character is like.

Day 2: Re-Engagement Message

Scenario: A user has previously used a supermarket's Messenger bot. This month, the supermarket is having a promotion and they want to send out alerts to all of their customers.
Challenge:
Write a promotional notification message for a returning user that alerts them of a new online ordering feature and direct them to more information.

Text: Hi, Greg—it’s great to see you again! New line: Want 20% off your Christmas groceries? Check out our new delivery service! Link: hf.ds14.


Thought process:
I originally had this challenge as a Cyber Monday offering, but changed it to a more universal format (here, instead of "Want 20% off your Christmas groceries?" it could easily be "Want 20% off your next order?" I also got some great advice to add a link, which avoids a turn I had in the original design where the bot says "Want to learn more?" and the user has to reply with "yes".

In general, I think a re-engagement message like this should be very sleek and scannable. It should capture the attention of a user browsing the web page, but it shouldn't be obtrusive. The tempting offer (in this case, 20% off) should be early on in the message, and the message should be as concise as possible.

Day 3: Instructions

Scenario: A customer just checked their loyalty points online and it looks like they weren't credited for their most recent transaction. They pop open the website's chatbot which can help them solve this problem.
Challenge: We need to get the user's transaction number (found on their receipt) in order to credit the points to their account. Instruct them to send the information you need to help them out.
Requirements: 3 messages maximum 200 character limit each.

User text: I didn’t get my loyalty
points from my last
order. Bot reply: OK, let’s get you those sweet loyalty points 🙌. I’ll just need the transaction number from the top of your receipt. Show image of receipt. New line: Please reply with your transaction number, or a picture of your receipt

Thought process: I wanted to make this as easy as possible for the customer, so I added a reference photo of the transaction number. I also added the possibility of replying with a photo of the receipt, which would be a convenient option for some users. I received some feedback to trim down the second message, since a lot of the information was already conveyed in the reference photo! I think being concise is critical for this scenario, since the user is already dissatisfied with something that has happened. A quick, no-nonsense approach will create a positive user interaction since it is very clear what they want.

Day 4: Human Handoff

Scenario: Your bot has failed, a lot. The user has grown frustrated so it's time to hand things off to a human to recover.
Challenge: Write the message that will hand off the user from the bot to a human agent.
Requirements: 1 message, 140 characters max.

Text: Sorry, Dobby didn’t quite catch that again. Let’s get it fixed for you—one of my human masters will be here within 5 minutes to assist. Dobby still loves you!

Thought process: I had a bit of silly fun with the theme (what if wizards from Harry Potter used a chat bot for shopping?). This scenario is one that is very frustrating for the user, so it is important to handoff to a human at this stage (usually the third error message). I wanted the sweet personality of this chatbot to curtail a user's frustration through the sheer power of being very endearing (though this approach has to be carefully considered in a real-world scenario!)

I received some advice to add a waiting time to set user expectations, which I think is a great idea. Because the situation is so frustrating it's important to make sure the user knows that the problem is being fixed with utmost haste. An alternative message could be "A human will be with you shortly—you are second in queue."

Day 5: Contextual Error Message

Scenario: A hotel chatbot is giving a user recommendations for places to stay based on a zip code they provide. This user typed in a 4 digit number instead of a valid, 5 digit zipcode.
Challenge: Write an error message to explain what happened and get them back on track.
Requirements: 2 messages maximum, 140 character limit each.

User: Recommend me a hotel. Bot: Sure thing, I can recommend you 
some Incredivalue™ places! Could 
I have the 5 digit zip code of your 
destination? User: 1545. Bot: I couldn’t locate that area. What’s 
the valid 5 digit zip code?

Thought Process: They key point in this challenge was the fact that the user typed in an invalid number - the error message should make it clear what went wrong and what the user needs to get back on track (the key word here is 'valid'). Upon revisiting my submission, I decided to bold and underline the phrase "5-digit", which makes it even clearer to the user what the misinput was.

Although this task was based around the second (error) message, the initial prompt is also very important. I wanted the bot to clearly articulate all the info the user needs. Even though it didn't work in the example scenario, having the key phrase "5 digit zip code" in the first message is critical because it maximizes the chances of the user inputting a correct response.

Day 6: Turn Taking

Scenario: A user wants to rebook their airline flight, but before they do, we want to understand why they want to rebook, and when they want to fly. This will require more than one question, with the user replying to the question before moving on to the  next one.   
Challenge: Write the messages the chatbot will say to collect this information from the user (why they want  to rebook and when they want to fly), and also what the user will say in response.
Requirements: Requirements: 2-3 chatbot messages, 2 user replies.
Chatbot messages should be no longer than 200 characters each. If you choose to use buttons, 20 character limit on those.

User: I want to reschedule my flight. Bot: OK, let's rebook flight SY-72 for you! Could I ask the reason for the reschedule? User: My plans got changed. Bot: Sure thing, Jim. Visit this link to reschedule your flight to Sydney: fl.y/15664. New line: I also sent you an email with instructions. Is there anything else I can help you with today?


Thought Process: 
This one was particularly interesting because there are many different ways to approach rescheduling. For example, some of the other submitters used a calendar in the UI, which is a great idea. I opted for the bot to send the user a link and email, for several critical reasons. Firstly, the airline likely already has a robust rescheduling system—rescheduling in the app is a great idea, but what about related functionality such as adjusting baggage allotments, choosing seats, or maybe even changing routes? Easier to send a link that can cover everything, rather than invest developer hours into a UI implementation. Secondly, a dedicated calendar UI is another potential point of failure that could be sidestepped entirely.

It was interesting to consider the challenge of design vs. practicality. In the end, I went with a link and email because it's how I would implement this design myself on Dialogflow. I could see the calendar option working well, too, but it would require a lot of effort to get it running smoothly (and this is certainly something an airline company would be able to invest in). Ultimately, like many things in this field, it depends on many different factors (such as the company, the dev team's situation, etc.)

Day 7: Abandoned Cart Re-Engagement

Scenario: A user was shopping at your online jewelry store and added multiple items to their cart, but hasn’t completed the purchase and it’s been 20 hours. They have opted-in to receive messages from your business, so you can send messages directly to them via SMS.
Challenge:
Write an abandoned cart re-engagement message attempting to get the user back to your site to purchase their cart items.
Requirements: 1 message, 200 character limit.

Text: Looks like you left some sparkles in your cart at Geminence. Complete your order with 24 hours and get 2x reward gems . Check out link: gem.fy/1452.

Thought Process: I wanted to maximize chances of user re-engagement, so I focused on creating a tempting offer for the user with a time limit to spur them into action. My original design had the bot present a code ("DAZL") for the user to put into the cart, but Hillary gave some excellent feedback: a code is unnecessary because it can be baked into the personalized cart link itself. Because of this, I was able to trim down my message to keep it concise and compelling.

Day 8: Double Opt-in

Scenario: You have a car wash business, and throughout the shop while customers wait for their car you have signage that prompts them to subscribe to text messages to receive coupons and access their membership number on their phone. They text “CARWASH” to your number to start a conversation.
Challenge:
Write the first message the user will see.
Requirements: 1 message, 160 character limit. Must include a reply prompt (eg: reply YES) and an unsubscribe. No images or links.

User SMS: Carwash. Bot: Wheely Clean. Welcome aboard! Car you ready for a 10% discount on your next wash? Reply Y for exclusive discounts and updates. Reply stop to opt out. Message and data rates may apply.

Thought Process: This was my first foray into designing for SMS. I wanted to lead with a compelling reason to subscribe, and I got some great advice to include the phrase "Reply 'Y' for exclusive discounts and updates", rather than "Reply 'Y' to subscribe." It was interesting to consider bot requirements that I do not normally have to think about (opting out, message & data rate notification). In conversation design, the bot's platform (in this case, SMS) is a very important point of consideration that impacts all aspects of the design process.

Day 9: Personalized Recommendation

Scenario: A user wants to order a bouquet from a flower delivery service Chatbot. They have the option of selecting a size and a theme for the order and will then be  presented with 3 recommendations they can choose from.
Challenge:
Write the conversation that a user will have with the bot, starting from the first question the bot will ask (skipping the “hello” part). Find out what size  arrangement they want and what gift theme. You can have the user reply with buttons or open text.
Requirements:
Minimum 2  questions, 2 user responses. Reply confirmations/transition messages  optional. Each message has a maximum of 140 characters, if you use buttons  they are limited to 20 characters each.

Bot: Hooray! I’m excited to see what recs bloom 
today! What size bouquet would you like? Show size buttson. User: Large. Bot: Wonderful, large it is! And which of our 
magical themes were you interested in?️ Show theme selection buttons. User: Heartfelt. Bot: Sounds lovely! Let me conjure up some 
heartfelt suggestions from our little garden... 
how about one of these?  Show carousel with options.


Thought Process:
 I was immediately enamored with the idea of flower chatbot that gives personalized recommendations. The persona for this one came very naturally to me—Florence is peppy, vibrant, and loaded with positive energy, which meshes well with the image a flower store may want to cultivate. I created this design while thinking about how I would implement something like this on Facebook messenger. I wanted to convey crucial information through content cards/carousels, and I made it a point to change up the types of buttons in all three responses to keep up variability (the first reply uses content cards without images, the second reply uses quick replies, and the third reply uses content cards with images). Overall, I was just really pleased with how cute this design ended up being.

Day 10: Start Command

Scenario: A user has a robot vacuum at home, and they hooked it up to their smart speaker so they can start cleaning their home with a simple command (how futuristic!)
Challenge: Write the command the user says to their smart speaker to initiate the robot cleaning schedule. Then, write the reply that the speaker says confirming that it understood.
Requirements: 1 user command (be sure to state the name of the speaker first), 3 seconds maximum (about 7 words). 1 voicebot reply, 10 seconds maximum (about 25 words).

User: Hey Felix, please vacuum the house, starting in the living room. Bot: Got it. Floor Goblin will start vacuuming now, beginning in the living room.


Thought Process:
 I hadn't designed for a smart speaker before, so I wanted to keep it relatively simple. For a bit of fun I thought of a bonus functionality (starting in a specific room of the house—useful in the case of an accidental spill or something similar) and integrated it into the design. Another little thing I did to add a little spice of personality was adding the function to name the vacuum robot (in this case, Floor Goblin). In terms of raw design, this is a straightforward wake command and an implicit confirmation (that would trigger at a certain confidence threshold).


Day 11: Multimodal log in

Scenario: A user would like to track their online orders using their smarthome "Smart Speaker" hub, but they have not set up this feature yet. In order to track, they will need to log in to their account using the app on their phone, so their speaker can access the information.
Challenge:
Write the dialog the "Smart Speaker" will say to the user instructing them to log in to their account on their phone in the app. In addition, write the  confirmation message they will receive from the speaker once they are logged in.
Requirements:
Two separate voicebot messages, each 10 seconds maximum (about 25 words).

User: Hey Felix, I want to track an online order on MeBay. Bot: In order to view your tracking history could you connect me to the MeBay app? I just sent you some linking instructions on your phone. New line: Great, it looks like we’re connected to MeBay now. Are you still interested in tracking an online order?


Thought Process:
 This one was substantially trickier than the previous day, because it was important to consider user inputs on two different devices (voice and phone). I originally had the smart speaker send linking instructions via email, but Hillary mentioned the option of sending instructions via push notifications on the phone. I like this solution because we can safely assume that having a linked smart phone is a prerequisite to using this particular speaker. It is therefore very elegant for the smart speaker to send a push notification, and then deploy the second message upon a successful connection. Upon a successful connection, I also wanted to make sure that the speaker re-prompted the user about the initial request.

Although not in the scope of this particular challenge, there are a lot of other design considerations to think about with multimodal log-ins. For example, we should consider what the bot will say if the integration is unsuccessful, or if enough time has lapsed. We should also design for alternate ways of linking if the user requests it (in case the user doesn't have their phone handy but is by a laptop, for instance.)

Day 12: Subscribe

Scenario: You’re a beverage  company and you’ve just chatted with a user - it went great! Now that you’ve completed the experience, here’s a chance to ask them to subscribe to your  messages for future promotions and news.
Challenge: Create a message  that asks the user to opt in for future communications from the brand.
Requirements: 1 message maximum, 200 character limit. Must be a question (most likely, a yes or no).

Text: Understood! I hope you enjoy your order. Which reminds me - our email subscribers get a free gift with any deliveries. Interested?


Thought Process:
 I kept this one short and sweet, using a contextual statement (I hope you enjoy your order... which reminds me...) to quickly lead into a value proposition that is difficult for the user to refuse. After all, everyone likes free things! I feel that this sort of promotional message needs to be very precise, because an overbearing message can feel quite 'salesy' or pushy to the user. I made sure this message was as short as possible whilst being conversational. I wanted it to feel like the bot was casually bringing something up, rather than robotically pushing an offer.

Day 13: Failure Message/Catch All

Scenario: The user has said  something that your bot doesn’t understand, bummer.
Challenge: Write the message the bot sends to the user when it does not understand what they are trying to do, and attempt to get the conversation back on track.
Requirements:
1-3 bot messages that should explain what has happened and attempt to get the user back into the experience. Each message is limited to 140 characters, and if you decide to use buttons, 5 maximum, 20 characters each.

User: I want the pineapple. Bot: I didn’t quite crack your cypher! Could you 
try say that for me in a different way? User: I heard about the pineapple one 
from a friend. Bot: I’m sorry, I still didn’t get that... my memory 
must be fried from doing too many escape 
rooms! Let’s try again. New line: I can help you with any of these topics. What
should we investigate next? User: So you don’t have a pineapple
themed escape room? Bot: I’ve deduced that I’m unable to help at the 
moment. Want to chat with one of my human
co-workers? They would be here within ten 
minutes.


Thought Process:
 The key part of this one was that the bot doesn't understand the user at all—this has to be a generic/universal fallback message. I implemented a three stage error handling system: a short message, a more detailed follow-up in case of another error, and finally a handoff to a live agent. I themed this bot around an escape room and was able to leverage a personality around this theme to try and keep the tone conversational and friendly, despite the errors. One thing which was received well was the inclusion of "try say that for me in a different way" in the initial message. There may be a situation where rephrasing a query allows the NLU to correctly interpret the user input!

Day 14: Set a Reminder

Scenario: A user has enabled a to-do list app on their Smarthome Speaker so they can capture their daily tasks whenever they come to mind. Now that they have listed their options, they need to be prompted to set a reminder to actually get things done.
Challenge: Confirm to the user that you have captured their "to do" (maybe you can even  restate it to them), and then ask when they would like to be reminded to  complete it.
Requirements:
Two separate voicebot messages, each 10 seconds maximum (about 25 words, minus repeating  what the user says if you choose to include).

User: Hey Felix, add “take Sally to the vet” to my to-do list. Bot: Sure thing. You want to add “take Sally to the vet” to your to-do list. Is that correct? User: Yep! Bot: Great, I’ve added it to your list. When should I send you a reminder? User: Wednesday, at 3pm. Bot: Sounds like a plan. I’ll remind you on Wednesday at 3pm.


Thought Process:
 Voice bots can often misinterpret a user's utterances, so it is very important to use confirmations to make sure the conversation is on the right track. For this challenge, I decided to lead with an explicit confirmation because a task on a to-do list should be considered a fairly high priority. Like the other voice-based tasks in this challenge, I made sure to say the bot's messages out loud to make sure they sounded natural. One thing this helped me with was varying the acknowledgements (Sure thing, Great, Sounds like a plan), which improved the cadence of the messages and makes the exchange more conversational.

Final thoughts

I had a great time with the 14 day conversation design challenge, and I think it was a great way to improve my conversation design skills. It also gave me the opportunity to brush up on my Figma skills and attempt some visual mockups.

I found it particularly useful to read the feedback from Hillary and my peers—I was given a lot of great advice, recommendations, and interesting comments to think about.

Upon finishing the 14 day challenge, I decided to wait a couple of weeks before updating my submissions. On a second edit I found it surprising how many little tweaks I was able to make, from both the advice I received and also from simply noticing areas of potential improvement. Waiting before editing is something I've done a lot when writing copy in the marketing communications field, and I do think it is an important technique to employ in any sort of writing (including writing for conversational AI!)

This really drove home one key aspect of conversation design: design should be iterative. You shouldn't expect to have a perfect design the first time around. It's important to get a design out there and revisit it later with user testing, feedback, or even a fresh mindset. Pushing out one design a day for 14 days really made me appreciate this aspect of design all the more.

Another thing that I really enjoyed about the challenge was the fact that the format of each day was so different. Conversation design really is quite broad—there are so many applications—and I think Hillary did a good job of making sure that the challenge covered different areas of the field. I hadn't designed for SMS or Smart Speakers before, so it was fun to think about the design challenges involved with these platforms.

Overall, I found a lot of value in undertaking the 14 day conversation design challenge and would recommend it to anyone looking to hone their conversation design skills. It was genuinely interesting and a lot of fun, and I felt like I have become a better conversation designer because of it.

Let's start a conversation.

If you have any comments, queries, or even if you simply just want to say "hi," please don't hesitate to send me a message!

With professional experience spanning three countries, I have confidence in my ability to adapt to any situation. As a life-long learner, I always strive to equip myself with new skills and knowledge to tackle whatever challenge may come.