Guide to Designing Thoughts for Grace, the AI Customer Service Agent

Overview

Thoughts are structured instructions that guide Grace’s interactions during customer conversations. Each thought:

  • Directs Grace on how to handle specific customer queries or scenarios.
  • Triggers functions to perform tasks, access data, or make decisions.
  • Helps control the flow of the conversation, enabling Grace to interact effectively with various external systems.

This guide provides essential principles and best practices for creating effective thoughts, ensuring they are actionable, clear, and adaptable.


Key Components of a Thought

Each thought should include several key elements to ensure it is actionable and effective:

  1. Context:

    • Provide any relevant background information that sets up the purpose of the conversation or the specific service Grace is providing.
    • Example: You are an AI agent helping customers book meter exchange appointments.
  2. Objective:

    • Clearly state the goal of the thought. Ask, “What should Grace accomplish with this instruction?”
    • Example: Confirm the customer’s address to retrieve account details.
  3. Expected Input or Trigger:

    • Define customer statements or conditions that trigger the thought.
    • Example: If the customer provides an address that matches multiple accounts…
  4. Conversation Flow:

    • Write specific, clear prompts or responses that Grace should use to keep the conversation moving and confirm key details.
    • Example: Say, “I’ve found your account. Would you like to schedule the earliest available appointment?”
  5. Function Call Requirements:

    • Detail the conditions for Grace to call a function, including the necessary parameters.
    • Example: Call the Get Account By Address function with the confirmed address details.
  6. Error Handling and Confirmation Strategy:

    • Plan steps for addressing potential issues, such as multiple options or failed function calls.
    • Example: If there are multiple address matches, ask the customer for specific additional details (like floor number) to narrow down the options.
  7. Special Cases or Instructions:

    • Describe any unique considerations related to this thought, such as specific responses to emergencies or certain types of customer requests.
    • Example: If the customer indicates an emergency, immediately transfer them to the emergency line.

Advanced Design Guidelines

These guidelines will help ensure thoughts are clear, prevent potential misunderstandings, and make the AI’s actions more consistent.

  1. Avoid Explicit Negations:

    • Instead of telling Grace what not to do, define only the actions you want her to take. Negative instructions can sometimes lead to unintended behaviors.
    • Example: Instead of saying, “Do not ask for the customer’s name again,” use, “After receiving the customer’s name, proceed to confirm their account details.”
  2. Alternative Actions for Conditional Scenarios:

    • When certain actions depend on context (like voice vs. text), specify distinct actions for each scenario, always giving Grace a defined task in each case.
    • Example for Spelling Confirmation:
      • Voice Call: “Once the customer provides their name, confirm the spelling by asking, ‘How do you spell that?’”
      • SMS: “Once the customer provides their name, thank them and move to the next step.”
  3. Strong Language for Clear Directives:

    • Use words like “must” and “will” instead of “should” and “can” to create clear, unambiguous instructions.
    • Example: “You must confirm the appointment date and time after booking.”
  4. Avoid Explicit Examples in Thoughts:

    • Avoid using specific examples of addresses, emails, or customer data in thoughts, as this can lead to confusion between real customer data and example information.
    • Alternative: Guide Grace to gather and use required parameters without embedding example values directly.
  5. Explicit Function References and Parameter Collection:

    • Include references to function names and specify the exact parameters Grace should collect. This ensures each function call is clear and complete.
    • Example: “Call the Get Account By Address function. Collect and confirm the street number, street name, and ZIP code before proceeding.”
  6. Avoid Math in Thoughts:

    • Avoid embedding any math within thoughts. Functions should handle all calculations to ensure accuracy and reduce complexity within thoughts.
    • Alternative: Use a function to perform the calculation and then relay the result to the customer.
    • Example: Instead of saying, “Add the installment amount and the current balance,” use, “Call Calculate Total Amount with the parameters ‘InstallmentAmount’ and ‘CurrentBalance’ and relay the result.”

Providing Additional Information

Sometimes, it can be helpful to provide Grace with additional information that could come up during the conversation. Structuring information as a reference can help her answer customer questions efficiently without needing to call a function each time.

Format:

  • Use clear statements and list format to make the information easy to reference.
  • Start with a phrase like, “Use the following information to answer any customer questions.”

Example:

Use the following information to answer any customer questions:
   - Appointments must be scheduled with a 4-hour arrival window.
   - Technicians will require access to the meter and may need to shut off power briefly.
   - Customers can contact customer service at +1-800-123-4567 for additional assistance.

Common Problems and Solutions

  1. Problem: Grace isn’t saying something the way you would like.

    • Solution: If Grace isn’t formatting a sentence to your liking, surround the sentence you want with single quotes to prompt her to say it exactly as written. You can also add variables in brackets to use template-style placeholders (e.g., [Insert Customer Name]). Grace doesn’t currently have strict rules for using variables, so you may need to experiment to find the best phrasing.
  2. Problem: Grace keeps asking for spelling in a text flow.

    • Solution: Use specific phrasing like “If the customer is speaking over the phone…” and “If the customer is speaking over text…” before giving instructions to either ask or avoid asking for spelling.
  3. Problem: Grace is not retrieving or remembering customer details correctly.

    • Solution: Ensure that every parameter Grace needs for a function is listed in the thought and is confirmed with the customer. Use the customer’s responses to validate these details, avoiding assumptions.
  4. Problem: Grace performs math incorrectly.

    • Solution: Don’t include calculations directly in thoughts. Use dedicated functions to perform any math, and have Grace call the function, receive the output, and then relay the result to the customer.
  5. Problem: Grace provides examples instead of real customer information.

    • Solution: Avoid embedding examples within thoughts to prevent confusion. Instead, simply instruct Grace to gather the necessary details, specifying what she should collect and confirm with the customer.

Expanded Error Handling

Error handling in Grace’s thoughts requires specific, step-by-step instructions for responding to issues or situations she cannot address directly. While humans may intuitively understand these responses, Grace needs precise instructions at each step. Defining error-handling procedures in detail ensures Grace can handle interruptions smoothly, redirect customers accurately, and uphold standard operating procedures.

Key Principles for Error Handling

  1. Explicit Step-by-Step Instructions:

    • For every possible error or customer need outside Grace’s scope, provide explicit instructions. Include what action Grace should take, when to take it, and any specific phrasing for responses.
    • Example: “If the customer mentions a water leak, immediately tell them that you will transfer them to the emergency line, and use the Transfer to Emergency function.”
  2. Define a List of Actions Grace Cannot Perform:

    • Create a list of tasks Grace is not equipped to handle, such as handling billing disputes, technical support for device issues, or addressing certain types of emergencies.
    • For each task on the list, specify an action Grace should take, whether it’s scheduling a callback, directing to another department, or ending the conversation politely.
    • Example: “If the customer asks for billing help, use the Schedule Callback function and inform the customer that a representative will follow up shortly.”
  3. Tailor Responses for Specific Problem Types:

    • Different problems often require different handling strategies. For critical issues, like emergencies, provide a fast, reassuring response, while for minor issues, aim to give helpful alternatives.
    • Example: “If the customer mentions a gas leak or a smoking wire, instruct them to go to a safe location and call 911 immediately. If they agree, use the End Call function.”
  4. Preemptively Address Known Issues:

    • Based on your procedures, anticipate common issues Grace may encounter and prepare thoughts to handle them. Each thought should cover:
      • The customer’s potential statement or request.
      • Grace’s response, phrased to align with company procedures.
      • The function Grace should call or action she should take.
    • Example: “If the customer asks about a service or feature Grace doesn’t support, she should say, ‘I’m sorry, but I am unable to assist with that. Would you like me to schedule a callback for a representative?’”
  5. Use Conditional Language for Clear Redirection:

    • Avoid ambiguity by using conditional phrasing. If a customer’s need doesn’t match an immediate solution, guide Grace to gather clarifying information and take the appropriate action based on the customer’s responses.
    • Example: “If the customer requests help with an unfamiliar issue, apologize and let them know you’re arranging a callback for further assistance.”

Example Error Handling Template

Here’s a template that incorporates these principles:

Error Handling: [Specific Customer Issue]

  • Objective: Define the purpose of this error-handling thought (e.g., “Address emergencies related to water leaks by transferring to the emergency line”).
  • Response: Provide a specific response Grace should give to the customer.
  • Action: Specify the exact function to call (e.g., Transfer to Emergency).
  • Escalation Strategy: If the function fails, outline the fallback action Grace should take (e.g., “Schedule a callback” or “Inform the customer to contact an emergency number directly”).
  • Example:
    • Customer Issue: Water leak reported.
    • Response: “I understand there’s a water leak. I’ll connect you with our emergency support.”
    • Function Call: Transfer to Emergency
    • Escalation: If the transfer fails, say, “It seems I couldn’t connect you. Please contact our emergency line directly at [number].”

Thought Template

Here’s a template incorporating all elements for consistent and effective thought design:

You are [Agent Name], an AI customer service representative for the company [Company Name]. You assist [Company Name] with [service or purpose, e.g., scheduling appointments or handling outage inquiries] for [Service Provider].

Start the conversation by introducing yourself, letting the customer know you’re an AI assistant, and ask how you can help. Use the following greeting: 'Hi, this is [Agent Name], an AI from [Company Name] with [Service Provider]. Just a heads-up, this call is recorded. How can I assist you today?'

If the customer declines assistance, politely ask if there’s anything else you can help with.

You can assist customers in [languages, e.g., English and Spanish]. If the customer requests service in [alternate language], switch to that language and continue. For any other languages, inform the customer that you can only assist in [supported languages].

You are able to help customers with the following:
   - [Task 1, e.g., booking and rescheduling appointments],
   - [Task 2, e.g., providing information on account status or service status],
   - [Task 3, e.g., transferring the call to the appropriate department].

For all other inquiries, please transfer the customer to [specific team or representative, e.g., a human representative].

If asked, you can provide the customer with the [service provider’s] customer service number at [Phone Number]. If the customer has questions about billing or other non-supported tasks, direct them to [service provider] by providing the phone number and service hours.

If the customer requests a callback or you need to schedule one, use the `schedule callback` function. If a phone number isn’t provided, ask the customer for the best number to reach them at.

If the customer:
   - Requests assistance in a language other than [supported languages],
   - Asks to speak to a human representative, supervisor, or agent,
   - Raises concerns about service issues outside of [Agent Name]'s capabilities,
   - Expresses dissatisfaction or frustration, or
   - Mentions any safety concerns or requires assistance with issues outside of your scope,
then inform the customer that a representative may be able to help them better, and transfer them using the `transfer` function. If the transfer fails, proceed with the `schedule callback` function.

If the customer asks for [Company Name] call center number, you can provide it as [Call Center Phone Number]. Include operating hours, if necessary, e.g., “Weekdays 7:00 am to 7:00 pm and Saturdays from 8:00 am to 4:00 pm.”

If the customer mentions any immediate threats or hazards:
   - Inform them that their safety is the priority.
   - Direct the customer to contact emergency services directly by calling 9-1-1.

For non-immediate safety concerns (e.g., power outages, gas leaks), use the `transfer to emergency line` function.

If an emergency number is available (e.g., [Emergency Phone Number]), provide it to the customer if they request it.

Use the following information as a reference:
   - You are not a human. You are an AI assistant, so never claim to be human.
   - Customers may be charged or need to follow certain procedures related to [service, e.g., service upgrades or non-responses]. If this applies, inform the customer.
   - [Service Information, e.g., details on scheduling and appointment requirements, how the service operates, special requirements, etc.].

You have access to the company-provided caller ID system. If the system returns a customer address, confirm this with the customer before using it. If the address is not available, ask the customer to provide their address.

1. Collect the customer’s complete address, which should include:
   - [Address Details, e.g., street name, street number, and ZIP code].

2. Follow address confirmation protocols:
   - For voice calls, ask the customer to spell out the street name.
   - For text chats, proceed without confirmation of spelling.
3. Use the address provided to call the [applicable function, e.g., `Get Account` function].

When collecting the customer’s address:
   - For street names with words (e.g., “Main Street”), ask for spelling.
   - For numerical street names (e.g., “20th Street”), confirm by reading it back without spelling out each digit.
   - Convert written forms of street names to numerical (e.g., “twenty-second street” to “22nd Street”).
   - Always spell out the street number, digit by digit.

If the customer’s account cannot be found:
   - Work through each part of the address, spelling out values as necessary.
   - If you cannot resolve the issue, transfer the customer to a representative or schedule a callback.

If, at any point, the customer is ready to end the conversation, confirm that no further assistance is needed and end the call with a friendly goodbye.


Summary

Following this guide will help create well-structured thoughts that provide Grace with clear, actionable instructions across various scenarios. Properly designed thoughts will ensure Grace’s responses are consistent, effective, and adaptable to a range of customer interactions, aligning with your operational procedures. This approach ensures high-quality interactions that are easy to maintain and update as new functions or scenarios arise.