SlideShare a Scribd company logo
Conversational Sign Up with
Chatbot-like experience with
React and Redux
1Conversational Sign Up with Chatbot-like experience with React and Redux | Ilona Demidenko | @ilonacodes
I am not a Chatbot expert or anything.
Before starting…
I just have tried to design and implement
conversational experience for Sign Up Form.
🙅
💁
Conversational Sign Up with Chatbot-like experience with React and Redux | Ilona Demidenko | @ilonacodes 2
How to start? 🤔
☝ Understand the goal of Chatbot
before moving to the design
process.
Conversational Sign Up with Chatbot-like experience with React and Redux | Ilona Demidenko | @ilonacodes 3
My Chatbot serves a certain purpose:
to sign up the user ✅
Moving on to…&
✌ Creating a conversational UX.
• To answer all the user’s questions
before they are ready to sign up
Conversational Sign Up with Chatbot-like experience with React and Redux | Ilona Demidenko | @ilonacodes 4
Not to forget:❗
🤞 Give a personality to the
Chatbot - unique characteristics,
like:
• Fitting name
• Avatar
• Animated emotions
• Voice
Conversational Sign Up with Chatbot-like experience with React and Redux | Ilona Demidenko | @ilonacodes 5
…and more… 📯
🤘 “Foreknow” the user’s responses.
• By adding the context to the
conversation via the answer-options
for the user
Conversational Sign Up with Chatbot-like experience with React and Redux | Ilona Demidenko | @ilonacodes 6
Last but not least 🏁
🖐 Preview all collected user data
at the end of conversation
before the submission.
• The user needs to know and agree
with data that will be processed.
Conversational Sign Up with Chatbot-like experience with React and Redux | Ilona Demidenko | @ilonacodes 7
HOW does my Chatbot look like:
Conversational Sign Up with Chatbot-like experience with React and Redux | Ilona Demidenko | @ilonacodes 8
Chatbot is a simple state machine:
Conversational Sign Up with Chatbot-like experience with React and Redux | Ilona Demidenko | @ilonacodes 9
…and…
The whole data structured in a
nested JSON object and stored
in the state of the Chatbot
reducer.
🗄
Conversational Sign Up with Chatbot-like experience with React and Redux | Ilona Demidenko | @ilonacodes 10
Because… ⤵
• Easy to change the experience
without coding
👉 If the whole experience is
described in the data structure:
Conversational Sign Up with Chatbot-like experience with React and Redux | Ilona Demidenko | @ilonacodes 11
Conversational Sign Up with Chatbot-like experience with React and Redux | Ilona Demidenko | @ilonacodes 12
Props in the data object:
Transitions is a to conversational
experience
🔑
• With corresponding ID to the next
interaction
• Each transition depending on the
user action
Conversational Sign Up with Chatbot-like experience with React and Redux | Ilona Demidenko | @ilonacodes 13
HOW to implement such a
conversational engine in React and
Redux?
⬇
Conversational Sign Up with Chatbot-like experience with React and Redux | Ilona Demidenko | @ilonacodes 14
By triggering the proper
transitions when certain user
interactions happen
After processing the user request, the
action “MAKE_TRANSITION” will be
dispatched, so that the state machine
can move to the next state:
Conversational Sign Up with Chatbot-like experience with React and Redux | Ilona Demidenko | @ilonacodes 15
…then this action will be handled by
reducer:
Conversational Sign Up with Chatbot-like experience with React and Redux | Ilona Demidenko | @ilonacodes 16
…and render the corresponding
response as a new state in the
<Chat /> component:
Keeping the previous chat history➕
Conversational Sign Up with Chatbot-like experience with React and Redux | Ilona Demidenko | @ilonacodes 17
The <Message /> component renders
the state of the message displayed
during the chat + history of states:
Conversational Sign Up with Chatbot-like experience with React and Redux | Ilona Demidenko | @ilonacodes 18
To bind the user input into the data
object to each relevant transition
include input prop with the unique name:
Conversational Sign Up with Chatbot-like experience with React and Redux | Ilona Demidenko | @ilonacodes 19
To use user input in future messages,
I have applied the interpolation
technique:
Conversational Sign Up with Chatbot-like experience with React and Redux | Ilona Demidenko | @ilonacodes 20
Its logic is implemented in
renderMessage(message, fields)
function:
• message is the prop from the state
transition (eg. Hello, $name$!)
• fields are the different user inputs to
each specific field like name, email…
Conversational Sign Up with Chatbot-like experience with React and Redux | Ilona Demidenko | @ilonacodes 21
To update every change of the user
input in the store, I have added the
“UPDATE_FIELD” action:
There are only 2
dispatching
actions
🙏
• statesReducer also handles it and returns
the state with the updated fields.
Conversational Sign Up with Chatbot-like experience with React and Redux | Ilona Demidenko | @ilonacodes 22
The full reducer implementation for
the chatbot:
Conversational Sign Up with Chatbot-like experience with React and Redux | Ilona Demidenko | @ilonacodes 23
Coming back to the <Chat /> component,
every change in each input element is
handled by updateField action:
Conversational Sign Up with Chatbot-like experience with React and Redux | Ilona Demidenko | @ilonacodes 24
After receiving all the required
information from the user responses
for the conversational sign-up form
at the end of the conversation, the
chatbot displays all user answers for
confirmation.
✅
Conversational Sign Up with Chatbot-like experience with React and Redux | Ilona Demidenko | @ilonacodes 25
This couldn't fit in the simple generic
<Message/> component, so I’ve created
a custom one: <ConfirmSignUp />:
Conversational Sign Up with Chatbot-like experience with React and Redux | Ilona Demidenko | @ilonacodes 26
That renders all the input data
from the user via the fields props:
Conversational Sign Up with Chatbot-like experience with React and Redux | Ilona Demidenko | @ilonacodes 27
👉 name, email, usageFor, relatedUpdates
Event handlers to add and confirm
user input:
Conversational Sign Up with Chatbot-like experience with React and Redux | Ilona Demidenko | @ilonacodes 28
DEMO
Thank you! ☺
@ilonacodes
ilonacodes.com
Conversational Sign Up with Chatbot-like experience with React and Redux
github.com/ilonacodes/chatbot-signup

More Related Content

Similar to Conversational Sign Up with Chatbot-like experience with React and Redux

BDD and Agile Requirements (v 2.1)
BDD and Agile Requirements (v 2.1) BDD and Agile Requirements (v 2.1)
BDD and Agile Requirements (v 2.1)
Wiktor Żołnowski
 
MAD mobile application development you can learn from here , we perform all c...
MAD mobile application development you can learn from here , we perform all c...MAD mobile application development you can learn from here , we perform all c...
MAD mobile application development you can learn from here , we perform all c...
harshalpatil183931
 
Razorpay
RazorpayRazorpay
Razorpay
mobi fly
 
How to use Salesforce composite request connector in Mule
How to use Salesforce composite request connector in MuleHow to use Salesforce composite request connector in Mule
How to use Salesforce composite request connector in Mule
Alexandra N. Martinez
 
InfiniteUp Data analysis and UX recommendations 30 11_20 - 06_12_20
InfiniteUp Data analysis and UX recommendations  30 11_20 - 06_12_20InfiniteUp Data analysis and UX recommendations  30 11_20 - 06_12_20
InfiniteUp Data analysis and UX recommendations 30 11_20 - 06_12_20
Barrett Nash
 
Advanced Integrations of MuleSoft with ChatGTP
Advanced Integrations of MuleSoft with ChatGTPAdvanced Integrations of MuleSoft with ChatGTP
Advanced Integrations of MuleSoft with ChatGTP
NeerajKumar1965
 
Final Viva
Final VivaFinal Viva
Final Viva
ssuser751b8d1
 
Meighan brodkey automation hour
Meighan brodkey automation hour Meighan brodkey automation hour
Meighan brodkey automation hour
Meighan Brodkey
 
Denver Salesforce Developer User Group dec 2016 lightning components
Denver Salesforce Developer User Group dec 2016 lightning componentsDenver Salesforce Developer User Group dec 2016 lightning components
Denver Salesforce Developer User Group dec 2016 lightning components
Mike Tetlow
 
online marketplace report
online marketplace reportonline marketplace report
online marketplace report
Priyanka Deoghare
 
MID semester computer PRESENTATION_208.pptx
MID semester computer PRESENTATION_208.pptxMID semester computer PRESENTATION_208.pptx
MID semester computer PRESENTATION_208.pptx
DanielJDanso
 
SRE_Chatbot_workflow.pptx
SRE_Chatbot_workflow.pptxSRE_Chatbot_workflow.pptx
SRE_Chatbot_workflow.pptx
SandeepTiwari353341
 
How to Integrate Chatgpt with Odoo 17 Website
How to Integrate Chatgpt with Odoo 17 WebsiteHow to Integrate Chatgpt with Odoo 17 Website
How to Integrate Chatgpt with Odoo 17 Website
Celine George
 
Double Loop
Double LoopDouble Loop
Double Loop
Jessica Mauerhan
 
Integrating Telegram Bots with Ruby on Rails
Integrating Telegram Bots with Ruby on RailsIntegrating Telegram Bots with Ruby on Rails
Integrating Telegram Bots with Ruby on Rails
Chris Downey
 
Here's How to Create a Chatbot for your B2B Website
Here's How to Create a Chatbot for your B2B WebsiteHere's How to Create a Chatbot for your B2B Website
Here's How to Create a Chatbot for your B2B Website
Areeba Khan
 
Final Viva
Final VivaFinal Viva
Final Viva
ssuser751b8d1
 

Similar to Conversational Sign Up with Chatbot-like experience with React and Redux (17)

BDD and Agile Requirements (v 2.1)
BDD and Agile Requirements (v 2.1) BDD and Agile Requirements (v 2.1)
BDD and Agile Requirements (v 2.1)
 
MAD mobile application development you can learn from here , we perform all c...
MAD mobile application development you can learn from here , we perform all c...MAD mobile application development you can learn from here , we perform all c...
MAD mobile application development you can learn from here , we perform all c...
 
Razorpay
RazorpayRazorpay
Razorpay
 
How to use Salesforce composite request connector in Mule
How to use Salesforce composite request connector in MuleHow to use Salesforce composite request connector in Mule
How to use Salesforce composite request connector in Mule
 
InfiniteUp Data analysis and UX recommendations 30 11_20 - 06_12_20
InfiniteUp Data analysis and UX recommendations  30 11_20 - 06_12_20InfiniteUp Data analysis and UX recommendations  30 11_20 - 06_12_20
InfiniteUp Data analysis and UX recommendations 30 11_20 - 06_12_20
 
Advanced Integrations of MuleSoft with ChatGTP
Advanced Integrations of MuleSoft with ChatGTPAdvanced Integrations of MuleSoft with ChatGTP
Advanced Integrations of MuleSoft with ChatGTP
 
Final Viva
Final VivaFinal Viva
Final Viva
 
Meighan brodkey automation hour
Meighan brodkey automation hour Meighan brodkey automation hour
Meighan brodkey automation hour
 
Denver Salesforce Developer User Group dec 2016 lightning components
Denver Salesforce Developer User Group dec 2016 lightning componentsDenver Salesforce Developer User Group dec 2016 lightning components
Denver Salesforce Developer User Group dec 2016 lightning components
 
online marketplace report
online marketplace reportonline marketplace report
online marketplace report
 
MID semester computer PRESENTATION_208.pptx
MID semester computer PRESENTATION_208.pptxMID semester computer PRESENTATION_208.pptx
MID semester computer PRESENTATION_208.pptx
 
SRE_Chatbot_workflow.pptx
SRE_Chatbot_workflow.pptxSRE_Chatbot_workflow.pptx
SRE_Chatbot_workflow.pptx
 
How to Integrate Chatgpt with Odoo 17 Website
How to Integrate Chatgpt with Odoo 17 WebsiteHow to Integrate Chatgpt with Odoo 17 Website
How to Integrate Chatgpt with Odoo 17 Website
 
Double Loop
Double LoopDouble Loop
Double Loop
 
Integrating Telegram Bots with Ruby on Rails
Integrating Telegram Bots with Ruby on RailsIntegrating Telegram Bots with Ruby on Rails
Integrating Telegram Bots with Ruby on Rails
 
Here's How to Create a Chatbot for your B2B Website
Here's How to Create a Chatbot for your B2B WebsiteHere's How to Create a Chatbot for your B2B Website
Here's How to Create a Chatbot for your B2B Website
 
Final Viva
Final VivaFinal Viva
Final Viva
 

Recently uploaded

Alluxio Webinar | 10x Faster Trino Queries on Your Data Platform
Alluxio Webinar | 10x Faster Trino Queries on Your Data PlatformAlluxio Webinar | 10x Faster Trino Queries on Your Data Platform
Alluxio Webinar | 10x Faster Trino Queries on Your Data Platform
Alluxio, Inc.
 
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
Bert Jan Schrijver
 
How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?
ToXSL Technologies
 
Assure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyesAssure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
gapen1
 
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
kalichargn70th171
 
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSISDECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
Tier1 app
 
42 Ways to Generate Real Estate Leads - Sellxpert
42 Ways to Generate Real Estate Leads - Sellxpert42 Ways to Generate Real Estate Leads - Sellxpert
42 Ways to Generate Real Estate Leads - Sellxpert
vaishalijagtap12
 
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
dakas1
 
Going AOT: Everything you need to know about GraalVM for Java applications
Going AOT: Everything you need to know about GraalVM for Java applicationsGoing AOT: Everything you need to know about GraalVM for Java applications
Going AOT: Everything you need to know about GraalVM for Java applications
Alina Yurenko
 
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
kgyxske
 
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom KittEnhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
Peter Caitens
 
Migration From CH 1.0 to CH 2.0 and Mule 4.6 & Java 17 Upgrade.pptx
Migration From CH 1.0 to CH 2.0 and  Mule 4.6 & Java 17 Upgrade.pptxMigration From CH 1.0 to CH 2.0 and  Mule 4.6 & Java 17 Upgrade.pptx
Migration From CH 1.0 to CH 2.0 and Mule 4.6 & Java 17 Upgrade.pptx
ervikas4
 
The Rising Future of CPaaS in the Middle East 2024
The Rising Future of CPaaS in the Middle East 2024The Rising Future of CPaaS in the Middle East 2024
The Rising Future of CPaaS in the Middle East 2024
Yara Milbes
 
ACE - Team 24 Wrapup event at ahmedabad.
ACE - Team 24 Wrapup event at ahmedabad.ACE - Team 24 Wrapup event at ahmedabad.
ACE - Team 24 Wrapup event at ahmedabad.
Maitrey Patel
 
Beginner's Guide to Observability@Devoxx PL 2024
Beginner's  Guide to Observability@Devoxx PL 2024Beginner's  Guide to Observability@Devoxx PL 2024
Beginner's Guide to Observability@Devoxx PL 2024
michniczscribd
 
Orca: Nocode Graphical Editor for Container Orchestration
Orca: Nocode Graphical Editor for Container OrchestrationOrca: Nocode Graphical Editor for Container Orchestration
Orca: Nocode Graphical Editor for Container Orchestration
Pedro J. Molina
 
The Comprehensive Guide to Validating Audio-Visual Performances.pdf
The Comprehensive Guide to Validating Audio-Visual Performances.pdfThe Comprehensive Guide to Validating Audio-Visual Performances.pdf
The Comprehensive Guide to Validating Audio-Visual Performances.pdf
kalichargn70th171
 
一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
dakas1
 

Recently uploaded (20)

Alluxio Webinar | 10x Faster Trino Queries on Your Data Platform
Alluxio Webinar | 10x Faster Trino Queries on Your Data PlatformAlluxio Webinar | 10x Faster Trino Queries on Your Data Platform
Alluxio Webinar | 10x Faster Trino Queries on Your Data Platform
 
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
 
How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?
 
bgiolcb
bgiolcbbgiolcb
bgiolcb
 
Assure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyesAssure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyes
 
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
 
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
 
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSISDECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
 
42 Ways to Generate Real Estate Leads - Sellxpert
42 Ways to Generate Real Estate Leads - Sellxpert42 Ways to Generate Real Estate Leads - Sellxpert
42 Ways to Generate Real Estate Leads - Sellxpert
 
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
 
Going AOT: Everything you need to know about GraalVM for Java applications
Going AOT: Everything you need to know about GraalVM for Java applicationsGoing AOT: Everything you need to know about GraalVM for Java applications
Going AOT: Everything you need to know about GraalVM for Java applications
 
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
 
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom KittEnhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
 
Migration From CH 1.0 to CH 2.0 and Mule 4.6 & Java 17 Upgrade.pptx
Migration From CH 1.0 to CH 2.0 and  Mule 4.6 & Java 17 Upgrade.pptxMigration From CH 1.0 to CH 2.0 and  Mule 4.6 & Java 17 Upgrade.pptx
Migration From CH 1.0 to CH 2.0 and Mule 4.6 & Java 17 Upgrade.pptx
 
The Rising Future of CPaaS in the Middle East 2024
The Rising Future of CPaaS in the Middle East 2024The Rising Future of CPaaS in the Middle East 2024
The Rising Future of CPaaS in the Middle East 2024
 
ACE - Team 24 Wrapup event at ahmedabad.
ACE - Team 24 Wrapup event at ahmedabad.ACE - Team 24 Wrapup event at ahmedabad.
ACE - Team 24 Wrapup event at ahmedabad.
 
Beginner's Guide to Observability@Devoxx PL 2024
Beginner's  Guide to Observability@Devoxx PL 2024Beginner's  Guide to Observability@Devoxx PL 2024
Beginner's Guide to Observability@Devoxx PL 2024
 
Orca: Nocode Graphical Editor for Container Orchestration
Orca: Nocode Graphical Editor for Container OrchestrationOrca: Nocode Graphical Editor for Container Orchestration
Orca: Nocode Graphical Editor for Container Orchestration
 
The Comprehensive Guide to Validating Audio-Visual Performances.pdf
The Comprehensive Guide to Validating Audio-Visual Performances.pdfThe Comprehensive Guide to Validating Audio-Visual Performances.pdf
The Comprehensive Guide to Validating Audio-Visual Performances.pdf
 
一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
 

Conversational Sign Up with Chatbot-like experience with React and Redux

  • 1. Conversational Sign Up with Chatbot-like experience with React and Redux 1Conversational Sign Up with Chatbot-like experience with React and Redux | Ilona Demidenko | @ilonacodes
  • 2. I am not a Chatbot expert or anything. Before starting… I just have tried to design and implement conversational experience for Sign Up Form. 🙅 💁 Conversational Sign Up with Chatbot-like experience with React and Redux | Ilona Demidenko | @ilonacodes 2
  • 3. How to start? 🤔 ☝ Understand the goal of Chatbot before moving to the design process. Conversational Sign Up with Chatbot-like experience with React and Redux | Ilona Demidenko | @ilonacodes 3 My Chatbot serves a certain purpose: to sign up the user ✅
  • 4. Moving on to…& ✌ Creating a conversational UX. • To answer all the user’s questions before they are ready to sign up Conversational Sign Up with Chatbot-like experience with React and Redux | Ilona Demidenko | @ilonacodes 4
  • 5. Not to forget:❗ 🤞 Give a personality to the Chatbot - unique characteristics, like: • Fitting name • Avatar • Animated emotions • Voice Conversational Sign Up with Chatbot-like experience with React and Redux | Ilona Demidenko | @ilonacodes 5
  • 6. …and more… 📯 🤘 “Foreknow” the user’s responses. • By adding the context to the conversation via the answer-options for the user Conversational Sign Up with Chatbot-like experience with React and Redux | Ilona Demidenko | @ilonacodes 6
  • 7. Last but not least 🏁 🖐 Preview all collected user data at the end of conversation before the submission. • The user needs to know and agree with data that will be processed. Conversational Sign Up with Chatbot-like experience with React and Redux | Ilona Demidenko | @ilonacodes 7
  • 8. HOW does my Chatbot look like: Conversational Sign Up with Chatbot-like experience with React and Redux | Ilona Demidenko | @ilonacodes 8
  • 9. Chatbot is a simple state machine: Conversational Sign Up with Chatbot-like experience with React and Redux | Ilona Demidenko | @ilonacodes 9
  • 10. …and… The whole data structured in a nested JSON object and stored in the state of the Chatbot reducer. 🗄 Conversational Sign Up with Chatbot-like experience with React and Redux | Ilona Demidenko | @ilonacodes 10
  • 11. Because… ⤵ • Easy to change the experience without coding 👉 If the whole experience is described in the data structure: Conversational Sign Up with Chatbot-like experience with React and Redux | Ilona Demidenko | @ilonacodes 11
  • 12. Conversational Sign Up with Chatbot-like experience with React and Redux | Ilona Demidenko | @ilonacodes 12 Props in the data object:
  • 13. Transitions is a to conversational experience 🔑 • With corresponding ID to the next interaction • Each transition depending on the user action Conversational Sign Up with Chatbot-like experience with React and Redux | Ilona Demidenko | @ilonacodes 13
  • 14. HOW to implement such a conversational engine in React and Redux? ⬇ Conversational Sign Up with Chatbot-like experience with React and Redux | Ilona Demidenko | @ilonacodes 14 By triggering the proper transitions when certain user interactions happen
  • 15. After processing the user request, the action “MAKE_TRANSITION” will be dispatched, so that the state machine can move to the next state: Conversational Sign Up with Chatbot-like experience with React and Redux | Ilona Demidenko | @ilonacodes 15
  • 16. …then this action will be handled by reducer: Conversational Sign Up with Chatbot-like experience with React and Redux | Ilona Demidenko | @ilonacodes 16
  • 17. …and render the corresponding response as a new state in the <Chat /> component: Keeping the previous chat history➕ Conversational Sign Up with Chatbot-like experience with React and Redux | Ilona Demidenko | @ilonacodes 17
  • 18. The <Message /> component renders the state of the message displayed during the chat + history of states: Conversational Sign Up with Chatbot-like experience with React and Redux | Ilona Demidenko | @ilonacodes 18
  • 19. To bind the user input into the data object to each relevant transition include input prop with the unique name: Conversational Sign Up with Chatbot-like experience with React and Redux | Ilona Demidenko | @ilonacodes 19
  • 20. To use user input in future messages, I have applied the interpolation technique: Conversational Sign Up with Chatbot-like experience with React and Redux | Ilona Demidenko | @ilonacodes 20
  • 21. Its logic is implemented in renderMessage(message, fields) function: • message is the prop from the state transition (eg. Hello, $name$!) • fields are the different user inputs to each specific field like name, email… Conversational Sign Up with Chatbot-like experience with React and Redux | Ilona Demidenko | @ilonacodes 21
  • 22. To update every change of the user input in the store, I have added the “UPDATE_FIELD” action: There are only 2 dispatching actions 🙏 • statesReducer also handles it and returns the state with the updated fields. Conversational Sign Up with Chatbot-like experience with React and Redux | Ilona Demidenko | @ilonacodes 22
  • 23. The full reducer implementation for the chatbot: Conversational Sign Up with Chatbot-like experience with React and Redux | Ilona Demidenko | @ilonacodes 23
  • 24. Coming back to the <Chat /> component, every change in each input element is handled by updateField action: Conversational Sign Up with Chatbot-like experience with React and Redux | Ilona Demidenko | @ilonacodes 24
  • 25. After receiving all the required information from the user responses for the conversational sign-up form at the end of the conversation, the chatbot displays all user answers for confirmation. ✅ Conversational Sign Up with Chatbot-like experience with React and Redux | Ilona Demidenko | @ilonacodes 25
  • 26. This couldn't fit in the simple generic <Message/> component, so I’ve created a custom one: <ConfirmSignUp />: Conversational Sign Up with Chatbot-like experience with React and Redux | Ilona Demidenko | @ilonacodes 26
  • 27. That renders all the input data from the user via the fields props: Conversational Sign Up with Chatbot-like experience with React and Redux | Ilona Demidenko | @ilonacodes 27 👉 name, email, usageFor, relatedUpdates
  • 28. Event handlers to add and confirm user input: Conversational Sign Up with Chatbot-like experience with React and Redux | Ilona Demidenko | @ilonacodes 28
  • 29. DEMO
  • 30. Thank you! ☺ @ilonacodes ilonacodes.com Conversational Sign Up with Chatbot-like experience with React and Redux github.com/ilonacodes/chatbot-signup