Bot permissions
Permission control and management for messaging application bots is described. A method can include providing a messaging application, on a first computing device associated with a first user, to enable communication between the first user and another user, and detecting, at the messaging application, a user request. The method can also include programmatically determining that an action in response to the user request requires access to data associated with the first user, and causing a permission interface to be rendered in the messaging application, the permission interface enabling the first user to approve or prohibit access to the data associated with the first user. The method can include accessing the data associated with the first user and performing the action in response to the user request, upon receiving user input from the first user indicating approval of the access to the data associated with the first user.
1 . A computer-implemented method comprising:
receiving, by a bot deployed within a messaging application, a prediction from a suggestion machine-learning model;
generating, by the bot, a suggestion to perform a specific action, the generation of the suggestion to perform the specific action based on the prediction from the suggestion machine-learning model;
receiving, by the bot, a request of a user to perform the specific action;
programmatically determining, by the bot, that the specific action requires access to user data associated with the user;
causing, by the bot, a permission interface to be rendered, the permission interface enabling the user to approve access to user data associated with the user;
receiving, by the bot, a user input indicating approval of the access to the user data associated with the user;
responsive to receiving the user input indicating approval of the access to the user data associated with the user, accessing, by the bot, the user data associated with the user;
and
responsive to accessing the user data associated with the user, performing the specific action.
2 . The computer-implemented method of claim 1 , wherein:
the user is a first user;
the specific action is related to a second user; and
the method further comprises:
obtaining, by the bot, permission from the second user to receive one or more messages from the bot; and
sending, by the bot, the one or more messages to the second user to obtain information associated with the specific action,
wherein performing the specific action occurs responsive to receiving, by the bot, the information associated with the specific action from the second user.
3 . The computer-implemented method of claim 1 , wherein the user is a first user, the method further comprising:
obtaining, by the bot, permission from a second user to approve access to user data associated with the second user; and
analyzing, by the bot, one or more messages between the first user and the second user, wherein the suggestion to perform the specific action is determined
based on analyzing the one or more messages.
4 . The computer-implemented method of claim 1 , wherein the user is a first user, the method further comprising:
obtaining, by the bot, permission from a second user to approve access to user data associated with the second user;
receiving, by the bot, an indication from the first user that a conversation between the first user and the second user is confidential; and
abstaining from analysis, by the bot, of the conversation until the first user or the second user reactivates the bot.
5 . The computer-implemented method of claim 1 , wherein the programmatically determining that the specific action requires access to the user data associated with the user is performed by a second machine-learning model, the second machine-learning model taking as an input at least the request of the user for the messaging application to perform the specific action.
6 . The computer-implemented method of claim 1 , wherein:
the suggestion machine-learning model takes as an input at least a content from a device associated with the user;
the content is based on a context of the user; and
the context of the user comprises at least one of information on interactions of the user with one or more other users, one or more external conditions, one or more schedules of the user, or an activity of the user.
7 . The computer-implemented method of claim 1 , further comprising performing, by the bot, the specific action in a particular style.
8 . The computer-implemented method of claim 7 , wherein the particular style comprises one of a formal style, a playful style, a neutral style, or an emoji style.
9 . The computer-implemented method of claim 1 , wherein the messaging application is accessed on a user device, and:
the accessing of the messaging application comprises a virtual implementation of the messaging application; and
the messaging application is implemented on a connected device, the connected device communicatively coupled to the user device.
10 . The computer-implemented method of claim 1 , further comprising, responsive to receiving the user input indicating approval of the access to the user data associated with the user, storing the user data in:
a memory of a user device, wherein the messaging application is accessed on the user device; or
a memory of a connected device, wherein the connected device is communicatively coupled to the user device.
11 . The computer-implemented method of claim 1 , wherein the messaging application is accessed on a user device, wherein the user device is one of:
a camera;
a laptop computer;
a tablet computer;
a mobile telephone;
a wearable device;
a mobile email device;
a portable game player;
a portable music player;
a reader device;
a head-mounted display;
a smartwatch;
a smart wristband;
headphones; or
a first electronic device and a second electronic device, the first electronic device comprising a memory and communicatively coupled to the second electronic device, the second electronic device configured to receive the user input.
12 . The computer-implemented method of claim 1 , wherein the bot is in communication with one or more other messaging applications, the one or more other messaging applications different from the messaging application.
13 . The computer-implemented method of claim 1 , wherein the specific action is an action of a second bot, the second bot different from the bot.
14 . The computer-implemented method of claim 13 , wherein the second bot is not accessed by the messaging application.
15 . The computer-implemented method of claim 1 , wherein the specific action is providing one or more of an information, a travel function, a request for a taxi service, a coaching, a tutoring, an implementation of a game, a commerce action, or an interfacing.
16 . The computer-implemented method of claim 15 , wherein the information is based on an internet search.
17 . The computer-implemented method of claim 15 , wherein the travel function comprises:
a purchase of a ticket; or
a making of a reservation.
18 . The computer-implemented method of claim 15 , wherein the interfacing comprises:
accessing a remote device; and
performing a remote action on the remote device, the remote action on the remote device comprising one or more of:
chatting with the remote device;
retrieving information from the remote device; or
providing instructions to the remote device.
19 . The computer-implemented method of claim 18 , wherein the remote device is a vehicle.
20 . The computer-implemented method of claim 1 , further comprising determining, by the bot, an intent of the user, wherein the suggestion to perform the specific action is further based on the intent of the user.
21 . The computer-implemented method of claim 20 , wherein the determination of the intent of the user is based on a context of a conversation of the user.
22 . The computer-implemented method of claim 1 , further comprising receiving, by the messaging application, a command of the user to access a specific bot from among a plurality of available bots, wherein:
the bot comprises the specific bot from among the plurality of available bots; and
the accessing of the bot is responsive to the command of the user.
23 . The computer-implemented method of claim 22 , wherein the command of the user to access the specific bot from among the plurality of available bots comprises one of a text input or a voice input.
24 . The computer-implemented method of claim 1 , wherein the request of the user to perform the specific action and the user input indicating approval of the access to the user data associated with the user are a same input from the user.
25 . The computer-implemented method of claim 1 , wherein the messaging application comprises a conversation between the user and at least one other person, the method further comprising suggesting, by the messaging application and in the conversation, an invocation of the bot.
26 . The computer-implemented method of claim 1 , wherein the user data is one or more of a location data, a payment information, or a contact information.
27 . The computer-implemented method of claim 26 , wherein:
the user data is the location data; and
the specific action is based on a proximity to a location, the location based on the location data.
28 . The computer-implemented method of claim 27 , wherein the suggestion to perform the specific action comprises a recommendation for a service within the proximity.
29 . The computer-implemented method of claim 1 , wherein the prediction is based at least in part on a natural language processing.
30 . The computer-implemented method of claim 1 , wherein:
the messaging application is accessed on a first user device; and
the suggestion to perform the specific action is a suggested response to a message in the messaging application, the message from a second user device.
31 . The computer-implemented method of claim 1 , wherein the specific action is a translation.
32 . The computer-implemented method of claim 1 , wherein the suggestion to perform the specific action comprises one or more of a text, an image, a link, an emoji, or a multimedia component.
33 . The computer-implemented method of claim 1 , wherein the performing of the specific action by the bot is performed by a module of a user device, wherein the messaging application is accessed on the user device.
34 . The computer-implemented method of claim 33 , wherein the bot is a first bot and the module is a second bot, the second bot:
implemented on the user device; or
implemented on a connected device and accessed on the user device, wherein the connected device is communicatively coupled to the user device.
35 . The computer-implemented method of claim 1 , wherein:
the messaging application is implemented on a user device; and
the bot is accessed on the user device and implemented on a connected device, the connected device communicatively coupled to the user device.
36 . The computer-implemented method of claim 1 , wherein:
the messaging application is implemented on a user device; and
the bot is implemented on the user device.
37 . The computer-implemented method of claim 1 , wherein:
the messaging application is accessed on a user device and implemented on a connected device, the connected device communicatively coupled to the user device; and
the bot is implemented on the user device.
38 . The computer-implemented method of claim 1 , wherein:
the messaging application is accessed on a user device and implemented on a connected device, the connected device communicatively coupled to the user device; and
the bot is accessed on the user device and implemented on the connected device.
39 . A non-transitory computer-readable medium with instructions stored thereon that, when executed by one or more processors, cause the one or more processors to perform operations, the operations comprising:
receiving, by a bot deployed within a messaging application, a prediction from a suggestion machine-learning model;
generating, by the bot, a suggestion to perform a specific action, the generation of the suggestion to perform the specific action based on the prediction from the suggestion machine-learning model;
receiving, by the bot, a request of a user to perform the specific action;
programmatically determining, by the bot, that the specific action requires access to user data associated with the user;
causing, by the bot, a permission interface to be rendered, the permission interface enabling the user to approve access to user data associated with the user;
receiving, by the bot, a user input indicating approval of the access to the user data associated with the first user;
responsive to receiving the user input indicating approval of the access to the user data associated with the user, accessing, by the bot, the user data associated with the user;
and
responsive to accessing the user data associated with the user, performing the specific action.
40 . The non-transitory computer-readable medium of claim 39 , wherein:
the user is a first user;
the specific action is related to a second user; and
the operations further comprise:
obtaining, by the bot, permission from the second user to receive one or more messages from the bot; and
sending, by the bot, the one or more messages to the second user to obtain information associated with the specific action,
wherein performing the specific action occurs responsive to receiving, by the bot, the information associated with the specific action from the second user.
41 . The non-transitory computer-readable medium of claim 39 , wherein the user is a first user and the operations further comprise:
obtaining, by the bot, permission from a second user to approve access to user data associated with the second user; and
analyzing, by the bot, one or more messages between the first user and the second user, wherein the suggestion to perform the specific action is determined based on analyzing the one or more messages.
42 . The non-transitory computer-readable medium of claim 39 , wherein the user is a first user and the operations further comprise:
obtaining, by the bot, permission from a second user to approve access to user data associated with the second user;
receiving, by the bot, an indication from the first user that a conversation between the first user and the second user is confidential; and
abstaining from analysis, by the bot, of the conversation until the first user or the second user reactivates the bot.
43 . The non-transitory computer-readable medium of claim 39 , wherein the programmatically determining that the specific action requires access to the user data associated with the user is performed by a second machine-learning model, the second machine-learning model taking as an input at least the request of the user for the messaging application to perform the specific action.
44 . The non-transitory computer-readable medium of claim 39 , wherein:
the suggestion machine-learning model takes as an input at least a content from a device associated with the user;
the content is based on a context of the user; and
the context of the user comprises at least one of information on interactions of the user with one or more other users, one or more external conditions, one or more schedules of the user, or an activity of the user.
45 . The non-transitory computer-readable medium of claim 39 , wherein the operations further comprise performing, by the bot, the specific action in a particular style.
46 . The non-transitory computer-readable medium of claim 45 , wherein the particular style comprises one of a formal style, a playful style, a neutral style, or an emoji style.
47 . The non-transitory computer-readable medium of claim 39 , wherein the messaging application is accessed on a user device, and:
the accessing of the messaging application comprises a virtual implementation of the messaging application; and
the messaging application is implemented on a connected device, the connected device communicatively coupled to the user device.
48 . The non-transitory computer-readable medium of claim 39 , wherein the operations further comprise, responsive to receiving the user input indicating approval of the access to the user data associated with the user, storing the user data:
in the non-transitory computer-readable medium, wherein the messaging application is accessed on a user device; or
in a memory of a connected device, wherein the connected device is communicatively coupled to the user device.
49 . The non-transitory computer-readable medium of claim 39 , wherein the messaging application is accessed on a user device, wherein the user device is one of:
a camera;
a laptop computer;
a tablet computer;
a mobile telephone;
a wearable device;
a mobile email device;
a portable game player;
a portable music player;
a reader device;
a head-mounted display;
a smartwatch;
a smart wristband;
headphones; or
a first electronic device and a second electronic device, the first electronic device comprising a memory and communicatively coupled to the second electronic device, the second electronic device configured to receive the user input.
50 . The non-transitory computer-readable medium of claim 39 , wherein the bot is in communication with one or more other messaging applications, the one or more other messaging applications different from the messaging application.
51 . The non-transitory computer-readable medium of claim 39 , wherein the specific action is an action of a second bot, the second bot different from the bot.
52 . The non-transitory computer-readable medium of claim 51 , wherein the second bot is not accessed by the messaging application.
53 . The non-transitory computer-readable medium of claim 39 , wherein the specific action is providing one or more of an information, a travel function, a request for a taxi service, a coaching, a tutoring, an implementation of a game, a commerce action, or an interfacing.
54 . The non-transitory computer-readable medium of claim 53 , wherein the information is based on an internet search.
55 . The non-transitory computer-readable medium of claim 53 , wherein the travel function comprises:
a purchase of a ticket; or
a making of a reservation.
56 . The non-transitory computer-readable medium of claim 53 , wherein the interfacing comprises:
accessing a remote device; and
performing a remote action on the remote device, the remote action on the remote device comprising one or more of:
chatting with the remote device;
retrieving information from the remote device; or
providing instructions to the remote device.
57 . The non-transitory computer-readable medium of claim 56 , wherein the remote device is a vehicle.
58 . The non-transitory computer-readable medium of claim 39 , wherein the operations further comprise determining, by the bot, an intent of the user, wherein the suggestion to perform the specific action is further based on the intent of the user.
59 . The non-transitory computer-readable medium of claim 58 , wherein the determination of the intent of the user is based on a context of a conversation of the user.
60 . The non-transitory computer-readable medium of claim 39 , wherein the operations further comprise receiving, by the messaging application, a command of the user to access a specific bot from among a plurality of available bots, wherein:
the bot comprises the specific bot from among the plurality of available bots; and
the accessing of the bot is responsive to the command of the user.
61 . The non-transitory computer-readable medium of claim 60 , wherein the command of the user to access the specific bot from among the plurality of available bots comprises one of a text input or a voice input.
62 . The non-transitory computer-readable medium of claim 39 , wherein the request of the user to perform the specific action and the user input indicating approval of the access to the user data associated with the user are a same input from the user.
63 . The non-transitory computer-readable medium of claim 39 , wherein:
the messaging application comprises a conversation between the user and at least one other person; and
the instructions further cause the one or more processors to suggest, by the messaging application and in the conversation, an invocation of the bot.
64 . The non-transitory computer-readable medium of claim 39 , wherein the user data is one or more of a location data, a payment information, or a contact information.
65 . The non-transitory computer-readable medium of claim 64 , wherein:
the user data is the location data; and
the specific action is based on a proximity to a location, the location based on the location data.
66 . The non-transitory computer-readable medium of claim 65 , wherein the suggestion to perform the specific action comprises a recommendation for a service within the proximity.
67 . The non-transitory computer-readable medium of claim 39 , wherein the prediction is based at least in part on a natural language processing.
68 . The non-transitory computer-readable medium of claim 39 , wherein:
the messaging application is accessed on a first user device; and
the suggestion to perform the specific action is a suggested response to a message in the messaging application, the message from a second user device.
69 . The non-transitory computer-readable medium of claim 39 , wherein the specific action is a translation.
70 . The non-transitory computer-readable medium of claim 39 , wherein the suggestion to perform the specific action comprises one or more of a text, an image, a link, an emoji, or a multimedia component.
71 . The non-transitory computer-readable medium of claim 39 , wherein the performing of the specific action by the bot is performed by a module of a user device, wherein the messaging application is accessed on the user device.
72 . The non-transitory computer-readable medium of claim 71 , wherein the bot is a first bot and the module is a second bot, the second bot:
implemented on the user device; or
implemented on a connected device and accessed on the user device, wherein the connected device is communicatively coupled to the user device.
73 . The non-transitory computer-readable medium of claim 39 , wherein:
the messaging application is implemented on a user device; and
the bot is accessed on the user device and implemented on a connected device, the connected device communicatively coupled to the user device.
74 . The non-transitory computer-readable medium of claim 39 , wherein:
the messaging application is implemented on a user device; and
the bot is implemented on the user device.
75 . The non-transitory computer-readable medium of claim 39 , wherein:
the messaging application is accessed on a user device and implemented on a connected device, the connected device communicatively coupled to the user device; and
the bot is implemented on the user device.
76 . The non-transitory computer-readable medium of claim 39 , wherein:
the messaging application is accessed on a user device and implemented on a connected device, the connected device communicatively coupled to the user device; and
the bot is accessed on the user device and implemented on the connected device.
77 . A system comprising:
one or more processors; and
a memory coupled to the one or more processors that stores instructions that, when executed by the one or more processors, cause the one or more processors to perform operations comprising:
receiving, by a bot deployed within a messaging application, a prediction from a suggestion machine-learning model;
generating, by the bot, a suggestion to perform a specific action, the generation of the suggestion to perform the specific action based on the prediction from the suggestion machine-learning model;
receiving, by the bot, a request of a user to perform the specific action;
programmatically determining, by the bot, that the specific action requires access to user data associated with the user;
causing, by the bot, a permission interface to be rendered, the permission interface enabling the user to approve access to user data associated with the user;
receiving, by the bot, a user input indicating approval of the access to the user data associated with the first user;
responsive to receiving the user input indicating approval of the access to the user data associated with the user, accessing, by the bot, the user data associated with the user; and
responsive to accessing the user data associated with the user, performing the specific action.
78 . The system of claim 77 , wherein:
the user is a first user;
the specific action is related to a second user; and
the operations further comprise:
obtaining, by the bot, permission from the second user to receive one or more messages from the bot; and
sending, by the bot, the one or more messages to the second user to obtain information associated with the specific action,
wherein performing the specific action occurs responsive to receiving, by the bot, the information associated with the specific action from the second user.
79 . The system of claim 77 , wherein the user is a first user, the operations further comprising:
obtaining, by the bot, permission from a second user to approve access to user data associated with the second user; and
analyzing, by the bot, one or more messages between the first user and the second user, wherein the
suggestion to perform the specific action is determined based on analyzing the one or more messages.
80 . The system of claim 77 , the operations further comprising:
obtaining, by the bot, permission from a second user to approve access to user data associated with the second user;
receiving, by the bot, an indication from the user that a conversation between the user and the second user is confidential; and
abstaining from analysis, by the bot, of the conversation until the user or the second user reactivates the bot.
81 . The system of claim 77 , wherein the programmatically determining that the specific action requires access to the user data associated with the user is performed by a second machine-learning model, the second machine-learning model taking as an input at least the request of the user for the messaging application to perform the specific action.
82 . The system of claim 77 , wherein:
the suggestion machine-learning model takes as an input at least a content from a device associated with the user;
the content is based on a context of the user; and
the context of the user comprises at least one of information on interactions of the user with one or more other users, one or more external conditions, one or more schedules of the user, or an activity of the user.
83 . The system of claim 77 , the operations further comprising performing, by the bot, the specific action in a particular style.
84 . The system of claim 83 , wherein the particular style comprises one of a formal style, a playful style, a neutral style, or an emoji style.
85 . The system of claim 77 , wherein the messaging application is accessed on the system, and:
the accessing of the messaging application comprises a virtual implementation of the messaging application; and
the messaging application is implemented on a connected device, the connected device communicatively coupled to the system.
86 . The system of claim 77 , the operations further comprising, responsive to receiving the user input indicating approval of the access to the user data associated with the user, storing the user data in:
the memory of the system, wherein the messaging application is accessed on the system; or
a memory of a connected device, wherein the connected device is communicatively coupled to the system.
87 . The system of claim 77 , wherein the messaging application is accessed on the system, wherein the system is one of:
a camera;
a laptop computer;
a tablet computer;
a mobile telephone;
a wearable device;
a mobile email device;
a portable game player payer;
a portable music player;
a reader device;
a head-mounted display;
a smartwatch;
a smart wristband;
headphones; or
a first electronic device and a second electronic device, the first electronic device comprising the memory and communicatively coupled to the second electronic device, the second electronic device configured to receive the user input.
88 . The system of claim 77 , wherein the bot is in communication with one or more other messaging applications, the one or more other messaging applications different from the messaging application.
89 . The system of claim 77 , wherein the specific action is an action of a second bot, the second bot different from the bot.
90 . The system of claim 89 , wherein the second bot is not accessed by the messaging application.
91 . The system of claim 77 , wherein the specific action is providing one or more of an information, a travel function, a request for a taxi service, a coaching, a tutoring, an implementation of a game, a commerce action, or an interfacing.
92 . The system of claim 91 , wherein the information is based on an internet search.
93 . The system of claim 91 , wherein the travel function comprises:
a purchase of a ticket; or
a making of a reservation.
94 . The system of claim 91 , wherein the interfacing comprises:
accessing a remote device; and
performing a remote action on the remote device, the remote action on the remote device comprising one or more of:
chatting with the remote device;
retrieving information from the remote device; or
providing instructions to the remote device.
95 . The system of claim 94 , wherein the remote device is a vehicle.
96 . The system of claim 77 , wherein the instructions further cause the one or more processors to determine, by the bot, an intent of the user, wherein the suggestion to perform the specific action is further based on the intent of the user.
97 . The system of claim 96 , wherein the determination of the intent of the user is based on a context of a conversation of the user.
98 . The system of claim 77 , wherein:
the instructions further cause the one or more processors to receive, by the messaging application, a command of the user to access a specific bot from among a plurality of available bots;
the bot comprises the specific bot from among the plurality of available bots; and
the accessing of the bot is responsive to the command of the user.
99 . The system of claim 98 , wherein the command of the user to access the specific bot from among the plurality of available bots comprises one of a text input or a voice input.
100 . The system of claim 77 , wherein the request of the user to perform the specific action and the user input indicating approval of the access to the user data associated with the user are a same input from the user.
101 . The system of claim 77 , wherein:
the messaging application comprises a conversation between the user and at least one other person; and
the instructions further cause the one or more processors to suggest, by the messaging application and in the conversation, an invocation of the bot.
102 . The system of claim 77 , wherein the user data is one or more of a location data, a payment information, or a contact information.
103 . The system of claim 102 , wherein:
the user data is the location data; and
the specific action is based on a proximity to a location, the location based on the location data.
104 . The system of claim 103 , wherein the suggestion to perform the specific action comprises a recommendation for a service within the proximity.
105 . The system of claim 77 , wherein the prediction is based at least in part on a natural language processing.
106 . The system of claim 77 , wherein:
the messaging application is accessed on the system; and
the suggestion to perform the specific action is a suggested response to a message in the messaging application, the message from a second user device.
107 . The system of claim 77 , wherein the specific action is a translation.
108 . The system of claim 77 , wherein the suggestion to perform the specific action comprises one or more of a text, an image, a link, an emoji, or a multimedia component.
109 . The system of claim 77 , further comprising one or more modules and wherein the performing of the specific action by the bot is performed by one of the one or more modules of the system, wherein the messaging application is accessed on the system, the module being different than the bot.
110 . The system of claim 109 , wherein the bot is a first bot and the one of the one or more modules is a second bot, the second bot:
implemented on the system; or
implemented on a connected device and accessed on the system, wherein the connected device is communicatively coupled to the system.
111 . The system of claim 77 , wherein:
the messaging application is implemented on the system; and
the bot is accessed on the system and implemented on a connected device, the connected device communicatively coupled to the system.
112 . The system of claim 77 , wherein:
the messaging application is implemented on the system; and
the bot is implemented on the system.
113 . The system of claim 77 , wherein:
the messaging application is accessed on the system and implemented on a connected device, the connected device communicatively coupled to the system; and
the bot is implemented on the system.
114 . The system of claim 77 , wherein:
the messaging application is accessed on the system and implemented on a connected device, the connected device communicatively coupled to the system; and
the bot is accessed on the system and implemented on the connected device.