Bot that requests permission to access data

The method and system provide user-controlled authorization for bot access to data, addressing inefficiencies and security issues by ensuring authorized bot actions, thus enhancing messaging efficiency and security.

DE112017003594B4Active Publication Date: 2026-03-26GOOGLE LLC
View PDF 5 Cites 0 Cited by

Patent Information

Authority / Receiving Office
DE · DE
Patent Type
Patents
Current Assignee / Owner
Filing Date
2017-09-19
Publication Date
2026-03-26

AI Technical Summary

Technical Problem

Existing messaging technologies lack effective mechanisms for managing permissions when and how messaging bots access user information, which can lead to inefficiencies and security concerns.

Method used

A computer-implemented method and system that programmatically determines the need for bot access to user data and renders an approval interface for user consent, allowing users to approve or deny access, and performs actions accordingly.

Benefits of technology

Enhances user control over bot access, improving security and efficiency by ensuring that bot actions are authorized and transparent, reducing resource strain and complexity.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

A computer-implemented procedure that includes the following: Providing a message transmission application (103a, 103b) on a first computing device assigned to a first user to enable communication between the first user and at least one other user, Detecting a user request in the messaging application (103a, 103b); Programmatically determining that an action in response to a user request requires access to data associated with the first user; Causing an approval interface to be rendered in the message transmission application (103a, 103b) on the first computing device, wherein the approval interface enables the first user to approve or deny access to the data associated with the first user; and After receiving user input from the first user indicating authorization to access the data associated with the first user, access the data associated with the first user and perform the action in response to the user request.
Need to check novelty before this filing date? Find Prior Art

Description

Related registrations

[0001] This application claims priority over US application no. 62 / 397,047 entitled “BOT PERMISSIONS”, which was filed on September 20, 2016. background

[0002] Users conduct messaging conversations, such as chat, instant messaging, etc., through messaging services. Messaging conversations can be conducted using any user device, such as a computer, mobile device, or wearable device. Because users engage in more conversations and perform more tasks using messaging applications, automated assistance with messaging conversations or tasks (e.g., through a bot or other automated assistant application) can be beneficial for improving efficiency.Although automation can help make messaging communication more efficient for users, it may be necessary to manage permissions relating to when and how a messaging bot accesses user information and what user information the messaging bot is allowed to access. US 2013 / 0144961 A1 relates to an information delivery method and a corresponding system that can provide information during a conversation with a user via an instant messaging application. The information delivery system allows a user terminal to add a software bot, which may be a virtual friend running in an artificial intelligence program, via the instant messaging application running on the user terminal. When the user sends a message to the software bot during a conversation session, the information delivery system can retrieve a matching response from a database by entering the message as a query and send the response to the user terminal, thus providing the response to the user via the conversation session. US 2006 / 01500119 A1 relates to a mechanism for selecting and interacting with automated information agents over a text-based messaging network using a dialog-oriented interface that can respond to requests according to the device's location. A server sends an electronic message to the device, identifying each of several agents. The optimized graphical user interface displays an agent selection screen showing identity information for each of the agents named in the electronic message. The device includes an input mechanism capable of capturing the user's selection of an agent. Upon initial input specifying a first selected agent, the device displays an agent interaction screen for that first selected agent.At least part of the agent interaction screen can display a request entered via the input mechanism. Optionally, activation mechanisms are provided on the server to allow human intervention in response to a request. US 2014 / 0164953 A1 concerns systems, methods, and devices for use in conjunction with at least one virtual agent. In this context, at least one processor is programmed to: intercept user input for a messaging application running on the at least one processor and enabling multi-party conversation; and, in response to the detection of a trigger in the user input, insert the at least one virtual agent into the multi-party conversation enabled by the messaging application. EP 3 465 992 A1 and WO 2018 / 039092 A1 relate to systems, methods, and software technology for providing access control to messaging bots. Specifically, an access control service assigns different messaging bots to different geographic areas. The system monitors the location of messaging clients in relation to these geographic areas and, as soon as at least one messaging client moves into one of the geographic areas, grants an assigned messaging bot initial access to the messaging client to communicate with an end user. Further access is granted based on the level of interaction achieved during the messaging conversation.

[0003] The background description contained herein serves to present the general context of the disclosure. Works of the inventors mentioned herein, insofar as they are described in this background section, as well as other aspects of the description that may not have been considered prior art at the time of filing, are neither expressly nor implicitly recognized as prior art with respect to the present disclosure. Summary

[0004] This document proposes a computer-implemented method according to claim 1, a computer-implemented method according to claim 14, a system according to claim 17, a computer-implemented method according to claim 21, a non-volatile, computer-readable medium according to claim 51, and a system according to claim 81. Some implementations may include a computer-implemented method comprising: providing a message transmission application on a first computing device assigned to a first user to enable communication between the first user and at least one other user, and detecting a user request in the message transmission application.The procedure may also include: programmatically determining that an action in response to the user request requires access to data associated with the first user, and causing an approval interface to be rendered in the messaging application on the first computing device, the approval interface allowing the first user to approve or deny access to the data associated with the first user. The procedure may further include: upon receiving user input from the first user indicating approval of access to the data associated with the first user, accessing the data associated with the first user and performing the action in response to the user request.

[0005] The procedure may also include: after receiving user input from the first user denying access to the data associated with that first user, providing a message in the messaging application indicating that the action will not be performed. In some implementations, the first user may be a human user, and the at least one other user may be a helper agent.

[0006] In some implementations, the first user is a human user, and at least one other user is a second human user who is different from the first user and assigned to a second computing device. The approval interface may be rendered in the messaging application on the first computing device assigned to the first user, and the approval interface is not displayed on the second computing device assigned to the second human user.

[0007] The procedure may further comprise: after receiving user input from the first user denying access to the data assigned to the first user, providing an initial specification for rendering on the first computing device assigned to the first user. The procedure may also comprise: providing a second specification for rendering on a second computing device assigned to at least one other user, wherein the first and second specifications indicate a failure to satisfy the user request, and wherein the first and second specifications are different.

[0008] In some implementations, the first and second requests may contain different text content, styles, and / or formats. In some implementations, the first user comprises a human user, and the at least one other user comprises a second human user, distinct from the first, and an auxiliary agent. The user request may be received by the first computing device associated with the first user. The procedure may also include initiating a separate conversation in the messaging application in response to the user request. This separate conversation may include the first user and the auxiliary agent, and may not include the second human user.

[0009] In some implementations, detecting the user request involves analyzing one or more messages received by the messaging application from one or more of the first users and at least one other user. The one or more messages may include a text message, a multimedia message, and / or a command to a helper agent. Performing the action in response to the user request may involve delivering one or more suggestions to the first messaging application.

[0010] The procedure can also include: causing the one or more suggestions to be rendered in the messaging application. The one or more suggestions can be rendered as suggestion items which, when selected by the first user, cause details about the suggestion to be displayed.

[0011] Some implementations may include a computer-implemented procedure. This procedure may involve: detecting a user request in a messaging application and determining programmatically that an action in response to the user request requires access to data associated with the first user. The procedure may also involve: causing an approval interface to be rendered in the messaging application on the first computing device, the approval interface allowing the first user to approve or deny access to the data associated with the first user. The procedure may further involve: after receiving approval from the first user in the approval interface, accessing the data associated with the first user and performing the action in response to the user request.

[0012] The procedure may also include: after receiving user input from the first user denying access to the data associated with the first user, providing an indication in the message delivery application that the action will not be performed. The procedure may further include: after receiving user input from the first user denying access to the data associated with the first user, providing an initial indication for rendering in the message delivery application. The procedure may also include: providing a second indication for rendering in a second message delivery application associated with at least one other user, wherein the first and second indications indicate a failure to fulfill the user request, and wherein the first and second indications are different.

[0013] Some implementations may include a system containing one or more processors coupled to a non-transitory, computer-readable medium on which instructions are stored. When executed by the one or more processors, these instructions cause the one or more processors to perform operations. The operations may include: deploying a message delivery application on a first computing device associated with a first user to enable communication between the first user and at least one other user, and detecting a user request in the message delivery application.The operations may also include: programmatically determining that an action in response to the user request requires access to data associated with the first user, and causing an approval interface to be rendered in the messaging application on the first computing device, the approval interface allowing the first user to approve or deny access to the data associated with the first user. The operations may further include: upon receiving user input from the first user indicating approval of access to the data associated with the first user, accessing the data associated with the first user and performing the action in response to the user request.

[0014] The operations may also include: after receiving user input from the first user denying access to the data associated with the first user, providing a message in the messaging application indicating that the action will not be performed. In some implementations, the first user may be a human user, and the one or more other users may be a helper agent. In some implementations, the first user may be a human user, and the one or more other users may be a second human user, different from the first user and associated with a second computing device.The approval interface can be rendered in the messaging application on the first computing device assigned to the first user, and the approval interface is not displayed on the second computing device assigned to the second human user. Brief description of the drawings Fig. Figure 1 shows a block diagram of an example environment in which messages can be exchanged between users and bots, according to some implementations. Fig. Figure 2 is a representation of an exemplary arrangement of communication between a user device and a bot according to some implementations. Fig. Figure 3 is a representation of an exemplary arrangement of communication between a user device and a bot according to some implementations. Fig. Figure 4 is a representation of an exemplary arrangement of communication between a user device and a bot according to some implementations. Fig. Figure 5 is a flowchart of an exemplary procedure for managing bot approvals according to some implementations. Fig. Figure 6 is a representation of an exemplary user interface with bot message delivery according to some implementations. Fig. Figure 7 is a representation of an exemplary user interface with bot message delivery according to some implementations. Fig. Figure 8 is a flowchart of an exemplary procedure for managing bot approvals according to some implementations. Fig. Figure 9 is a representation of an exemplary computing device designed to manage bot approvals, according to some implementations. Detailed description

[0015] One or more of the implementations described herein relate to the control and management of approvals for message delivery application bots.

[0016] Fig. Figure 1 shows a block diagram of a sample environment 100 for providing message delivery services that enable automated helper agents such as bots and, in some embodiments, provide them. The sample environment 100 includes the message delivery server 101, one or more client devices 115a, 115n, a server 135, and a network 140. Users 125a-125n can be assigned to the respective client devices 115a, 115n. The server 135 can be a third-party server, controlled, for example, by a provider different from the provider of the message delivery services. In various implementations, the server 135 can implement bot services, as described in more detail below. In some implementations, the environment 100 can include one or more servers or devices that are configured in Fig. The items shown in section 1 may not include other servers or devices not shown in the diagram. Fig. The figures shown in 1 include: Fig. In Figure 1 and the other figures, a letter following a reference symbol, e.g., "115a", represents a reference to the element that contains that specific reference symbol. A reference symbol in the text without a following letter, such as "115", represents a general reference to implementations of the element that bears that reference symbol.

[0017] In the implementation shown, the message delivery server 101, the client devices 115, and the server 135 are communicatively connected via a network 140. In various implementations, the network 140 can be a conventional network, wired or wireless, and can include numerous different configurations, including a star configuration, a token ring configuration, or other configurations. Furthermore, the network 140 can include a local area network (LAN), a wide area network (WAN) (e.g., the Internet), and / or other interconnected data paths over which multiple devices can communicate. In some implementations, the network 140 can be a peer-to-peer network. The network 140 can also include or be connected to sections of a telecommunications network for transmitting data using a variety of different communication protocols.In some implementations, the network includes 140 Bluetooth® communication networks, Wi-Fi®, or a cellular communication network for sending and receiving data, including via Short Message Services (SMS), Multimedia Message Services (MMS), Hypertext Transfer Protocol (HTTP), Direct Data Connection, email, etc. Although... Fig. 1 shows a network 140 that is connected to the client devices 115, the message transmission server 101 and the server 135, in practice one or more networks 140 can be coupled with these entities.

[0018] The message server 101 can include a processor, memory, and network communication capabilities. In some implementations, the message server 101 is a hardware server. In other implementations, the message server 101 can be embedded in a virtual environment. For example, the message server 101 can be a virtual machine running on a hardware server, which can contain one or more virtual machines. The message server 101 is connected to the network 140 via a signal line 102. The signal line 102 can be a wired connection such as Ethernet, coaxial cable, fiber optic cable, etc., or a wireless connection such as Wi-Fi, Bluetooth, or other wireless technologies.In some implementations, the message delivery server 101 sends and receives data to and from one or more client devices 115a-115n, the server 135, and a bot 113 over the network 140. In some implementations, the message delivery server 101 may include a message delivery application 103a that provides client functionality to allow a user (e.g., any one of the users 125) to exchange messages with other users and / or with a bot. The message delivery application 103a may be a server application, a server module of a client-server application, or a distributed application (e.g., with a corresponding client message delivery application 103b on one or more client devices 115).

[0019] The message delivery server 101 may also include a database 199 that can store messages exchanged via the message delivery server 101, data and / or the configuration of one or more bots, and user data assigned to one or more users 125, all of which is stored with the explicit permission of the respective user. In some implementations, the message delivery server 101 may include one or more auxiliary agents, such as bots 107a and 111. In other embodiments, the auxiliary agents may be implemented on the client devices 115a-n and not on the message delivery server 101.

[0020] The message transmission application 103a can consist of code and routines that are operable to enable the processor to exchange messages between users 125 and one or more bots 105, 107a, 107b, 109a, 109b, 111, and 113. In some implementations, the message transmission application 103a can be implemented using hardware, including a field-programmed gate array (FPGA) or an application-specific integrated circuit (ASIC). In other implementations, the message transmission application 103a can be implemented using a combination of software and hardware.

[0021] In various implementations, database 199 can be stored if the respective users assigned to client devices 115 consent to the storage of messages exchanged between one or more client devices 115. In some implementations, database 199 can also be stored if the respective users assigned to client devices 115 consent to the storage of messages exchanged between one or more client devices 115 and one or more bots implemented on another device, such as another client device, the message delivery server 101, and server 135. In implementations where one or more users do not consent, messages received and sent by these users are not stored.

[0022] In some implementations, messages can be encrypted, for example, so that only the sender and recipient of a message can view the encrypted messages. In some implementations, messages are stored. In some implementations, database 199 can also store data and / or the configuration of one or more bots, such as bot 107a, bot 111, etc. In some implementations, database 199 can also store the user data associated with a user 125 who gives consent to the storage of user data (such as data from social networks, contact information, images, etc.).

[0023] In some implementations, the messaging application 103a / 103b may provide a user interface that allows a user 125 to create new bots. In these implementations, the messaging application 103a / 103b may include features that allow user-created bots to participate in conversations between users of the messaging applications 103a / 103b.

[0024] The client device 115 can be a computing device comprising memory and a hardware processor, e.g., a camera, a laptop, a tablet, a mobile phone, a body-worn device, a mobile email device, a portable gaming console, a portable music player, a reading device, a head-mounted display, or any other electronic device capable of wirelessly accessing the network 140.

[0025] In the implementation shown, client device 115a is connected to network 140 via a signal line 108, and client device 115n is connected to network 140 via a signal line 110. Signal lines 108 and 110 can be wired connections such as Ethernet or wireless connections such as Wi-Fi, Bluetooth, or other wireless technologies. Client devices 115a and 115n are accessed by users 125a and 125n, respectively. Fig. 1 are used as examples. Although Fig. 1. Two client devices 115a and 115n are shown, the disclosure applies to a system architecture with one or more client devices 115.

[0026] In some implementations, the client device can be a wearable device worn by a user 125. For example, the client device 115 might be part of a clip (e.g., a bracelet), part of jewelry, or part of eyeglasses. In another example, the client device 115 might be a smartwatch. In various implementations, a user 125 can view messages from the messaging application 103a / 103b on a display of the device and can access the messages via a speaker or other output device of the device, etc. For example, the user 125 can view the messages on a display of a smartwatch or smart bracelet.In another example, the user 125 can access the messages via headphones (not shown) that are coupled to or part of the client device 115, a speaker of the client device 115, a haptic feedback element of the client device 115, etc.

[0027] In some implementations, the message delivery application 103b is stored on a client device 115a. In other implementations, the message delivery application 103b (e.g., a lean client application, a client module, etc.) can be a client application stored on the client device 115a, with a corresponding message delivery application 103a (e.g., a server application, a server module, etc.) stored on the message delivery server 101. For example, the message delivery application 103b can send messages created by the user 125 on the client device 115a to the message delivery application 103a stored on the message delivery server 101.

[0028] In some implementations, the message delivery application 103a can be a standalone application stored on the message delivery server 101. A user 125a can access the message delivery application 103a via a web page using a browser or other software on a client device 115a. In some implementations, the message delivery application 103b, implemented on the client device 115a, can include the same or similar modules as those contained on the message delivery server 101. In some implementations, the message delivery application 103b can be implemented as a standalone client application, for example, in a peer-to-peer configuration or other configuration where one or more client devices 115 include functions to enable message exchange with other client devices 115.In these implementations, the message delivery server 101 may include limited or no message delivery functions (e.g., client authentication, security, etc.). In some implementations, the message delivery server 101 may implement one or more bots, e.g., Bot 107a and Bot 111.

[0029] Server 135 can include a processor, memory, and network communication capabilities. In some implementations, Server 135 is a hardware server. Server 135 is connected to Network 140 via Signal Line 128. Signal Line 128 can be a wired connection such as Ethernet, coaxial cable, fiber optic cable, etc., or a wireless connection such as Wi-Fi, Bluetooth, or another wireless technology. In some implementations, Server 135 sends and receives data to and from one or more Message Delivery Servers 101 and Client Devices 115 over Network 140. Although Server 135 is represented as a single server, different implementations can include one or more Server 135s. Server 135 can implement one or more Bots as server applications or server modules, for example, Bot 190a and Bot 113.

[0030] In various implementations, Server 135 may be part of the same entity that manages the message delivery server 101, such as a message delivery service provider. In some implementations, Server 135 may be a third-party server, controlled by an entity different from the one providing the message delivery application 103a / 103b. In some implementations, Server 135 deploys or hosts bots.

[0031] A bot is an automated service implemented on one or more computers with which users interact primarily via text, for example, through the messaging application 103a / 103b. A bot can be implemented by a bot provider in such a way that it can interact with users of different messaging applications. In some implementations, a messaging application 103a / 103b provider may also provide one or more bots. In some implementations, the bots provided by the messaging application 103a / 103b provider may be designed to be integrated into other messaging applications, such as those provided by other vendors. A bot can offer several advantages compared to other modes. For example, a bot can allow a user to discover a new service (e.g.,to attempt a service (e.g., a taxi booking service, a restaurant reservation service) without having to install an application on a client device or access a website. Furthermore, a user can interact with a bot via text, which requires little or no learning compared to using a website, a software application, a phone call, an interactive voice response (IVR) service, or other methods of interacting with a service. Integrating a bot into a messaging service or application can also allow users to collaborate with other users to accomplish various tasks such as travel planning, shopping, scheduling appointments, searching for information, etc., within the messaging service, eliminating cumbersome operations such as switching between different applications (e.g.,a taxi booking application, a restaurant reservation application, a calendar application, etc.) or web presences to accomplish the tasks, making them unnecessary.

[0032] A bot can be implemented as a computer program or computer application (e.g., a software application) designed to interact with one or more users (e.g., any one of the users 125a-n) via the messaging application 103a / 103b, provide information, or perform specific actions within the messaging application 103. For example, an information retrieval bot can search the internet for information and display the most relevant search results within the messaging application.As another example, a travel bot might have the ability to organize travel via the messaging application 103, for example, by enabling the purchase of travel and hotel tickets within the messaging application, making hotel bookings within the messaging application, making rental car bookings within the messaging application, and the like. As another example, a taxi bot might have the ability to call a taxi, for example, to the user's location (which the taxi bot receives from the client device 115 when a user grants 125 access to location data), without having to access or call a separate taxi reservation application.As another example, a coach / tutor bot can act as a tutor for a user, teaching them a subject within a messaging application, for example, by asking questions likely to appear on an exam and providing feedback on whether the user's answers were correct or incorrect. As another example, a gaming bot can play a game on the other side or the same side as a user within a messaging application. As yet another example, a commercial bot can provide services from a specific merchant, such as retrieving product information from the merchant's catalog and facilitating a purchase through a messaging application.As another example, an interface bot can form an interface to a remote device or vehicle, so that a user of the messaging application can communicate with the remote device or vehicle, receive information from it and / or issue commands to it.

[0033] A bot's capabilities can include understanding and responding to a user's intent. The user's intent can be understood by analyzing and comprehending their conversation and its context. A bot can also understand the changing context of a conversation or the user's evolving opinions and / or intents based on how the conversation develops over time. For example, if user A suggests meeting for coffee, but user B says they don't like coffee, a bot can assign user B a negative opinion about coffee and not suggest a coffee shop for the meeting.

[0034] Implementing bots that communicate with users of messaging applications (103a / 103b) can offer many advantages. Traditionally, a user might use one software application or website to perform activities such as paying bills, ordering food, booking tickets, etc. A problem with such implementations is that a user is forced to install or use multiple software applications and websites to perform these activities. For example, a user might need to install different software applications to pay an electricity bill (e.g., from the electricity provider), to buy movie tickets (e.g., a ticket reservation application from a ticket service provider), or to make reservations at a restaurant (e.g., from the respective restaurants), or might need to visit a separate website for each activity.Another problem with such implementations is that the user may have to learn a complex user interface, for example, a user interface implemented using multiple user interface elements such as windows, buttons, checkboxes, dialog boxes, etc.

[0035] Consequently, one advantage of one or more of the described implementations is that a single application allows a user to perform activities involving interaction between multiple parties without necessarily needing to access a separate web presence or install and run software applications. This has the technical effect of reducing the load on memory, storage space, and processing resources on the user's device. Another advantage of the described implementations is that the communication interface makes it easier and faster for the user to complete such activities, for example, without having to learn a complex user interface. This also has the technical effect of reducing the load on computing resources.Another advantage of the described implementations is that implementing bots allows various participating entities to provide user interaction at a lower cost. This has the technical effect of reducing the need for computing resources used to enable user interactions, such as a toll-free number implemented using one or more communication servers, a website hosted by one or more web servers, customer service via email hosted on a mail server, etc. A further technical effect of the described features is a reduction in the problem of the strain on system processing and transmission resources required to fulfill user tasks over communication networks.

[0036] Although certain examples herein describe an interaction between a bot and one or more users, various interaction types are possible, such as one-to-one interaction between a bot and a user (125), one-to-many interaction between a bot and two or more users (e.g., in a group messaging conversation), many-to-one interactions between multiple bots and a user, and many-to-many interactions between multiple bots and multiple users. Furthermore, in some implementations, a bot may also be designed to interact with another bot (e.g., 107a / 107b, 109a / 109b, 111, 113, etc.) via a messaging application (103), through direct communication between bots, or a combination thereof. For example, a restaurant reservation bot may interact with a bot for a specific restaurant to reserve a table.

[0037] In certain embodiments, a bot can use a conversational interface to interact with a user in a conversation using natural language. In certain embodiments, a bot can use a template-based format to generate sentences with which it interacts with a user, for example, in response to a request for a restaurant address using a template such as "the location of Restaurant R is L". In certain cases, a user can be allowed to select a bot interaction format, such as whether the bot should use natural language to interact with the user or whether the bot should use template-based interactions, etc.

[0038] In cases where a bot interacts via conversation using natural language, the content and / or style of the bot's interaction can dynamically vary based on one or more of the following elements: the content of the conversation, determined using natural language processing; the identities of the users in the conversations and one or more conversation contexts (e.g., history of user interactions, connections between users in the conversation based on a social graph); external conditions (e.g., weather, traffic); the user's schedule; related context associated with the user; and the like. In these cases, the content and style of the bot's interactions are varied solely based on factors to which the users participating in the conversation have consented.

[0039] For example, if it is determined that the users in a conversation are using formal language (e.g., no or minimal colloquial language or emojis), a bot in that conversation can also interact using formal language, and vice versa. Another example: if it is determined that a user in a conversation (based on current and / or past conversations) uses emojis particularly frequently, a bot can also interact with that user using one or more emojis. Finally, if it is determined that two users in a conversation are distant from each other on a social graph (e.g., with two or more intermediate nodes between them, meaning, for example, that they are friends of friends of friends), a bot in that conversation can use more formal language.In cases where users participating in a conversation have not given their consent for the bot to use factors such as the social graph, schedule, location, or other context associated with the user, the content and style of the bot's interaction may be a default style, such as a neutral style, which does not require the use of such factors.

[0040] Furthermore, in some implementations, one or more bots can include features to engage in a two-way conversation with a user. For example, if the user requests information about movies, such as by typing "@moviebot Can you recommend a movie?", the bot "moviebot" might respond with: "Are you up for a comedy?". The user could then reply, for example, "Nope," to which the bot could respond with, "Okay. The sci-fi movie called Space and Stars has great reviews. Should I reserve a ticket?" The user could then specify: "Yes, I can go after 6 PM. Please check if Steve can join me."If the user agrees to allow the bot to access information about their contacts and the friend Steve agrees to receive messages from the bot, the bot can send a message to the user's friend, Steve, and perform further actions to reserve movie tickets for a suitable time.

[0041] In certain embodiments, a user participating in a conversation may be enabled to invoke a specific bot or a bot performing a specific task, for example, by typing a bot name or bot identifier (e.g., taxi, @taxibot, @movies, etc.), using a voice command (e.g., "call bankbot," etc.), by activating a user interface element (e.g., a button or other element labeled with the bot name or bot identifier), etc. Once a bot has been invoked, a user 125 can send a message to the bot via the messaging application 103a / 103b, in a similar manner to sending messages to other users 125.For example, to call a taxi, a user can type: "@taxibot Get me a taxi"; to make hotel bookings, a user can type: "@hotelbot Book a table for 4 at a Chinese restaurant near me".

[0042] In certain implementations, a bot can automatically suggest information or actions within a messaging conversation without being specifically invoked. This means that users don't need to explicitly invoke the bot. In these implementations, the bot can depend on analyzing and understanding the conversation on an ongoing basis or at specific times. Analyzing the conversation can be used to understand specific user needs and identify when a bot should suggest assistance. For example, a bot can search for some information and suggest the answer when it is determined that a user needs information (e.g., based on the user asking another user a question, and based on multiple users indicating that they don't have some information).As another example, if it is determined that several users have shown interest in Chinese food, a bot can automatically suggest a number of Chinese restaurants near the user, optionally including information such as location, ratings and links to the restaurant's website.

[0043] In certain embodiments, instead of automatically invoking a bot or waiting for a user to explicitly invoke one, an automatic suggestion can be made to one or more users in a messaging conversation to invoke one or more bots. In these embodiments, the conversation can be analyzed on a continuous basis or at specific times, and the analysis of the conversation can be used to understand specific user needs and identify when a bot should be suggested in the conversation.

[0044] In implementations where a bot automatically suggests information or actions within a messaging conversation without being specifically invoked, such functions are deactivated, for example, if one or more users participating in the messaging conversation do not consent to a bot analyzing the user's conversation. Furthermore, such functions can also be temporarily disabled based on user input. For instance, if users indicate that a conversation is private or sensitive, the analysis of the conversation context is paused until the users provide input to reactivate the bot. Additionally, notification that analysis functions are disabled can be provided to participants in the conversation, for example, via a user interface element.

[0045] In different implementations, a bot can be implemented in a number of configurations. For example, a bot is 105, as in Fig. Figure 1 shows the implementation on a client device 115a. In this example, the bot can be a module in a software application that is local to the client device 115a. For example, if a user has a taxi call application installed on the client device 115a, the bot's functionality can be integrated as a module within the taxi call application. In this example, a user can invoke a taxi bot, for instance, by sending a message "@taxibot Get me a taxi". The messaging application 103b can automatically trigger the bot module in the taxi call application to start. In this way, a bot can be implemented locally on a client device so that the user can enter into a conversation with the bot via the messaging application 103b.

[0046] In another in Fig. In the example shown, a bot 107a is shown, implemented on a client device 115a, and a bot 107b is shown, implemented on a message delivery server 101. In this example, the bot can be implemented as a client-server computer program, with parts of the bot's functionality provided by bot 107a (server module) and bot 107b (client module), respectively. For example, if the bot is a scheduling bot with the identifier @calendar, a user 115a can schedule a reminder by typing: "@calendar Remind me to pick up the laundry this evening," which can then be handled by bot 107b (client module).To continue with the example, if user 115a tells the bot "Check if Jim has time to meet me at 4 o'clock", bot 107a (server module) can contact user Jim (or Jim's scheduling bot) to exchange messages and provide a response to user 115a.

[0047] In another example, Bot 109a (server module) is implemented on Server 135, and Bot 109b (client module) is implemented on Client Devices 115. In this example, the bot functionality is provided by modules implemented on Client Devices 115 and Server 135, which is distinct from the message delivery server 101. In some implementations, a bot can be implemented as a distributed application, for example, with modules distributed across multiple client devices and servers (e.g., Client Devices 115, Server 135, Message Delivery Server 101, etc.). In some implementations, a bot can be implemented as a server application, for example, Bot 111, which is implemented on Message Delivery Server 101, and Bot 112, which is implemented on Server 125.

[0048] Different implementations, such as client-only, server-only, client-server, distributed, etc., can offer different advantages. For example, client-only implementations allow bot functions to be deployed locally, such as without network access, which can be beneficial in certain contexts, such as when a user is outside network coverage or in an area with low or limited network bandwidth. Implementations that include one or more servers, such as server-only, client-server, or distributed configurations, can enable certain functions, such as financial transactions, ticket reservations, etc., that cannot be deployed locally on a client device.

[0049] Although Fig. As shown in section 1, bots are distinct from the messaging application 103. In some implementations, one or more bots may be implemented as part of the messaging application 103. In implementations where bots are implemented as part of the messaging application 103, user approval is obtained before the bots are implemented. For example, if bots are implemented as part of the messaging application 103a / 103b, the messaging application 103a / 103b may provide bots that perform specific activities, such as a translation bot that translates incoming and outgoing messages, a scheduling bot that schedules events on the user's calendar, etc. In this example, the translation bot is only activated with specific user approval.If the user does not consent, bots will not be implemented (disabled, removed, etc.) within the messaging application 103a / 103b. If the user consents, a bot or the messaging application 103a / 103b may make limited use of messages exchanged between users via the messaging application 103a / 103b to provide certain functions such as translation, scheduling, etc.

[0050] In some implementations, third parties, distinct from the messaging application provider (103a / 103b) and the users (125), can provide bots that can communicate with the users (125) via the messaging application (103a / 103b) for specific purposes. For example, a taxi service provider can provide a taxi bot, a map service can provide a bot that can book event tickets, a bank bot can provide the ability to conduct financial transactions, etc.

[0051] When implementing bots via the messaging application 103, bots are only allowed to communicate with users after specific user authorization. For example, if a user invokes a bot, the bot can respond based on the user's action invoking the bot. In another example, a user can specify certain bots or types of bots that are allowed to contact them. For instance, a user might authorize travel bots to communicate with them but not authorize shopping bots. In this example, the messaging application 103a / 103b can allow travel bots to exchange messages with the user but filter or reject messages from shopping bots.

[0052] To provide certain functions (e.g., calling a taxi, booking a flight, contacting a friend, etc.), bots may request permission from the user to access user data such as location, payment information, contact lists, etc. In such cases, the user is presented with the option to allow or deny the bot access. If the user denies access, the bot may respond with a message such as, "Sorry, I can't book a taxi for you." Furthermore, the user can grant access to information on a limited basis; for example, the user can allow the taxi bot to access the bot's current location only on a specific request, but not in other cases. In other implementations, the user can control the type, amount, and granularity of information a bot can access and is given the ability (e.g., to...) to...(via a user interface) to modify such permissions at any time. In some implementations, user data may be processed, for example, to remove personally identifiable information, restrict information to specific data elements, etc., before a bot can access such data. Furthermore, users can control the use of user data by the 103a / 103b messaging application and one or more bots. For example, a user may specify that a bot offering the ability to conduct financial transactions requires user authorization before completing a transaction. For example, the bot might send a message such as, "Tickets for the movies Space and Stars are $12 each. Should I proceed and book?" or "The best price for this shirt is $125 including shipping. Should I charge your credit card ending in 1234?" etc.

[0053] In some implementations, the messaging application 103a / 103b can also provide one or more suggestions, such as suggested replies, to users 125 via a user interface, for example, as a button or other user interface element. Suggested replies can enable faster interaction, for example, by reducing or eliminating the need for the user to type a reply. Suggested replies can allow users to respond to a message quickly and easily, for example, when a client device lacks text input capabilities (e.g., a smartwatch that does not include a keyboard or microphone). Suggested replies can also allow the user to respond to messages quickly, for example, when the user selects a suggested reply (e.g.,(by selecting a corresponding user interface element on the touchscreen). Suggested responses can be generated using predictive models, such as machine learning models, which are trained to produce responses.

[0054] For example, the messaging application 103a / 103b can implement machine learning, such as a deep learning model, which can improve user interaction with the messaging application 103. Machine learning models can be trained using synthetic data, such as data automatically generated by a computer, without using user information. In some implementations, machine learning models can be trained based on sample data, for which permission to use user data for training has been explicitly obtained from the users. For example, sample data might include received messages and replies sent to those messages. Based on the sample data, the machine learning model can predict replies to the received messages, which can then be provided as suggested responses.User interactions are improved, for example, by reducing the burden on the user of assembling a response to a received message and by providing a selection of responses tailored to the received message and the user context. For instance, with user consent, suggested responses can be customized based on the user's previous activity, such as earlier messages in a conversation, messages in different conversations, etc. Such activity can be used to determine an appropriate suggested response for the user, such as a playful response, a formal response, etc., based on the user's interaction style.In another example, the messaging application 103a / 103b can generate suggested responses in the user's preferred language(s) and / or locales if the user specifies one or more preferred languages ​​and / or locales. In various examples, the suggested responses could be text responses, images, multimedia, etc.

[0055] In some implementations, machine learning may be implemented on the message server 101, on the client devices 115, or on both. In some implementations, a simple machine learning model may be implemented on the client device 115 (for example, to allow the model to operate within the memory, processing, and memory limitations of the client devices), and a complex machine learning model may be implemented on the message server 101. If a user does not consent to the use of machine learning techniques, such techniques are not implemented. In some implementations, a user may selectively consent to have machine learning implemented on only one client device 115.In these implementations, machine learning can be implemented on a client device 155, so that updates to a machine learning model or user information used by the machine learning model are stored or used locally and are not shared with other devices such as the message delivery server 101, the server 135, or other client devices 115.

[0056] For users who consent to receive suggestions, such as those based on machine learning techniques, suggestions can be provided through the messaging application 103. For example, suggestions can include content (e.g., movies, books, etc.), scheduling (e.g., available time in a user's calendar), events / venues (e.g., restaurants, concerts, etc.), and so on. In some implementations, if users participating in a conversation consent to the use of conversation data, suggestions can include suggested replies to incoming messages based on the conversation context. For example, if...If the first of two users, who have opted in to conversation-based suggestions, sends a message, "Want to grab some food? How about Italian?", a suggested response to the second user might be: "@assistant Lunch, Italian, table for 2". In this example, the suggested response includes a bot (identified by the @ symbol and the bot ID "assistant"). If the second user selects this response, the assistant bot is added to the conversation, and the message is sent to the bot. A response from the bot can then appear in the conversation, and either user can continue sending messages to the bot. In this example, the assistant bot is not given access to the content of the conversation, and the suggested responses are generated by the messaging application 103.

[0057] In certain implementations, the content of a suggested response can be tailored based on whether a bot is already present in a conversation or can be included. For example, if it is determined that a travel bot could be included in the messaging application, a suggested response to a question about the cost of a plane ticket to France will be: "Let's ask the travel bot!"

[0058] In various implementations, suggestions such as suggested answers can include one or more of the following elements: text (e.g., "Excellent!"), emojis (e.g., a smiley face, a sleepy face, etc.), images (e.g., photos from a user's photo gallery), text generated based on templates with user data inserted into a field of the template (e.g., "her number is"). <telefonnummer>"(where the "phone number" field is populated based on user data if the user grants access to that data), links (e.g., uniform resource pointers (URLs)), etc. In some implementations, suggested responses can be formatted using colors, fonts, layout, etc. For example, a suggested response containing a movie recommendation might include descriptive text about the movie, an image from the movie, and a link to purchase tickets. In various implementations, suggested responses can be presented as different types of user interface elements, such as text boxes, information cards, etc.

[0059] In various implementations, users are given control over whether they want to receive suggestions, which types of suggestions they receive, the frequency of suggestions, etc. For example, users can decline to receive suggestions at all, or select specific types of suggestions or to receive suggestions only during certain times of day. In other examples, users can choose to receive personalized suggestions. In this example, machine learning can be used to provide suggestions based on users' preferences regarding their data and the use of machine learning techniques.

[0060] Fig. Figure 2 is a representation of an exemplary arrangement of a user device and a bot or helper agent that are in communication, according to some implementations. In the Fig. In the exemplary arrangement shown in Figure 2, a user device 202 (e.g., 115a - 115n) is used. Fig. 1) in a one-to-one conversation with a Bot 204 (e.g., 105, 107a, 107b, 109a, 109b, 111, and / or 113). A user assigned to user device 202 (e.g., user 125a–125n) can call Bot 204 and enter a communication session with it. Alternatively, Bot 204 can automatically initiate communication with the user assigned to user device 202. Note that the "user" as described in the examples refers to a human user. It should also be noted that a user can include a computer or other non-human system, and that communication between a user and a bot is communication between a human user and a bot, between a non-human such as a computer (e.g., software applications running on a computer, etc.).) and a bot and / or between one or more bots and one or more other bots.

[0061] Fig. Figure 3 is a representation of an exemplary arrangement of two or more user devices and a single bot or helper agent communicating with each other, according to some implementations. In this, Fig. The exemplary arrangement shown in section 3 can be used for user devices 302-306 (e.g., 115a-115n). Fig. 1) are in a group messaging conversation that includes a Bot 308 (e.g., 105, 107a, 107b, 109a, 109b, 111, and / or 113). One or more of the users assigned to user devices 302-306 (e.g., one or more of users 125a-125n) can interact with Bot 308 and enter a communication session with it. Some or all of the communication from Bot 308 can be placed in the group messaging conversation. Additionally, some information to and from Bot 308 can be available only to the user assigned to that information, e.g., displayed to that user. Bot 308 can automatically initiate communication with one or more of the users assigned to user devices 302-306.

[0062] Fig. Figure 4 is a representation of an exemplary arrangement of two or more user devices and two or more bots or helper agents that are in communication, according to some implementations. In the Fig. In the exemplary arrangement shown in section 4, the user devices 402 and optionally 404 (e.g., 115a-115n) can be used. Fig. 1) be in a group messaging conversation that includes multiple bots 406-408 (e.g., 105, 107a, 107b, 109a, 109b, 111 and / or 113 of Fig. 1) includes. One or more of the users assigned to user devices 402-404 (e.g., one or more of users 125a-125n) can interact with one or both bots 406-408 and enter a communication session with the bots 406-408. Some or all of the communication from the bots can be placed in the group messaging conversation. In addition, some information to and from the bots 406-408 can be available only to the user assigned to that information, e.g., displayed to that user. The bots 406-408 can automatically initiate communication with one or more of the users assigned to user devices 402-404.

[0063] Fig. Figure 5 is a flowchart of an example procedure for managing bot permissions according to some implementations. The process begins at 502, where a request from a user is received by a bot. The request may include a task for the bot to perform. In some implementations, the request may be a command to the bot. For example, a request containing a command for a reservation bot might be "@reservationbot find a hotel nearby," a request containing a command for an assistant bot might be "@assistant send my flight details to Jim," and so on. In this example, the bot is identified by a bot identifier, such as the "@" symbol, followed by a bot name (e.g., reservationbot, assistant, etc.). To perform the task and / or provide a response to the request, the bot may need access to user data.The user and the bot can communicate in a one-to-one arrangement (e.g., . Fig. 2) For example, a user might request a ride from the car service, and the car service bot might need the user's location to determine which cars are potentially available to pick them up. In another example, a user might want to book a hotel at a nearby hotel, and the hotel booking bot might need the user's location. In yet another example, a bot might provide suggested answers to a user that involve sharing user information (e.g., photos, calendar entries, flight details, etc.), and the suggestion bot might need to obtain the user's permission to access data that could be helpful for a suggested answer and to deliver such data as the actual answer. The request can be a request from a user or it can be an automatically generated request (e.g.,(from a bot for suggested answers, etc.). Processing continues with a 504 error.

[0064] A 504 error triggers the display of an approval user interface element for the user associated with the request. An example of an approval user interface element is shown in Fig. Figure 6 is shown and described below. The approval user interface element can also be presented as an audio prompt or using other user interfaces and / or output methods. Processing continues with a 506 response. On the 506 response, an indication is received as to whether the user has granted the bot permission to access or receive user data. This indication can be received as a user interface element selection (e.g., touch, tap, select a screen user interface button, type, audio input, gesture input, etc.) that specifies whether the user grants permission or not. For example, the user might select one of the "NOT NOW" or "ALLOW" options presented in the approval user interface element of Figure 6. Fig. 6 will be shown. Processing continues with 508.

[0065] In step 508, the bot's approval system determines whether approval has been granted. This determination is made by evaluating the information received in step 506. If approval is granted, processing continues with step 510. If approval is denied, processing continues with step 514.

[0066] At port 510, an optional statement indicating that user data will be shared with the bot can be provided. For example, the following can be added: Fig. The message shown in step 7, "Sharing location data," indicates that user data has been shared with the bot based on the permission granted by the user. Processing continues with response 512. On response 512, the bot can perform further processing to complete the task associated with the granted permissions. For example, a car service bot can proceed to determine which cars are at a location in order to provide the car service to the user. In another example, an accommodation bot can use the shared user location to identify nearby accommodations that are available and for rent.

[0067] For error code 514, the bot can display a message to the user indicating that the task has been declined. For example, the bot could provide a message such as, "Sorry, I was unable to retrieve your location data - I cannot book a car," or something similar. This message could be displayed on a graphical user interface and / or provided as an audio message or other spoken information.

[0068] Fig. Figure 6 is a representation of an example User Interface 600 with bot messaging according to some implementations. Specifically, the User Interface 600 contains a message (602) from a user to a bot. The message 602 contains a request ("Find me a hotel near me") that requires the use of the user's personal information, such as location information (e.g., to find a nearby hotel). In response to the user's request, the bot can send a message (604) to the user indicating that the bot needs access to the user's location data to fulfill the request.

[0069] The bot can cause an interface element for granting / denying approval (606) to be displayed. Approval element 606 can include a description (608) of the type of approval required and input elements (610 and 612, respectively) to grant or deny the bot access to (or receipt of) user data.

[0070] Fig. Figure 7 is a representation of an exemplary user interface 700, which is based on Fig. 6 follows, and in which the user has granted the bot permission to use the user's location data. User interface 700 contains the above in conjunction with Fig. The user interface 700 contains elements 602-604 as described in section 6. It also includes an indication (702) that user data has been shared with the bot in response to the user granting approval, for example, by selecting input element 612. Furthermore, the user interface 700 contains a message (704) from the bot indicating that it is processing the request, and one or more optional suggestions from the bot (706 and 708). If a user selects one of the suggestion elements (706, 708), the bot can cause details of its suggestion to be displayed, in this example, details of suggested nearby hotels that the bot has identified.

[0071] Fig. Figure 8 is a flowchart of an example procedure for managing bot permissions within a group messaging context (e.g., within a "group chat") according to some implementations. Processing begins at 802, where a request from a user is received by a bot. To perform a requested task and / or provide a response to the request, the bot may require access to user data. The user and the bot may be in a group communication arrangement (e.g., as in Fig. 3 or Fig. (shown in Figure 4) involves multiple users and / or bots. For example, in a multi-user communication session, one user might request a car service pickup, perhaps for the group of users. The car service bot might need to know the location of each user included in the pickup to determine which cars are available. In another example, a user might want to make a hotel reservation at a nearby hotel for the group of users involved in the conversation. In this example, the hotel reservation bot might need information about the group of users, such as names, payment information, etc. The request can be a user request or an automatically generated request (e.g., from a bot for suggested responses). Processing continues with error code 804.

[0072] With response 804, the bot optionally displays a progress indicator, which can be visible in the group conversation to the group or individual user making the request. For example, an AutoService bot might display a message like "I'm working on it" in the group conversation. Processing continues with response 806.

[0073] On caller ID 806, a user approval interface is displayed for the user associated with the request. An example of an approval request user interface element is shown in Fig. 6 shown and described above. The approval request user interface element can also be presented as an audio prompt or using other user interfaces and / or output methods. Processing continues with 808.

[0074] With 808, information is received indicating whether one or more users grant the bot permission to access or receive their data. This information can be received in the form of a user interface element selection (e.g., touching, tapping, selecting an on-screen user interface button, typing, audio input, gesture input, etc.) that indicates whether the user grants permission or not. For example, the user could select "NOT NOW" or "ALLOW" on the permission user interface element of Fig. Select the 6 shown. Processing continues with 810.

[0075] At step 810, the bot approval system determines whether approval has been granted. This determination is made by evaluating the information received in step 808. If approval is granted, processing continues with step 812. If approval is denied, processing continues with step 816.

[0076] At 812, the bot can start a one-to-one chat with the user. The one-to-one chat and the messages exchanged during it are not visible to the group of users in the group messaging conversation. Processing continues with 814.

[0077] With port 814, the bot can perform further processing to complete the task associated with the permissions granted within the one-to-one user messaging conversation. For example, a car service bot could proceed to determine which cars are at a location in order to provide car service to the user. In another example, a housing bot could use the shared user location to identify nearby housing options that are available and for rent.

[0078] With 816, the bot can cause a "polite" message indicating that it is declining the task to be displayed to the user within the group messaging conversation. For example, the bot could provide a message such as "I was unable to determine your location - I cannot book a car" or something similar. The message could be displayed on a graphical user interface or provided as an audio cue or other spoken notification. The "polite" aspect of the decline message can include a message that does not explicitly state that the user has not granted the bot permission to use their data. In different implementations, the message may contain different text content, depending on the request or other factors.For example, a response to a user denying location access in the context of requesting a car might include text such as "Sorry, location cannot be determined," "I can't find any cars near you," "Car service is unavailable," etc. In some implementations, different responses can be sent to different participants in a group conversation. In some implementations, responses can use various formats, such as text boxes, graphics, or animations. In some implementations, responses can use different styles, such as bold, italics, fonts, and colors.

[0079] Fig. Figure 9 is a block diagram of an exemplary computing device 900, which can be used to implement one or more of the features described herein. In one example, the computing device 900 can be used to implement a client (or user) device such as any of the client devices 115a-115n, which are described in Fig. The devices shown in Figure 1 are to be implemented. The computing device 900 can be any suitable computer system, any suitable server, or any other suitable electronic or hardware device as described above.

[0080] One or more of the methods described herein can run in a standalone program that can be executed on any type of computing device, in a program that can be executed in a web browser, or in a mobile application ("app") that can be executed on a mobile computing device (e.g., mobile phone, smartphone, tablet, wearable device (wristwatch, bracelet, jewelry, headphones, virtual reality glasses, augmented reality glasses, etc.), laptop, etc.). In one example, a client / server architecture can be used. For instance, a mobile computing device (as the user device) sends user input data to the server device and receives the final output data from the server for output (e.g., for display). In another example, all computations within the mobile application (and / or other apps) can be performed on the mobile computing device.In another example, the calculations can be divided between the mobile computing device and one or more server devices.

[0081] In some implementations, the computing device 900 comprises a processor 902, a memory 904, and an input / output (I / O) interface 906. The processor 902 may be one or more processors and / or processing circuits for executing program code and controlling basic operations of the computing device 900. A "processor" comprises any suitable hardware and / or software system, mechanism, or component that processes data, signals, or other information. A processor may include a system with a central general-purpose processing unit (CPU), multiple processing units, dedicated circuits for achieving functions, or other systems. The processing need not be restricted to a particular geographic location or subject to time constraints. For example, a processor may perform its functions in "real time," "offline," in batch mode, etc.Parts of the processing can be performed at different times and in different places by different (or the same) processing systems. A computer can be any processor communicating with a memory.

[0082] The memory 904 is typically provided in the computing device 900 for access by the processor 902 and can be any suitable processor-readable memory medium, such as random-access memory (RAM), read-only memory (ROM), electrically erasable read-only memory (EEPROM), flash memory, etc., suitable for storing instructions for execution by the processor, and can be located separately from and / or integrated within the processor 902. The memory 904 can store software that is run on the computing device 900 by the processor 902, for example, an operating system 908 and one or more applications 910, such as a messaging application, a bot application, etc. In some implementations, the applications 910 may contain instructions that enable the processor 902 to perform the functions described herein, e.g., one or more procedures of Fig. 5 and / or 8. For example, the applications 910 may include a messaging service and / or bot applications, including a program for managing bot permissions as described herein. One or more applications may, for example, provide a displayed user interface that is responsive to user input to display selectable options or controls and to provide data based on the selected options. One or more methods disclosed herein may be operated in multiple environments and platforms, such as a standalone computer program that can run on any type of computing device, a web application with web pages, a mobile application (“app”) that runs on a mobile computing device, etc.

[0083] Any software in Memory 904 may alternatively be stored in any other suitable storage location or computer-readable medium. Additionally, Memory 904 (and / or other attached storage device(s)) may store messages, approval settings, user preferences and related data structures, parameters, audio data, user preferences, and / or other commands and data used in the features described herein in a Database 912. Memory 904 and any other storage type (magnetic disk, optical disk, magnetic tape, or other tangible media) may be understood as "memory" or "storage devices."

[0084] The I / O interface 906 can provide functions to enable the computing device 900 to interface with other systems and devices. Systems connected via interfaces can be included as part of the computing device 900 or can be separate and communicate with the computing device 900. For example, network communication devices, wireless communication devices, storage devices, and input / output devices can communicate via the I / O interface 906. In some implementations, the I / O interface 906 can connect to interface devices such as input devices (keyboard, pointing device, touchscreen, microphone, camera, scanner, sensors, etc.) and / or output devices (display device, speaker devices, printer, motor, etc.).

[0085] Some examples of interface-connected devices that can connect to the I / O interface 906 include a display device 914, which can be used to display content such as pictures, video, and / or a user interface of an output application as described herein. The display device 914 can be connected to the computing device 900 via local connections (e.g., a display bus) and / or network connections and can be any suitable display device. The display device 914 can include any suitable display device, such as a liquid crystal display (LCD), a light-emitting diode (LED), a plasma display, a cathode ray tube (CRT), a television, a monitor, a touchscreen, a 3D display, or any other visual display device.For example, the display device 914 can be a flat screen provided on a mobile device, multiple display screens provided in a spectacle device, or a monitor screen for a computer device.

[0086] The 906 I / O interface can provide interfaces to other input and output devices. Some examples include one or more cameras capable of capturing still images. Orientation sensors, such as gyroscopes and / or accelerometers, can provide sensor data indicating the device orientation (which in some implementations may coincide with the viewing direction) and / or the camera orientation. Some implementations may provide a microphone for recording sound (e.g., voice commands), audio speaker devices for outputting sound, or other input and output devices.

[0087] For the sake of simplicity, it shows Fig. 9 each represents a block for the processor 902, the memory 904, the I / O interface 906, the operating system 908, and the bot approval application 910. These blocks may represent one or more processors or processing circuits, operating systems, memory, I / O interfaces, applications, and / or software modules. In other implementations, the computing device 900 may not have all the components shown and / or may have other elements comprising other types of elements instead of, or in addition to, those shown herein. Although some implementations described herein indicate that the user devices (e.g., 115a-115n) perform blocks and operations, any suitable component or combination of components of user devices (e.g.,115a-115n) or similar devices or any suitable processor or processor associated with such a system shall perform the blocks and operations described herein.

[0088] The methods described herein can be implemented by computer program instructions or code that can be executed on a computer. For example, the code can be implemented by one or more digital processors (e.g., microprocessors or other processing circuits) and can be stored on a computer program product, which may include a non-volatile, computer-readable medium (e.g., storage medium) such as a magnetic, optical, electromagnetic, or semiconductor storage medium, a semiconductor or solid-state memory, magnetic tape, a removable computer disk, random-access memory (RAM), read-only memory (ROM), flash memory, a magnetic hard disk, an optical storage disk, a solid-state storage drive, etc.The program instructions can also be contained in electronic signals or provided as such, for example, in the form of Software as a Service (SaaS) provided by a server (e.g., a distributed system and / or a cloud computing system). Alternatively, one or more methods can be implemented in hardware (logic gates, etc.) or in a combination of hardware and software. Examples of hardware include programmable processors (e.g., field-programmed gate arrays (FPGAs), complex programmable logic devices (CPLDs), general-purpose processors, graphics processing units (GPUs), application-specific integrated circuits (ASICs), and the like. One or more methods can be executed as part or a component of an application running on the system or as an application or software running in conjunction with other applications and operating systems.

[0089] Although the description refers to specific implementations, these are merely examples and not exhaustive. The concepts shown in the examples can be applied to other examples and implementations.

[0090] In situations where certain implementations discussed herein may collect or use personal information from users (e.g., a user's telephone number or partial telephone numbers, user data, information about a user's social network, a user's location and time, a user's biometric information, a user's activities, and demographic information), users will be given one or more opportunities to control whether the personal information is collected, stored, used, and how the information is collected, stored, and used. That is to say, the systems and procedures discussed herein collect, store, and / or use personal user information specifically after obtaining explicit authorization from the relevant user.Additionally, certain data can be processed in one or more ways before being stored or used, so that personally identifiable information is removed. For example, a user's identity can be treated in such a way that no personally identifiable information can be determined. Another example is that a user's geographic location can be generalized to a wider area, so that the user's exact location cannot be determined.

[0091] It should be noted that the functional blocks, operations, features, procedures, devices, and systems described in this disclosure can be integrated or divided into various combinations of systems, devices, and functional blocks, as is known to those skilled in the art. Any suitable programming languages ​​and programming techniques can be used to implement the routines of specific implementations. Various programming techniques, such as procedural or object-oriented techniques, can be employed. The routines can be executed on a single processing device or on multiple processors. Although the steps, operations, or calculations may be presented in a particular order, the order can be changed in various specific implementations.In some implementations, several steps or operations shown sequentially in this detailed description can be performed simultaneously. Further implementations are disclosed below. 1. Computer-implemented method that includes: Providing a messaging application on a first computing device assigned to a first user to enable communication between the first user and at least one other user, Detecting a user request in the messaging application; Programmatically determining that an action in response to a user request requires access to data associated with the first user; To cause an approval interface to be rendered in the messaging application on the first computing device, wherein the approval interface enables the first user to approve or deny access to the data associated with the first user; and After receiving user input from the first user indicating authorization to access the data associated with the first user, access the data associated with the first user and perform the action in response to the user request. 2. Computer-implemented method according to Implementation 1, which further comprises: After receiving user input from the first user denying access to the data associated with the first user, provide an indication in the messaging application that the action will not be performed. 3. Computer-implemented method according to implementation 1 or 2, wherein the first user is a human user and the at least one other user is an auxiliary agent. 4. Computer-implemented method according to implementation 1, 2 or 3, wherein the first user is a human user and the at least one other user comprises a second human user who is different from the first user and is assigned to a second computing device, and wherein the approval interface in the message transmission application is rendered on the first computing device assigned to the first user and the approval interface is not displayed on the second computing device assigned to the second human user. 5. Computer-implemented method according to one of implementations 1 to 4, which further comprises: after receiving a user input from the first user that denies access to the data assigned to the first user, Providing an initial specification for rendering on the first computing device assigned to the first user; and Providing a second specification for rendering on a second computing device assigned to at least one other user, wherein the first and second specifications indicate a failure to serve the user's request, wherein the first and second specifications are different. 6. Computer-implemented method according to implementation 5, wherein the first and second specifications have different text content, different style and / or different format. 7. Computer-implemented method according to any of implementations 1 to 6, wherein the first user is a human user and the at least one other user comprises a second human user who is different from the first user and an auxiliary agent, and wherein the user request is received by the first computing device associated with the first user, the method further comprising: initiating a separate conversation in the messaging application in response to the user request, wherein the separate conversation includes the first user and the auxiliary agent and does not include the second human user. 8. Computer-implemented method according to one of implementations 1 to 7, wherein the detection of the user request comprises analyzing one or more messages received in the message transmission application by one or more of the first user and at least one other user. 9. Computer-implemented method according to implementation 8, wherein the one or more messages comprise a text message, a multimedia message and / or a command to an auxiliary agent. 10. Computer-implemented method according to one of implementations 1 to 9, wherein performing the action in response to the user request includes delivering one or more proposals to the first message transmission application. 11. Computer-implemented procedure according to Implementation 10, which further comprises: causing one or more proposals to be rendered in the message transmission application. 12. Computer-implemented method according to Implementation 11, wherein the one or more proposals are rendered as proposal elements which, when selected by the first user, cause details of the proposal to be displayed.< / telefonnummer>

Claims

[1] Computer-implemented method comprising the following: Providing a message transmission application (103a, 103b) on a first computing device assigned to a first user to enable communication between the first user and at least one other user, Detecting a user request in the messaging application (103a, 103b); Programmatically determining that an action in response to a user request requires access to data assigned to the first user; Causing an approval interface to be rendered in the message transmission application (103a, 103b) on the first computing device, wherein the approval interface enables the first user to approve or deny access to the data associated with the first user; and After receiving user input from the first user indicating authorization to access the data associated with the first user, access the data associated with the first user and perform the action in response to the user request. [2] Computer-implemented method according to claim 1, further comprising: After receiving user input from the first user denying access to the data associated with the first user, provide an indication in the message transmission application (103a, 103b) that the action will not be performed. [3] Computer-implemented method according to claim 1, wherein the first user is a human user and the at least one other user is an auxiliary agent. [4] Computer-implemented method according to claim 1, wherein the first user is a human user and the at least one other user comprises a second human user who is different from the first user and is assigned to a second computing device, and wherein causing the approval interface in the messaging application (103a, 103b) to be rendered on the first computing device comprises displaying the approval interface locally on the first computing device. [5] Computer-implemented method according to claim 4, further comprising: After receiving user input from the first user denying access to the data associated with the first user, provide an initial indication for rendering on the first computing device associated with the first user, wherein the initial indication includes an indication that the first user has denied access to the data associated with the first user and that the action cannot be performed. [6] Computer-implemented method according to claim 5, further comprising: Providing a second specification for rendering on a second computing device assigned to at least one other user, wherein the first and second specifications indicate a failure to serve the user request, wherein the first and second specifications are different. [7] Computer-implemented method according to claim 6, wherein the first and second specifications have different text content, different style and / or different format. [8] Computer-implemented method according to claim 1, wherein the first user is a human user and the at least one other user comprises a second human user who is different from the first user and an auxiliary agent, and wherein the user request is received on the first computing device assigned to the first user, the method further comprising: initiating a separate conversation in the messaging application (103a, 103b) in response to the user request, wherein the separate conversation includes the first user and the auxiliary agent and excludes the second human user. [9] Computer-implemented method according to claim 1, wherein detecting the user request comprises analyzing one or more messages received in the message transmission application (103a, 103b) by one or more of the first user and at least one other user. [10] Computer-implemented method according to claim 9, wherein the one or more messages comprise a text message, a multimedia message and / or a command to an auxiliary agent. [11] Computer-implemented method according to claim 1, wherein performing the action in response to the user request comprises providing one or more user-selectable proposals (706, 708) in the first messaging application, wherein, upon a user selection of a particular proposal (706, 708) from the one or more user-selectable proposals (706, 708), a corresponding message is sent from the first device to a device of at least one other user. [12] Computer-implemented method according to claim 11, further comprising: Causing one or more proposals (706, 708) to be rendered in the message transmission application (103a, 103b). [13] Computer-implemented method according to claim 12, wherein the one or more proposals (706, 708) are rendered as proposal elements which, when selected by the first user, cause details of the proposal (706, 708) to be displayed. [14] Computer-implemented method comprising the following: Detecting a user request from a first user in a messaging application (103a, 103b) running on a first computing device; Programmatically determining that an action in response to a user request requires access to data assigned to the first user; Causing an approval interface to be rendered in the message transmission application (103a, 103b) on the first computing device, wherein the approval interface enables the first user to approve or deny access to the data associated with the first user; and After receiving approval from the first user in the approval interface, access the data associated with the first user and perform the action in response to the user request. [15] Computer-implemented method according to claim 14, further comprising: After receiving user input from the first user denying access to the data associated with the first user, provide an indication in the message transmission application (103a, 103b) that the action will not be performed. [16] Computer-implemented method according to claim 14, further comprising: after receiving user input from the first user, access to the data assigned to the first user is denied, Providing an initial specification for rendering in the message delivery application (103a, 103b); and Providing a second specification for rendering in a second message delivery application (103a, 103b) that is assigned to at least one other user, wherein the first and second specifications indicate a failure to serve the user's request, wherein the first and second specifications are different. [17] System (900) comprising the following: one or more processors (902) coupled to a non-transitory computer-readable medium (904) on which instructions are stored which, when executed by the one or more processors (902), cause the one or more processors (902) to perform operations that include: Providing a message transmission application (103a, 103b) on a first computing device assigned to a first user to enable communication between the first user and at least one other user; Detecting a user request in the messaging application (103a, 103b); Programmatically determining that an action in response to a user request requires access to data assigned to the first user; Causing an approval interface to be rendered in the message transmission application (103a, 103b) on the first computing device, wherein the approval interface enables the first user to approve or deny access to the data associated with the first user; and After receiving user input from the first user indicating authorization to access the data associated with the first user, access the data associated with the first user and perform the action in response to the user request. [18] System (900) according to claim 17, wherein the operations further comprise: After receiving user input from the first user denying access to the data associated with the first user, provide an indication in the message transmission application (103a, 103b) that the action will not be performed. [19] System (900) according to claim 17, wherein the first user is a human user and the at least one other user is an auxiliary agent. [20] System (900) according to claim 17, wherein the first user is a human user and the at least one other user comprises a second human user who is different from the first user and an auxiliary agent, and wherein the user request is received on the first computing device assigned to the first user, the operations further comprising: in response to the user request, initiating a separate conversation in the messaging application (103a, 103b), wherein the separate conversation includes the first user and the auxiliary agent and excludes the second human user. [21] Computer-implemented method comprising the following: Receiving a prediction from a machine learning suggestion model by a bot deployed in a messaging application (103a, 103b); Generating a suggestion for the bot to perform a specific action, wherein the suggestion to perform the specific action is generated based on the prediction from the machine learning suggestion model; Receiving a request from a user to have the bot perform a specific action; The bot programmatically determines that the specific action requires access to user data assigned to the user; Causing the bot to render an approval interface that allows the user to authorize access to the user data associated with the user; Receiving user input by the bot, indicating approval of access to the user data associated with the user; In response to receiving user input indicating authorization to access the user data associated with the user, the bot accesses the user data associated with the user; and in response to accessing the user data assigned to the user, performing the specified action. [22] Computer-implemented method according to claim 21, wherein the specific action relates to a second user, the method further comprising: Obtaining permission from the second user for the bot to receive one or more messages from the bot; and Sending one or more messages by the bot to the second user to obtain information related to the specific action, with the execution of the specific action occurring in response to the bot receiving the information related to the specific action from the second user. [23] Computer-implemented method according to claim 21, wherein the user is a first user, the method further comprising: Obtaining permission from a second user for the bot to authorize access to user data associated with that second user; and Analyzing one or more messages between the first user and the second user by the bot, whereby the suggestion to perform the specific action is determined based on the analysis of the one or more messages. [24] Computer-implemented method according to claim 21, further comprising: Obtaining approval from a second user via the bot to authorize access to user data associated with the second user; Receiving a statement from the user via the bot that a conversation between the user and the second user is confidential; and The bot will refrain from analyzing the conversation until the user or the second user reactivates the bot. [25] Computer-implemented method according to claim 21, wherein the programming determination that the specific action requires access to the user data assigned to the user is carried out by a second machine learning model, wherein the second machine learning model uses at least the user's request to the application to perform the specific action as input. [26] Computer-implemented method according to claim 21, wherein: The machine learning suggestion model uses at least one input from a device connected to the user; the content is based on the user's context; and The user's context includes at least one of the following pieces of information: information about the user's interactions with one or more other users, one or more external conditions, one or more user schedules, or user activity. [27] Computer-implemented method according to claim 21, further comprising that the bot performs the specified action in a specific style, in particular a formal style, a playful style, a neutral style or an emoji style. [28] The computer-implemented method according to claim 21, wherein the message transmission application (103a, 103b) is accessed on a user device and: Access to the message transmission application (103a, 103b) includes a virtual implementation of the message transmission application (103a, 103b); and the message transmission application (103a, 103b) is implemented on a connected device, wherein the connected device is communicatively coupled to the user device. [29] Computer-implemented method according to claim 21, further comprising storing the user data in response to the receipt of the user request indicating authorization to access the user data associated with the user in: a memory of a user device, wherein the message transmission application (103a, 103b) on the user device is accessed; or a memory of a connected device, wherein the connected device is communicatively coupled to the user device. [30] Computer-implemented method according to claim 21, wherein the message transmission application (103a, 103b) is accessed on a user device, the user device being a camera, a laptop computer, a tablet computer, a mobile phone, a portable device, a mobile email device, a portable gaming console, a portable music player, a reading device, a head-mounted display, a smartwatch, a smart bracelet, headphones or an electronic device that can wirelessly access a network (140). [31] Computer-implemented method according to claim 21, wherein the bot communicates with one or more other messaging applications (103a, 103b), wherein the one or more other messaging applications (103a, 103b) differ from the messaging application (103a, 103b). [32] Computer-implemented method according to claim 21, wherein the specified action is an action of a second bot, wherein the second bot is different from the bot, and in particular, the second bot is not called by the message transmission application (103a, 103b). [33] Computer-implemented method according to claim 21, wherein the specific action is one or more of the following actions: providing information, in particular information based on an internet search, a travel function, in particular comprising the purchase of a ticket or a reservation, a request for a taxi service, coaching, tutoring, the implementation of a game, a trading action or an interface connection, the interface includes in particular: Access to a remote device, in particular a vehicle; and Performing a remote action on the remote device, wherein the remote action on the remote device comprises one or more of the following elements: Chatting with the remote device; Retrieving information from the remote device; or providing commands to the remote device. [34] Computer-implemented method according to claim 21, further comprising determining the user's intention by the bot, wherein the suggestion to perform the specified action is further based on the user's intention, wherein the determination of the user's intention is in particular based on a context of a conversation of the user. [35] Computer-implemented method according to claim 21, further comprising that the message transmission application (103a, 103b) receives a command from the user to access a specific bot from a plurality of available bots, wherein: the bot includes the specific bot from the multitude of available bots; and Access to the bot is based on the user's command, wherein the user's command to access the specific bot from the multitude of available bots includes, in particular, text input or voice input. [36] Computer-implemented method according to claim 21, wherein the user's request to perform the specified action and the user input indicating the authorization to access the user data associated with the user are a single user input. [37] Computer-implemented method according to claim 21, wherein the messaging application (103a, 103b) comprises a conversation between the user and at least one other person, wherein the method further comprises that the messaging application (103a, 103b) and the conversation propose a call to the bot. [38] Computer-implemented method according to claim 21, wherein the user data includes one or more of the following data: location data, payment information or contact information. [39] Computer-implemented method according to claim 38, wherein: the user data are the location data; and the specific action is based on proximity to a location, where the location is based on location data. [40] Computer-implemented methods according to claim 39, wherein the proposal to perform the specific action includes a recommendation for a nearby service. [41] Computer-implemented method according to claim 21, wherein the prediction is based at least partially on natural language processing. [42] Computer-implemented method according to claim 21, wherein: the message transmission application (103a, 103b) is accessed on a first user device; and The suggestion to perform the specified action is a suggested response to a message in the message transmission application (103a, 103b), wherein the message originates from a second user device. [43] Computer-implemented method according to claim 21, wherein the specific action is a translation. [44] Computer-implemented method according to claim 21, wherein the proposal for carrying out the specific action comprises one or more of the following components: a text, an image, a link, an emoji or a multimedia component. [45] Computer-implemented method according to claim 21, wherein the execution of the specified action by the bot is carried out by a module of an application device, wherein the application device is accessed to call the message transmission application (103a, 103b), wherein the module is distinct from the bot. [46] Computer-implemented method according to claim 45, wherein the bot is a first bot and the module is a second bot, wherein the second bot: is implemented on the user device; or is implemented on a connected device and is called on the user device, wherein the connected device is communicatively coupled to the user device. [47] Computer-implemented method according to claim 21, wherein: the message transmission application (103a, 103b) is implemented on a user device; and The bot is accessed on the user device and is implemented on a connected device, the connected device being communicatively coupled to the user device. [48] ​​Computer-implemented method according to claim 21, wherein: the message transmission application (103a, 103b) is implemented on a user device; and the bot is implemented on the user's device. [49] Computer-implemented method according to claim 21, wherein: the message transmission application (103a, 103b) is accessed on a user device and is implemented on a connected device, the connected device being communicatively coupled to the user device; and the bot is implemented on the user's device. [50] Computer-implemented method according to claim 21, wherein: the message transmission application (103a, 103b) is accessed on a user device and is implemented on a connected device, wherein the connected device is communicatively coupled to the user device; and the bot is called on the user device and implemented on the connected device. [51] Non-volatile, computer-readable medium (904) containing instructions stored on it which, when executed by one or more processors, cause the one or more processors to perform operations, the operations comprising: Receiving a prediction from a machine learning suggestion model by a bot deployed in a messaging application (103a, 103b); Generating a suggestion for the bot to perform a specific action, wherein the suggestion to perform the specific action is generated based on the prediction from the machine learning suggestion model; Receiving a request from a user to have the bot perform a specific action; The bot programmatically determines that the specific action requires access to user data assigned to the user; Causing the bot to render an approval interface that allows the user to authorize access to the user data associated with the user; Receiving user input by the bot, indicating approval of access to the user data associated with the user; In response to receiving user input indicating authorization to access the user data associated with the user, the bot accesses the user data associated with the user; and in response to accessing the user data assigned to the user, performing the specified action. [52] Non-volatile, computer-readable medium (904) according to claim 51, wherein the specific action relates to a second user and the operations further comprise: Obtaining permission from the second user for the bot to receive one or more messages from the bot; and Sending one or more messages by the bot to the second user to obtain information related to the specific action, with the execution of the specific action occurring in response to the bot receiving the information related to the specific action from the second user. [53] Non-volatile, computer-readable medium (904) according to claim 51, wherein the user is a first user and the operations further comprise: Obtaining permission from a second user for the bot to authorize access to user data associated with that second user; and Analyzing one or more messages between the first user and the second user by the bot, whereby the suggestion to perform the specific action is determined based on the analysis of the one or more messages. [54] Non-volatile, computer-readable medium (904) according to claim 51, wherein the operations further comprise: Obtaining approval from a second user via the bot to authorize access to user data associated with the second user; Receiving a statement from the user via the bot that a conversation between the user and the second user is confidential; and The bot will refrain from analyzing the conversation until the user or the second user reactivates the bot. [55] Non-volatile, computer-readable medium (904) according to claim 51, wherein the programming determination that the specific action requires access to the user data assigned to the user is carried out by a second machine learning model, wherein the second machine learning model uses at least the user's request to the application to perform the specific action as input. [56] Non-volatile, computer-readable medium (904) according to claim 51, wherein: The machine learning suggestion model uses at least one input from a device connected to the user; the content is based on the user's context; and The user's context includes at least one of the following pieces of information: information about the user's interactions with one or more other users, one or more external conditions, one or more user schedules, or user activity. [57] Non-volatile, computer-readable medium (904) according to claim 51, wherein the operations further comprise the bot performing the specified action in a specific style, in particular a formal style, a playful style, a neutral style or an emoji style. [58] Non-volatile, computer-readable medium (904) according to claim 51, wherein the message transmission application (103a, 103b) is accessed on a user device and: Access to the message transmission application (103a, 103b) includes a virtual implementation of the message transmission application (103a, 103b); and the message transmission application (103a, 103b) is implemented on a connected device, wherein the connected device is communicatively coupled to the user device. [59] Non-volatile, computer-readable medium (904) according to claim 51, wherein the operations further comprise storing the user data in response to the receipt of the user request indicating authorization to access the user data associated with the user in: a memory of a user device, wherein the message transmission application (103a, 103b) on the user device is accessed; or a memory of a connected device, wherein the connected device is communicatively coupled to the user device. [60] Non-volatile, computer-readable medium (904) according to claim 51, wherein the message transmission application (103a, 103b) is accessed on a user device, the user device being a camera, a laptop computer, a tablet computer, a mobile phone, a portable device, a mobile email device, a portable gaming console, a portable music player, a reading device, a head-mounted display, a smartwatch, a smart bracelet, headphones or an electronic device that can wirelessly access a network (140). [61] Non-volatile, computer-readable medium (904) according to claim 51, wherein the bot communicates with one or more other message transmission applications (103a, 103b), wherein the one or more other message transmission applications (103a, 103b) are different from the message transmission application (103a, 103b). [62] Non-volatile, computer-readable medium (904) according to claim 51, wherein the specified action is an action of a second bot, wherein the second bot is different from the first bot, and in particular, the second bot is not called by the message transmission application (103a, 103b). [63] Non-volatile, computer-readable medium (904) according to claim 51, wherein the specific action is one or more of the following actions: providing information, in particular information based on an internet search, a travel function, in particular the purchase of a ticket or a reservation, a request for a taxi service, coaching, tutoring, the implementation of a game, a trading action or an interface connection, wherein the interface in particular comprises: Access to a remote device, in particular a vehicle; and Performing a remote action on the remote device, wherein the remote action on the remote device comprises one or more of the following elements: Chatting with the remote device; Retrieving information from the remote device; or providing commands to the remote device. [64] Non-volatile, computer-readable medium (904) according to claim 51, wherein the operations further comprise determining an intention of the user by the bot, wherein the suggestion to perform the specified action is further based on the intention of the user, wherein the determination of the intention of the user is in particular based on a context of a conversation of the user. [65] Non-volatile, computer-readable medium (904) according to claim 51, wherein the operations further comprise the message transmission application (103a, 103b) receiving a command from the user to access a specific bot from a plurality of available bots, wherein: the bot includes the specific bot from the multitude of available bots; and Access to the bot is based on the user's command, wherein the user's command to access the specific bot from the multitude of available bots includes, in particular, text input or voice input. [66] Non-volatile, computer-readable medium (904) according to claim 51, wherein the user's request to perform the specific action and the user input indicating the authorization to access the user data associated with the user are a single user input. [67] Non-volatile, computer-readable medium (904) according to claim 51, wherein the messaging application (103a, 103b) comprises a conversation between the user and at least one other person, wherein the operations further comprise that the messaging application (103a, 103b) and the conversation propose a call to the bot. [68] Non-volatile, computer-readable medium (904) according to claim 51, wherein the user data includes one or more of the following: location data, payment information or contact information. [69] Non-volatile, computer-readable medium (904) according to claim 68, wherein: the user data are the location data; and the specific action is based on proximity to a location, where the location is based on location data. [70] Non-volatile, computer-readable medium (904) according to claim 69, wherein the proposal to carry out the specified action includes a recommendation for a nearby service. [71] Non-volatile, computer-readable medium (904) according to claim 51, wherein the prediction is based at least partially on natural language processing. [72] Non-volatile, computer-readable medium (904) according to claim 51, wherein: the message transmission application (103a, 103b) is accessed on a first user device; and The suggestion to perform the specified action is a suggested response to a message in the message transmission application (103a, 103b), wherein the message originates from a second user device. [73] Non-volatile, computer-readable medium (904) according to claim 51, wherein the specific action is a translation. [74] Non-volatile, computer-readable medium (904) according to claim 51, wherein the proposal to perform the specific action comprises one or more of the following components: a text, a picture, a link, an emoji or a multimedia component. [75] Non-volatile, computer-readable medium (904) according to claim 51, wherein the execution of the specified action by the bot is carried out by a module of an application device, wherein the application device is accessed to call the message transmission application (103a, 103b), wherein the module is distinct from the bot. [76] Non-volatile, computer-readable medium (904) according to claim 75, wherein the bot is a first bot and the module is a second bot, wherein the second bot: is implemented on the user device; or is implemented on a connected device and is called on the user device, wherein the connected device is communicatively coupled to the user device. [77] Non-volatile, computer-readable medium (904) according to claim 51, wherein: the message transmission application (103a, 103b) is implemented on a user device; and The bot is accessed on the user device and is implemented on a connected device, the connected device being communicatively coupled to the user device. [78] Non-volatile, computer-readable medium (904) according to claim 51, wherein: the message transmission application (103a, 103b) is implemented on a user device; and the bot is implemented on the user's device. [79] Non-volatile, computer-readable medium (904) according to claim 51, wherein: the message transmission application (103a, 103b) is accessed on a user device and is implemented on a connected device, the connected device being communicatively coupled to the user device; and the bot is implemented on the user's device. [80] Non-volatile, computer-readable medium (904) according to claim 51, wherein: the message transmission application (103a, 103b) is accessed on a user device and is implemented on a connected device, wherein the connected device is communicatively coupled to the user device; and the bot is called on the user device and implemented on the connected device. [81] System (900) comprising the following: one or more processors (902); and a memory (904) coupled to the one or more processors (902), which stores instructions which, when executed by the one or more processors (902), cause the one or more processors (902) to perform operations, wherein the operations include the following: Receiving a prediction from a machine learning suggestion model by a bot deployed in a messaging application (103a, 103b); Generating a suggestion for the bot to perform a specific action, wherein the suggestion to perform the specific action is generated based on the prediction from the machine learning suggestion model; Receiving a request from a user to have the bot perform a specific action; The bot programmatically determines that the specific action requires access to user data assigned to the user; Causing the bot to render an approval interface that allows the user to authorize access to the user data associated with the user; Receiving user input by the bot, indicating approval of access to the user data associated with the user; In response to receiving user input indicating authorization to access the user data associated with the user, the bot accesses the user data associated with the user; and in response to accessing the user data assigned to the user, performing the specified action. [82] System (900) according to claim 81, wherein the specific action relates to a second user and the operations further comprise: Obtaining permission from the second user for the bot to receive one or more messages from the bot; and Sending one or more messages by the bot to the second user to obtain information related to the specific action, with the execution of the specific action occurring in response to the bot receiving the information related to the specific action from the second user. [83] System (900) according to claim 81, wherein the user is a first user and the operations further comprise: Obtaining permission from a second user for the bot to authorize access to user data associated with that second user; and Analyzing one or more messages between the first user and the second user by the bot, whereby the suggestion to perform the specific action is determined based on the analysis of the one or more messages. [84] System (900) according to claim 81, wherein the operations further comprise: Obtaining approval from a second user via the bot to authorize access to user data associated with the second user; Receiving a statement from the user via the bot that a conversation between the user and the second user is confidential; and The bot will refrain from analyzing the conversation until the user or the second user reactivates the bot. [85] System (900) according to claim 81, wherein the programming determination that the specific action requires access to the user data assigned to the user is carried out by a second machine learning model, wherein the second machine learning model uses at least the user's request to the application to perform the specific action as input. [86] System (900) according to claim 81, wherein: The machine learning suggestion model uses at least one input from a device connected to the user; the content is based on the user's context; and The user's context includes at least one of the following pieces of information: information about the user's interactions with one or more other users, one or more external conditions, one or more user schedules, or user activity. [87] System (900) according to claim 81, wherein the operations further comprise the bot performing the certain action in a certain style, in particular a formal style, a playful style, a neutral style or an emoji style. [88] System (900) according to claim 81, wherein the message transmission application (103a, 103b) is accessed on a user device and: Access to the message transmission application (103a, 103b) includes a virtual implementation of the message transmission application (103a, 103b); and the message transmission application (103a, 103b) is implemented on a connected device, wherein the connected device is communicatively coupled to the user device. [89] System (900) according to claim 81, wherein the operations further comprise storing the user data in response to the receipt of the user request indicating authorization to access the user data associated with the user in: a memory of a user device, wherein the message transmission application (103a, 103b) on the user device is accessed; or a memory of a connected device, wherein the connected device is communicatively coupled to the user device. [90] System (900) according to claim 81, wherein the message transmission application (103a, 103b) is accessed on a user device, the user device being a camera, a laptop computer, a tablet computer, a mobile phone, a portable device, a mobile email device, a portable gaming console, a portable music player, a reading device, a head-mounted display, a smartwatch, a smart bracelet, headphones or an electronic device that can wirelessly access a network (140). [91] System (900) according to claim 81, wherein the bot communicates with one or more other messaging applications (103a, 103b), wherein the one or more other messaging applications (103a, 103b) are different from the messaging application (103a, 103b). [92] System (900) according to claim 81, wherein the specific action is an action of a second bot, wherein the second bot differs from the bot, and in particular, wherein the second bot is not called by the message transmission application (103a, 103b). [93] System (900) according to claim 81, wherein the specific action is one or more of the following actions: providing information, in particular information based on an internet search, a travel function, in particular the purchase of a ticket or a reservation, a request for a taxi service, coaching, tutoring, the implementation of a game, a trading action or an interface connection, wherein the interface in particular comprises: Access to a remote device, in particular a vehicle; and Performing a remote action on the remote device, wherein the remote action on the remote device comprises one or more of the following elements: Chatting with the remote device; Retrieving information from the remote device; or providing commands to the remote device. [94] System (900) according to claim 81, wherein the operations further comprise determining an intention of the user by the bot, wherein the suggestion to perform the specific action is further based on the intention of the user, wherein the determination of the intention of the user is in particular based on a context of a conversation of the user. [95] System (900) according to claim 81, wherein the operations further comprise the message transmission application (103a, 103b) receiving a command from the user to access a specific bot from a plurality of available bots, wherein: the bot includes the specific bot from the multitude of available bots; and Access to the bot is based on the user's command, wherein the user's command to access the specific bot from the multitude of available bots includes, in particular, text input or voice input. [96] System (900) according to claim 81, wherein the user's request to perform the specified action and the user input indicating the authorization to access the user data associated with the user are a single user input. [97] System (900) according to claim 81, wherein the messaging application (103a, 103b) comprises a conversation between the user and at least one other person, wherein the operations further comprise that the messaging application (103a, 103b) and the conversation propose a call to the bot. [98] System (900) according to claim 81, wherein the user data includes one or more of the following data: location data, payment information or contact information. [99] System (900) according to claim 98, wherein: the user data are the location data; and the specific action is based on proximity to a location, where the location is based on location data. [100] System (900) according to claim 99, wherein the proposal for carrying out the specific action includes a recommendation for a nearby service. [101] System (900) according to claim 81, wherein the prediction is based at least partially on natural language processing. [102] System (900) according to claim 81, wherein: the message transmission application (103a, 103b) is accessed on a first user device; and The suggestion to perform the specified action is a suggested response to a message in the message transmission application (103a, 103b), wherein the message originates from a second user device. [103] System (900) according to claim 81, wherein the specific action is a translation. [104] System (900) according to claim 81, wherein the proposal for carrying out the specific action comprises one or more of the following components: a text, a picture, a link, an emoji or a multimedia component. [105] System (900) according to claim 81, wherein the execution of the specified action by the bot is carried out by a module of an application device, wherein the application device is accessed to call the message transmission application (103a, 103b), wherein the module is distinct from the bot. [106] System (900) according to claim 105, wherein the bot is a first bot and the module is a second bot, wherein the second bot: is implemented on the system (900); or is implemented on a connected device and is called on the system (900), wherein the connected device is communicatively coupled to the system (900). [107] System (900) according to claim 81, wherein: the message transmission application (103a, 103b) is implemented on the system (900); and The bot is accessed on the system (900) and is implemented on a connected device, the connected device being communicatively coupled to the system (900). [108] System (900) according to claim 81, wherein: the message transmission application (103a, 103b) is implemented on the system (900); and the bot is implemented on the system (900). [109] System (900) according to claim 81, wherein: the message transmission application (103a, 103b) on the system (900) is accessed and is implemented on a connected device, the connected device being communicatively coupled to the system (900); and the bot is implemented on the system (900). [110] System (900) according to claim 81, wherein: the message transmission application (103a, 103b) on the system (900) is accessed and is implemented on a connected device, wherein the connected device is communicatively coupled to the system (900); and the bot is called on the system (900) and is implemented on the connected device.

Citation Information

Patent Citations

  • Location based access control for artificial conversational entities

    EP3465992A1

  • Method for interacting with automated information agents using conversational queries

    US20060150119A1

  • System and method for providing information interactively by instant messaging application

    US20130144961A1

  • Systems and methods for invoking virtual agent

    US20140164953A1

  • Location based access control for artificial conversational entities

    WO2018039092A1