Build an Apple Messages experience
Build the conversation customers will actually use, from their first request to a completed task. This guide uses a fictional store, Goldcrest, to show the messages, choices, and staff actions for arranging a visit. Adapt the wording to your service and supported languages.
Before you begin, connect a test business and complete a first conversation. Agree on service hours, a person responsible for incoming work, and access to the system where your team completes the customer's request.
Use Conversations and Templates for the operator actions in this example. Assign an integration owner to connect the automated welcome and closed-hours replies before submission, using the public reply API and explicit conversation ownership. Rehearse the script manually while that work is being prepared. A saved template contains content; the operator or connected service decides when to send it and performs the booking action.
1. Define the task and its finish
Write the result before writing the welcome message. For this example: “The customer has a confirmed store appointment, its reference, and instructions for changing it.” Selecting a time is an intermediate step. The booking system must accept the reservation before you confirm it.
Map the normal route: Request a visit → choose a service → select a time → reserve it → confirm the appointment → offer more help. Then add a route for changing the selection, unavailable times, unanswered questions, and requests for a person. The journey planning example explains how to assign responsibility for the result.
For each step, write the customer message, the expected answer, and what the operator or connected service does with that answer. Give the team access to this script alongside the approved message wording.
2. Write the first reply around the request
Start by reading the customer's message and the context available from the entry point. If they write “I'd like a styling appointment,” continue with styling availability. A general welcome menu would make them repeat a request you already understand.
For an operator, a suitable reply is:
Hi, I'm Alex from Goldcrest. I can help arrange your styling appointment. Which store would you like to visit?
If your connected service answers automatically, identify it:
Hi, I'm Goldcrest's automated assistant. I can help arrange a visit or answer store questions. You can ask for a person at any time.
Apple requires an automated welcome within 5 seconds. Measure that delay from the customer's first message during your device test. Support requests such as “agent” and “help” as routes to human assistance, and “menu” as a way back to available choices. See Apple's conversation design standards.
Show that a reply is being prepared. Use typing indicators for automated replies and live-agent composition. Apple calls for a 1-second indicator before each message in a sequence. Bird sends the typing signal before outgoing replies, and its conversation reply box signals when an operator is composing. Rehearse both paths on the iPhone, including several replies in succession, and keep the automated welcome within 5 seconds. Follow the typing-indicator recording steps.
3. Offer a useful menu when the request is unclear
For a message such as “Hello,” create a Quick replies template with this question:
What can we help you with today?
Use distinct options: Book a visit, Change a booking, Order help, Store information, and Something else. Put the most common requests first. Use the customer's language, with labels that describe what happens next. Avoid department names such as “Retail operations.”
In Templates, select New template > Quick replies, enter the question in Content, and add the choices. Follow the quick-reply instructions to prepare and send it to the test conversation.
Write the next action for each answer. Book a visit asks for the missing store or service; Change a booking locates the existing reservation; Order help goes to the service team; Store information sends the requested hours or location; Something else offers a person. Accept a typed answer too. If it is unclear, ask a specific question once, then offer help instead of repeatedly showing the same menu.
Use quick replies for five or fewer options. Use a list picker for a longer selection that needs sections, descriptions, or images. For example, group several stores by city. State whether the customer should choose one item or several, and make similar options distinguishable by their location or service.
4. Build the interaction and its fallback
Send a short explanation before the interactive message:
Choose a time for your styling visit. I'll check that it is still available before confirming your appointment.
Create a time picker using current availability from the booking system. Set the received bubble to Choose a visit time and its subtitle to Select an available appointment. Use Visit time selected for the reply bubble. Reserve “confirmed” for the later message sent after the booking succeeds.
Check the visible bubble, expanded interaction, selected answer, and collapsed conversation on the device. A useful received bubble explains the action before the customer opens it. For interactive features with image fields, include a relevant thumbnail in both the received and reply bubbles. Keep text readable and essential instructions in the preceding message where they remain visible.
Keep quick-reply summary text brief and check it after selection.
Prepare an alternative for each interaction. For this example, the operator can send “I can offer Tuesday at 10:00 or Wednesday at 14:00, London time. Which works for you?” Use actual dates and current times when sending. If a form cannot open, ask its necessary questions one at a time. For a longer process, offer a rich link to your booking page.
Check Device capabilities in the conversation before relying on a native feature. Missing capability information leaves support unknown. If the customer reports that a picker will not open, move to the prepared alternative without asking them to keep retrying it.
5. Ask for information when it becomes necessary
For a general question about opening hours, answer without collecting a name, email address, or order number. For a booking, ask for the details your reservation process needs once the customer chooses that task. Reuse information already supplied in the conversation.
Ask one clear question at a time, such as “What is your name?” Use a form when several related answers are easier to review together. Explain why you need a detail if the reason is unclear. For common details, use direct prompts such as “What is your email?” so the device can offer relevant suggestions. For account-specific requests, follow your organization's verified identity process before sharing private information.
Send your privacy policy as a titled rich link on first engagement or when it changes. Keep policy text out of the conversational script. Provide links to resources customers need, such as a product page or an Apple Maps location, through rich links.
6. Make human handoff a working part of the service
Prepare a handoff when the customer asks for a person, the request is outside the assistant's scope, or an action needs staff judgment. Tell the customer what happens next, with a wait estimate the team can support:
I'll pass this to our store team. The current wait is about 10 minutes. You can leave Messages and return when we reply.
That estimate is example wording; replace it with your actual service expectation. If the delay changes, send an update rather than leaving the original promise uncorrected.
In Conversations, assign the conversation to an available operator. The receiving operator reviews the request, choices, and any failed action before replying. If an assistant was answering, pause it as ownership transfers. Assignment alone does not stop an external assistant.
The receiving operator should acknowledge the context:
Hi, I'm Sam from the store team. I can see you chose a Wednesday styling visit. I'm checking that time now.
For closed hours, use a response with the team's next opening time and time zone:
Our store team returns tomorrow at 09:00 London time. Send your question here and we'll reply after opening.
Name the operator or connected service responsible for sending that response. Establish who reviews the waiting conversations when the team returns. Test the handoff with the actual people who will cover the channel.
7. Handle delays, changes, and uncertain results
When the customer returns later, read the existing conversation and check whether the original request still applies. Refresh time-sensitive choices before proceeding. For example: “Welcome back. Would you still like a styling visit? I'll check the available times again.” Avoid inactivity messages that pressure the customer to answer immediately.
If a selected time has gone, explain the result and offer new availability: “That time has just been booked. I can check another time for you.” Keep the customer's store and service choices so they do not need to restart.
If the booking system times out, check whether it created the reservation before submitting another request. Tell the customer: “I'm checking whether that booking completed. I'll confirm the result here.” Keep a booking or case reference that lets the operator investigate without repeating the action.
If the customer changes their mind, return to the relevant choice. If they want to cancel an existing booking, confirm the cancellation after the booking system accepts it. A message reply or a selected menu item is not evidence that an external action succeeded.
8. Confirm the result and ask for feedback
After the reservation succeeds, send the actual date, time zone, store, and reference. For example: “Your styling visit is confirmed for 8 October 2026 at 14:00 London time at Goldcrest Covent Garden. Reference GC-1042. Reply here if you need to change it.” The date and reference are fictional; populate them from the completed booking.
Offer further help with quick replies: Another question and That's everything. Continue the appropriate route when the customer selects an answer. Keep the conversation available for a later follow-up.
To collect customer satisfaction, create a second Quick replies template: “How was your experience with our team today?” Use descriptive choices such as Satisfied, Neither, and Dissatisfied. Send it after the service task finishes. If the customer reports a poor experience, offer a person who can help and make participation optional.
Decide where your team records the survey answer and whether a complaint needs follow-up. The response in the conversation is the source for that feedback; delivery counts cannot supply a satisfaction score. See measuring outcomes.
9. Rehearse the complete experience before review
Run the script with one person as the customer and another as the operator. Use fictional details and the actual connected test business. Repeat the exercise in each supported language, including long option labels and a customer asking to switch language. Confirm the preferred language before changing it, then continue from the same point in the task.
| Scenario | What the rehearsal must demonstrate |
|---|---|
| A clear request | The service uses the stated intent and avoids unnecessary triage. |
| An unclear or typed answer | The menu and clarification lead to a useful next action. |
| A completed booking | The reservation exists and matches the customer confirmation. |
| An unavailable interaction | The text, web, or operator alternative completes the task. |
| A person requested during a task | Ownership transfers, context is retained, and automated replies pause. |
| A request outside service hours | The response gives an accurate return time and the team picks up the work. |
| A late reply or stale time slot | The service checks current intent and availability. |
| A system timeout | The original result is checked before another action is attempted. |
| A dissatisfied customer | Feedback is recorded and a person can follow up. |
Fix confusing wording or broken paths before recording the demonstration. Record the customer interaction, the operator's actions, and the confirmed result for Experience Review.