Flower Recommendations Chatbot (IBM watsonx Assistant)
A real-world conversational design + logic systems project
Overview
I designed and implemented an intelligent flower-recommendation chatbot using IBM watsonx Assistant.
The goal was to simulate a real retail use case where customers often need help choosing the right flowers for birthdays, anniversaries, Valentine’s Day, or special occasions.
This project demonstrates my ability to design conversational flows, implement conditional logic, manage variables, and deploy chatbots on a live WordPress environment.
My Role
- Conversation design
- UX logic architecture
- Variable + session management
- Implementation in Watsonx Assistant
- Testing + debugging
- WordPress deployment
Problem
Customers frequently ask similar questions:
- “What flowers should I buy for Valentine’s Day?”
- “What bouquet is good for a new baby boy?”
- “What’s appropriate for a graduation?”
Repetitive enquiries increase load on customer service and slow down response times. Businesses need a chatbot that can:
- Understand the occasion
- Ask relevant follow-up questions
- Give tailored recommendations
- Handle large volumes of queries simultaneously
The Solution
I built a multi-step Flower Recommendation Bot in IBM watsonx Assistant using a mix of:
- Action-based workflows: To guide users and trigger dynamic responses.
- Session variables: To remember the user’s selected occasion and preferences.
- Conditional logic: To handle special cases (Birthday, Thank You, Just Because).
- A dictionary (expression): To deliver automated responses for nine occasions without extra steps.
- Follow-up questions: To determine whether the gift is for a “special other”
- Image integration: To enrich the recommendations visually.
Finally, I deployed the chatbot on a WordPress site using the Chatbot with IBM watsonx Assistant plugin.
How It Works
Triggering the Action
When a user types:
- “Flower suggestions”
- “Flowers for birthday”
- “Plant for friend”
- “I’d like flower recommendations”
…the Flower Recommendations action is activated.
Step 1: Ask for the Occasion
User selects from a predefined list:
- Anniversary
- Birthday
- Christmas Day
- Graduation
- Romance
- Valentine’s Day
- New Baby
- Wedding
- Thank You
- Other / Just Because etc.
Step 2: Dynamic Responses With Dictionary
To avoid building 9+ manual steps, I stored all recurring responses in a JSON dictionary:

The chatbot retrieves the right message automatically:

This reduces workflow length and improves maintainability.
Step 4: Follow-Up Logic for Complex Occasions
Birthday, Thank You, and Just Because require extra context. The chatbot asks:
“Is this for a special other?”
Based on YES/NO, the bot branches into six scenarios:
- SO Birthday
- Other Birthday
- SO Thank You
- Other Thank You
- SO Just Because
- Other Just Because
Each scenario delivers personalized bouquet suggestions.
Step 5: Visual Enhancements
For special occasions, I inserted bouquet images using the watsonx media library to create a richer customer experience.
Step 6: Deployment to WordPress
To simulate real-world usage:
- I launched a WordPress instance
- Installed the watsonx Assistant plugin
- Connected my chatbot via Integration ID
- Embedded it on the site frontend
Users can interact with the bot as if it were part of an actual flower shop website.
Examples Conversational Flow
Here’s an example of one of the test conversations used to validate the full end-to-end flow:
Sample Test Flow
- “Hello”
- “Where are your stores?”
- “Toronto”
- “I want to gift some flowers”
- Selects “Thank You”
- Selects “Yes” (special other)
- Receives personalized recommendation
- “Bye”
The bot also supports many other variations, natural inputs, and multi-step recommendation paths.
Challenges I Solved
1. Text mismatch in dictionary keys
Occasion names must perfectly match the user’s selection.
One wrong apostrophe (“Christmas’ Day” vs “Christmas day”) breaks everything.
I fixed all mismatches and standardized naming.
2. WordPress container failing to provision
The lab WordPress environment got stuck multiple times.
I troubleshot the environment, reset the workspace, and verified instance creation.
3. Logic ordering in action steps
Ensuring special-occasion steps occurred before the standard dictionary lookup required careful ordering.
Outcome
The chatbot:
- Provides instant flower recommendations
- Handles 12+ occasions
- Uses dynamic, data-driven logic
- Personalizes responses
- Integrates images for visual appeal
- Runs on a live WordPress site
- Reduces repetitive enquiries for customer service
This project shows my ability to design structured conversation flows and implement multi-layer logic using modern chatbot tools.
What This Project Demonstrates
- UX + Logic Design: Building clear, intuitive conversation pathways.
- Technical Skill: Using session variables, expression syntax, and conditional logic.
- Problem-solving: Debugging mismatched values, environment issues, and flow logic.
- Deployment: Connecting a chatbot to a real website for end-to-end testing.
Live Demo
You can try the fully deployed chatbot on my WordPress test site here:
Note: this is a sandbox environment created for the project
