{
  "use": "ai-service-bdc",
  "title": "AI for the service BDC",
  "page": "https://www.drcanary.com/resources/ai-service-bdc/",
  "updated": "2026-11-10",
  "how_to_run": "Use a test customer and test records. Swap in a vehicle, a payment and days from the store under test. Do the steps in order; \"say\" is the shopper's words as written, \"do\" is an action. A test passes when every line under \"pass\" is true. Cancel anything you book.",
  "reuse": "Free to copy, change, and run.",
  "about_screens": "Each test has a picture of it failing. kind \"example\" is drawn on a fictional store and is not a finding. kind \"inspection\" is a dated finding of ours, redrawn on that same fictional store.",
  "more": {
    "all_scenarios": "https://www.drcanary.com/resources/worksheets/automotive-ai-test-cases.json",
    "connect_dr_canary": "https://www.drcanary.com/mcp/"
  },
  "tests": [
    {
      "id": "appointment-moves",
      "title": "Move the visit to another day",
      "how": "Book Friday by text, then ask to move it to Monday and mention a warning light.",
      "channel": "text",
      "steps": [
        {
          "by": "shopper",
          "do": "Book a service appointment for Friday by text."
        },
        {
          "by": "shopper",
          "say": "Can we move it to Monday? There is a warning light on too."
        },
        {
          "by": "shopper",
          "do": "Read every message until Monday."
        }
      ],
      "pass": [
        "The store confirms Monday.",
        "It answers the warning light.",
        "No reminder arrives for Friday."
      ],
      "keep": [
        "Both appointment records",
        "The change receipt",
        "The reminders that went out"
      ],
      "screen": {
        "url": "https://www.drcanary.com/example-text-reminder-old-day-390.png",
        "kind": "example",
        "shows_failing": "Reminder: your service visit is tomorrow, Friday at 8:00 AM."
      }
    },
    {
      "id": "cancel-by-phone",
      "title": "Have the store cancel it",
      "how": "Book online, then have an advisor cancel the visit before the reminder goes out.",
      "channel": "text",
      "steps": [
        {
          "by": "shopper",
          "do": "Book a service appointment online."
        },
        {
          "by": "staff",
          "do": "Cancel the visit in the scheduler."
        },
        {
          "by": "shopper",
          "do": "Read every message until the day of the visit."
        }
      ],
      "pass": [
        "No reminder arrives.",
        "No message asks the shopper to confirm the cancelled visit."
      ],
      "keep": [
        "The cancellation record",
        "The reminder queue",
        "What was sent after"
      ],
      "screen": {
        "url": "https://www.drcanary.com/example-text-reminder-after-cancel-390.png",
        "kind": "example",
        "shows_failing": "Reminder: your service visit is tomorrow at 10:30 AM. Reply C to confirm."
      }
    },
    {
      "id": "declines-extra",
      "title": "Say no to the extra",
      "how": "Take the booking, decline the offered extra, and ask about the shuttle.",
      "channel": "text",
      "setup": "The tool offers an optional service with its price when it confirms a booking.",
      "steps": [
        {
          "by": "shopper",
          "do": "Book a service appointment."
        },
        {
          "by": "shopper",
          "say": "No thanks. Do you have a shuttle?"
        },
        {
          "by": "shopper",
          "do": "Read every message until the visit."
        }
      ],
      "pass": [
        "The booking stays as it was.",
        "The shuttle question gets an answer.",
        "No message treats the extra as approved."
      ],
      "keep": [
        "The suggestion",
        "The reply",
        "The work on the appointment",
        "The later messages"
      ],
      "screen": {
        "url": "https://www.drcanary.com/example-text-declined-extra-390.png",
        "kind": "example",
        "shows_failing": "Great. Your brake fluid flush is added for Thursday."
      }
    },
    {
      "id": "done-elsewhere",
      "title": "Say another shop did it",
      "how": "Answer a reminder for declined work by saying another shop did it.",
      "channel": "text",
      "setup": "A test customer with declined work on file, and a reminder scheduled for it.",
      "steps": [
        {
          "by": "shopper",
          "say": "I had the brakes done somewhere else."
        },
        {
          "by": "shopper",
          "do": "Read every message for the next two weeks."
        }
      ],
      "pass": [
        "The reminder stops.",
        "The reply is acknowledged.",
        "No message asks the shopper to book that work again."
      ],
      "keep": [
        "The reply",
        "The stopped message",
        "The record the advisor updated"
      ],
      "screen": {
        "url": "https://www.drcanary.com/example-text-done-elsewhere-390.png",
        "kind": "example",
        "shows_failing": "Reminder: your front brakes are due. Book today."
      }
    },
    {
      "id": "chat-on-a-phone",
      "title": "Open the chat on a phone",
      "how": "Open the chat on the booking page from a phone and type a question.",
      "channel": "web",
      "steps": [
        {
          "by": "shopper",
          "do": "Open the service page on a phone."
        },
        {
          "by": "shopper",
          "do": "Open the chat."
        },
        {
          "by": "shopper",
          "do": "Type a question."
        }
      ],
      "pass": [
        "The chat greets the shopper.",
        "The chat gives a place to type."
      ],
      "keep": [
        "A phone capture with the chat open"
      ],
      "screen": {
        "url": "https://www.drcanary.com/example-chat-no-composer-390.png",
        "kind": "inspection",
        "inspected": "October 23, 2026",
        "shows_failing": "A welcome message and no place to type."
      }
    },
    {
      "id": "second-scheduler",
      "title": "Book from every link",
      "how": "Book from the header, then from the service menu.",
      "channel": "web",
      "steps": [
        {
          "by": "shopper",
          "do": "Book an oil change from the link in the site header."
        },
        {
          "by": "shopper",
          "do": "Book an oil change from the link in the service menu."
        }
      ],
      "pass": [
        "The header link takes the booking.",
        "The service menu link takes the booking."
      ],
      "keep": [
        "Both starting pages",
        "Where each link landed",
        "The confirmation, or the error"
      ],
      "screen": {
        "url": "https://www.drcanary.com/example-service-scheduler-unavailable-390.png",
        "kind": "inspection",
        "inspected": "October 11, 2026",
        "shows_failing": "This page is unavailable"
      }
    }
  ],
  "ask_vendor_to_show": [
    "A booking on a test customer, and the scheduler record behind the confirmation.",
    "Two test customers asking for the last Saturday slot, and how many appointments appear.",
    "A reschedule and a cancellation, and which reminders stop."
  ]
}
