Author page: Franz Malten Buemann

Opensource chatbot for website

I want to integrate a chatbot into several websites and I am looking for an open source solution that I can host myself (medical websites, privacy issues if I go with a platform that I don’t host).

I am looking for something like Conversiobot but ideally a solution that would also have a chat functionality – that would allow the users to chat with either the bot or with a human.

I have LAMP on my servers and that would be ideal but any solution that I can install and configure on my servers would be perfect. Multiuser would be a great bonus (to let users create their own chatbots and chat with users).

Is there anything like this you would recommend?

submitted by /u/laurnicolae
[link] [comments]

Where can I find an example of e-commerce chatbots using Artificial Intelligence?

I am writing a thesis for school about trends in e-commerce and I am trying to find an example of an e-commerce business using an AI powered chatbot.

I can find dozens of sites and a couple of studies about e-commerce using AI powered chatbots but I can’t actually find an example anywhere.

Only chatbots I can find are those simple ones that can only answer really basic predetermined questions.

Are there any AI powered chatbots that you know of used in e-commerce or are they just not smart enough yet to be actually used anywhere? What are considered the “smartest” e-commerce chatbots around?

submitted by /u/YoungFimps
[link] [comments]

Expo, React native… on boarding chatbot : Part three

Expo, React native… onboarding chatbot: Part three

How onboard user, simply and efficiently.

Third part of my on boarding chatbot article. It’s gone a be hot, today ! We will put everything working together.
If you missed the first part,
it’s over here !
The second part,
it’s here !

In summary for the moment we have, bubbles for the chatbot and the user, animation to simulate the chatbot’s text input.
We still have to link all these components together, make them communicate.

React allows us to create contexts, to encapsulate a part of our components to make them communicate with each other.
We will share in this context a very usefull react hook : UseReducer. This hook will allow us to manage complex state logic.
Then we will modified the chatbot screen and the bubbles factory to use the state management thought his context and update the app.

Let’s start by create and initialise a UseReducer.


const [state, dispatch] = useReducer(ChatBotReducer, InitialChatBotState)

UseReducer takes 2 arguments :

  • a reducer function (ChatBotReducer),
  • initial state as input (InitialChatBotState),

This hooks will returns the current state and a dispatch function as output with array destructuring.

Too well understand the redux logic, let’s start to talk about state.

ChatBot State

UseReducer is the state management solution.

A state is immutable. It is a picture taken at a given moment. For example our this is our initial State :

export const InitialChatBotState = {
currentAction: ChatBotStates.STATE_ONE,
renderItem: RenderItems.CHAT_BUBBLE,
showButton: false,
nextAction: ChatBotStates.STATE_TWO

It is a object with specific properties who describe our statement.

The render item used for this state will be chat-bubble , no button and the currentAction is State One for example !

Now, we have to determine, analyse the Figma board created by the UI / UX team :

Let’s describe what we have :

  • the chatbot start to write, chatbot bubbles start to be visible.
  • at the end typing a button is showing,
  • Click on the button (here, purple arrows are actions in figma board) and show a user bubble,

the first bullet is is exactly our initialState ! that’s good !

For this article part, we won’t follow the board figma above. We will make 2 states in addition to the initial one and put them in a enumeration object :

export const ChatBotStates = Object.freeze({
STATE_ONE: 'stateOne',
STATE_TWO: 'stateTwo',
STATE_THREE: 'stateThree'

Trending Bot Articles:

1. How Conversational AI can Automate Customer Service

2. Automated vs Live Chats: What will the Future of Customer Service Look Like?

3. Chatbots As Medical Assistants In COVID-19 Pandemic

4. Chatbot Vs. Intelligent Virtual Assistant — What’s the difference & Why Care?

Chatbot Reducer

The first argument to create a useReducer is reducer (also called a reducing function). this function will manage and centralised all those states.
Reducers calculate a new state based on the previous state and an action.

export const ChatBotReducer = (state, action) => {
switch (action.type) {
case ChatBotStates.STATE_ONE :
return {
currentAction: action.type,
renderItem: RenderItems.CHAT_BUBBLE,
showButton: false,
showModal: false,
nextAction: ChatBotStates.STATE_TWO
case ChatBotStates.STATE_TWO :
return {
currentAction: action.type,
renderItem: RenderItems.USER_BUBBLE,
showButton: true,
showModal: false,
nextAction: ChatBotStates.STATE_THREE
case ChatBotStates.STATE_THREE :
return {
currentAction: action.type,
renderItem: RenderItems.CHAT_BUBBLE,
showButton: false,
showModal: false,
nextAction: null

This is our reducer called, ChatBotReducer. We find here our 2 new states, with their own particularities. let’s dive in this reducer function.

A reducer is a function with 2 arguments :

  • State which is the current state with all properties (currentAction, renderItem, etc.).
  • An action is a plain object that represents an intention to change the state. Actions are the only way to get data into the store. Those actions will be dispatched by the dispatch function

We use a conditional switch / case statement to manage the states in relation to the received action.

ChatBot Context

To create our chatbot context we use createContext method form react library. this method have argument, the defaultValue, is usefull when we dont have a provider, but, in our case we will create a provider with a useReducer as value, so we set defaultValue to undefined.

const ChatBotContext = createContext(undefined)

export default ChatBotContext

export function ChatBotProvider ({ children }) {
const [state, dispatch] = useReducer(ChatBotReducer, InitialChatBotState)
const reducer = { dispatch, state, ChatBotStates }

return (
<ChatBotContext.Provider value={{ reducer }}>

We will use our context in a component, ChatBotProvider. This component is a wrapper, as AnimatedWrapper for the chat-typing component.

Every Context object comes with a Provider that allows consuming components to subscribe to context changes.
Provider component accepts a value prop to be passed to consuming components that are descendants of this Provider.

As you can see, we use the userReducer inside our ChatBotProvider.

Next, we create a reducer object that includes the dispatch function, the state from the initialisation of useReducer and the list of all states. We pass this reducer object to the props value of the provider.

This way we share all the tools used to communicate between all components, chat-bubble, user-bubble, bubbles-factory, etc. Chat bot state will be available for each component wrapped in our provider.

Let’s update the main screen of our app, Chatbot !

Modify chatbot screen

const ChatBot = (props) => {
const [components, setComponents] = useState([])
const { reducer } = useContext(ChatBotContext)
const { state, dispatch } = reducer

useEffect(() => { console.log('ChatBot - props', props) }, [])

useEffect(() => {
// console.log('state', state)
(data) {
interval={state.renderItem === RenderItems.CHAT_BUBBLE ? 3000 : 1500}
callback={() => {
state.nextAction && dispatch({ type: state.nextAction })
}, [state])

return (
<SafeAreaView style={styles.container}>
{, index) => {
return (
<Fragment key={index}>
{ component }

To access to our context we initialise a useContext hooks with a context object (ChatBotContext)

const { reducer } = useContext(ChatBotContext)

This will returns the current context value for that context, in our case, the reducer object created in the ChatBotProvider.

We will retrieve the state and the dispatch function with an array destructuring of the object reducer.

const { state, dispatch } = reducer

We will listen our state with the useEffect hooks. The state object contains all the information to update our messages list, data, bubble type to render.

To facilitate the insertion of components, I have set up a component factory :

function ComponentsFactory (type) {
switch (type) {
case RenderItems.CHAT_BUBBLE:
return <ChatBubble />
case RenderItems.USER_BUBBLE:
return <UserBubble />
case RenderItems.BUTTON:
return <View />

Modify Bubbles Factory

I have added a callback to the bubble-factory component. It is used to dispatch the next action sent by the state when there are no more messages to display in the current state.

The call back method is called in the bubbles-factory in the stopBubbles method.

End of the day !

It’s done for today, it was a hard day, understand hooks logics is not easy. i recommended you to play with the code, create your own component, state, etc.

You can find the all source code here.

Thank you for taking the time to read this article. Don’t hesitate to leave comments, ask questions, improvements, and play with the code.
The next part, will be on how to add user interactions using our reducer…

Don’t forget to give us your 👏 !

Expo, React native… on boarding chatbot : Part three was originally published in Chatbots Life on Medium, where people are continuing the conversation by highlighting and responding to this story.

How Chatbots Can Reduce Product Return — An Extensive Guide

How Chatbots Can Reduce Product Return — An Extensive Guide

A recent survey suggests that almost 30% of all purchases that are made online are returned. For startups and even for stable businesses, this is too much of a percentage.¹

If your business is facing conduct of shopper behavior that indicates a return is likely, a variety of chatbots can effectively and preemptively intervene in this transaction and can prevent a return from happening.


There are multiple ways in which chatbots can help you to reduce your product returns, and this article will take a look at some of the significant ways in which chatbots can help businesses. However, it is important to understand here that chatbot efforts must be met with equal efforts from the business operators to ensure that chatbot is able to give its maximum.

· Helping Customers in Choosing the Suitable Products

This works in multiple ways. One of the basic ways, for example, is if a buyer has viewed and checked the size guide listed on your store and has wrongfully added two of the same items in the cart. Here, a chatbot can make its intervention and help the customer to select the products of the right size.

This ensures that not only the customers are being helped to avoid the hassle but also makes sure that the returns on products remain minimal. After all, 70% of the product returns are because of the initial wrong order placed by the customers.

Furthermore, chatbots can help potential buyers in making the right choices for the products. For example, a customer has searched for sportswear from your site for football, but since the search results will show all the sportswear listed on your website, a chatbot can then help the customers by intimating them about the particular product that they are actually looking for.²

Trending Bot Articles:

1. How Conversational AI can Automate Customer Service

2. Automated vs Live Chats: What will the Future of Customer Service Look Like?

3. Chatbots As Medical Assistants In COVID-19 Pandemic

4. Chatbot Vs. Intelligent Virtual Assistant — What’s the difference & Why Care?

· Guiding Customers about Usage and Installation of the Products

One of the major reasons for product return is when customers are unable to understand how to effectively use or install the product that they have bought. Amazon says that 40% returns of its products related to the niche of electrical accessories are because of the users’ ignorance to effectively use and/or install them.

However, with chatbots, you can easily solve this problem. Almost all the modern chatbots are providing installation guidelines with the help of video tutorials and the written guidebooks. It is a big factor that can significantly reduce the return of your products, especially if you are dealing with products that need installation or the ones that require tutorials to make the most of their usage.

· Making the Return/Exchange Process more Efficient

It has to be probably one of the most underrated functions of chatbots, and it needs to be talked about more. Even the era of human live chat support couldn’t cater to the return and exchange process more efficiently than how chatbots are doing right now.

Nowadays, if a customer wants to exchange a particular product, chatbots will quickly and efficiently solve the query of the customer. This way, your store will get an exchange instead of a return, which would normally have happened without the presence of chatbots. Even the customers that come looking for returns can be effectively guided by the chatbots to rather go an exchange.

Furthermore, when the return is inevitable, chatbots make sure that it happens as soon as possible and with the least of a hassle for the customer. It ensures that not only the product is returned quickly and ready to be sold again, but also that the customer enjoys a positive support experience and considers you for future orders.


Apart from the reasons listed above, there are multiple other ways in which chatbots can help boom your business and reduce your returns. Modern AI-based chatbots are able to track the user data and then use the data for future references and preferences to the particular users.³

You must have experienced it yourself when you left an online cart without processing it, and you received a mail reminding you to finalize and process your order. This is an AI chatbot at its best. With the development of AI, which seems unstoppable, there will be more features added in the chatbots that would surely make them more user-friendly, and that would help customers in catering for their problems regarding orders’ returns and exchanges.

Communicating Knowledge. Saltlux

Home – Saltlux




Don’t forget to give us your 👏 !

How Chatbots Can Reduce Product Return — An Extensive Guide was originally published in Chatbots Life on Medium, where people are continuing the conversation by highlighting and responding to this story.

Small study conducting linguistic analysis on Chatbot interactions (currently looking for participants)

Hello everyone, I’m currently running a small study which is aiming to examine if our language changes when interacting with Chatbots. I’m posting here to see if anyone is interested in participating. Anyone over the age of 18 currently in the U.K. can participate. Please message me if you are interested and I can provide you with more information. Thank you !

submitted by /u/Bot-study-21
[link] [comments]