{
  "id": "phone-call",
  "title": "Booking by phone",
  "group": "daily",
  "partner": {
    "name": "Jess",
    "role": "salon receptionist"
  },
  "topic": [
    "book*",
    "appointment",
    "haircut",
    "hair",
    "cut",
    "colour",
    "color",
    "trim",
    "salon",
    "time",
    "day",
    "today",
    "tomorrow",
    "week",
    "morning",
    "afternoon",
    "evening",
    "name",
    "number",
    "phone",
    "spell*",
    "call*",
    "cancel*",
    "available",
    "slot"
  ],
  "levels": {
    "A2": {
      "goal": "Book a time, give your name and spell it.",
      "phrases": [
        {
          "text": "I'd like to book…",
          "re": "\\b(i'd|i would) like to (book|make)\\b"
        },
        {
          "text": "Do you have anything on…?",
          "re": "\\bhave anything on\\b"
        },
        {
          "text": "That's fine.",
          "re": "\\bthat'?s fine\\b"
        },
        {
          "text": "My name is…",
          "re": "\\bmy name is\\b|\\bname'?s\\b"
        },
        {
          "text": "It's spelled…",
          "re": "\\bspel(led|t)\\b"
        }
      ],
      "words": [
        {
          "w": "to book",
          "m": "to ask for a time before you come"
        },
        {
          "w": "a haircut",
          "m": "when someone cuts your hair"
        },
        {
          "w": "to spell",
          "m": "to say the letters of a word"
        }
      ],
      "steps": [
        {
          "id": "reason",
          "task": "Say why you are calling",
          "say": "Good afternoon, Cutting Room, Jess speaking. How can I help?",
          "hint": "Would you like to book a haircut?",
          "model": "Hi. I'd like to book a haircut, please.",
          "options": [
            {
              "id": "book",
              "any": [
                "book*",
                "appointment",
                "haircut",
                "hair cut",
                "cut",
                "trim",
                "colour",
                "color",
                "hair",
                "reserv*",
                "come in",
                "make an",
                "available",
                "free time",
                "slot"
              ]
            }
          ],
          "tests": {
            "on": [
              "I'd like to book a haircut please",
              "I want make an appointment",
              "can I come in for a trim"
            ],
            "partly": [
              "hello good afternoon",
              "my name is Maria"
            ],
            "off": [
              "I lost my keys at the station"
            ]
          }
        },
        {
          "id": "offer",
          "task": "Agree on a day and time",
          "say": "Sure. The first free time is Thursday at four. Is that okay?",
          "hint": "Thursday at four o'clock. Is that good for you?",
          "model": "Yes, that's fine.",
          "options": [
            {
              "id": "yes",
              "any": [
                "yes",
                "yeah",
                "okay",
                "ok",
                "fine",
                "that's fine",
                "good",
                "great",
                "perfect",
                "sounds good",
                "thursday",
                "four",
                "4",
                "sure",
                "works",
                "that works",
                "no problem"
              ],
              "none": [
                "not good",
                "can't",
                "cannot",
                "another",
                "other day",
                "different"
              ],
              "reply": "Great, Thursday at four."
            },
            {
              "id": "other",
              "any": [
                "no",
                "can't",
                "cannot",
                "not good",
                "doesn't work",
                "busy",
                "working",
                "at work",
                "another day",
                "other day",
                "different day",
                "later",
                "earlier",
                "anything on",
                "anything else",
                "monday",
                "tuesday",
                "wednesday",
                "friday",
                "saturday",
                "sunday",
                "next week",
                "tomorrow",
                "today",
                "morning",
                "evening"
              ],
              "reply": "I can do Friday at ten. Is that okay?",
              "next": "friday"
            }
          ],
          "tests": {
            "on": [
              "yes that's fine => yes",
              "Thursday at four is perfect => yes",
              "do you have anything on Friday => other",
              "no I'm working on Thursday => other",
              "sorry I can't on Thursday => other"
            ],
            "partly": [
              "my name is Maria Silva"
            ],
            "off": [
              "my brother likes to play video games"
            ]
          }
        },
        {
          "id": "friday",
          "jump": true,
          "task": "Answer the new time",
          "hint": "Friday at ten in the morning. Is that good?",
          "model": "Friday at ten is great, thanks.",
          "options": [
            {
              "id": "yes",
              "any": [
                "yes",
                "yeah",
                "okay",
                "ok",
                "fine",
                "that's fine",
                "good",
                "great",
                "perfect",
                "sounds good",
                "friday",
                "ten",
                "10",
                "sure",
                "works",
                "no problem"
              ],
              "none": [
                "not good",
                "can't",
                "cannot"
              ],
              "reply": "Great, Friday at ten."
            }
          ],
          "tests": {
            "on": [
              "yes Friday at ten is great",
              "okay",
              "that works"
            ],
            "partly": [
              "no"
            ],
            "off": [
              "the cat is sleeping on the sofa"
            ]
          }
        },
        {
          "id": "name",
          "task": "Give your name",
          "ahead": false,
          "say": "Can I take your name, please?",
          "hint": "Your name, please? Your first name is fine.",
          "model": "It's Maria Silva.",
          "options": [
            {
              "id": "name",
              "any": [
                "my name",
                "name is",
                "name's",
                "it's",
                "i'm",
                "i am",
                "under",
                "this is",
                "call me",
                "mister",
                "mr",
                "mrs",
                "miss",
                "ms",
                "/^(?!(?:yes|yeah|no|nope|hello|hi|hey|sorry|pardon|what|okay|ok|um|uh|hmm|oh|thanks|thank|please|excuse|again|can|could|repeat|say|slow|slowly|don't|not|wait|sure|right|well|of course|the|a|an|is|do|how|why|when|where|just|that's|fine|good|great|perfect|on|at|in|for|monday|tuesday|wednesday|thursday|friday|saturday|sunday|today|tomorrow|morning|afternoon|evening)\\b)[a-z']+(?: [a-z']+){0,2}(?: \\|)?$/"
              ],
              "reply": "@thanks"
            }
          ],
          "tests": {
            "on": [
              "it's Maria Silva",
              "Silva",
              "my name is Deniz Yilmaz",
              "yes of course my name is Ana"
            ],
            "partly": [
              "Thursday at four"
            ],
            "off": [
              "we watched a long football match on television"
            ]
          }
        },
        {
          "id": "spell",
          "task": "Spell your name",
          "say": "How do you spell that?",
          "hint": "Can you spell your name, letter by letter?",
          "model": "It's spelled S-I-L-V-A.",
          "options": [
            {
              "id": "letters",
              "any": [
                "/(?:^|\\s)(?:[a-z] (?:\\| )?){2,}[a-z](?=\\s|$)/",
                "double",
                "spelled",
                "spelt",
                "spell it",
                "letter*",
                "capital",
                "as in"
              ],
              "reply": "@got-it"
            }
          ],
          "tests": {
            "on": [
              "it's spelled S I L V A",
              "s i l v a",
              "M-A-R-I-A",
              "S. I. L. V. A."
            ],
            "partly": [
              "Silva",
              "my name is Maria"
            ],
            "off": [
              "I like to go running in the park"
            ]
          }
        }
      ],
      "close": "Perfect, you're booked in. See you then!",
      "watch": [
        {
          "re": "\\bi want (make|book|change|cancel|come)\\b",
          "better": "I'd like to $1",
          "note": "“I’d like to…” sounds polite on the phone.",
          "tests": {
            "yes": [
              "I want make an appointment"
            ],
            "no": [
              "I'd like to make an appointment"
            ]
          }
        },
        {
          "re": "\\bcan you repeat\\b(?!\\s+(?:that|it|the|your))",
          "better": "could you say that again",
          "note": "This sounds friendlier on the phone.",
          "tests": {
            "yes": [
              "can you repeat?",
              "can you repeat please"
            ],
            "no": [
              "could you say that again"
            ]
          }
        },
        {
          "re": "\\bit (?:writes|is written|spells)\\b",
          "better": "it's spelled",
          "note": "For the letters of a word, say “It’s spelled…”.",
          "tests": {
            "yes": [
              "it writes S I L V A"
            ],
            "no": [
              "it's spelled S I L V A"
            ]
          }
        }
      ]
    },
    "B1": {
      "goal": "Find a time that works, change it if you need to and check the details.",
      "phrases": [
        {
          "text": "Just a cut, please.",
          "re": "\\bjust a (cut|trim|haircut)\\b"
        },
        {
          "text": "Do you have anything later?",
          "re": "\\banything (later|earlier)\\b"
        },
        {
          "text": "Could we make it…?",
          "re": "\\bmake it\\b"
        },
        {
          "text": "Just to check, that's…",
          "re": "\\bjust to check\\b"
        },
        {
          "text": "Sorry, the line's a bit bad.",
          "re": "\\bline'?s (a bit )?bad\\b|\\bbad line\\b|\\bbreaking up\\b"
        }
      ],
      "words": [
        {
          "w": "you're through to…",
          "m": "you have called…"
        },
        {
          "w": "the earliest",
          "m": "the first free time"
        },
        {
          "w": "to reach you",
          "m": "to call you"
        }
      ],
      "steps": [
        {
          "id": "reason",
          "task": "Say why you are calling",
          "say": "Hi, you're through to Cutting Room, Jess speaking.",
          "hint": "Are you calling to book an appointment?",
          "model": "Hi, I'd like to book a haircut, please.",
          "options": [
            {
              "id": "book",
              "any": [
                "book*",
                "appointment",
                "haircut",
                "hair cut",
                "cut",
                "trim",
                "colour",
                "color",
                "hair",
                "reserv*",
                "come in",
                "make an",
                "available",
                "free time",
                "slot",
                "calling to",
                "calling about"
              ]
            }
          ],
          "tests": {
            "on": [
              "hi I'd like to book a haircut please",
              "I would like to reserve a haircut",
              "can I make an appointment"
            ],
            "partly": [
              "hello",
              "is this the salon"
            ],
            "off": [
              "my car is broken again"
            ]
          }
        },
        {
          "id": "service",
          "task": "Say what you want done",
          "ahead": false,
          "say": "Is it just a cut, or colour as well?",
          "hint": "Only a haircut, or a new colour too?",
          "model": "Just a cut, please.",
          "options": [
            {
              "id": "cut",
              "any": [
                "just a cut",
                "only a cut",
                "just cut",
                "cut",
                "haircut",
                "trim",
                "just the cut"
              ],
              "reply": "Just a cut, perfect."
            },
            {
              "id": "colour",
              "any": [
                "colour",
                "color",
                "dye",
                "highlight*",
                "both",
                "as well",
                "too",
                "cut and colour",
                "cut and color"
              ],
              "reply": "Colour too, so that's two hours."
            }
          ],
          "tests": {
            "on": [
              "just a cut please => cut",
              "a cut and colour please => colour",
              "both please => colour",
              "just a trim no colour => cut"
            ],
            "partly": [
              "on Thursday",
              "my name is Ana"
            ],
            "off": [
              "I visited my grandparents last summer"
            ]
          }
        },
        {
          "id": "time",
          "task": "Ask for a later time",
          "ahead": false,
          "say": "The earliest I have is Thursday at nine.",
          "hint": "Thursday at nine. Does that work for you?",
          "model": "I'm working then. Do you have anything later?",
          "options": [
            {
              "id": "later",
              "any": [
                "later",
                "anything later",
                "after work",
                "evening",
                "afternoon",
                "after five",
                "after 5",
                "after six",
                "can't",
                "cannot",
                "working",
                "at work",
                "too early",
                "busy",
                "different",
                "other",
                "another"
              ],
              "reply": "I could do Thursday at six thirty?",
              "next": "later"
            },
            {
              "id": "accept",
              "any": [
                "yes",
                "yeah",
                "fine",
                "that's fine",
                "great",
                "perfect",
                "that works",
                "okay",
                "ok",
                "good",
                "nine",
                "9",
                "thursday",
                "sure",
                "no problem"
              ],
              "none": [
                "can't",
                "cannot",
                "not good",
                "too early"
              ],
              "reply": "@great"
            }
          ],
          "partly": [
            "earlier",
            "other day",
            "friday",
            "monday"
          ],
          "tests": {
            "on": [
              "I'm working then do you have anything later => later",
              "nine is fine => accept",
              "that's too early for me => later",
              "yes that works => accept",
              "Thursday is fine but nine is too early => later"
            ],
            "partly": [
              "oh really"
            ],
            "off": [
              "my sister is studying medicine in Prague"
            ]
          }
        },
        {
          "id": "later",
          "jump": true,
          "task": "Accept the new time",
          "hint": "Six thirty on Thursday. Would that work?",
          "model": "Six thirty is perfect, thanks.",
          "options": [
            {
              "id": "yes",
              "any": [
                "yes",
                "yeah",
                "perfect",
                "great",
                "fine",
                "that's fine",
                "that works",
                "okay",
                "ok",
                "good",
                "six thirty",
                "6 30",
                "/\\b6\\W+30\\b/",
                "half past six",
                "sure",
                "lovely",
                "make it"
              ],
              "none": [
                "can't",
                "not good"
              ],
              "reply": "@perfect"
            }
          ],
          "tests": {
            "on": [
              "six thirty is perfect thanks",
              "yes that works",
              "okay",
              "6:30 is great"
            ],
            "partly": [
              "no"
            ],
            "off": [
              "the museum opens at ten"
            ]
          }
        },
        {
          "id": "number",
          "task": "Give your phone number",
          "say": "Can I take a number, in case we need to reach you?",
          "hint": "What's your phone number, please?",
          "model": "Sure, it's 07700 900123.",
          "options": [
            {
              "id": "number",
              "any": [
                "my number",
                "number is",
                "zero",
                "double",
                "triple",
                "mobile",
                "/(?:\\d[ |]*){6,}/",
                "/\\b(?:(?:zero|oh|one|two|three|four|five|six|seven|eight|nine|double) ?){5,}/"
              ],
              "reply": "@thanks"
            }
          ],
          "tests": {
            "on": [
              "sure it's 07700 900123",
              "my number is 0 7 7 0 0 9 0 0",
              "oh seven seven double oh nine eight one two"
            ],
            "partly": [
              "Thursday at six thirty"
            ],
            "off": [
              "I usually drink green tea at home"
            ]
          }
        }
      ],
      "close": "Lovely, you're booked in. See you on Thursday!",
      "watch": [
        {
          "re": "\\breserve (a |an )?(haircut|cut|appointment|colour|color|trim)\\b",
          "better": "book $1$2",
          "note": "We book appointments. We reserve tables and rooms.",
          "tests": {
            "yes": [
              "I would like to reserve a haircut"
            ],
            "no": [
              "I'd like to book a haircut"
            ]
          }
        },
        {
          "re": "(?<!\\byou )\\bspeak (?:more )?(?:slowly|slow)\\b",
          "better": "could you speak more slowly",
          "note": "A question sounds polite on the phone.",
          "tests": {
            "yes": [
              "I didn't understand, speak slowly"
            ],
            "no": [
              "could you speak more slowly"
            ]
          }
        },
        {
          "re": "\\bafter the work\\b",
          "better": "after work",
          "note": "No “the” in “after work”.",
          "tests": {
            "yes": [
              "I can come after the work"
            ],
            "no": [
              "I can come after work"
            ]
          }
        }
      ]
    },
    "B2": {
      "goal": "Move a booking you already have, cope with no free times and leave a clear message.",
      "phrases": [
        {
          "text": "I need to move my appointment.",
          "re": "\\bmove (my|the) (appointment|booking)\\b"
        },
        {
          "text": "Something's come up.",
          "re": "\\bsomething('s| has) come up\\b"
        },
        {
          "text": "I'd rather wait.",
          "re": "\\bi'?d rather\\b"
        },
        {
          "text": "Could you let me know if anything comes up?",
          "re": "\\blet me know\\b"
        },
        {
          "text": "Is there any way you could…?",
          "re": "\\bany way you could\\b"
        }
      ],
      "words": [
        {
          "w": "fully booked",
          "m": "no free times left"
        },
        {
          "w": "the cancellation list",
          "m": "people waiting for a free time"
        },
        {
          "w": "pricier",
          "m": "more expensive"
        },
        {
          "w": "to let it go",
          "m": "to not ask you to pay this time"
        }
      ],
      "steps": [
        {
          "id": "reason",
          "task": "Say you need to move a booking",
          "say": "Cutting Room, good morning. How can I help?",
          "hint": "Is it about a booking you already have?",
          "model": "Hi. I need to move my appointment. Something's come up.",
          "options": [
            {
              "id": "move",
              "any": [
                "move",
                "change",
                "reschedule",
                "postpone",
                "bring forward",
                "bring it forward",
                "earlier",
                "later",
                "cancel*",
                "come up",
                "something's come up",
                "can't make",
                "won't make",
                "booking",
                "appointment",
                "put back",
                "another day",
                "another time",
                "different time",
                "different day"
              ]
            }
          ],
          "tests": {
            "on": [
              "I need to move my appointment something's come up",
              "I can't make my appointment on Thursday",
              "I need to postpone my appointment before"
            ],
            "partly": [
              "good morning",
              "is that the salon"
            ],
            "off": [
              "I bought some flowers for my mother"
            ]
          }
        },
        {
          "id": "name",
          "task": "Give the name on the booking",
          "ahead": false,
          "say": "Let me find it. What name is it under?",
          "hint": "The name on the booking, please?",
          "model": "It's under Silva. Maria Silva.",
          "options": [
            {
              "id": "name",
              "any": [
                "my name",
                "name is",
                "name's",
                "it's",
                "i'm",
                "i am",
                "under",
                "this is",
                "call me",
                "mister",
                "mr",
                "mrs",
                "miss",
                "ms",
                "/^(?!(?:yes|yeah|no|nope|hello|hi|hey|sorry|pardon|what|okay|ok|um|uh|hmm|oh|thanks|thank|please|excuse|again|can|could|repeat|say|slow|slowly|don't|not|wait|sure|right|well|of course|the|a|an|is|do|how|why|when|where|just|that's|fine|good|great|perfect|on|at|in|for|monday|tuesday|wednesday|thursday|friday|saturday|sunday|today|tomorrow|morning|afternoon|evening)\\b)[a-z']+(?: [a-z']+){0,2}(?: \\|)?$/"
              ]
            }
          ],
          "tests": {
            "on": [
              "it's under Silva",
              "Maria Silva",
              "the name is Deniz Kaya"
            ],
            "partly": [
              "my appointment is on Thursday"
            ],
            "off": [
              "we are going to the seaside in August"
            ]
          }
        },
        {
          "id": "fully-booked",
          "task": "Choose the waiting list or Sam",
          "ahead": false,
          "say": "We're full this week. The cancellation list, or Sam on Saturday? He's pricier.",
          "hint": "The cancellation list, or Saturday with Sam?",
          "model": "I'd rather wait. Could you let me know if anything comes up?",
          "options": [
            {
              "id": "list",
              "any": [
                "list",
                "cancellation*",
                "wait*",
                "call me",
                "let me know",
                "if anything",
                "comes up",
                "text me",
                "rather wait",
                "too expensive",
                "too much"
              ],
              "reply": "Done. I'll text you if anything opens up."
            },
            {
              "id": "sam",
              "any": [
                "sam",
                "saturday",
                "pricier",
                "worth it",
                "i'll pay",
                "don't mind paying",
                "fine with",
                "book it",
                "take it",
                "expensive is fine",
                "more expensive"
              ],
              "reply": "Okay, Saturday at ten with Sam."
            }
          ],
          "partly": [
            "next week",
            "fully booked",
            "really",
            "nothing",
            "how much",
            "price"
          ],
          "tests": {
            "on": [
              "I'd rather wait could you let me know if anything comes up => list",
              "Saturday with Sam is fine => sam",
              "Sam is too expensive put me on the list => list",
              "I don't mind paying more for Sam => sam"
            ],
            "partly": [
              "what about next week",
              "oh really"
            ],
            "off": [
              "the train was very crowded yesterday"
            ]
          }
        },
        {
          "id": "fee",
          "task": "Deal with the change fee",
          "ahead": false,
          "say": "There's a ten-pound fee for changes under a day's notice. Is that okay?",
          "hint": "Is the fee okay, or is that a problem?",
          "model": "Is there any way you could let it go this time?",
          "options": [
            {
              "id": "waive",
              "any": [
                "waive",
                "this time",
                "just this once",
                "first time",
                "regular",
                "skip",
                "drop",
                "let it go",
                "any way",
                "anyway",
                "illness",
                "ill",
                "sick",
                "emergency",
                "not my fault",
                "not fair",
                "unfair",
                "could you",
                "is there",
                "problem"
              ],
              "reply": "Since you're a regular, I'll let it go."
            },
            {
              "id": "ok",
              "any": [
                "fine",
                "okay",
                "ok",
                "that's fine",
                "fair",
                "no problem",
                "understand",
                "sure",
                "yes",
                "i'll pay",
                "that's ok",
                "of course",
                "that works"
              ],
              "none": [
                "waive",
                "this time",
                "let it go",
                "not fair",
                "unfair"
              ],
              "reply": "@great"
            }
          ],
          "tests": {
            "on": [
              "is there any way you could let it go this time => waive",
              "that's fine I understand => ok",
              "no problem => ok",
              "that's not fair it was an emergency => waive"
            ],
            "partly": [
              "what about Saturday"
            ],
            "off": [
              "I love walking my dog by the river"
            ]
          }
        }
      ],
      "close": "All sorted, then. Bye now!",
      "watch": [
        {
          "re": "\\bpostpone (my |the |our )?(appointment|booking) (?:before|earlier|to before)\\b",
          "better": "bring $1$2 forward",
          "note": "“Postpone” means later. For earlier, say “bring forward”.",
          "tests": {
            "yes": [
              "I need to postpone my appointment before"
            ],
            "no": [
              "I need to bring my appointment forward",
              "I need to postpone my appointment"
            ]
          }
        },
        {
          "re": "\\b(a|any|the) cancel\\b",
          "better": "$1 cancellation",
          "note": "The noun is “cancellation”.",
          "tests": {
            "yes": [
              "call me if there is a cancel"
            ],
            "no": [
              "call me if there's a cancellation",
              "can I cancel"
            ]
          }
        },
        {
          "re": "\\b(doesn't|does not) matter me\\b",
          "better": "$1 matter to me",
          "note": "Say “It doesn’t matter to me”.",
          "tests": {
            "yes": [
              "it doesn't matter me"
            ],
            "no": [
              "it doesn't matter to me"
            ]
          }
        },
        {
          "re": "\\bput (me|us) (?:in|at|to) the ((?:cancellation |waiting )?list)\\b",
          "better": "put $1 on the $2",
          "note": "You go “on” a list.",
          "tests": {
            "yes": [
              "can you put me in the cancellation list"
            ],
            "no": [
              "can you put me on the cancellation list",
              "add me to the list"
            ]
          }
        }
      ]
    }
  }
}