Amazon Developer

as

Settings
Sign out
Notifications
Alexa
Amazon Appstore
Ring
AWS
Documentation
Support
Contact Us
My Cases
Category SDK
MCP toolkit
Certify
Resources

Home Services: Sample End-to-End Test Script

This script exercises the Home Services flow end-to-end. Use this to verify the full experience including problem-first routing, dynamic Q&A, professional selection, and request submission.

SPI Flow: getAvailableServices → getProfessionals → getServiceProjectSchema → Q&A → populateCustomerProfile → previewBookingRequest → messageProfessional

Prerequisites

  • Addon deployed (alexa-ai deploy)
  • Infrastructure deployed (npx cdk deploy)
  • Permissions granted (via QR code scan in Alexa+ app)
  • Phone number added to your profile (required for messageProfessional)
  • Echo Show device (required for APL visuals, pro cards, profile selection)

Conversation Script — House Cleaning (Browse & Choose)

# U/A Utterance / Response SPI Operation / Validation
1 User "I need house cleaning"
2 Alexa "Sure, I'd be happy to help you find a house cleaning service. Tell me more about what you need — how many rooms, any specific requirements? The more details you share, the better I can match you with the right pro." Problem-First Routing. Verify: Alexa asks about the problem/details FIRST before showing pros
3 User "My house needs a deep cleaning, 3 bedrooms"
4 Alexa "I found some great cleaning services in your area. <Pro 1>, <Pro 2>, and <Pro 3> are available. You can ask me to compare pros by price, ratings, and more, or for a recommendation. Who would you like to go with?" getAvailableServices → getProfessionals. Verify: Pro cards displayed with names, ratings, provider logo. Cards uniform size, not cropped. Suggestion pills generated below cards
5 User "Tell me about <Pro 1>"
6 Alexa "<Pro 1> is run by <Name>, who's been in business for 3 years. They've got a 5-star rating and start at $110." Verify: Pro detail info rendered (name, years, rating, price, specialties)
7 User "Compare them" / "Compare the first two"
8 Alexa [Verbal comparison of pros + side-by-side APL card] Verify: Comparison APL card renders on Echo Show (ratings, price, response time side-by-side)
9 User "Let's go with <Pro 1>"
10 Alexa "Alright, what kind of cleaning do you need? Move out, deep, or standard? And how often — just once, weekly, every two weeks, or monthly?" getServiceProjectSchema → Dynamic Q&A. Verify: 2 related questions combined per turn (not all at once, not one at a time)
11 User "Standard, just once"
12 Alexa "How many bedrooms and bathrooms do you have?" Verify: Related questions combined (bedrooms + bathrooms together)
13 User "3 bedrooms, 2 bathrooms"
14 Alexa "Any pets in the house? And when would you like this done?" Verify: Next pair of questions combined
15 User "No pets, within a week"
16 Alexa "I found two profiles. The first is [3P Profile], and the second is [Alexa Profile]. Which one would you like to use?" populateCustomerProfile (Account Matching). Verify: Profile cards on Echo Show with name, email, phone. If only 1 profile → auto-selected
17 User "Select the first one"
18 Alexa "Alright, I've got your request ready. <Pro> will clean your 3-bedroom house within a week. Sound good?" previewBookingRequest. Verify: Summary APL shows pro name, time shown as readable range, contact info visible
19 User "Can you edit some details?"
20 Alexa "Sure, what details would you like to change?" Verify: Edit details works via voice command
21 User "Change it to 4 bedrooms"
22 Alexa "Updated! <Pro> will clean your 4-bedroom house within a week. Sound good?" Verify: Summary updates with new value
23 User "Yes"
24 Alexa "Great! Your request has been sent to <Pro>. They'll get back to you soon." messageProfessional. Verify: Request sent successfully, TTS mentions pro name

Operations Coverage

# SPI Operation What it validates
1 getAvailableServices Returns available service categories for the user's area
2 getProfessionals Returns ranked professionals matching the service and location
3 getServiceProjectSchema Returns dynamic Q&A form fields for the selected service
4 populateCustomerProfile Matches and displays user profiles for selection
5 previewBookingRequest Generates a summary of the request for user confirmation
6 messageProfessional Submits the request to the selected professional

Physical Device Validations (Echo Show)

# Area What to Check
1 Pro Cards Layout Cards not cropped, full content visible, uniform size across all pros
2 Pro Images Profile photos loading correctly (no broken icons)
3 Provider Logo Provider logo renders correctly (not raw text)
4 Suggestion Pills Quick-action chips displayed below pro cards ("Select first pro", "Compare", "See more")
5 Compare APL Side-by-side comparison card renders when user asks to compare
6 Question Batching 2 related questions combined per turn, proper grouping
7 APL Card Spacing No visible gaps between Q&A sections — consistent spacing
8 Profile Cards Uniform size, showing name, email, phone for each profile
9 Auto-Selection If only 1 profile available → auto-selected without prompting
10 Pro Name on Summary Selected professional's name shown on summary card
11 Time Display Readable time range (e.g., "Morning (9AM - 12PM)") not raw slot values
12 Contact Info Contact details visible on confirmation card

Supported Categories

Home Services supports dynamic categories via your provider's service catalog (getAvailableServices). Categories are not hardcoded — the provider's catalog determines what's available.

Sample utterances for testing across categories:

# Category Sample Utterance
1 House Cleaning "I need house cleaning"
2 Handyman "I need a handyman"
3 Appliance Repair "My fridge is making weird noises"
4 Lawn Mowing "I need help with lawn mowing"
5 Electrical Repair "I need an electrician"
6 Plumbing "My kitchen faucet is leaking"
7 TV Mounting "Find pros to mount my TV"
8 Pest Control "Find a pest control service near me"
9 Pressure Washing "Find a pro to pressure wash my driveway"
10 Gutter Cleaning "Find someone to clean my gutters"

Alternate Utterances

# Intent Utterance Options
1 Start HS flow (general) "I need help with my house" / "I need a home service" / "Can you help me find a pro?"
2 Start HS flow (specific category) "I need house cleaning" / "My fridge is making weird noises" / "I need an electrician" / "My kitchen faucet is leaking"
3 Describe problem "My house needs a deep cleaning" / "The dishwasher is broken" / "I have ants in my kitchen" / "My lawn is overgrown"
4 Get pro details "Tell me about [name]" / "Can you give me more information about the first one?" / "How many reviews does [name] have?"
5 Compare pros "Compare them" / "Compare the first two" / "Who has better ratings?" / "Who's cheaper?" / "Recommend one"
6 Select pro "Let's go with [name]" / "Send a request to [name]" / "The first one" / "Proceed with [name]"
7 Answer Q&A "Standard, just once" / "3 bedrooms, 2 bathrooms" / "No pets" / "Within a week" / "Morning" / "ASAP"
8 Profile selection "Select the first one" / "Use my Alexa profile" / "The first profile"
9 Edit details (voice only) "Can you edit some details?" / "Change the date" / "Change it to 4 bedrooms" / "Move it to next week"
10 Confirm request "Yes" / "Sounds good" / "Send it" / "Confirm" / "That works"
11 Decline / Cancel "No" / "Cancel" / "Never mind" / "I changed my mind" / "Let's try a different pro"

Notes

  • Problem-first routing: The Home Services flow asks about the problem FIRST. Alexa does not immediately list pros — it asks for details, then finds matching professionals.
  • Batched Q&A: Questions come from the provider's dynamic catalog (getServiceProjectSchema). 2 related questions are combined per turn — NOT all at once.
  • Account matching: Both 3P profile and Alexa profile are shown. 3P profile fields are backfilled from Alexa profile when missing.
  • Dynamic categories: The provider's catalog can expose many categories beyond a fixed set via getAvailableServices.
  • Edit Details: Edit details works via voice command ("Can you edit some details?") but the APL button is not available on screen.
  • Missing phone: If the selected profile has no phone number, a clear error should display and prompt to switch profile or add a phone number.

Was this page helpful?

Last updated: Jul 10, 2026