BACKGROUND

Automated assistants can be interacted with by a user via a variety of computing devices, such as smartphones, tablet computers, wearable devices, automobile systems, standalone personal assistant devices, and so forth. The automated assistants receive input from the user (e.g., spoken, touch, and/or typed) and respond with responsive output (e.g., visual and/or audible).

A user can interact with an automated assistant to cause the automated assistant to perform action(s) on behalf of the user. As one example, the automated assistant can place telephone calls on behalf of the user to perform a given action, and can engage in a dialog with an additional user to perform the action(s). For instance, a user can provide inputs that request the automated assistant inquire about an item or service over the phone and on behalf of the user. The automated assistant can initiate an automated telephone call with a particular entity associated with the item or service, and can provide information to an additional user associated with the particular entity to make the inquiry. The automated assistant can then notify the user of a result of the automated telephone call and/or search results associated with the particular entity can be updated based on the result.

However, for some action(s) performed by the automated assistant on behalf of the user, the particular entity may be unable to fully satisfy a request of the user, resulting in wasted computational and/or network resources utilized in performing the action(s). As one example, assume the automated assistant is making the inquiry over the phone and on behalf of the user as described above, and further assume an additional user associated with the particular entity indicates that the item or service is not available. Some automated assistants can determine that the item or service is not available, and simply provide a notification to the user that reflects that the item or service is not available. Accordingly, the computational and/or network resources utilized in performing the automated call are wasted. Further, the user may manually make other telephone call(s) to other entities and/or cause the automated assistant to make other automated telephone call(s) to other entities in an attempt to satisfy the request, causing yet further usage of computational and/or network resources. Yet further, other user(s) may make manual and/or automated calls to the particular entity with the same or similar request that cannot be satisfied by the particular entity, resulting in yet further usage of computational and/or network resources.

SUMMARY

Implementations are directed to using an automated assistant to initiate and perform automated telephone call(s). In some implementations, the automated telephone call(s) can be initiated and performed in response to a request to initiate and perform the automated telephone call(s). The automated assistant can identify a group of entities associated with the request, and can initiate a corresponding automated telephone call with one or more of the entities of the group to perform an action associated with the request. Further, the automated assistant can perform the action associated with the request through rendering instance(s) of synthesized speech related to the request. At least some of the instance(s) of synthesized speech can be generated based on the request and based on processing response(s), during the automated telephone call, that are from a representative of the entity that is participating in the telephone call.

In some implementations, the request to initiate and perform the automated telephone call(s) can be based on analyzing query activity of a plurality of users. The automated assistant can identify, based on analyzing the query activity, term(s) corresponding to an item of interest or service that are included in a threshold number of queries (and optionally across a threshold duration of time). In response to identifying that the term(s) corresponding to the item of interest or the service are included in the threshold number of queries (and optionally across the threshold duration of time), the automated assistant can identify the group of entities associated with the item of interest or service in one or more databases. For example, assume that there is a surge in queries for toilet paper. In this example, the request can be a request for a status update regarding toilet paper at each of the entities of the group, and each of the entities can be identified based on the entities being stored in association with a toilet paper item. In some versions of those implementations, the entities included in the group may be restricted to a particular geographical area from or near (e.g., within 10 miles, 50 miles, or other distance threshold) which the analyzed queries of the query activity originated and/or restricted to a particular type of entity or entities (e.g., pharmacies, supermarkets, convenience stores, grocery stores, etc.) stored in association with the item of interest. Continuing with the above example, further assume that the recent surge of the queries originate from Jefferson County, Ky. In this example, the entities included in the group can be restricted to those that are physically located in Jefferson County, Ky., (or within a threshold distance thereof) and that are stored in association with the toilet paper item. The automated assistant can also intelligently identify the corresponding meaningful types of entities relevant to the item of interest. Continuing the above example, the automated assistant can identify that toilet paper is predominantly sold at entities like supermarkets, convenience stores, grocery stores, etc., and the relevant stores in Jefferson County, Ky. would be included in the group of entities.

In some versions of those implementations, each of the entities of the group may be called in parallel using instance(s) of the automated assistant. During each of the automated telephone call(s), the action associated with the request can be performed through rendering the instance(s) of the synthesized speech (e.g., requesting the status update), and information can be received from a representative associated with a corresponding one of the entities responsive to the synthesized speech. Further, the automated assistant can determine a temporal delay before initiating a subsequent additional corresponding automated telephone call with the given entity to perform the action again. Moreover, the automated assistant can initiate the subsequent additional corresponding automated telephone call with the given entity to perform the action again responsive to determining that the temporal delay has lapsed.

For example, assume the request is a request for a status update regarding toilet paper at each of the entities of the group, and assume that the representative associated with the given entity indicates that the given entity has enough toilet paper to last for three days. In this example, the automated assistant can assign a time period of 72 hours as the temporal delay based on the information received form the representative. Accordingly, the automated assistant will not initiate a subsequent corresponding automated telephone call with the given entity until the time period of 72 hours has lapsed. In contrast, assume that the representative associated with the given entity indicates that the given entity might not have enough toilet paper to last the rest of the day. In this example, the automated assistant can assign a time period of four hours as the temporal delay based on the information received form the representative. Accordingly, the automated assistant will initiate a subsequent corresponding automated telephone call with the given entity later that same day. In these and other manners, a corresponding temporal delay can be dynamically determined for each entity based on information received during automated telephone call(s) with the entity. Dynamically determining the temporal delay in such manners can balance the technical benefits achieved with maintaining up-to-date information from the entity with the resources utilized in initiating and performing the automated telephone call(s). Put another way, dynamically determining the temporal delay can prevent another automated phone call to the entity from being performed too quickly, which leads to unnecessary utilization of computational and/or network resources—while ensuring that information from the entity is up-to-date.

In other implementations, the request to initiate and perform the automated telephone call(s) can be based on user input from a user of a computing device associated with the automated assistant. The automated assistant can identify, based on processing the user input, an item of interest or service associated with the request. In response to identifying the item of interest or the service in the user input, the automated assistant can identify the group of entities associated with the item of interest or service in one or more databases. For example, assume the user of the computing device provides user input of “find me a roofer”. In this example, the request can be a request for availability regarding a roofer from each of the entities of the group, and each of the entities can be identified based on the entities being stored in association with a roofing item. In some versions of those implementations, the entities included in the group may be restricted to those within a threshold distance of a location of the computing device of the user. Continuing with the above example, the entities included in the group can be restricted to those that are within ten miles of the location of the computing device of the user, and that are stored in association with the roofing service. If there are no entities included in the group, then the threshold distance may be increased until one or more entities are included in the group.

In some versions of those implementations, each of the entities of the group may be called in a staggered manner using instance(s) of the automated assistant. The automated assistant can initiate a first automated telephone call with a first one of the entities of the group. The action associated with the request can be performed through rendering the instance(s) of the synthesized speech (e.g., requesting the status update, requesting availability of the service, and/or other actions), and information can be received from a representative associated with the first entity of the group responsive to the synthesized speech. Further, the automated assistant can determine a call initiation time associated with each of the other entities of the group. As described in greater detail herein (e.g., with respect toFIG. 1), the call initiation time can be a set duration of time after initiating each of the automated telephone call(s), determined based on historical call data associated with each of the entities of the group, determined based on progress on the automated telephone call(s), and/or other data related to the automated telephone call(s). The automated assistant can continue initiating the automated telephone call(s) with the entities of the group until the request is satisfied.

Moreover, the automated assistant can generate notification(s) based on a result of one or more of the automated telephone call(s), such that one or more notifications can be rendered for each of the automated telephone calls initiated and performed by the automated assistant. Further, the automated assistant can cause the computing device of the user to audibly and/or visually render the notification(s) at the computing device of the user. In some further versions of those implementations, the notification(s) can include prompt(s) requesting that the user of the computing device authorize providing of user information to the representative associated with the given entity. As described herein, in various implementations the call initiation times utilized in staggering the automated calls can be determined in view of seeking to lessen latency with which the notification(s) are provided and/or to lessen the overall duration of the interaction of the user with the automated assistant. In many of those implementations, the call initiation times are further determined in view of seeking to mitigate unnecessarily calling and/or unnecessarily prolonging call duration with a later called entity or entities (e.g., in the situation where an earlier called entity can satisfy the action). Determining the call initiation times in such manner(s) can balance the technical benefits achieved with lessening latency and/or interaction duration with the resources utilized in performing automated telephone calls.

In various implementations, the result(s) associated with the entities of the group can be updated based on the information obtained during the automated telephone call(s). For example, assume that the request is a request for a corresponding status update regarding a toilet paper item that originates from an information retrieval system like a search interface. Further assume first information received from a first representative associated with a first entity indicates that the first entity has enough toilet paper to last for three days, and that second information received from a second representative associated with a second entity indicates that the second entity might not have enough toilet paper to last the rest of the day. In this example, the result(s) associated with the first entity and the second entity can be updated to include a respective indication of the information received during the automated telephone call(s). In some versions of those implementations, the updated result(s) may further include a temporal indication of when the information was received. In these and other manners, users are provided with an indication of information for an entity, and optionally a temporal indication of the information, which can at least selectively prevent the user from manually calling the entity to seek such information and/or causing an automated call to be initiated for the entity to seek such information and/or can mitigate risks of a user travelling to and from a location associated with an entity. At least in the aggregate and across a large population of users, this can lessen the overall quantity of phone calls to the entity, thereby conserving network resources and/or computational resources that would otherwise be utilized in such calls.

The above description is provided as an overview of only some implementations disclosed herein. Those implementations, and other implementations, are described in additional detail herein.

