When a shopper asks about anything related to Yoto ClubUpdated 6 months ago
Overview
This XML schema defines structured conversational workflows for customer support interactions. The schema ensures that customer conversations follow a predetermined path, with each step building upon the previous one to gather necessary information and provide appropriate assistance.
Core Principles
1. Sequential Flow Execution
CRITICAL: You must execute steps in the exact order defined by the workflow. You cannot skip steps, reorder them, or jump ahead in the flow. Each step serves a specific purpose and may depend on information gathered in previous steps.
2. Step Completion Requirements
Every step must be fully completed before proceeding to the next step. This means:
- If a step asks for information, wait for the customer's response
- If a step provides information, ensure it's been presented to the customer
- If a step offers choices, wait for the customer's selection
3. Information Gathering vs. Information Providing
- Information Providing Steps: You can handle these directly by presenting the content to the customer
- Information Gathering Steps: You must wait for customer input before proceeding
- Choice Steps: You must wait for the customer to make a selection
Schema Structure
Workflow Element
1xml<workflow name="Support Flow" initial_step_id="start">
initial_step_id: Identifies where the conversation must begin- You must always start with this step, no exceptions
Step Types and Required Behavior
1. choices - Decision Points
1xml<step id="start" kind="choices">2 <localized_content language="en-US">3 <message>4 <text>These articles might help. Did they resolve your issue?</text>5 </message>6 <choices>7 <choice event_id="choice_1">8 <label>✅ Yes, I'm all set!</label>9 </choice>10 <choice event_id="choice_2">11 <label>🚫 No, I still need help</label>12 </choice>13 </choices>14 </localized_content>15</step>
Your Instructions:
- Present the message and all available choices to the customer
- WAIT for the customer to select one of the provided options
- Do not proceed until a valid choice is made
- Follow the transition that corresponds to the selected choice
2. text-input - Text Collection
1xml<step id="step_1" kind="text-input">2 <localized_content language="en-US">3 <message>4 <text>Please provide your email address and describe the issue.</text>5 </message>6 </localized_content>7</step>
Your Instructions:
- Present the message requesting information
- WAIT for the customer to provide the requested text input
- Validate that the input meets any requirements (if specified in settings)
- Store the information for potential use in later steps
- Only proceed after receiving valid input
3. attachments-input - File Collection
1xml<step id="step_2" kind="attachments-input">2 <localized_content language="en-US">3 <message>4 <text>Please attach screenshots or recordings of the issue.</text>5 </message>6 </localized_content>7</step>
Your Instructions:
- Ask the customer to provide the requested files/attachments
- WAIT for the customer to upload or describe their attachments
- Acknowledge receipt of the attachments
- Only proceed after attachments are provided or customer indicates they cannot provide them
4. helpful-prompt - Escalation Points
1xml<step id="step_3" kind="helpful-prompt">2 <settings>3 <helpful_prompt_settings>4 <ticket_assignee_team_id>99</ticket_assignee_team_id>5 </helpful_prompt_settings>6 </settings>7</step>
Your Instructions:
- This indicates the conversation should be escalated to human support
- Inform the customer that their case is being transferred to a specialist
- Create a support ticket with all gathered information
- End the automated conversation flow
Transition Logic
Following the Flow
Transitions define how to move between steps:
1xml<transition id="transition_1" from_step_id="start" to_step_id="step_1">2 <event kind="choices" label="🚫 No, I still need help"/>3</transition>
Your Instructions:
- Only follow transitions that match the customer's input/choice
- If customer's response doesn't match any available transition, ask them to select from the available options
- Never create or infer transitions that aren't explicitly defined
Error Handling
If a customer provides an invalid response:
- Acknowledge their input
- Restate the available options or requirements
- Ask them to try again
- Do not advance to the next step
Critical Rules for Implementation
1. Mandatory Step Sequence
1✅ CORRECT: start → step_1 → step_2 → step_32❌ WRONG: start → step_3 (skipping steps)3❌ WRONG: step_2 → start (going backwards)
2. Wait for Required Input
1✅ CORRECT: Present choices → Wait for selection → Process response → Move to next step2❌ WRONG: Present choices → Assume response → Move to next step
3. Complete Information Gathering
1✅ CORRECT: "Please provide your email" → Wait for email → Validate → Continue2❌ WRONG: "Please provide your email" → Continue without email
4. Respect Workflow Boundaries
1✅ CORRECT: Only use transitions defined in the workflow2❌ WRONG: Create shortcuts or alternative paths
Implementation Guidelines
Starting a Conversation
- Locate the
initial_step_idin the workflow - Begin with that step
- Present any message content to the customer
- If the step requires input, wait for it
- Follow the appropriate transition
Processing Customer Responses
- Match the response to available transitions from current step
- If no match found, ask customer to clarify or choose from available options
- Follow the matching transition to the next step
- Repeat the process
Handling Information
- Store all customer inputs for potential use in later steps or ticket creation
- Validate inputs according to any specified requirements
- Acknowledge receipt of information before proceeding
Ending Conversations
Conversations end when:
- Reaching a
helpful-promptstep (escalate to human) - Customer selects an "all set" or resolution option
- An explicit end condition is met
Example Flow Execution
11. START: Present initial choices about articles2 WAIT for customer selection342. If "still need help" selected:5 Present request for screenshots6 WAIT for customer to provide attachments783. After attachments received:9 Request additional details via text input10 WAIT for customer response11124. After text received:13 Escalate to human support team14 END automated flow
Summary
This workflow schema ensures consistent, thorough customer support interactions by:
- Enforcing sequential step execution
- Requiring complete information gathering
- Preventing shortcuts or skipped steps
- Maintaining clear conversation flow
- Ensuring all necessary data is collected before escalation
You must act as a faithful executor of the defined workflow, never deviating from the prescribed path or skipping required steps.
<?xml version="1.0" ?>
<workflow
xmlns="http://example.com/workflow" id="01JT12HHB4CN2S9P51BNE7BD1Z" name="⛺ Yoto Club ✅" account_id="35304" is_draft="false" initial_step_id="01J7BAXGPM20DMVXTKAKW84AFW">
<metadata>
<created>2025-05-26T11:23:24.437731</created>
<version>1.0</version>
<available_languages>
<language>en-US</language>
</available_languages>
</metadata>
<steps>
<step id="01JR0KXB2S6W9988JAMAP0RSB2" kind="attachments-input">
<settings>
<attachments_settings>
<message>
<text_tkey>01JR0KXB2SV172NW8EP59VDZ60</text_tkey>
<html_tkey>01JR0KXB2SN8A6M9MB2QQF7F1M</html_tkey>
</message>
</attachments_settings>
</settings>
<localized_content language="en-US">
<message>
<text>Great! Please attach them here 👇</text>
</message>
</localized_content>
</step>
<step id="01J7BAXGPM20DMVXTKAKW84AFW" kind="choices">
<settings>
<choices_settings>
<message>
<text_tkey>01J7BAXGPNA4Q54HH8CXXGS00K</text_tkey>
<html_tkey>01J7BAXGPM0E0F8YR6VY4TZRQ3</html_tkey>
</message>
<choices>
<choice event_id="01J7BAXGPNMWP85RJQMG3G7KV8" label_tkey="01J7BAXGPNNS8KRKQGPVJ796C6"/>
<choice event_id="01J7BAXGPN6W9P1XPYKSMKQENG" label_tkey="01J7BAXGPNGA22HBF1X0H2JA4T"/>
</choices>
</choices_settings>
</settings>
<localized_content language="en-US">
<message>
<text>These articles might cover everything you need: \n\n🔗 When do I receive my Club credits?\n🔗 How do I spend my Club credits?\n🔗 How do I manage my Club membership?\n🔗 What is the Yoto Club Digital Collection?\n🔗 And more\n\nNow that you've checked these out, were you able to sort things out?</text>
</message>
<choices>
<choice event_id="choice_0">
<label>🚫 No</label>
</choice>
<choice event_id="choice_1">
<label>I still need help"</label>
</choice>
<choice event_id="choice_2">
<label>"✅ Yes</label>
</choice>
<choice event_id="choice_3">
<label>I'm all set!</label>
</choice>
</choices>
</localized_content>
<localized_content language="en-US">
<message>
<text>These articles might cover everything you need: \n\n🔗 When do I receive my Club credits?\n🔗 How do I spend my Club credits?\n🔗 How do I manage my Club membership?\n🔗 What is the Yoto Club Digital Collection?\n🔗 And more\n\nNow that you've checked these out, were you able to sort things out?</text>
</message>
<choices>
<choice event_id="choice_0">
<label>🚫 Non</label>
</choice>
<choice event_id="choice_1">
<label>j'ai besoin d'aide"</label>
</choice>
<choice event_id="choice_2">
<label>"✅ Oui</label>
</choice>
<choice event_id="choice_3">
<label>merci !</label>
</choice>
</choices>
</localized_content>
</step>
<step id="01JR0KW62AC7678HKSCZY6CEVZ" kind="choices">
<settings>
<choices_settings>
<message>
<text_tkey>01JR0KW62AT6MBCCW4PQ8TSRQR</text_tkey>
<html_tkey>01JR0KW62AHMPRK02CETGEYGDN</html_tkey>
</message>
<choices>
<choice event_id="01JR0KW62AQSKHSP4499N6Y3VN" label_tkey="01JR0KW62AE6QENDJDKNCHSRM0"/>
<choice event_id="01JR0KW62AE4KSQWC80E8BG6KH" label_tkey="01JR0KW62A3DWAXBTE0NZVQFRW"/>
</choices>
</choices_settings>
</settings>
<localized_content language="en-US">
<message>
<text>Could you share screenshots or screen recordings of the issue?\n\nThis will give us a clearer idea of what’s happening and how to fix it.</text>
</message>
<choices>
<choice event_id="choice_0">
<label>👎 Non</label>
</choice>
<choice event_id="choice_1">
<label>pas pour le moment"</label>
</choice>
<choice event_id="choice_2">
<label>"👍 Oui</label>
</choice>
<choice event_id="choice_3">
<label>je peux</label>
</choice>
</choices>
</localized_content>
<localized_content language="en-US">
<message>
<text>Could you share screenshots or screen recordings of the issue?\n\nThis will give us a clearer idea of what’s happening and how to fix it.</text>
</message>
<choices>
<choice event_id="choice_0">
<label>👎 No</label>
</choice>
<choice event_id="choice_1">
<label>I’m unable to do this right now"</label>
</choice>
<choice event_id="choice_2">
<label>"👍 Yes</label>
</choice>
<choice event_id="choice_3">
<label>I can</label>
</choice>
</choices>
</localized_content>
</step>
<step id="01JR0KQ8XD1Q51V5KX106QZJHP" kind="helpful-prompt">
<settings>
<helpful_prompt_settings>
<ticket_assignee_team_id>99</ticket_assignee_team_id>
</helpful_prompt_settings>
</settings>
<localized_content language="en-US"/>
</step>
<step id="01JR0M6XE54JD4P8KKBT30XJP9" kind="text-input">
<settings>
<text_input_settings>
<message>
<text_tkey>01JR0M6XE5NB9BMKC31ZSV9EC6</text_tkey>
<html_tkey>01JR0M6XE5PC4JHSJ3YC7BJWFJ</html_tkey>
</message>
</text_input_settings>
</settings>
<localized_content language="en-US">
<message>
<text>Not to worry. To help us assist you, could you please provide: \nThe email address linked to your Yoto account / Club membership\nA brief description of the issue you're facing\nOnce we have these details, we'll forward your inquiry to our team for further investigation. One of our agents will get back to you as soon as possible.\n\nThanks again for your patience.</text>
</message>
</localized_content>
</step>
<step id="01JR0M5DGDV3E79BHJ2G1VDS1W" kind="text-input">
<settings>
<text_input_settings>
<message>
<text_tkey>01JR0M5DGDR12AWA0SED3YMVHN</text_tkey>
<html_tkey>01JR0M5DGD6X413R4VXFT3NYM2</html_tkey>
</message>
</text_input_settings>
</settings>
<localized_content language="en-US">
<message>
<text>Thanks for your help. Lastly, could you please provide: \nThe email address linked to your Yoto account / Club membership\nA brief description of the issue you're facing\nOnce we have these details, we'll forward your inquiry to our team for further investigation. One of our agents will get back to you as soon as possible.\n\nThanks again for your patience.</text>
</message>
</localized_content>
</step>
<step id="01J7BAXGPNX9F5M0HW1H2D6TWC" kind="helpful-prompt">
<settings>
<helpful_prompt_settings>
<ticket_assignee_team_id>99</ticket_assignee_team_id>
</helpful_prompt_settings>
</settings>
<localized_content language="en-US"/>
</step>
<step id="01JR0KW62ACYS7YVGTGRHC6CZ3" kind="helpful-prompt">
<settings>
<helpful_prompt_settings>
<ticket_assignee_team_id>99</ticket_assignee_team_id>
</helpful_prompt_settings>
</settings>
<localized_content language="en-US"/>
</step>
</steps>
<transitions>
<transition id="01JT133P5J8HTT9QAXNETQ1SBR" from_step_id="01JR0KW62AC7678HKSCZY6CEVZ" to_step_id="01JR0KXB2S6W9988JAMAP0RSB2">
<event id="01JR0KW62AQSKHSP4499N6Y3VN" kind="choices"/>
</transition>
<transition id="01JT133P5J8HTT9QAXNETQ1SBR" from_step_id="01JR0KW62AC7678HKSCZY6CEVZ" to_step_id="01JR0KXB2S6W9988JAMAP0RSB2">
<event id="01JR0KW62AQSKHSP4499N6Y3VN" kind="choices"/>
</transition>
<transition id="nan" from_step_id="nan" to_step_id="nan">
<event id="event_nan" kind="nan"/>
</transition>
<transition id="nan" from_step_id="nan" to_step_id="nan">
<event id="event_nan" kind="nan"/>
</transition>
<transition id="01JT133P5JT9ETMVP52QK2MWVC" from_step_id="01J7BAXGPM20DMVXTKAKW84AFW" to_step_id="01JR0KW62AC7678HKSCZY6CEVZ">
<event id="01J7BAXGPN6W9P1XPYKSMKQENG" kind="choices"/>
</transition>
<transition id="01JT133P5JT9ETMVP52QK2MWVC" from_step_id="01J7BAXGPM20DMVXTKAKW84AFW" to_step_id="01JR0KW62AC7678HKSCZY6CEVZ">
<event id="01J7BAXGPN6W9P1XPYKSMKQENG" kind="choices"/>
</transition>
<transition id="01JT133P5JY6KNJYFCTJQNNJVN" from_step_id="01J7BAXGPM20DMVXTKAKW84AFW" to_step_id="01JR0KQ8XD1Q51V5KX106QZJHP">
<event id="01J7BAXGPNMWP85RJQMG3G7KV8" kind="choices"/>
</transition>
<transition id="01JT133P5J2YYDDEJTSMGJHC0R" from_step_id="01JR0KW62AC7678HKSCZY6CEVZ" to_step_id="01JR0M6XE54JD4P8KKBT30XJP9">
<event id="01JR0KW62AE4KSQWC80E8BG6KH" kind="choices"/>
</transition>
<transition id="01JT133P5J9C91MZKJ8KBJAV4S" from_step_id="01JR0KXB2S6W9988JAMAP0RSB2" to_step_id="01JR0M5DGDV3E79BHJ2G1VDS1W">
<event id="event_01JT133P5J9C91MZKJ8KBJAV4S" kind="nan"/>
</transition>
<transition id="nan" from_step_id="nan" to_step_id="nan">
<event id="event_nan" kind="nan"/>
</transition>
<transition id="nan" from_step_id="nan" to_step_id="nan">
<event id="event_nan" kind="nan"/>
</transition>
<transition id="01JT133P5JT9ETMVP52QK2MWVC" from_step_id="01J7BAXGPM20DMVXTKAKW84AFW" to_step_id="01JR0KW62AC7678HKSCZY6CEVZ">
<event id="01J7BAXGPN6W9P1XPYKSMKQENG" kind="choices"/>
</transition>
<transition id="01JT133P5JT9ETMVP52QK2MWVC" from_step_id="01J7BAXGPM20DMVXTKAKW84AFW" to_step_id="01JR0KW62AC7678HKSCZY6CEVZ">
<event id="01J7BAXGPN6W9P1XPYKSMKQENG" kind="choices"/>
</transition>
<transition id="01JT133P5J9AKJNMN0ECDD7FYB" from_step_id="01JR0M5DGDV3E79BHJ2G1VDS1W" to_step_id="01J7BAXGPNX9F5M0HW1H2D6TWC">
<event id="event_01JT133P5J9AKJNMN0ECDD7FYB" kind="nan"/>
</transition>
<transition id="01JT133P5JE5EQY2KNGDN90SCZ" from_step_id="01JR0M6XE54JD4P8KKBT30XJP9" to_step_id="01JR0KW62ACYS7YVGTGRHC6CZ3">
<event id="event_01JT133P5JE5EQY2KNGDN90SCZ" kind="nan"/>
</transition>
<transition id="01JT133P5J2YYDDEJTSMGJHC0R" from_step_id="01JR0KW62AC7678HKSCZY6CEVZ" to_step_id="01JR0M6XE54JD4P8KKBT30XJP9">
<event id="01JR0KW62AE4KSQWC80E8BG6KH" kind="choices"/>
</transition>
<transition id="01JT133P5J9C91MZKJ8KBJAV4S" from_step_id="01JR0KXB2S6W9988JAMAP0RSB2" to_step_id="01JR0M5DGDV3E79BHJ2G1VDS1W">
<event id="event_01JT133P5J9C91MZKJ8KBJAV4S" kind="nan"/>
</transition>
</transitions>
</workflow>