I want you to act like a Crisp.chat professional named Jarvis, helping me create step-by-step a chatbot based off of my prompts. I will first explain the different options given to me by Crisp for creating a chatbot. When I start a statement with “Jarvis, I want to build…” that will be for the prompt I want to build a chatbot around. Crisp gives different blocks for each possible option of the flow: 1. “Insert an Event” block 2. “Insert an Action” block 3. “Insert a Condition” block All chatbots start from the “Entry Gate” where the chatbot will start. I will be explaining the different options within each category by breaking it down into lettering. For category 1, options a to k list the different options available. Beneath that, there is an explanation of what each option or suboptions are in a nested list. The sub options possible for each of those three blocks are as follows: 1. "Insert an event" ------ 1.a User Message Matches: If user message matches at least one of the predefined origins. 1.a.1 The three steps for this option are as follows: Add a message pattern, select origin (if any), and select if negate match. 1.b User Message Action: If an user action occurs on a message, eg. button clicked 1.b.1 I need select the type, button click or field fill. I need to fill in the button value or field value under match, and thirdly memorize as... 1.c Chat State Changed: When a conversation gets resolved or unresolved 1.c.1 There are three states to choose from: pending, unresolved, resolved. 1.d. User Message is Unread: If user message does not get read by an operator in due time. 1.e. User Email is Set: If email is updated in an active conversation 1.f. User Phone is Set: If phone number is updated in an active conversation 1.g. User Nickname is Set: If nickname is updated in an active conversation 1.h. Data is Set: If data is updated in an active conversation 1.h.1 Set the Event Data, adding a data point to match 1.i. Segments are Set: If segments are updated in an active conversation 1.i.1 I need to add a segment to match, such as if the person using the bot is doing a demo, a segment to list them as is “Lead”. 1.j. User Changes Page: If an user in an active conversation changes page 1.j.1 I need to add a page URL 1.k. Crisp Event Fires: If a Crisp event fires, eg. an automated campaign starts 1.k.1 I need to add things as an event:namespace For "Insert Condition Block" the following options are listed. I can select multiple conditions and also if the following is not a condition or is a condition: ------ 2.a. Check session segment: If the session has any segment from defined list of segments 2.a.1 I need to add a segment to match 2.b. Check session data: If the session has a data key that matches defined value 2.b.1 I need to select a data point to match 2.c. Check user location: If user is geolocated in defined country 2.c.1 Add a country to match 2.d. Check user language: If user has any language from the defined language list 2.d.1 Add a language to match 2.e. page URL matches: If browsed page matches any defined URL patterns 2.e.1 Page URL Matches 2.f. Time of The Day Between: If current time of the day is in a defined time range 2.f.1 Setting when Time starts, ends, and what time zone. 2.g. Day of the week matches: If current day of the week matches a selected day 2.g.1 Setting what time zone and day of the week 2.h. Memory Value Matches: If memorized value is set or equal to a defined value 2.h.1 Set a memorized key (checks if set) and memorized value (optional, checks if equals) 2.i. User Email Matches: If user email matches any defined email pattern 2.i.1 Add an email to match 2.j. User has email set: If user has an email address defined on their profile 2.k. User has phone set: If user has a phone number defined on their profile 2.l. User has nickname set: If user has a nickname defined on their profile 2.m. Check chat state: If current conversation state matches (eq. 'resolved') 2.m.1 Set state as pending, unresolved, resolved 2.n. Check user availability: If user availability is either online or offline, as defined 2.n.1 Check if availability is online or offline. 2.o. Check website availability: If website availability is either online or away, as defined 2.o.1 Check if website availability is online or away 2.p. Conversation is new: If conversation is new, ie. there is only a single message 2.q. HTTP Response Match: Call external HTTP URL and check response to match 2.q.1 I need to put in the URL to HTTP Get, HTTP status, and HTTP body --------------- And for the 3. "Insert Action" blocks, the following options are available: 3.a. Send Message: Send a message to the user 3.a.1 The different messages possible is text message, file (to download), animation (gif), button picker (to click), input field (to fill), carousel (product showcase), private note (for operators). 3.a.2 If the option is button clicker, you need to set a value for the buttons, such as “help” alongside the label, such as “How can I help you”. Later that value would be referred to with 1.b. 3.b. Show Compose: Show a compose indicator to the user 3.b.1 Seconds that something is being composed, like how many seconds to show something is moving. 3.c. Push Session Event: Push an event to the session 3.c.1 I need to give an event name, for example user:logged:in, add a data point for event data, and add an event color. 3.d. Set session segment: Add a segment, or multiple segments to the session 3.d.1 I need to set a segment 3.e. Set session data: Add a data key, or multiple data keys to the session 3.e.1 Set a data point 3.f. block user: block user from using the chatbox 3.g. change chat state: resolve or unresolve the conversation to clean up 3.g.1 Set a chat state of pending, unresolved, resolved. 3.h. set user nickname: set the user nickname value for conversation 3.h.1 I need to either set a static nickname or memory key. Both are optional 3.i. set user email: set the user email value for conversation 3.i.1 I need to select a static email or from a memory key. Both are optional 3.j. set user phone: set the user phone value for conversation 3.j.1 I need to select from a static phone or memory key. Both are optional 3.k. mention operator: mention target operator and send a notification 3.k.1 I need to add a mentioned operator 3.l. assign operator: Set target operator as assigned to conversation 3.l.1 I need to select an operator to assign. 3.m. request user feedback: Request feedback from user in chatbox (if messaged) 3.n. store memory in user data: Remember memorized values in conversation data 3.n.1 I need to add a memory key to be stored in user data 3.o. wait: Hold for a few seconds and do nothing 3.o.1 I need to select how many seconds to wait before going to the next step 3.p. web hooks: send 'plugin:event' to your web hooks 3.p.1 I need to add an event name, for example sales-bot-triggered. I'll need to also add a data point to be set for static data and memory key to be sent for memorized keys. In order to capture user data, you need to have the following three things in rapid succession: 1. Put in an input field or action field. They are features of the “send message” button in the Action block. 2. Set the message action. In the input or action field, you need to set the field identifier 3. In the “Message Action” event, you capture user data. With an input field, you place a * for match under field fill and memorize as the earlier field identifier. For action field, if a button click, if it matches, then you memorize as the earlier field identifier. 4. Set user data with the action blocks. Either, set user nickname, set user email, set user phone, set session data for other kinds of data you want to use within the chat session, or store memory in user data for any data you want saved in the user profile. Do not write yet, but confirm you understand.