Onboarding
Sequential Chats and Customer Onboarding¶
This guide explains how to configure and execute a customer onboarding flow using various agents. Each agent has a specific role, working together to gather user information, understand preferences, and provide engaging content.
Agent Roles¶
- personal_information_agent: Collects the user's name and location.
- topic_preference_agent: Asks the user about their topics of interest.
- customer_engagement_agent: Uses the collected information and preferences to share engaging content.
- customer_proxy: Acts as an intermediary to pass information between agents.
Models used¶
Feel free to use any models that suit your requirements. Here are the models used in this example:
- personal_information_agent:
claude-3.5-sonnet-20240620
- topic_preference_agent:
claude-3.5-sonnet-20240620
- customer_engagement_agent:
gpt-3.5-turbo
Agents Setup¶
1. Configure personal_information_agent
¶
- Purpose: Gather basic information (name, location).
- Settings:
- Model:
claude-3.5-sonnet-20240620
- System Message: "You are a helpful customer on-boarding agent, you are here to help new customers get started with our product. Your job is to gather customer's name and location. Do not ask for other information. Return 'TERMINATE' when you have gathered all the information."
- Termination Keyword:
TERMINATE
- Model:
2. Configure topic_preference_agent
¶
- Purpose: Gather the customer’s topics of interest.
- Settings:
- Model:
claude-3.5-sonnet-20240620
- System Message: "You are a helpful customer topic preference agent, you are here to help new customers get started with our product. Your job is to gather customer's topic of interest. Do not ask for other information. Return 'TERMINATE' when you have gathered all the information."
- Termination Keyword:
TERMINATE
- Model:
3. Configure customer_engagement_agent
¶
- Purpose: Provide engaging content based on user preferences and location.
- Settings:
- Model:
gpt-3.5-turbo
- System Message: "You are a helpful customer service agent here to provide fun for the customer based on the user's personal information and topic preferences. This could include fun facts, jokes, or interesting stories. Make sure to make it engaging and fun! Return 'TERMINATE' when you are done."
- Termination Keyword:
TERMINATE
- Model:
4. Configure customer_proxy
¶
- Purpose: Intermediate agent to handle information passing between other agents.
- Settings:
- Human Input Mode:
Always
- Human Input Mode:
Agent Connections¶
personal_information_agent => customer_proxy
- Message Configuration:
- Message Type: Text
- Message Content: "Hello, I'm here to help you get started with our product. Could you tell me your name and location?" -->
- Summary Method: Reflection with LLM
Summary Prompt: "Return the customer information as JSON object only:
{"name": "", "location": ""}
."
- Message Configuration:
topic_preference_agent => customer_proxy
- Message Configuration:
- Message Type: Text
- Message Content: "Great! Could you tell me what topics you are interested in reading about?"
- Summary Method: Reflection with LLM
Summary Prompt: "Return the topic of interest as JSON:
{"topic_of_interest": ""}
."
- Message Configuration:
customer_proxy => customer_engagement_agent
- Message Configuration: - Message Type: Text - Message Content: "Let's find something fun to read."
Define the Flow Order¶
Before running the flow, make sure the execution order is configured:
- Open the Edit Flow modal.
- Set the Order as follows:
personal_inform => customer_proxy
topic_preference => customer_proxy
customer_proxy => customer_engage
- Save the flow.
Running the Flow¶
Initialize the Conversation:
- The
personal_information_agent
asks for the user's name and location. - Example Response: "Hi, I'm Stella from Athens."
- The
Capture User Preferences:
- The
topic_preference_agent
asks for topics of interest. - Example Response: "Software Agents."
- The
Engage the Customer:
- The
customer_engagement_agent
uses the data to provide a fun fact or engaging information. - Example Response to User: "Hey Stella from Athens! Did you know that the word 'robot' comes from the Czech word 'robota', which means forced labor? It's interesting when thinking about software agents!"
- The
Files used in this example:
- On-boarding Flow: On-boarding.waldiez