System and method for generating analytics for conversations within applications
A system and method for generating analytics based on creating interactions in the form of conversations for launch within applications are described. The analytics are further based on the data received by users of the applications in response to the conversations. Application developers can be supported in creating the conversations using software development tools to create one or more conversations and to configure the conversations for launch to one or more applications. Application users can respond to the conversations and the responses can be assessed by the processors associated with the software development tools to produce analytics to the application developers, as well as third-party platforms.
This Application is related to U.S. patent application Ser. No. 15/590,791 entitled “A System and Method for Creating Conversations to Launch Within Applications,” which was filed May 9, 2017.
BACKGROUNDApplications provide basic operations for users of the applications. In addition to such basic operations, users can be provided with additional interactions. Application development tools, including those used in mobile applications, can allow developers to produce applications that support additional interactions, referred to as conversations, with the users of applications. The data generated by these conversations are valuable to the application user and developers. The location and structure of the processing that enables these conversations also impacts the load on, and efficiency of, one or more servers or other components supporting the application developer, the platform for supporting the applications and developing the conversations, and/or the mobile devices, web platforms or other applications in which the conversation can be launched. As such, there is a need to improve the content, configuration and processing location associated with the conversations. Because the data resulting from the conversations can also impact the value and use of the conversations, there is a need to improve the processing and the use of the data.
This disclosure is directed to a system and method of creating conversations for launch within applications and generating analytics based on the data received from the users of the applications in response to the conversations.
One example of the invention includes a platform to enable application developers to create one or more interactive conversation(s) for users of the applications. In one example, a conversation can be generated using a mobile-compatible or web-compatible software development kit, or SDK (for example, commercially available from ROKO™ Labs LLC, referred to herein as “ROKO”). The conversation can be incorporated into the SDK (referred to as “ROKO SDK” herein). ROKO also can provide an application programming interface, or API (also referred to as a “ROKO SDK/API”), for use by an application developer in order to create the conversation.
The conversation can be developed and launched using the ROKO SDK for integration into one or more applications created by application developers for mobile devices, web platforms, as well as other technology environments supporting applications. The conversation can support interactions with users of the applications based on the accumulation of data entered or selected by the users. The data can be received by the ROKO SDK and assessed, in order to provide analytics about user's input or feedback to the conversations. In another example of the invention, the data can be received by the ROKO SDK and assessed to direct the user experience with the application into paths based on the content of the conversation.
In one example, the ROKO SDK/API can include user interfaces for application developers to create one or more conversations and to configure the conversations for launch to one or more applications. The conversations can be launched based on any number of indications, including opening the application, a specific time within operations of the applications, a particular page within an application, a delay in user interaction or any number of other events or triggers for the conversations (generally referred to as indications). In additional examples of indications for the launch of the conversation, a launch can be based on characteristics of the user of the application, including an assessment of the profile of the user in order to identify one or more user properties and/or segments associated with the user profile. The conversation can then be triggered based on a determination of whether the user engaged with the application is associated with a user property or a segment associated with the conversation. For example, one conversation can be targeted for a segment of application users who have downloaded only a trial version of a particular product or service associated with the application. Thus, when an application user belonging to a trial application user segment opens the application and the ROKO SDK identifies the application user as a member of that user segment, the ROKO SDK can trigger the deployment of the corresponding conversation for the user. In other examples, users interactions with the conversation can prompt new user properties and/or segments, which can then be used for future launches of subsequent conversations. The scope of the invention includes a variety of indications for launching conversations.
The conversation, in one example of the invention, can comprise a series of data, such as for example, prompts (such as, in the form of questions or statements), responses, actions based on the prompts or earlier responses and other data entry or selection options with which the users of the application can engage, as well as actions to redirect the conversation to other locations within the application, or outside of the application to another application or other technology environment, application etc. or to close the conversation by triggering a close action or abandoning the application. The conversations also can include additional content, including textual, visual, audio and/or video material, as well as data which is entered, selected, or generated such as binary or multiple selection responses, artificial intelligence generated data, natural language processing generated data, free-form data, customized data or other forms of content which can be associated with the users of applications during conversations.
Prompts, responses and actions for conversations are now further described below. In one example, a prompt can be a question, notification, information, or link (for example, a universal record locator or “URL,” a web address or another Internet address, link or alias which specify a location on a computer or other network) provided by the application developer for mobile application or web platform users in various forms. Several non-limiting examples are text-based (for example, “Hello, how are you?”), links such as a URL, or an action button (such as “Close app” button) entered or selected by the application developer as an input to the ROKO SDK/API during the creation of a conversation. A prompt also can refer to an action generated by the conversation that can initiate an action from or by the application user such as providing a response to a question or pressing a link button in the application during a conversation. In addition, a response can refer to texts, links, symbols, icons, and other information that an application developer enters during the creation of a conversation. A response also can refer to a response selectable, selected, or inputted by an application user as a result of at least one prompt generated by the conversation. The term response further can refer to a process or an action by an application user in which an application user inputs or triggers data or selects a provided one or more pieces of data by the application user to a prompt presented by the conversation. A response can be selected by the application user by clicking on or selecting at least one desired answer or action button provided during a conversation. A close action can include data entry, selection, other interaction based on options provided by the conversation, such as closing the conversation or transitioning to another location within the application or outside the application in which the conversation appears, or a time-out process during which there is no activity by the application user, which can then result in terminating the conversation or, alternatively, requesting further action or confirming the present status, among other functions which can be implemented. While these examples of prompts, responses and close actions from the creation of conversations, additional approaches to providing data entry and the receipt of data also are within the scope of the invention. For example, based on responses or selections to questions, one or more follow-up questions can be included in the conversations. User responses can be received by the ROKO SDK and assessed to produce individual user, prompt, response, data, action and/or aggregations of any of these features in the form of analytics. The analytics can then be presented to the application developers through the ROKO SDK/API user interfaces or to the ROKO SDK and broader ROKO module for use with other ROKO applications which can be leveraged by the mobile or web platform application developer as well (not shown; a module can be provided to the application developer including additional SDKs and other application developer supporting hardware and software components, which can similarly produce data and analytics which can then be leveraged in the ROKO SDK for conversations, as one example), as well as to third-party systems, such as a CRM system.
In one example, an additional advantage of the ROKO SDK/API and the ROKO SDK in that a portion or the full processing of any hardware, software and/or a combination of hardware and software components or portions of the processing, such as the creation of conversations, analysis of the collected data, and/or other processes that are computationally intensive, can be performed on a variety of hardware and/or software resources. Since the ROKO SDK supports portions of processing in a distributed network approach, computationally intensive processing need not be executed entirely on the mobile user's device or by the server(s) and processor(s) associated with the web platform or other environments in which the conversation is launched, but portions of the processing are performed on one of the ROKO SDK or broader ROKO application servers as well as other servers, such as the mobile or web platform application developers server(s) which are remote from the mobile or web platform application(s). Portions of the processing can also be distributed to applications or servers with portions or all the processing components being remote from each other. In addition, processing loads can be distributed across several of the ROKO SDK servers and/or the application developers' process servers that can run the ROKO SDK/API and/or the SDK conversations. Processing loads can also be distributed to other servers that run the application developer's platform, either independently, or in conjunction, with the ROKO SDK servers. In this example, the application processing load on the mobile device or web platform can be reduced, thus allowing the application user to interact with the application closer to real-time, making interactions more enjoyable and encouraging extended user engagement with the conversation and the application. By distributing the processing load to the one or more platform server(s), the data processing, collection, sorting, filtering, analysis, and storage associated with the conversations can be more effectively managed. Thus, the ROKO SDK, ROKO SDK/API, application developer or third-party server(s) can, for example, collect conversation data and perform analytics approximating real-time while multiple application users are simultaneously engaged in conversations. The impact can be an overall reduction in processing loads at any one server associated with the creation of the conversation, processing of the conversations or the analytics associated with the conversation.
Based on trends observed in real-time regarding application users' behaviors and actions (for example, for predetermined responses and the number of interactions within the conversations that users engage in), the ROKO SDK can receive the responsive data and use it to suggest edits to the conversation and content that encourages further engagement by the application user. With approximately real-time analytics, the ROKO SDK, as well as the application developer through the ROKO SDK/API, based on feedback analytics from the execution of the conversation, or even automated edits to the conversations based on artificial intelligence or other semi-automated or fully automated editing, can occur in order to adapt the conversation in a proactive and/or responsive manner to address apparent or potential opportunities for enhancing the mobile or web platform users' successful intersections, as well as issues that might diminish interest or engagement by users with the applications.
In combination with the ROKO SDK analytics, application developers can use the ROKO SDK/API platform to provide conversation structure and content that is refined or focused to address the needs of particular users more effectively; for example, by focusing on user properties, or segments (as discussed above). For example, depending on the observed trends relating to conversations derived from analytics data, the ROKO SDK can suggest adjustments to existing conversations or new conversations to the application developers. Continuing with this example, the ROKO SDK/API can provide data or make suggestions to inform application developers about how subsequent conversations for the same user segment can be designed to more effectively identify the users' interests and align them with those of the application.
The examples provided herein illustrate additive benefits and opportunities based on using platforms such as the ROKO SDK/API, the ROKO SDK and other components of the ROKO platform and, along with the examples discussed in connection with the figures below, can be implemented in various ways to create conversations, generate analytics and apply the analytics to improve the conversations and the applications in which the conversations are launched. No individual example provided in this application is intended to limit the scope of the invention.
The ROKO SDK 110 also performs various other tasks, such as in this example, communicating with one or more databases to store, access and output the content and activities for configuring the conversations 201 in the ROKO SDK 110. For example, the ROKO SDK 110 stores data in and retrieves it from one or more databases comprising Application Events 102, Prompts 104, Responses 106, User Properties 108 and Segments 109, for use in creating conversations 201 or generating or applying analytics derived from the conversations 201 being launched in applications 112 or 113, as well as for potentially other uses in the applications 112 and 113, such as assigning user properties to user profiles and creating segments based on the user properties and/or other data in addition to the user properties. One or more platform server(s) 114 can support this processing. The ROKO SDK 110 also can execute data analytics processing, receiving data, including selections and other input, entered by users of the applications 112 or 113 and assessing the received data to provide analytics for the conversations 201. Mobile devices supporting the applications 112 or 113 can be operated on a variety of different operating systems such as iOS, Android, or Windows Mobile, etc., to name a few examples. Web platforms supporting applications 113 can be operated on a variety of different operating systems such as Microsoft Windows, Apple OS X, Linus, Chrome, Firefox, Safari etc., to name a few examples. A variety of operating systems, including hardware and/or software components supporting the applications, or other computer applications or technology platforms or environments in which the conversations appear are within the scope of the instant claims and invention.
While the servers 114 are shown for illustrative purposes in
The computing architecture shown, for example, in
Implementations also can be provided as a computer program product including a non-transitory machine-readable storage medium having stored instructions thereon (in compressed or uncompressed form) that can be used to program a computer (or other electronic device) to perform processes or methods described herein. The machine-readable storage medium can include, but is not limited to, hard drives, floppy diskettes, optical disks, CD-ROMs, DVDs, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, flash memory, magnetic or optical cards, solid-state memory devices, or other types of media/machine-readable medium suitable for storing electronic instructions. Further, examples can also be provided as a computer program product including a non-transitory or transitory machine-readable signal (in compressed or uncompressed form). Examples of machine-readable signals, whether modulated using a carrier or not, include, but are not limited to, signals that a computer system or machine hosting or running a computer program can be configured to access, including signals downloaded through the Internet or other networks. In addition, system memory, removable storage, and non-removable storage are all examples of non-transitory computer-readable media. Non-transitory computer-readable storage media may include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other tangible, physical medium which can be used to store the desired information and which can be accessed by the carrier servers.
The UI 203 of
The ROKO SDK/API UI 203 displays a conversation tree 210 having several tiers (also referred to as a first-tier or Tier 1, a second-tier or Tier 2, a third-tier or Tier 3 etc., a series of levels or branches) of the conversation 201. Each tier can include prompts 104 and responses 106, as well as other components, for the user of the conversation to engage with during the conversation after launch. The mobile application user develops these tiers 116 by continuing to build additional conversation components, such as additional prompts and responses, as well as other components, for the user of the conversation 201 to engage with during the launched conversation 201. On this exemplary UI 203, upon activating the option “InstaBot Conversations” 222, a page labeled “Aaron's Sales Convo” 226 is opened. Once the UI 203 opens, the application developer 116 (not shown) can select one of several options, including the “Conversation Tree” option 202. As a result, the application developer is presented with the “Conversation Tree” 210, which displays the conversation tree with tiers (each represented by a window with a header bar showing a header or title that identifies the particular tier or branch of the conversation tree). Each tier or branch of the conversation tree 210 is activated by the mobile application developer 116 adding another section of a prompt 104 and one or more responses 106. The UI 203 also provides a “Conversation Name” box 220 for entering a name for a conversation 201 when creating a new conversation 201. As shown, the conversation name “Aaron's Sales Convo” also appears in the conversation name box 220, and it is the name of an existing conversation 201 (also shown by the selected option “Select Existing Conversation” in the “Use Existing” box 223). The previous example represents two possible scenarios as for forming the conversation 201. One scenario represents a situation in which the application developer 116 is using a previously stored conversation to create a new conversation 201. Another scenario involves a situation in which the application developer 116 continues to edit the conversation 201 “Aaron's Sales Convo”, which was previously created and stored, but is still unfinished.
The conversation tree branches can be created, for example, by inputting or selecting data for a first data entry box 204 corresponding to a first prompt 204, associated with a Text Prompt field 205, for the conversation 201. In this example, the data entered in the data entry box 204 is “Hi (Username), are you interested in seeing our items on sale?” is the first prompt 204. The data entered into the box 204 can be displayed as the first prompt 204 in the conversation 201 on display 216 of the mobile application 112 and as shown in the preview display 218 of UI 203. In one example, the first prompt 204 can be in the form of a text prompt (such as a declaratory statement or a question) with one response associated with the text prompt. In the
For prompt 104 and responses 105 generally, including the buttons associated with the responses, such as the Text Prompt 205 selection and Text Prompt 224 selection, the Close Chat 208 selection, an App Page 213 selection and a Share 212 selection or a Link 214 selection, there can be data entry boxes for entering text associated with some of the selections, such as the data entry box 204 associated with the Text Prompt button 205, the data entry box 209 associated with the Close Chat 208 selection, the data entry box 226 associated with the Share Button 212 selection, the data entry box 227 associated with the App Page 213 selection and the data entry box 228 associated with the Link 214 selection. In some instances, in this example, the data entry boxes accommodate the data of a text entry, such as boxes 204, 207, 209. In other instances, the selection of responses, such as the Share 205 selection, can expand a new branch of the conversation tree 210 in order to allow a link to be selected from a drop-down box or otherwise identified by a variety of input options to identify links or URL data.
The prompt, specifically, the first prompt 204 within the first-tier of the conversation 201 is now described. For example, the conversation 201 of
The conversation 201 shown in
An additional prompt in the conversation 201, referred to as a third prompt 241, (noting that where the second response 209 was selected to be a text prompt, additional sets of responses would have been created, and in that tier of the conversation 201, another third prompt would have been created, therefore, the third prompt 241 is used for ease of reference but the actual third prompt of the conversation 201 depends in part on the selection of responses by the user and therefore which branch of the tree the conversation 201 is directed to). The third prompt 241 of conversation 201 relates to the ‘Top Sellers” and third response 232 and is associated with a Text Prompt 248 with the data entry 241 “Thank you, use this code SUMMER10 to use 10% off of your purchase today” 241. The fourth prompt 250 of conversation 201 relates to the ‘Top Rated” and fourth response 234 and is another Text Prompt 250 with the same data entry “Thank you, use this code SUMMER10 to use 10% off of your purchase today” 251 as the third response 232 and third prompt 240. The data entry for the Top Rated 234 is shown on display 218 as a preview, and assuming a mobile device user also selects “Top Rated,” the same data entry is shown on display 216 or “Thank you, use this code SUMMER10 to use 10% off of your purchase today” 251. In addition, the Text Prompt 250 selection also demonstrates another feature of the conversation 201 as presented to the user of the mobile application 112 in that the Share Button 212 data of “Share” 226 is displayed for the user on the display 216 and on the preview display 218 as the approach by which the user can make the selection of the Share Button. As further shown in
The remaining UI 203 selections and data entries in this example do not result in a change to the display 216 shown to the mobile application 112 user. However, the responses to the third and fourth prompts 241 and 251 include actions associated with the conversation 201 data, such as for example, supporting the user of the mobile application 112 to receive a 10% discount, or other actions which may relate to or derive from the conversation 201. More specifically, the third prompt 241 associated with the Text Prompt 240 has two responses associated with either a Share Button 212 selection or a data entry 226 for the 212 selection. This action enables the conversation to share data with another page or area of the application 112 in which the conversation 201 is launched or another application as related to the objective of the conversation 201. In this example, the Share Button 212 selection also triggers another prompt for more data about the Share Button 212 selection, with another opportunity for the mobile application developer 116 to determine the way the conversation 201 will be shared, including an App Page 257 selection. Another response for the third prompt 241 is an App Page 213 selection and a data entry 227 for the 213 selection. The App Page action, such as the 257 or 213 selections, enables the conversation 201 to redirect the user to a page of the application 112 in which the conversation 201 is launched or another application as related to the objective of the conversation 201.
The fourth prompt 251 associated with the Text Prompt 250 has two responses associated with either a Share Button 252 selection or a data entry 254 for the 252 selection. The action described previously enables the conversation to share data with another page or area of the application 112 in which the conversation 201 is launched or another application as related to the objective of the conversation 201. In this example, the Share Button 252 selection also triggers another prompt for more data about the Share Button 252 selection, with another opportunity for the mobile application developer 116 to determine the way the conversation 201 will be shared, including the Link 214 selection and the data entry 228 for the 214 selection.
In this example, Share Button 252 selection also triggers another prompt for more data about the Share Button 252 selection, with another opportunity for the mobile application developer 116 to determine the way the conversation 201 will be shared, including a Link 258 selection and a data entry 264 showing a URL associated with the Link 258 selection. The Link selections 214 and 258 enable the conversation 201 to redirect the user to a link or URL which can be associated with the application 112 in which the conversation 201 is launched or another application.
In this exemplary conversation, a text prompt triggers two additional responses shown as options for the mobile developer 116. In other examples, a single response or multiple responses can be made available as a result of a prompt, including a text prompt or other forms of data for prompts, including visual, audio, video or other forms of data or notifications, as well as a single response being made available with an option to add another response upon completion of an earlier response, so that the mobile application developer 116 can determine whether to add further responses upon the completion of each response rather than selecting the number of response at the outset of identifying a new prompt.
As an example, for each of the prompts, the first prompt 204, the responses, e.g., the first response 207 and the second response 209, are linked to their respective prompts, e.g., the first prompt 204. The third and fourth responses 232 and 234, respectively, are linked to the second prompt 230. In addition, the UI 203 data entry selections and data entry boxes can be shown in a linked manner, such as, for example, the text prompt 207 is linked to the first response 207. In addition, in this example of UI 203, line connectors 270 and 272 are shown, which include a circled minus icon for minimizing a branch (i.e., to make a branch disappear from view) thus providing another visual indication of the relationship between prompts and responses. In this example, visual links are shown between prompts and responses, including further prompts 241 and 251 and their respective responses, such as for prompt 241, response 226 and 227 and for prompt 251, responses 254 and 228. However, visual links need not be provided in UI 203.
The user property 240 selection is now described. For each prompt, such as prompts 204, 230, 241 and 251 (to provide examples of a few prompts in
The source of the data for prompts 102 and responses 104, as well as user properties 108 and the segments 109, can be the databases shown in
The UI 203 is now further described. In one example of the ROKO SDK/API UI 203 in
The use of tiers, prompts 102 and responses 104 is now further described. In one example, a conversation 201 can comprise a predetermined number of tiers, such as a maximum of three tiers where (as shown in
Further in this example, each ROKO SDK 110 response can contain up to 140 characters and the character count can apply to each input box with which the application developer 116 interacts. In other examples, the form and size of the data entered for creation of preconfigured conversations 201 can vary in type and size, such as an unlimited number of characters, or other forms of content including textual and visual content.
When the conversation 201 has been created, the conversation 201 can be made available to the application developer 116 to launch (based on a push or other functionality) to an application 112, or the application developer can choose to save the conversation as a draft by selecting the “Save as Draft” button 282. In this example, the application developer 116 has selected the “Continue” button 283. When the developer selects the “Continue” button 283, the conversation 201 is automatically saved as a draft. Also, a new page can open that allows the application developer 116 to configure which users will receive the ROKO SDK conversation 201, such as by selecting user properties (as shown in
If an application developer 116 wants to edit the configuration of an active ROKO SDK conversation 201, one way to do so is from the ROKO SDK/API UI 203 of
The conversation 201 can consist of several levels and response variations. Instead of the SDK 110 sending the conversation 201 to an application 112 as a series of messages that can be individually affected by transmission errors, the entire conversation 201 can also be sent as one packet. In one example of a packet-transmitted conversation 201, only the first question can initially be made available to the user on the display 216. As such, with each user input, additional responses and actions associated with conversation 201 can be triggered based on the conversation configuration created by the mobile application developer 116 on the ROKO SDK/API UI 203 and as executed by the ROKO SDK 110. In another example, the application developer 116 can use her own custom UI (e.g., a variant of 203) in her developer application and still be able to configure and deploy conversations 201 from the ROKO SDK 110.
Each ROKO SDK conversation 201 can include a unique overall ID, such as the ID 290 shown on the ROKO SDK/API UI 203, and additional IDs for each conversation element, including each prompt 102, response 104, user property 106, segment 108 and each user input. The unique IDs are useful for tracking user conversation paths and generating valuable data relating to users' experience with the ROKO SDK conversations 201. More particularly, each ROKO SDK conversation 201 response can have any one or any combination of the following properties: response ID, tier value, button ID (the ID of the button that triggers this ROKO SDK response), response value (text of the ROKO SDK response, which can be a URL or key-value pair if the event type is selected), button A ID (the ID of a possible first response selected or activated by a user), button B ID (the ID of a second possible second response selected or activated by the user). (Can be Null). In one example, the following properties or responses (selectable user responses) can be assigned to each user input: Button ID; Button Name; Action Event Type; Response; URL; in-app page; Share button; Completed Flag; and Yes/No.
Different conversations 201 can share at least some identical or similar general features, but the ROKO SDK 110 also allows customizations for creating different conversation 201 configurations. For example, the application UI shown on the application 112 or 113 can consist of up to three (or more, in some cases) action buttons: e.g., as shown in
In one example, the ROKO SDK 110 can build timing mechanisms into the conversation 201 to provide users of the applications 112 with an approximation of a real-time experience of the conversation 201. For example, after the user of the application 112 selects a response, a one, two, three, five (or a timing selected by the application developer 116) a one-second delay can be implemented before the ROKO SDK 110 continues processing the conversation 201. The conversation 201 then can display a conversation bubble that shows, for example, ellipses to alert the user that the conversation 201 is replying. The conversation bubble can be displayed for an additional one or more, seconds, or customized timing. At this time, the input button section can be blank and the next conversation 201 question in the conversation tree can then be shown to the user, along with the user input responses.
The creation of the conversation 201 as well as the receipt, processing and analysis of data associated with the conversations 201 can be enhanced by the use of artificial intelligence or AI, as shown by an AI engine 306, and natural language processing or NLP, as shown by a NLP engine 308. In another example, an application 112 or 113 user may verbally respond within the conversation 201 pushed by the ROKO SDK 110, and the response can be processed by the AI engine 306 and NLP engine 308 and an appropriate prompt selected, depending on the conversation 201 created by the ROKO SDK 110. The ROKO SDK 110 also can provide analytics based on the application 112 or 113 user's responses to the conversation 201, the analytics generated from the conversation can be communicated directly from the ROKO SDK 110 to the third-party CRM system 300. Analytics can include, as examples, the count of conversation tiers that the user responded to, the time that the user spent in the application, and the count of conversation tiers in the conversation 201. The analytics are further described in
The conversations created 201 can be stored in the InstaBot Conversation Storage 430 database. The InstaBot Conversation Storage 430 database can transmit conversations 201 to the ROKO Mobi API 420 and to the Push Notifications Processing module 424. The Push Notifications Processing module 424 then can send Push messages 428 to the Push Notifications Server (APNS, FCM) 400 for deployment to the Client Application 414. All interactions between the Client Application 414 and ROKO Mobi API 420 include the launching of conversations 201 and the transfer of data comprising or associated with the conversation 201, such as events, prompts, responses, user properties and segments (as shown in
Conditional objects are now further described. The system 100 for the creation of conversations can include conditional objects, also referred to as merge tags, that can on an automated basis pull in information such as text, image, audio or video data or fields from databases, processing and organized data fields (such as, for example, forms) from resources which the mobile application developer 116 can access, such as mas112 and web applications 113. Additional examples of resources where conditional objects can be accessed are shown in
Additional data which can be used as a source of conditional objects are user properties collected from user responses to conversations 201 (as shown in
The conditional objects or merge tags can be pulled into the conversation 201 through a variety of data entry for customizing data input into the user interface 203. For example, a system of text codes, such as [USERUNAME], [UNAME], {USERNAME} (as shown in
The UI 203 includes a conversations pane 706 listing the available conversations 201 in a grid that includes column headers: “Conversation Name” 712, “Initial Question” 714, “Engagement Rate” 716, “Deploy Date” 718, and “Status” 720. A “New Conversation” button 708 is shown on the upper right-hand corner. When selected, this button 708 allows an application developer 116 to create a new conversation 201. The “Search” button 710 allows existing conversations 201 to be filtered or sorted. The existing conversations 201 can be searched or filtered according to conversation name, or according to a corresponding initial question, engagement rate, deployment date, or status.
To create a new conversation 201, a developer can select the “New Conversation” button 708 on the top right corner of the application developer user interface. Conversations 201 can have multiple levels of responses (see for example
The ROKO SDK 110 user interface 203 also provides data fields for the application developer 116 to assign identifiers for the conversation 201, including the conversation name, for example. In the example shown in
As shown in the example represented in
The MobiTestApp 800 portal the ROKO SDK/API UI 203 also can show data entry fields 210 for inputting text entries for a prompt and two responses (as shown and described in
The application 112 display 218 on the right-hand side of the ROKO SDK/API UI 203 allows an application developer 116 to preview a conversation 201 as the conversation tree is created. The navigation pane also includes the menu options Analytics 290 and one example of a product name for the conversation 201 “PushBot” 804, each of which can contain one or more additional options. As an example of navigation that can be employed in the ROKO SDK/API UI 203, these additional options can be viewed by clicking the corresponding arrowhead symbol, which changes direction from right facing to downward facing when selected. The specific implementation of data entry fields, selections, and other forms or input can be customized to support artificial intelligence or natural language processing (as shown in
In one example, the conversation 201 can be initiated by entering characters of the message (such as, for example 140 characters) into the data entry box 806 associated with a Text Prompt 805 to display as the conversation 201 can be initiated on the user interface 216 of the application 112 upon trigger of the conversation 201. Once the message has been entered into the box 806, an updated preview on display 218 as a preview of the mobile application 112 can displayed that includes the entered message (shown in
Further for this example of the conversation 201, the UI 203 triggers the appearance of the second prompt 230 when the MAD 116 selects the first response 206 to further build out in the conversation 201. Thus, for the selected first response “Yes, I would,” the mobile application developer 116 then enters “Would you like to look at top sellers or top rated items” as the data entered into the data entry field 230 associated with second prompt. There also is a connector 270 from the box presenting the second prompt 230 to the box presenting the first prompt 204, which represents the association between the second prompt 230 and the first response 206.
In one example of the implementation of conversations 201, where there are multiple ROKO SDK conversations 201 active for deployment to the same user segment 1004 of an application 112, a conflict handling modality can be provided. The previous example, allows the application developer 116 to decide which users of the application 112 should receive the conversations 201. The conflict handling modality identifies conversations 201 that are incompatible with the current send settings. The application developer 116 can then select a conversation 201, which is compatible with the current send settings, to be deployed to the users of the application 112. If a user has already previously received the conversation 201, the user can receive a new conversation 201, which typically applies to users with multiple active conversations 201. Once the settings selection has been completed, the application developer 116 can distribute the conversation 201 by selecting the “Deploy PushBot” button 1006. If the developer decides to put the conversation 201 on hold, the developer can simply check the box labeled “Always active” to the right of the “Start Date” and “End Date” buttons.
In addition, the mobile application developer 116 is also presented with an option 1008 of designating the maximum number of times a user can receive a conversation 201, including data entry options shown of a data entry field 1009 in which to enter a numerical value or a check box 1010 to indicate the selection of unlimited.
The trend lines below the numbers in each display 1201, 1202, 1204, 1206 and 1208 can represent the corresponding conversation 201 statistics data values as a function of time. The time range covered in the trend lines can be based on the date interval selected by the mobile application developer 116. An example of trend rules used by the ROKO SDK 110 for generating or representing the trend lines is as follows: (1) take total time in days and divide by 6 (to create 7 data points); (2) create a data point for each one of those intervals (rounding off, if needed; e.g., “last 30 days/6=5”); (3) 5 days per interval, e.g., days 1, 6, 11, 16, 21, 26, 31; (4) first data point should be activity/count on day 1; second data point should be the value at day 6; third data point should be the value at day 11; and final data point should be the total at the end of period covered.
As shown in
If a new conversation file is opened, the ROKO SDK/API UI 203 for application developer 116 receives a name of the conversation at 1308. Once the conversation 201 is named, a text message to be used as a prompt for display on the application 112 is received on the UI 203 at 1310, as well as a Tier 1 response 1 (an example of a Tier 1 response is the response “Yes I would” 208, which is one of the responses provided for the prompt “Hi (Username), are you interested in seeing our items on sale?” 254 shown in the first conversation tree branch labeled “Aaron's Sales Convo” 252 in
In this example of a process for creating a conversation 201, there are a maximum number of tiers, responses, and text prompts for the conversation 201. However, in other examples, the maximum number of tiers, responses and text prompts can be changed to suit the objective of the conversation and to encourage the exchange of data by the application 112 user with an appropriate number of layer of interactions within the conversation 201. Other examples of maximums can be less than three tiers, or greater than three tiers, and in further examples, there can be no maximums for any of the features of the conversations. Rather, the number of interactions within the conversation can be determined by the application developer 116 during creation of the conversation 201.
In this example of a process for creating a conversation 276, there are a maximum number of tiers, calls-to-action and text prompts for the conversation 276. However, in other examples, the maximum number of tiers, calls-to-action and text prompts can be changed to suit the objective of the conversation and to encourage the exchange of data by the mobile application 112 user with an appropriate number of layers of interaction within the conversation 276. Other examples of maximums can be less than three tiers, or greater than three tiers, and in further examples, there can be no maximums for any of the features of the conversations. Rather, the number of interactions within the conversation can be determined by the mobile application developer 116 during creation of the conversation 276.
In addition, there a multiple approaches to using the ROKO Analytics 290 to measure the success of conversations 201, including multiple launches of a single conversation 201 (such as for example by multiple users of the applications 112 or 113), multiple launches of the conversation 201 based on different indications for launching the conversation 201 (such as for example, upon launch of the application, at a predetermined time after launch or based on an event as discussed above regarding
Examples of using the ROKO analytics 290 for success metrics are now described. For comparisons of a multiple launches of a single conversation 201, user performance and engagement as a function of before and after launching the conversations 201 can be measured based on the following criteria: (a) average time the user spends engaged with the application (also referred to as “in-app”) 112 or 113 before conversation 201; (b) average time in-app after conversation 201; (c) the number of times the user opens the application 112 or 113 before the conversation 201; (d) the number of times the user opens the application 112 or 113 after the conversation 201; (e) the conversion rate measured based upon a specific conversion objective before the conversation 201; (f) the conversion rate (measured based upon a specific conversion objective) after the conversation 201; (g) the conversation reply rate; □ and (h) the conversation abandonment rate.
For comparisons of a multiple conversations with respect to each other, such as different conversations 201A and 201B, or conversations A and B where some prompts and/or responses are different between the conversations but there is some overlap based on, for example, where a conversation is edited, user performance can be measured based on: (a) conversation 201A engagement rate versus conversation 201B engagement rate; (b) conversation 201A completion rate versus conversation 201B completion rate; (c) conversation 201A abandonment rate versus conversation 201B abandonment rate; (d) conversation 201A conversion rate versus conversation 201B conversion rate (e) conversation 201A time spent in app after receiving versus conversation 201B time spent in app after receiving; (f) conversation 201A # of times opening app after receiving versus conversation 201B time spent in app after receiving; and (g) conversation 201A abandonment rate versus conversation 201B abandonment rate.□
For comparisons of a multiple conversations with respect to each other, such as different conversations 201A and 201B, including a comparison of all conversations 201 launched by a mobile application developer 116 for one or more applications 112 or 113 available on the ROKO platform, user performance can be measured for example based on: (a) engagement rate of conversation 201 based on conversation tiers; (b) engagement rate of conversation 201 based on average characters in prompt; (c) engagement rate of conversation 201 based on average words in prompt; (d) engagement rate of conversation 201 based on images in prompt; (e) completion rate of conversation 201 based on conversation tiers; (f) completion rate of conversation 201 based on average characters in prompt: (g) completion rate of conversation 201 based on average words in prompt; (h) completion rate of conversation 201 based on images in prompt; (i) conversion rate of conversation 201 based on conversation tiers; (j) conversion rate of conversation 201 based on average characters in prompt; (k) conversion rate of conversation 201 based on average words in prompt; (l) conversion rate of conversation 201 based on images in prompt; (m) abandonment rate of conversation 201 based on conversation tiers; (n) abandonment rate of conversation 201 based on average characters in prompt; (o) abandonment rate of conversation 201 based on average words in prompt; and (p) abandonment rate of conversation 201 based on images in prompt.
The ROKO analytics 290 also can be used as a measure of sentiment and user behavior as based on triggering conversation at key decision points in the application, such as questions related to user preferences, demographics, and user sentiment. In addition these user preferences, demographics, and user sentiment can be incorporated in user interfaces 203 to assist the mobile application developer 116 in creating future conversations 116. In addition, user segments can be updated dynamically as users respond to conversations 201 based on the following exemplary processing: the application of regression analysis involves identifying the relationship between a dependent variable collected from InstaBot to one or more independent variables from user behavior, user flow, or other known data, or the correlation of user segments as defined by 201 conversation user properties 108 in order to predict behavior of one segment through another segment.
CONCLUSIONAlthough the subject matter has been described in language specific to structural features, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features described. Rather, the specific features are disclosed as illustrative forms of implementing the claims.
Claims
1. A system comprising:
- one or more processors; and
- a memory including computer-executable instructions that, when executed, cause the processor to:
- launch a conversation configured for installation in an application, the conversation including a plurality of prompts, the plurality of prompts including at least a first prompt and a second prompt, a plurality of responses, the plurality of responses including at least a first response associated with the first prompt, and at least a second response associated with the second prompt, and a close action;
- receive an indication for each of a plurality of launches of the conversation in the application;
- for each of the plurality of launches:
- receive at least a first responsive data associated with the first response, the first responsive data including one of a plurality of responsive data types, the responsive data types including one of a data entry, a data selection, an action or an abandonment of the conversation;
- generate a first metric, the first metric including a first metric count for each of the plurality of responsive data types of the first response;
- aggregate the first metric count for each of the plurality of responsive data types of the first response;
- detect whether the second response is received; and
- upon detection of a receipt of the second response:
- receive at least a second responsive data associated with the second response, the second responsive data including one of the plurality of responsive data types; and
- generate a second metric, the second metric including a second metric count for each of the plurality of responsive data types of the second response;
- aggregate the second metric count for each of the plurality of responsive data types of the second response; and
- generate a conversation analytics based on the aggregation of the first metric count for each of the plurality of responsive data types of the first response and, where the second response is received, the aggregation of the second metric count for each of the plurality of responsive data types of the second response.
2. The system of claim 1, the conversation analytics indicating the first prompt and, the aggregation of the first metric count for each of the plurality of responsive data types of the first responsive data and, where the second response is received, further indicating the second prompt and the aggregation of the second metric count for each of the plurality of responsive data types of the second responsive data.
3. The system of claim 2, the memory further includes computer executable instructions that cause the one or more processors to: display information indicating the conversation analytics and each of the plurality of responsive data types of the first responsive data with a respective first metric count with its respective first metric count and, where the second response is received, further indicating each of the plurality of responsive data types of the second responsive data with a respective second metric count with its respective second metric count.
4. The system of claim 2, the abandonment of the conversation comprising one of an expiration of a predetermined time to receive the responsive data or a receipt of the close action and the action comprising one of redirecting the conversation to a page inside the application, to a page outside the application or to a universal record locator, or sharing information about one of the conversation or the application outside of the application.
5. The device of claim 1, the memory further includes computer-executable instructions that cause the one or more processors to:
- based on the aggregation of the first metric count for each of the plurality of responsive data types, identify the first metric count indicating a highest count of one the plurality of responsive data types for the first responsive data of the data entry or the data selection for the plurality of launches, and, where the second response is received, based on the aggregation of the second metric count for each of the plurality of responsive data types, identify the second metric count indicating a highest count of one of the plurality of responsive data types for the second responsive data of the data entry or the data selection for the plurality of launches.
6. The device of claim 5, the memory further includes computer executable instructions that cause the one or more processors to: generate a recommendation for the conversation for at least one of the plurality of prompts or the plurality of responses based on the one of the responsive data types having the highest count for the first metric count.
7. The device of claim 6, where the second response is received, the recommendation for the conversation further based on the one of the responsive data types having the highest count for the second metric count.
8. The device of claim 5, the memory further includes computer executable instructions that cause the one or more processors to:
- receive the recommendation for the conversation;
- replace one of the plurality of prompts or the plurality of responses with the recommendation;
- create an updated conversation based at least in part on the recommendation; and
- launch the updated conversation in the application.
9. The system of claim 1, at least one of the plurality of prompts or one of the plurality of responses being assigned to one of a user property, a segment, a combination of user properties or a combination of segments, and the user property being associated with at least one of a user profile, an identification associated with the user or an identification associated with a device on which the application is running.
10. The system of claim 8, at least one of the plurality of prompts or one of the plurality of responses being assigned to one of a user property, a segment, a combination of user properties or a combination of segments, and the user property being associated with at least one of a user profile, an identification associated with the user or an identification associated with a device on which the application is running, and the recommendation further based on the one of the a user property, the segment, the combination of user properties or the combination of segments, the memory further includes computer-executable instructions that cause the one or more processors to:
- receive the recommendation for the conversation;
- replace one of the plurality of prompts or the plurality of responses with the recommendation;
- create an updated conversation based at least in part on the recommendation; and
- launch the updated conversation in the application.
11. A system comprising:
- one or more processors; and
- a memory including computer-executable instructions that, when executed, cause the processor to:
- launch a conversation configured for installation in an application, the conversation including a plurality of prompts, the plurality of prompts including at least a first prompt and a second prompt, a plurality of responses, the plurality of responses including at least a first response associated with the first prompt, and at least a second response associated with the second prompt, and a close action;
- receive an indication for each of a plurality of launches of the conversation in the application;
- for each of the plurality of launches:
- receive at least a first responsive data associated with the first response, the first responsive data including one of a plurality of responsive data types, the responsive data types including one of a data entry, a data selection, an action or an abandonment of the conversation;
- generate a first metric, the first metric including a first metric count for each of the plurality of responsive data types of the first response;
- aggregate the first metric count for each of the plurality of responsive data types of the first response;
- detect whether the second response is received; and
- upon detection of a receipt of the second response:
- receive at least a second responsive data associated with the second response, the second responsive data including one of the plurality of responsive data types; and
- generate a second metric, the second metric including a second metric count for each of the plurality of responsive data types of the second response;
- aggregate the second metric count for each of the plurality of responsive data types of the second response;
- and generate a conversation analytics based on the aggregation of the first metric count for each of the plurality of responsive data types of the first response and, associated with receipt of the second response, the aggregation of the second metric count for each of the plurality of responsive data types of the second response.
12. The system of claim 11, the conversation analytics indicating the first prompt and, the aggregation of the first metric count for each of the plurality of responsive data types of the first responsive data and, associated with receipt of the second response, further indicating the second prompt and the aggregation of the second metric count for each of the plurality of responsive data types of the second responsive data.
13. The system of claim 12, the memory further includes computer-executable instructions that cause the one or more processors to:
- display information indicating the conversation analytics and each of the plurality of responsive data types of the first responsive data with a respective first metric count with its respective first metric count and, associated with receipt of the second response, further indicating each of the plurality of responsive data types of the second responsive data with a respective second metric count with its respective second metric count.
14. The system of claim 12, the abandonment of the conversation comprising one of an expiration of a predetermined time to receive the responsive data or a receipt of the close action and the action comprising one of redirecting the conversation to a page inside the application, to a page outside the application or to a universal record locator, or sharing information about one of the conversation or the application outside of the application.
15. The device of claim 11, the memory further includes computer-executable instructions that cause the one or more processors to:
- based on the aggregation of the first metric count for each of the plurality of responsive data types, identify the first metric count indicating a highest count of one the plurality of responsive data types for the first responsive data of the data entry or the data selection for the plurality of launches, and, associated with receipt of the second response, based on the aggregation of the second metric count for each of the plurality of responsive data types, identify the second metric count indicating a highest count of one of the plurality of responsive data types for the second responsive data of the data entry of the data selection for the plurality of launches.
16. The device of claim 15, the memory further includes computer executable instructions that cause the one or more processors to: generate a recommendation for the conversation for at least one of the plurality of prompts or the plurality of responses based on the one of the responsive data types having the highest count for the first metric count.
17. The device of claim 15, the memory further includes computer executable instructions that cause the one or more processors to:
- receive the recommendation for the conversation;
- replace one of the plurality of prompts or the plurality of responses with the recommendation;
- create an updated conversation based at least in part on the recommendation; and
- launch the updated conversation in the application.
18. The system of claim 11, at least one of the plurality of prompts or one of the plurality of responses being assigned to one of a user property, a segment, a combination of user properties or a combination of segments, and the user property being associated with at least one of a user profile, an identification associated with the user or an identification associated with a device on which the application is running, and the recommendation further based on the one of the a user property, the segment, the combination of user properties or the combination of segments, the memory further includes computer-executable instructions that cause the one or more processors to:
- receive the recommendation for the conversation;
- replace one of the plurality of prompts or the plurality of responses with the recommendation;
- create an updated conversation based at least in part on the recommendation;
- and launch the updated conversation in the application.
19. The system of claim 11, the plurality of prompts prompt comprising a text prompt and the plurality of responses response comprising one of a text prompt, a data entry, a data selection, an audio input, a visual input, an action to end the conversation, an action to direct the conversation to a location in the mobile application or an action to share data about one of the mobile application or another location in the mobile application.
20. A method comprising:
- launching a conversation configured for installation in an application, the conversation includes a plurality of prompts, the plurality of prompts including at least a first prompt and a second prompt, a plurality of responses, the plurality of responses including at least a first response associated with the first prompt, and at least a second response associated with the second prompt, and a close action;
- receiving an indication for each of a plurality of launches of the conversation in the application;
- for each of the plurality of launches:
- receiving at least a first responsive data associated with the first response, the first responsive data includes one of a plurality of responsive data types, the responsive data types includes one of a data entry, a data selection, an action or an abandonment of the conversation;
- generating a first metric, the first metric includes a first metric count for each of the plurality of responsive data types of the first response;
- aggregating the first metric count for each of the plurality of responsive data types of the first response;
- detecting whether the second response is received; and
- upon detection of a receipt of the second response:
- receiving at least a second responsive data associated with the second response, the second responsive data including one of the plurality of responsive data types; and
- generating a second metric, the second metric includes a second metric count for each of the plurality of responsive data types of the second response;
- aggregating the second metric count for each of the plurality of responsive data types of the second response; and
- generating a conversation analytics based on the aggregation of the first metric count for each of the plurality of responsive data types of the first response and, associated with receipt of the second response, the aggregation of the second metric count for each of the plurality of responsive data types of the second response.
21. The method as recited in claim 20, further comprising displaying information indicating the conversation analytics and each of the plurality of responsive data types of the first responsive data with a respective first metric count with its respective first metric count and, associated with receipt of the second response, each of the plurality of responsive data types of the second responsive data with a respective second metric count with its respective second metric count.
| 8745573 | June 3, 2014 | Ben-Artzi et al. |
| 9043407 | May 26, 2015 | Gaulke et al. |
| 9621492 | April 11, 2017 | Park et al. |
| 20080086522 | April 10, 2008 | Biggs et al. |
| 20080114837 | May 15, 2008 | Biggs et al. |
| 20090281966 | November 12, 2009 | Biggs et al. |
| 20110078105 | March 31, 2011 | Wallace |
| 20130144961 | June 6, 2013 | Park et al. |
| 20130151636 | June 13, 2013 | Majeti et al. |
| 20130173723 | July 4, 2013 | Herold |
| 20140279050 | September 18, 2014 | Makar et al. |
| 20160043975 | February 11, 2016 | Park et al. |
| 20160044380 | February 11, 2016 | Barrett |
| 20160343378 | November 24, 2016 | Chen |
| 20170048170 | February 16, 2017 | Smullen et al. |
| 20170180276 | June 22, 2017 | Gershony et al. |
| 20170180284 | June 22, 2017 | Smullen et al. |
| 20170193997 | July 6, 2017 | Chen |
| 20170237692 | August 17, 2017 | Sheth et al. |
| 20170286269 | October 5, 2017 | Furman et al. |
| 20170293681 | October 12, 2017 | Blandin et al. |
| 20170293834 | October 12, 2017 | Raison |
| 20170295114 | October 12, 2017 | Goldberg et al. |
| 20180324120 | November 8, 2018 | Smullen |
| 20180331979 | November 15, 2018 | Rakovitsky et al. |
- Office Action for U.S. Appl. No. 15/590,791, dated Dec. 11, 2018, Rakovitsky et al, “System and Method for Creating Conversations to Launch Within Applications”, 21 pages.
- Office Action for U.S. Appl. No. 15/590,791, dated May 1, 2019, Rakovitsky et al, “System and Method for Creating Conversations to Launch Within Applications”, 23 pages.
Type: Grant
Filed: May 9, 2017
Date of Patent: Oct 22, 2019
Patent Publication Number: 20180332447
Assignee: ROKO Labs, LLC (New York, NY)
Inventors: Dmitry Rakovitsky (Marlboro, NJ), Amy Kadomatsu (Edgewater, NJ), Sergei Selin (Davie, FL), Zakie Twainy (New York, NY), Aaron Weymouth (Brooklyn, NY)
Primary Examiner: Abdullahi E Salad
Application Number: 15/590,852
International Classification: H04W 4/14 (20090101); H04L 29/08 (20060101); H04M 1/725 (20060101); G06F 11/34 (20060101);