On-demand delivery service synchronized with virtual events while maintaining the privacy of participants' personal information.
The service platform synchronizes on-demand delivery services with virtual events by coordinating delivery services and anonymizing personal information, addressing the challenge of protecting user privacy during event coordination.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- CREMA SOCIAL INC
- Filing Date
- 2024-04-10
- Publication Date
- 2026-05-13
AI Technical Summary
Existing social platforms lack tools to coordinate the delivery of products and services with virtual events while protecting participants' sensitive personal information from being shared among users.
A service platform that synchronizes on-demand delivery services with virtual events by identifying suitable delivery services for multiple locations, ensuring products are delivered within a specified period, and initiating a video conference without sharing participants' sensitive data, using anonymization techniques to protect privacy.
Coordinates product and service delivery to different locations for virtual events, ensuring timely delivery and protecting participants' sensitive information, thereby enhancing user privacy and event synchronization.
Smart Images

Figure 2026514730000001_ABST
Abstract
Description
Technical Field
[0001] Aspects and embodiments of the present disclosure relate to on-demand delivery services, and more particularly, to synchronizing on-demand delivery services with virtual events while maintaining the privacy of participants' personal information.
Background Art
[0002] Platforms such as social media platforms can include web-based applications or mobile applications that allow users to create content, share it with other users within a virtual community, and interact with each other. These platforms can facilitate various forms of communication such as text, images, videos, and links, enabling users to connect with friends, family, colleagues, and communities of interest.
Summary of the Invention
[0003] The following is a simplified summary of the present disclosure to provide a basic understanding of some aspects of the present disclosure. This summary is not an extensive overview of the present disclosure. It is not intended to identify key or essential elements of the present disclosure, nor to define the scope of particular embodiments or the scope of the claims of the present disclosure. The sole purpose of this summary is to present some concepts of the present disclosure in a simplified form as a prelude to the more detailed description that follows.
[0004] A part of the present disclosure is a method for coordinating an event with the delivery of a product or service to different locations. The method includes a processing unit receiving a first instruction that a first product has been delivered via a first delivery service to a first location corresponding to a first user associated with a first user account of a service platform. The method further includes receiving a second instruction that a second product has been delivered via a second delivery service to a second location corresponding to a second user associated with a second user account. The method further includes determining, based on the first and second instructions, that the first and second products have been delivered within a first period related to the event. In response to determining that the first and second products have been delivered within the first period, the method further includes initiating a video conference for the event among multiple participants, including the first and second users.
[0005] In one embodiment, the method further includes receiving an expression of consent from a first user account for an event between a first user associated with the first user account and a second user associated with a second user account.
[0006] In one embodiment, the method further includes identifying a first delivery service based on a first location corresponding to at least the first user, and identifying a second delivery service based on a second location corresponding to at least the second user, in response to an expression of acceptance of an event between a first user associated with a first user account and a second user associated with a second user account.
[0007] In one embodiment, the method further includes selecting a first product identifier corresponding to a first product from a first set of product identifiers related to products available for delivery by a first delivery service, and selecting a second product identifier corresponding to a second product from a second set of product identifiers related to products available for delivery by a second delivery service.
[0008] In one embodiment, the method further includes sending a first request to a first delivery service for delivery of a first product to a first location corresponding to a first user within a first period, and sending a second request to a second delivery service for delivery of a second product to a second location corresponding to a second user within a first period.
[0009] In one embodiment, the method further includes estimating a lead time that reflects the estimated time from the time a first request for delivery of a first product is sent until the first product is delivered, based on historical data related to a first delivery service, and determining a third period during which a first request for delivery of a first product should be sent, based on the first period and the estimated lead time, wherein the first request for delivery of a first product is sent during the third period.
[0010] In one embodiment, the method further includes identifying one or more delivery services available for delivery to a first location corresponding to a first user; identifying a plurality of products available for delivery to the first location by one or more delivery services; providing identifiers for the plurality of products available for delivery to the first location to a first user account for selection; receiving from the first user account a selection of first product identifiers from the plurality of product identifiers relating to a first product; and selecting a first delivery service from one or more delivery services based on the selection by the first user account.
[0011] In one embodiment, identifying a plurality of products available for delivery to a first location by one or more delivery services further includes identifying a plurality of products based at least in part on user preferences associated with a second user account.
[0012] In one embodiment, the method further includes determining that a first delivery service is unable to deliver a first product within a first period of time, and, in response to the determination that the first delivery service is unable to deliver the first product within a first period of time, sending a third request to an alternative delivery service to deliver an alternative product to a first location corresponding to a first user within a first period of time.
[0013] In one embodiment, the first period is an initial target period, and the first period is delayed for a certain period of time, the delayed period relating to at least one of the following: a delay in the delivery of the first product, an agreement between the first user and the second user to delay an event, or a delay in the attendance of the first user.
[0014] In one embodiment, the delay period is related to a delay in the delivery of a first product, and the method further includes delaying the start of a video conference based on the delay period.
[0015] In one embodiment, the method further includes providing a first user account associated with a first user, a first notice that a second product has been delivered to a second location corresponding to a second user, the first notice being anonymized to include personal information relating to the second user, including a second location and the name of the second user; and providing a second user account associated with a second user, a second notice that a first product has been delivered to a first location corresponding to a first user, the second notice being anonymized to include personal information relating to the first user, including a first location and the name of the first user.
[0016] In one embodiment, the method further includes identifying an event-related problem and providing a third notice relating to resolving the problem, the third notice identifying the problem, proposing a solution to the problem, and at least partially anonymizing personal information relating to a first user, to a second user account relating to a second user.
[0017] In one embodiment, the method further includes delaying the start of a video conference based on a problem.
[0018] Further aspects of the present disclosure provide a system including a memory and a processing unit coupled to the memory that performs a method according to any aspect or embodiment described herein. Further aspects of the present disclosure provide a computer-readable medium containing instructions that cause the processing unit to perform an operation including a method according to any aspect or embodiment described herein in response to execution by the processing unit.
[0019] The aspects and embodiments of this disclosure will be better understood from the detailed description below and the accompanying drawings of various aspects and embodiments of this disclosure, but these should be construed as being for illustrative and understanding purposes only and not as limiting this disclosure to specific aspects or embodiments. [Brief explanation of the drawing]
[0020] [Figure 1] This figure shows examples of system architectures according to some embodiments of the present disclosure.
[0021] [Figure 2A] This is a sequence diagram of an example interaction in which an on-demand delivery service is synchronized in relation to a virtual event, according to one embodiment. [Figure 2B] This is a sequence diagram of an example interaction in which an on-demand delivery service is synchronized in relation to a virtual event, according to one embodiment. [Figure 2C] This is a sequence diagram of an example interaction in which an on-demand delivery service is synchronized in relation to a virtual event, according to one embodiment.
[0022] [Figure 3] Examples of graphical user interfaces for client devices according to some embodiments of this disclosure.
[0023] [Figure 4A]A flowchart of an example of a method for synchronizing an on-demand delivery service in relation to a virtual event, according to some embodiments of the present disclosure. [Figure 4B] A flowchart of an example of a method for synchronizing an on-demand delivery service in relation to a virtual event, according to some embodiments of the present disclosure.
[0024] [Figure 5] A block diagram showing an exemplary computer system according to some embodiments of the present disclosure.
MODE FOR CARRYING OUT THE INVENTION
[0025] The embodiments described herein relate to a method and system for synchronizing an on-demand delivery service with a virtual event.
[0026] Some social platforms and similar systems can facilitate connections among people within geographically dispersed communities. Users of social platforms can connect in a peer-to-peer relationship, such as a group of friends sharing photos or other media items via the Internet. However, such social platforms do not provide tools that enable users of the platform to coordinate the delivery of products and / or services with virtual events that implement video conferencing.
[0027] For example, users on some social platforms can connect in an influencer-follower relationship, where one or more follower users consume content created by an influencer user. An influencer user could be, for example, a creator (e.g., artist, actor, musician) or a politician. While some social systems may encourage follower users to interact with influencer users or share experiences, it can be difficult for follower users to gain the influencer's attention, as many other follower users are also competing for the same attention. Similarly, influencer users may find it difficult to select and connect with a select few fans within their limited schedules. In peer-to-peer and influencer-follower connections, users may want to plan virtual synchronous events, such as video chats over meals or coffee, but it can be difficult to coordinate schedules to ensure products or services are delivered simultaneously before or during shared events.
[0028] In many cases, sensitive data, such as personal data, is used to coordinate the delivery of products and / or services with virtual events. For example, to deliver food to an individual, their delivery address and phone number are often essential information. When scheduling a video conference, a user's email address and / or full name may be used and shared among participants. In many cases, it is undesirable to share sensitive data with other parties, such as other users on social platforms. It is desirable to have a system in place that can protect personal sensitive data from being shared with other users when coordinating the delivery of products and / or services with virtual events.
[0029] Aspects of this disclosure address the above and other challenges by providing a service platform that facilitates the coordination of product and / or service delivery with virtual events while keeping sensitive data of virtual event participants private. In some embodiments, the service platform may receive requests from a first user account to schedule events with other user accounts on the service platform. In some embodiments, an event such as a meal event may include delivering food to each participant located in a separate geographical location (e.g., a different city or country) where the participants "eat together" and interact via video conferencing. An event may mean a planned event or occurrence that is often organized with a specific purpose (e.g., a cooking event, a lunch event, etc.). An event may often be conducted virtually with participants using video conferencing technology (e.g., a virtual event). For example, the first user account may be a follower account and the other user account may be an influencer account. The first user may invite followers to a meal event hosted by a follower user.
[0030] In some embodiments, the service platform may, in response to receiving an expression of acceptance for an event, identify a first delivery platform (e.g., a delivery service) for a first location corresponding to a first user's location, and a second delivery platform for a second location corresponding to a second user's location. In some embodiments, the identification of delivery platforms may be partially performed by machine learning techniques. The service system may keep location information confidential and not share it with other participants. In some embodiments, the service system may identify (e.g., via application programming interface (API) calls to the delivery platforms) first products (e.g., food items such as meals) that the first delivery platform can deliver to the first location within a specified period (e.g., a time window), and second products that the second delivery platform can deliver to the second location within a specified period. In some embodiments, the first and / or second products may be filtered based on user preferences or one or more service platform logic to identify a subset of products suitable for delivery to the first and / or second locations. In some embodiments, instructions for identified products (or filtered products) can be sent to each client device for selection by a first user and / or a second user.
[0031] In some embodiments, after the service platform receives product selections from a first user device and / or a second user device, it may send requests (e.g., via API calls) to the first and / or second delivery platforms to schedule the delivery of each product so that the products are delivered to both the first and second locations within a first period of time.
[0032] In some embodiments, the service platform can monitor product delivery to a first location and a second location, and / or send updates on delivery status to a first client device associated with a first user and / or a second client device of a second user. In some embodiments, if the service platform identifies that either the first or second product will not be delivered within a first period, it can initiate delivery of an alternative product from an alternative delivery platform so that an alternative product (e.g., a meal) can be delivered within the first period. In some embodiments, if it is determined that at least one of the first or second product cannot be delivered (or appropriately rescheduled) within a specified period, the service platform can initiate a rescheduling operation.
[0033] In some embodiments, the service platform may initiate a video conference between participants (e.g., a first user and a second user) and start an event in response to determining that a first product and a second product have been delivered to their respective first and second locations. In some embodiments, the service platform does not share participants' email addresses or names with other participants in the event.
[0034] In some embodiments, the service platform may require participants to confirm that each product has been delivered to them. For example, the service platform may request a photograph or short video (e.g., via video conferencing) showing the participant and the product received.
[0035] In some embodiments, a video conference may be delayed due to delays in the delivery of products and services, agreements between users to delay an event, late arrival of one or more users, or other reasons. The service platform may decide to delay the start of a video conference based on the reasons mentioned above. The service platform may provide users with a notification regarding the problem or other reason for delaying the video conference. This notification may identify the (one or multiple) problem, suggest a solution, and, if necessary, anonymize personal information related to other users.
[0036] In some embodiments, the service platform may provide a user account with a notification that a product or service (e.g., a gift) has been delivered to a second user at the second user's location. This notification may anonymize personal information related to the second user, such as name and location.
[0037] As described above, the technical challenge addressed by the embodiments of this disclosure is the synchronization of on-demand delivery services with virtual events.
[0038] Another technical challenge addressed by embodiments of this disclosure is protecting sensitive information of participants in virtual events synchronized with delivery services.
[0039] Technical solutions to the technical challenges identified above include implementing a service (e.g., a service platform) that synchronizes delivery services to deliver products and / or services to different locations within a specified period, and initiating a video conference among participants in response to determining that products and / or services have been delivered to different locations within a specified period. Another technical solution is a service platform that facilitates coordination between the delivery of products and / or services and the virtual event without sharing participants' sensitive data among other participants of the virtual event. A technical solution could also be one or more notices that anonymize personal information to protect the personal information of virtual event participants.
[0040] Therefore, one technical benefit is the provision of a system that coordinates the delivery of different products and services to users in different geographical locations using different vendors and / or delivery services for each user, with the initiation of virtual events via video conferencing. Another technical benefit is the protection of sensitive information of virtual event participants.
[0041] Figure 1 shows an example system architecture 100 according to several embodiments of the present disclosure. The system architecture 100 (also referred to herein as the “System”) includes one or more client devices 110A to Z, one or more servers 120 to 140, a data store 106, and a network 104.
[0042] In one embodiment, network 104 may include a public network (e.g., the Internet), a private network (e.g., a local area network (LAN) or wide area network (WAN)), a wired network (e.g., an Ethernet network), a wireless network (e.g., an 802.11 network or a Wi-Fi network), a cellular network (e.g., a Long-Term Evolution (LTE) network), routers, hubs, switches, server computers, and / or combinations thereof.
[0043] In some embodiments, the datastore 106 is persistent storage capable of storing content items (such as user profiles and addresses, user content, and user orders for products and services) and data structures that tag, organize, and index the content items. The datastore 106 can be hosted by one or more storage devices such as main memory, magnetic or optical storage-based disks, tapes or hard drives, NAS (Network Attached Storage), or SAN (Storage Area Network). In some embodiments, the datastore 106 may be a network-attached file server, while in other embodiments, the datastore 106 may be any other type of persistent storage, such as object-oriented databases and relational databases, that can be hosted over the network 104 by the service platform 122, or by one or more different machines (e.g., servers 120-140) coupled to the service platform 122.
[0044] Client devices 110A to Z may include computer devices of types such as desktop personal computers (PCs), laptop computers, mobile phones, tablet computers, netbooks, display terminals and smart devices, smart home devices, virtual assistants, virtual personal assistants, wearable devices (e.g., smartwatches, smart glasses, etc.), network-connected televisions, and smart home appliances (e.g., video doorbells). In some embodiments, client devices 110A to Z may also be referred to as “user devices”.
[0045] In some embodiments, one or more of the server machines 120-160 (also referred to herein as “(single or multiple) servers”) may be, or include, one or more computer devices (such as rack-mount servers, router computers, server computers, personal computers, mainframe computers, laptop computers, tablet computers, or desktop computers), data stores (e.g., hard disks, memory, databases), networks, software components, or hardware components that can be used to provide access to content items to client devices 110A-Z or to receive content items from client devices 110A-Z. For example, a service platform 122 on server 120 may send schedule availability, event requests, available products and services, delivery tracking information, etc., to client devices 110A-Z. In another example, a service platform 122 on server 120 may receive schedule information, event requests, product and service orders, etc., from client devices 110A-Z. In some embodiments, servers 120-160 may provide or facilitate services to and / or between entities of client devices 110A-Z. For example, the delivery platform 132A may be a third-party provider of services to the service platform 122. Servers 120-160 may also include a website (e.g., a web page) or application backend software that can be used to provide the content and services described herein to client devices 110A-Z. In some embodiments, platforms 122-142 can be distributed across multiple servers. For example, the service platform 122 can be distributed across multiple servers 120 (not shown).
[0046] In some embodiments, a “user” or “stakeholder” may be represented as a single individual (e.g., a friend, influencer, or creator, or a follower). In some embodiments, a “user” or “stakeholder” may be represented as a group of individuals (e.g., a group of followers) or an entity (e.g., a vendor or delivery service provider). In some embodiments, a user may be associated with qualifying activities. For example, a user may be required to provide sample work to a prospective influencer or creator, or to demonstrate a threshold number of followers on another platform. In another example, a user may be required to provide some form of identification, such as a photo ID or a live video of the user’s face, before they can interact with an influencer or another user.
[0047] Server 120 includes a service platform 122 that can connect one or more client devices to other client devices and / or one or more services provided on the service platform 122, and / or coordinate or facilitate the delivery of services or products provided by other platforms. For example, the service platform 122 may include a social media platform. In some embodiments, the service platform 122 may include one or more services for providing event scheduling, synchronizing on-demand delivery services in different locations in relation to events, and / or handling associated delivery delays. In some embodiments, the service platform 122 may be a first-party platform. Examples of ways in which the service platform 122 can perform to provide these features are described with reference to Figures 3A-3B. In some embodiments, the service platform may include communication interfaces such as API endpoints 124 for communicating with client devices 110A-Z (or their users) and service providers.
[0048] In some embodiments, API endpoint 124 (and other API endpoints shown in Figure 1) can be one end of a communication channel, with the other end being another system such as client devices 110A-Z. In some embodiments, API endpoint 124 can include resource locators such as universal resource identifiers (URIs) and universal resource locators (URLs) of servers or services, or API endpoint 124 can be accessed using such resource locators. API endpoint 124 can receive requests from other systems and, in some cases, can return responses containing information to fulfill the requests. In some embodiments, communication with API endpoint 124 can be done using HTTP (Hypertransfer Protocol) and HTTPS (Hypertext Transfer Protocol Secure) methods (e.g., API calls).
[0049] In some embodiments, the API endpoint 124 can function as a computer interface that mediates the reception and / or creation of access requests. In some embodiments, the API endpoint 124 may include a platform API that allows an external entity or system to request access to services and / or information provided by the service platform 122. The API can be used to programmatically retrieve services and / or information related to a request for services and / or information.
[0050] In some embodiments, client devices 110A-Z, servers 130A-130Z, and server 140 can access the service platform 122 through the network 104 using one or more application programming interface (API) calls via the platform API endpoint 124. Similarly, in some embodiments, the service platform 122 can access servers 130A-130Z and server 140 using one or more API calls via their respective API endpoints, and vice versa. In some embodiments, the service platform 122 may include multiple platform API endpoints 124 that expose the services, functions, or information of the service platform to one or more client devices 110A-Z.
[0051] In some embodiments, the APIs of platform API endpoint 124, API endpoints 134A-Z, and API endpoint 144 may be any preferred type of API, such as a REST (Representational State Transfer) API, a GraphQL API, a SOAP (Simple Object Access Protocol) API, and / or any preferred type of API. In some embodiments, the service platform 122 (or other platforms described herein) may expose through the APIs a set of API resources that can be used to request different actions when addressed, inspect state or data, and / or interact with the service platform 122 in a different way. In some embodiments, the REST API and / or other types of APIs may operate according to an application layer request and response model. The application layer request and response model may use HTTP (Hypertransfer Protocol), HTTPS (Hypertext Transfer Protocol Secure), SPDY, or any preferred application layer protocol. Here, an HTTP-based protocol is described for illustrative purposes only, not limitation. This disclosure should not be construed as being limited to the HTTP protocol. HTTP requests (or any preferred request communications) to service platform 122 (or any other platform described herein) can observe the principles of RESTful design or the type of API protocol. Hereinafter, RESTful is understood as describing a phenotypic state transfer architecture. RESTful HTTP requests can be stateless, and therefore each message conveyed contains all the information necessary for processing the request and generating a response. Platform APIs can include various resources that function as endpoints from which requested information can be specified or specific actions can be requested.Resources can be represented as URI paths or resource paths. Furthermore, RESTful API resources can also respond to different types of HTTP methods, such as GET, PUT, POST, and / or DELETE.
[0052] In some embodiments, users of the service platform 122 can access services of the service platform 122 through a user account, and / or the service platform 122 can coordinate users of the service platform 122 through a user account. In some embodiments, a user can be authenticated using user credentials such as a username and / or password and sign in to a user account. In some embodiments, after authentication, the service platform 122 can determine which (one or more) services and / or information the user account is allowed to access.
[0053] In some embodiments, the service platform 122 can provide services as described herein and / or coordinate services of different platforms (e.g., delivery platforms 132A-132Z and event platform 142) to serve client devices 110A-Z via their respective applications 112.
[0054] In some embodiments, the service platform 122 may include language translation capabilities for translating interactions between users, vendors, and delivery services that speak different languages. In some embodiments, a third-party translation service may provide language translation capabilities via an API (not shown) or the like.
[0055] Servers 130A-Z include delivery platforms 132A-Z that can deliver products and services to various geographical locations. In some embodiments, platforms 132A-Z coordinate delivery drivers to deliver products and services to one or more physical locations corresponding to one or more users. In some embodiments, platforms 132A-Z coordinate autonomous delivery of products and services using autonomous vehicles, drones, etc. Products and services may include physical goods and services (e.g., food, coffee, groceries, flowers, birthday party or entertainment services, etc.) and / or virtual goods and services (e.g., electronic gift cards, coupons, non-fungible tokens, etc.). In some embodiments, one client device from client devices 110A-Z (e.g., a client device associated with a user) or service platform 122 may communicate with delivery platforms 132A-Z to order or request products and services to be delivered, provide a delivery address, and track delivery progress. For example, service platform 122 may communicate with delivery platforms 132A-Z via API endpoints 134A-Z. In some embodiments, delivery platforms 132A-Z can receive orders for products and services on behalf of one or more vendors (not shown) and coordinate deliveries by forwarding the orders to each vendor at the appropriate time. In some embodiments, delivery platforms 132A-Z can receive only delivery requests and orders can be placed individually with (one or more) vendors, so that the ordering entity can coordinate between the vendors and the delivery services. In some embodiments, one or more of the delivery platforms 132A-Z can be provided by vendors (e.g., restaurants, grocery stores, flower shops, coffee shops, etc.), and each vendor can deliver the orders it receives for its products and services. In some embodiments, each delivery platform 132A-Z can serve different geographical areas, accommodate limited products and services, or distinguish these delivery platforms from the other delivery platforms 132A-Z in a different way.In some embodiments, delivery platforms 132A-Z may provide applications, websites, or other interfaces for client devices 110A-Z. In some embodiments, delivery platforms 132A-Z may be third-party platforms relating to service platform 122 (for example, platforms not owned or controlled by the user or service platform 122). In some embodiments, delivery platforms 132A-Z may be different third-party platforms. For example, third-party A may control delivery platform 132A and third-party Z may control delivery platform 132Z. In some embodiments, one or more of delivery platforms 132A-Z may be first-party platforms.
[0056] In some embodiments, a first party can mean an entity (e.g., a legal entity) that develops, owns, supports, and / or provides to users an application, program, or (one or more) service. Often, users access the service through a user account. In some embodiments, a third party can mean an external entity of the first party that develops, owns, or provides an application, program, or service. The third party may include an external entity independent of the first entity (e.g., outside the first party). The third party does not control the first party's application, program, or service.
[0057] Server 140 includes an event platform 142 that can schedule, host, and / or coordinate virtual events. For example, the event platform 142 may include one or more of the following: a video conferencing platform, an audio or VoIP platform, a chat platform, and a game platform. In some embodiments, client devices can communicate with the event platform 142 via a service platform 122 to schedule and / or participate in events. For example, the service platform 122 may communicate with the event platform 142 via an API endpoint 144. In some embodiments, the service platform 122 may communicate with the event platform 142 to host events so that event participants (e.g., client devices 110A-Z) communicate with server 120 and / or server 140 via network 104. In some embodiments, the service platform 122 may communicate with the event platform 142 to coordinate peer-to-peer events so that event participants (e.g., client devices 110A-Z) communicate directly with each other via network 104. In some embodiments, the event platform 142 can provide applications, websites, or other interfaces for client devices 110A-Z. In some embodiments, the interface of the event platform 142 can be embedded in a GUI associated with a service platform (as described, for example, with reference to Figure 3). In some embodiments, multiple event platforms 142 (each having its own server 140 and API endpoint 144) can be connected to the network 104. Each event platform 142 can provide different types of events (e.g., audio or video) and can use different protocols (e.g., streaming compression, encryption).Event platforms may or may not be compatible with each other. For example, a video connection can be established between two different platforms. In some embodiments, the event platform may be a first-party platform associated with the service platform. In some embodiments, the event platform may be a third-party platform not associated with the service platform.
[0058] Client devices 110A-Z may include applications 112 associated with the service platform 122, which may include a graphical user interface (GUI). Application 112 can receive input from the user, such as schedule availability, event requests, product and service orders, and messages to other users. Application 112 may present the user with information such as event requests, available products and services, delivery tracking information, and an event portal. In some embodiments, GUI components associated with the delivery platforms 132A-Z and / or the event platform 142 may be included in application 112. For example, application 112 may include an embedded delivery tracking map or an embedded video conferencing player. In such examples, the service platform 122 may retrieve GUI components and content from the delivery platforms 132A-Z and the event platform 142 via API endpoints 134A-Z and 144 and transfer the GUI components and content to application 112. In some embodiments, application 112 may direct the user to other applications or interfaces (e.g., websites) associated with the delivery platforms 132A-Z and / or the event platform 142, for example, using hyperlinks.
[0059] In some embodiments, one or more of the servers 130-160 or related platforms can be combined. For example, a service platform 122 on server 120 can provide an event platform 142. In another example, the service platform 122 can provide its own delivery platform while simultaneously coordinating with external delivery platforms 132A-Z.
[0060] Where the systems described herein collect or can use personal information about users, users can be given the opportunity to control whether platforms 122–142 collect user information (for example, information about the user's social networks, social actions or activities, occupation, user preferences, or current location), or whether and / or how they receive content from platforms 122–142 that may be highly relevant to them. They can also process such data in one or more ways so that personal information is deleted before certain data is stored or used. For example, a user's identity can be processed so that personal information cannot identify the user, or the geographical location of a user from which location information is obtained can be generalized (to city, zip code, or state level, etc.) so that the user's specific location cannot be identified. Thus, users can control how information about them is collected and used by platforms 122–142.
[0061] In some embodiments, the machine learning model (for example, also referred to herein as the “artificial intelligence (AI) model”) may include discriminative machine learning models (also referred to herein as the “discriminative AI model”), generative machine learning models (also referred to herein as the “generative AI model”), and / or other machine learning models.
[0062] In some embodiments, discriminative machine learning models can model the conditional probability of an output for a given (single or multiple) input. Discriminative machine learning models can learn the boundaries between different data classes and make predictions about new data. In some embodiments, discriminative machine learning models can include classification models designed for classification tasks, such as classifying input data into specific categories by learning decision boundaries between different data classes. Examples of discriminative machine learning models include, but are not limited to, support vector machines (SVMs) and neural networks.
[0063] In some embodiments, a generative machine learning model can learn how input training data was generated and generate new data (e.g., original data). A generative machine learning model can model the probability distribution of a dataset (e.g., a combined probability distribution) and generate new samples similar to the training data. Generative machine learning models can be used for tasks involving image generation, text generation, and / or data synthesis. Examples of generative machine learning models include, but are not limited to, Gaussian mixture models (GMMs), variational autoencoders (VAEs), generative adversarial networks (GANs), large-scale language models (LLMs), visual language models (VLMs), and multimodal models (text, image, video, audio, depth, physiological signals, etc.).
[0064] This specification describes the training of discriminative and generative machine learning models, as well as inference using them. For clarity, the training of discriminative and generative machine learning models, and inference using them are described separately. However, unless otherwise specified, it can be understood that the elements described for discriminative machine learning models can be applied to generative machine learning models, and vice versa.
[0065] In some embodiments, unless otherwise described, several elements of Figure 1, such as the training set generator 151 on server machine 150, the training engine 161 on server machine 160, and the model 170, can be applied to a discriminative machine learning model.
[0066] The server machine 150 includes a training set generator 151 that can generate training data (e.g., a training input set and a target output set) for training a model 170 (e.g., a discriminative machine learning model). In some embodiments, the training set generator 151 can generate training data based on various data (e.g., stored in data store 106, or another data store connected to system 100 via network 104). Data store 106 can store metadata related to the training data.
[0067] The server machine 160 includes a training engine 161 that can train a model 170 using training data from a training set generator 151. The model 170 (also referred to herein as a “machine learning model” or “artificial intelligence (AI) model”) can mean a model artifact created by the training engine 161 using training data that includes training inputs (e.g., features) and corresponding target outputs (the correct answers for each training input) (e.g., labels). The training engine 161 can provide a model 170 that discovers patterns in the training data that map training inputs to target outputs (predicted answers) and captures these patterns. The model 170 can be, for example, a single-level linear or nonlinear operation (e.g., a support vector machine (SVM)), or a deep network, i.e., a machine learning model composed of multiple levels of nonlinear operations. An example of a deep network is a neural network with one or more hidden layers, and such a machine learning model can be trained by adjusting the weights of the neural network according to, for example, a backpropagation learning algorithm. Model 170 can use one or more of the following: support vector machines (SVMs), radial basis functions (RBFs), clustering, supervised machine learning, semi-supervised machine learning, unsupervised machine learning, k-nearest neighbor algorithm (k-NN), linear regression, random forests, neural networks (e.g., artificial neural networks), boosted decision forests, etc. For convenience and not limitation, in the remainder of this disclosure describing discriminative machine learning models, we will refer to the implementation as a neural network, even if some implementations can employ other types of learning machines in place of or in addition to neural networks.
[0068] In some embodiments involving supervised machine learning models, one or more training inputs from a training input set are paired with one or more training outputs from a training output set. These (single or plural) training input-output pairs can be used as inputs to a machine learning model, for example, to help train the machine learning model to determine patterns in data.
[0069] In some embodiments, the training data, such as training inputs and / or training outputs, and / or input data to the trained machine learning model (collectively referred to herein as “machine learning model data”) may be preprocessed before providing the aforementioned data to the machine learning model (e.g., a trained or untrained machine learning model) for execution (e.g., a discriminative machine learning model and / or a generative machine learning model). Preprocessing applied to the machine learning model (e.g., a discriminative machine learning model and / or a generative machine learning model) may mean preparing and / or transforming the machine learning model data.
[0070] In some embodiments, preprocessing may include data scaling. Data scaling may include the process of transforming the numerical features of the raw machine learning model data so that the preprocessed machine learning model data has a similar scale or range. For example, raw machine learning models can be scaled using Min-Max scaling (normalization) and / or Z-score normalization (standardization). For example, if the raw machine learning model data includes features representing temperature in Fahrenheit, Min-Max scaling can be used to scale the raw machine learning model data to the range [0, 1].
[0071] In some embodiments, preprocessing may include data coding. Data coding may include the process of converting categorical or text data into a numerical format that can efficiently run machine learning models. Categorical data (e.g., qualitative data) can mean a type of data that represents a category and can be used to group items or observations into different non-numerical classes or levels. Categorical data can describe qualities or characteristics that can be divided into different categories but often do not have a natural numerical meaning. For example, colors such as red, green, and blue can be considered categorical data (e.g., nominal categorical data without inherent ranking). In another example, “small,” “medium,” and “large” can also be considered categorical data (ordinal categorical data with inherent ranking or order). An example of coding is coding size features by category [“small,” “medium,” “large”] by assigning 0 to “small,” 1 to “medium,” and 2 to “large.”
[0072] In some embodiments, preprocessing may include data embedding. Data embedding may include operations that represent the original data in a different space, often a lower-dimensional space (e.g., dimensionality reduction), while preserving relevant information and patterns of the original data (e.g., a lower-dimensional representation of high-dimensional data). Data embedding operations can transform the original data so that the embedded data retains relevant properties of the original data and is more readily adaptable to analysis and processing by machine learning models. In some embodiments, the embedded data may represent the original data (e.g., words, expressions, documents, or entities) as vectors in a vector space, such as a continuous vector space. Each element of the vector (e.g., a dimension) may correspond to a feature or property of the original data (e.g., an object). In some embodiments, the size of the embedding vector (e.g., the embedding dimension) may be adjusted during model training. In some embodiments, the embedding dimension may be fixed to help facilitate analysis and processing of the data by machine learning models.
[0073] In some embodiments, the training set is obtained from a server machine 120. The server machine 120 includes a service platform 122 that provides current data (e.g., user data, event data, delivery tracking data, etc.) as input to a trained machine learning model (e.g., model 170), and runs the trained machine learning model (e.g., model 170) based on this input to obtain one or more outputs.
[0074] In some embodiments, confidence data may include or indicate the confidence that a particular output (e.g., a single or multiple output) corresponds to one or more inputs of a machine learning model (e.g., a trained machine learning model). In one example, the confidence is a real number between 0 and 1, where 0 indicates no confidence that the output (single or multiple) corresponds to one or more particular inputs, and 1 indicates absolute confidence that the output (single or multiple) corresponds to one or more particular inputs. In some embodiments, the confidence data may be related to inference using the machine learning model.
[0075] In some embodiments, a machine learning model, such as Model 170, may be (or correspond to) one or more computer programs running on (one or more) processors of server machine 120 and / or server machine 160. In other embodiments, a machine learning model may be (or correspond to) one or more computer programs running across multiple server machines or combinations of server machines. For example, in some embodiments, the machine learning models may be hosted on the cloud, while in other embodiments, these machine learning models may be hosted and run using the hardware of client devices 110A-Z. In some embodiments, the machine learning model may be a self-hosted machine learning model, while in other embodiments, the machine learning model may be an external machine learning model accessed by an API.
[0076] Figures 2A to 2C are sequence diagrams of an example 200 of interactions between client devices 110A to B, a service platform 122, delivery platforms 132A to B, and an event platform 142 for synchronizing an on-demand delivery service with a virtual event, according to some embodiments of the present disclosure. In some embodiments, the operations shown in Figures 2A to 2C may occur in a different order than illustrated, or different components may perform these operations. Various embodiments may include further operations or components not shown in Figures 2A to 2C, a subset of the operations or components shown in Figures 2A to 2C, or different operations or components shown in Figures 2A to 2C. The operations shown in Figures 2A to 2C may correspond to different communication sessions or different timing intervals. For example, some operations may proceed rapidly or be part of a single communication session, while others may unfold over time or be part of different communication sessions. For illustrative purposes only, not limitation, the first user may be an influencer (influencing user), and the second user may be a following user. In some embodiments, the first and second users may be either type of user and / or have either type of relationship. For illustrative purposes only, not limitation, two users (and associated user accounts) are described. In some embodiments, two or more users may be part of a virtual event.
[0077] In operation 202, the first user accesses the service platform 122 via client device 110A using one or more user credentials that enable authentication for the first user. In response to successful authentication, this user can be associated with the first user account. Similarly, in operation 204, the second user accesses the service platform 122 via client device 110B using one or more user credentials that enable authentication for the second user. This user can be associated with the second user account. Figures 2A to 2C show two client devices 110A to 110B corresponding to two users, but various embodiments may include three or more users. In some embodiments, as described with respect to Figure 1, the first and second users (and any further users) may be any combination of users, such as one or more influencer users and one or more follower users or multiple friends or family members.
[0078] In some embodiments, users can indicate various preferences as described herein. User preferences can be stored and associated with each user account. For example, a first user can indicate food preferences or a maximum price limit associated with the first user account. In another example, a second user can indicate gift preferences or a minimum price limit associated with the second user account.
[0079] In some embodiments, users are required to complete qualification activities (for example, uploading creative content or providing influencer identification and verifying follower identities) before they can join the platform, create a user account, post event schedules, and / or send event invitations.
[0080] In operation 206, the first user provides the service platform 122 with a schedule of availability for a virtual event via the client device 110A. For example, an influencer user may provide a list of available time slots for an event (e.g., a lunch event) within the application 112 on the influencer user's client device. In some embodiments, the first user's schedule of availability can be broadcast to user accounts on the service platform 122. In some embodiments, the first user's schedule of availability can be provided to a number of user accounts selected based on one or more criteria. For example, the schedule of availability can be provided only to the first user's followers. In another example, the first user may specify which user accounts to provide their schedule of availability to. In some embodiments, the first user account may receive requests from other user accounts, such as a second user account, and provide the schedule of availability in response to the requests.
[0081] In operation 208, the service platform 122 provides the first user's schedule to the second user via the client device 110B. In the influencer / follower example, a follower user (or multiple follower users) can view the influencer user's availability within the application 112 on the follower user's client device and select available events, dates, and times to meet (for example, virtually meet) the influencer.
[0082] In operation 210, the client device 110B associated with the second user sends an invitation request to the service platform to invite the second user to a virtual event. In some embodiments, the second user creates an invitation to a virtual event between at least the first user and the second user via the client device 110B. For example, a follower user can send an invitation to the influencer user to match the influencer user's available time slots on the influencer user's schedule. In another example, the first user (e.g., the first friend) can send a calendar invite email containing the event, date, and time to the second user (e.g., the second friend). In some embodiments, the follower user can submit one or more event time and / or date suggestions. These event time and / or date suggestions may or may not be from the first user's available schedule. In some embodiments, a bidding or lottery system can be used to match the follower user to an event provided by the influencer user. Thus, it may not be necessary to send an invitation, or the sending of invitations may be disabled.
[0083] In operation 212, the service platform 122 provides an invitation to the first user via the client device 110A. In some embodiments, the invitation may include information such as one or more dates and / or times proposed for a virtual event.
[0084] In operation 214, the first user account provides a response to the invitation via client device 110A. In some embodiments, the response may include a refusal of the invitation. In some embodiments, the response may include an acceptance of the invitation to the service platform 122. The service platform 122 can then identify the date, time, and type of event (e.g., video conference, phone call) agreed upon by the parties. For example, the service platform 122 can identify the agreed event, date, and time when it receives confirmation of the above or other agreed event from application 112 and / or client devices 110A-Z, for example, via an API call to API endpoint 124. In some embodiments, the user may need to complete a transaction before they can schedule an event. For example, a follower user may need to pay a threshold amount of currency to schedule an event with an influencer user, a portion of which can later be used to pay for selected products and services from the influencer.
[0085] Proceeding to Figure 2B, in operation 222, the service platform 122 identifies a first delivery service associated with the delivery platform 132A based on the location corresponding to the first user and / or client device 110A. Similarly, in operation 224, the service platform 122 identifies a second delivery service associated with the delivery platform 132B based on the location corresponding to the second user and / or client device 110B. In some embodiments, multiple delivery services can be identified for each user and / or location.
[0086] In some embodiments, the first and second delivery services may be different delivery services. In some embodiments, the first and second delivery services may be the same delivery service. In some embodiments, the first and second locations may be located in the same or different geographical areas, such as cities, states, provinces, or countries. In some embodiments, the first delivery service may provide service to the first location (and associated geographical area) but not to the second location (and associated geographical area), and the second delivery service may provide service to the second location but not to the first location. For example, the first delivery service may be a domestic delivery service associated with one country, and the second delivery service may be a domestic delivery service associated with a second country. In some embodiments, the first delivery service may be one of several delivery services identified based on the first location. Similarly, the second delivery service may be one of several delivery services identified based on the second location.
[0087] In some embodiments, the service platform 122 may determine delivery services based on a location corresponding to the user, such as the user's physical address received in operation 202 or 204 when the user joins the platform, the user's physical address stored in the service platform 122 (or data store 106), the GPS location associated with the user's client device (e.g., client devices 110A-Z), and / or the location corresponding to the Internet Protocol (IP) address. For example, available delivery service providers can be identified based on the user's physical address / location, as well as the service area and business hours of the local delivery service provider. The service area can be queried from the delivery platform via APIs, such as API endpoints 134A-Z associated with the delivery platforms 132A-Z in Figure 1.
[0088] In some embodiments, the service platform 122 can use machine learning techniques to determine a delivery service. For example, the service platform 122 can train a machine learning model (e.g., model 170) to make a selection from available delivery services based on one or more input features such as location, event time, delivery service confidence, individual delivery service driver confidence, or selected product and service types (as described below). In some embodiments, the training inputs for training the machine learning model may include one or more locations, event time, delivery service confidence, individual delivery service driver confidence, or selected product and service types (as described below). In some embodiments, one or more training inputs may be paired with training outputs. In some embodiments, the training outputs may include instructions for delivery services. In some embodiments, the trained machine learning model can be used in inference. Inputs to the trained machine learning model may include one or more locations, event time, delivery service confidence, individual delivery service driver confidence, or selected product and service types. The outputs of the trained machine learning model may include instructions for delivery services and confidence levels that the delivery service can deliver the product or service.
[0089] In operation 226, service platform 122 requests a product and / or service identifier from delivery platform 132A associated with a first physical location corresponding to a first user. Similarly, in operation 228, service platform 122 requests a product and / or service identifier from delivery platform 132B associated with a second physical location corresponding to a second user. In some embodiments, the first and second physical locations are different locations. In some embodiments, the different physical locations may include one or more different countries, states, provinces, cities, and buildings. In some embodiments, the product identifier may correspond to menu information that can be queried by the delivery platform and other vendors via APIs, such as API endpoints 134A-Z associated with delivery platforms 132A-Z in Figure 1.
[0090] In operation 230, delivery platform 132A provides product and / or service identifiers to service platform 122 (for example, in response to operation 226). Similarly, in operation 232, delivery platform 132B provides product and / or service identifiers to platform 122 (for example, in response to operation 228).
[0091] In operation 234, the service platform 122 filters the product and / or service identifiers received from the delivery platforms 132A-B. In some embodiments, the service platform 122 filters the product and / or service identifiers based on the user's address stored in the service platform 122 (or data store 106), or on the location of a party, such as the GPS location associated with the user's client device (e.g., client devices 110A-Z), rather than based on the products available for delivery by a particular delivery service. For example, available restaurants can be identified based on the user's address / location, as well as the service area and opening hours of local restaurants.
[0092] In some embodiments, the service platform 122 filters product and / or service identifiers based on user preferences and configuration. For example, a user may indicate dietary preferences and restrictions (e.g., in application 112), and the service platform 122 may take this into consideration when determining available products and services. Based on the user's dietary preferences or restrictions (e.g., stored as user preference information), menu items retrieved from a delivery platform or restaurant (e.g., via API endpoints 134A-Z) can be further sorted or queried. When determining available products and services related to an event, other information may also be used, such as one or more of the user's price preferences, estimated delivery time, delivery service / driver reliability, seasonal availability of products and services, and the theme of the event. For example, the service platform 122 may identify multiple products that one or more delivery services can offer for delivery to a first physical location (corresponding to a first user related to a first user account), at least in part based on user preferences related to a second user account. For example, user preferences in a second user account, which can be used to filter products and / or services for a first user account, may include one or more of the following: price limits and desired themes (e.g., ethnic / cultural themes, holiday themes, etc.). In another example, an event coordinator or administrator (e.g., a third party such as an influencer manager or virtual stakeholder host) may specify an acceptable price range, preferred vendors or quality rankings, or a limited list of pre-selected items that attendees can order. Further examples include a follower user specifying a maximum price that an influencer will pay (e.g., because the follower user is making the payment), and similarly, an influencer user specifying a minimum price limit that a follower user must be willing to pay to schedule an event with the influencer user.
[0093] In some embodiments, available products and services can be determined and / or ranked based on the time of day at each user's location. For example, a scheduled event might take place during breakfast time for a first user and during dinner time for a second user. For the first user, breakfast food would likely be ranked higher than dinner food. For the second user, dinner food would likely be ranked higher than breakfast food. In some embodiments, different parties may have access to different products and services from different vendors that can be delivered by different delivery service providers. In some embodiments, the service platform 122 can determine only the products and services available to all parties involved in the event.
[0094] In some embodiments, the service platform 122 filters product and / or service identifiers based on user selection or other user input. For example, the service platform 122 may receive user selections from an order element 306, as described with reference to Figure 3. In some embodiments, the service platform 122 may determine a period (e.g., an order window) during which stakeholders select products and services for delivery based on a pre-agreed event time. For example, the service platform 122 may identify the expected delivery time for a particular delivery service or delivery driver and subtract the expected delivery time from the event time to determine a time cutoff for ordering from that delivery service. In another example, the cutoff may be set a certain time before the event, such as 24 hours before the event. In some embodiments, the period may be determined based on where the products and services must be delivered—before, during, or after the event. In some embodiments, the determined period may differ for different products and services. For example, the cutoff may be earlier for a florist far from the user and shorter for a fast-food restaurant near the user.
[0095] In operation 236, the service platform 122 provides a filtered product and / or service instruction related to the delivery platform 132A to a client device 110A associated with a first user. Similarly, in operation 236, the service platform 122 provides a filtered product and / or service instruction related to the delivery platform 132B to a client device 110B associated with a second user. In some embodiments, product and / or service instructions can be presented to the users of each client device for selection via an order element 306, which is described, for example, with reference to Figure 3. In some embodiments, the products and / or services are not filtered, and the service platform 122 provides unfiltered product and service instructions to one or more of the client devices 110A and 110B.
[0096] In some embodiments, the service platform 122 may further present available products and / or services to the user's device related to the user, enabling the user to select one or more backup products and / or services. Backup products and / or services are provided to the user in relation to (for example, simultaneously with) the primary products and services offered to the user within the order element 306 and selected by the user, and can be selected by the user. In some embodiments, available backup products and / or services may be provided and / or ranked based on whether the backup products and services are related to a different vendor or delivery service than the primary products and services, thereby providing improved backup options if the primary vendor or delivery service is unable to complete the primary order. In some embodiments, the service platform 122 may automatically select backup products and services on behalf of the user. For example, the service platform 122 may select the second-highest ranked product or service for the user, or the product or service closest to the primary product or service selected by the user within the order element 306.
[0097] In some embodiments, the service platform 122 can determine the latest availability or status of the specified products and / or services for one or more parties. For example, the service platform 122 can check that all products are available (for example, a few hours before or on the day of the event) and determine the latest delivery estimate. In some embodiments, the service platform 122 can also determine the latest availability or status of backup products.
[0098] Moving on to Figure 2C, in operation 242, the first user provides the service platform 122 with a selection of products and / or services based on filtered product and / or service instructions sent to the client device 110A via the client device 110A. Similarly, in operation 244, the second user provides the service platform 122 with a selection of products and / or services based on filtered product and / or service instructions sent to the client device 110B via the client device 110B.
[0099] In operation 246, the service platform 122 sends a request to the delivery platform 132A for delivery of products and / or services selected by a first user. Similarly, in operation 248, the service platform 122 sends a request to the delivery platform 132B for delivery of products and / or services selected by a second user. For example, processing logic can send requests (e.g., orders) through API endpoints 134A-Z in Figure 1. In some embodiments, the system places orders with a delivery service, and the delivery service coordinates with vendors (e.g., restaurants, florists) to fulfill the orders. In some embodiments, the system places orders with vendors, and the vendor coordinates with delivery services (e.g., external or internal to the vendor) to fulfill the orders. In some embodiments, the system can place orders with both vendors and delivery services and coordinate between the vendors and delivery services. In some embodiments, the system can select specific delivery drivers for the delivery service based on one or more of the driver's average delivery time, reliability, and any other metrics to ensure timely delivery of products and services. In some embodiments, the system can place orders with multiple delivery services and / or vendors (for example, delivery platforms 132A-Z as described with respect to Figure 1).
[0100] In one embodiment, the service platform 122 may estimate a lead time that reflects the estimated time from the submission of an order request to ship a product until the product is subsequently delivered, based on historical data related to delivery services 132A-B, in order to determine when operations 246-248 should be performed. Based on the event period and the estimated lead time, the service platform 122 may further determine a third period (one or multiple) during which an order request to ship a product should be submitted, during which the order request is submitted. The historical data related to delivery services 132A-B may include driver performance data related to one or more drivers for each delivery service. Driver performance data can be obtained via API endpoints 134A-B. In some embodiments, the service platform 122 may use a machine learning model (e.g., Model 170, a predictive model, etc.) to estimate the lead time based on various input features, such as historical data related to delivery services 132A-B. In some embodiments, a machine learning model can be trained on training inputs that include historical data related to one or more of the delivery services 132A-B in order to estimate the lead time. A training input can be paired with a training output. The training output may include one or more of the following: instructions for the time from order to delivery for a particular delivery service, locations associated with the delivery of products and / or services, and time periods associated with events. In some embodiments, the trained machine learning model can be used for inference. The trained machine learning model can receive an input that may include instructions for one or more delivery services 132A-B, locations associated with the delivery of products and / or services, and time periods associated with events. The output of the trained machine learning model may include identifiers for one or more delivery services 132A-B, lead times associated with each of the delivery services 132A-B, and confidence levels that each delivery service can deliver products and / or services over that period with that lead time.
[0101] In operation 250, the delivery platform 132A provides order tracking information to the service platform 122. Similarly, in operation 252, the delivery platform 132B provides order tracking information to the service platform 122. In some embodiments, the processing logic can track the delivery of products and services to all parties involved. For example, the system can query or receive tracking information and delivery instructions from the API endpoints 134A-Z in Figure 1. In some embodiments, the system can provide each user (for example, via a GUI) with live tracking updates that allow them to view the delivery progress of their own orders and / or other users' orders (as described with reference to Figure 4, for example).
[0102] In some embodiments, after an order for a first product has been placed, the service platform 122 may determine that the first delivery service is unable to deliver the first product within a first timeframe. For example, the service platform 122 may receive instructions from the first delivery service indicating that the driver is late or that the order has been canceled (for example, by the delivery service or vendor). In response to the determination that the first delivery service is unable to deliver the first product within a first timeframe, the service platform 122 sends a third request to the alternative delivery service to deliver a replacement product to a first location corresponding to the first user within a first timeframe. Thus, the replacement product can replace the first product of blocks 214-222. Similarly, the alternative delivery service can replace the first delivery service. Similar situations can occur for a second product and delivery service, as well as their respective replacements.
[0103] In the above example of a delivery failure scenario, the logic of the service platform 122 may determine that the selected delivery service or vendor has not accepted or will not fulfill the previously placed order. In some embodiments, the service platform 122 may cancel the system order for the identified delivery service or vendor. The system order can be reordered to a second delivery service or vendor, a third delivery service or vendor, and so on, until the system order is fulfilled.
[0104] In another example, the service platform 122 may determine that it cannot fulfill a user's order. For example, there may be no vendor or delivery service that is willing to provide the ordered products and services within the desired price range or by the desired time. The service platform 122 may make alternative product / service selections from the user's order to be fulfilled and place a second order with the delivery service and / or vendor. For example, the alternative product / service selections may be one or more backup items specified in the user's order.
[0105] In some embodiments, the service platform 122 may determine that the delivery time of a product or service has passed a first period. For example, the delivery time may be 1 minute, 15 minutes, 30 minutes, 60 minutes, etc., past the scheduled start time of an event. The service platform 122 may provide one or more parties with the option to start, delay, or cancel the event. In some embodiments, a user may indicate that these are no longer available at the scheduled time, and the service platform 122 may provide the option to start, delay, or cancel the event. The service platform 122 may determine that the user is at fault for the delayed or canceled event and demand compensation from the user (for example, on behalf of other users), or it may partially refund or not refund the user. In some embodiments, the service platform 122 may offer one or more users credits, discounts, or other forms of goodwill (for example, an amount less than, equal to, or more than, the amount each user has already paid) as compensation for the delayed or canceled event.
[0106] In some embodiments, the service platform 122 can poll all stakeholders (for example, via a notification element 314 as described with reference to Figure 3) to elicit a group decision on whether to start, delay, or cancel the event. In some embodiments, the service platform 122 can require a unanimous decision, a majority vote, or other form of agreement. If the stakeholders cannot reach an agreement, the service platform 122 can prompt the event coordinator or administrator to make a decision.
[0107] In operation 254, the delivery platform 132A provides the service platform 122 with instructions that the order for products and / or services has been delivered to a first physical location corresponding to a first user. Similarly, in operation 256, the delivery platform 132B provides the service platform 122 with instructions that the order for products and / or services has been delivered to a second physical location corresponding to a second user.
[0108] In operation 255, the service platform 122 provides a client device 110A associated with the first user with instructions that the order for products and / or services has been delivered to a second physical location corresponding to the second user. Similarly, in operation 257, the service platform 122 provides a client device 110B associated with the second user with instructions that the order for products and / or services has been delivered to a first physical location corresponding to the first user. In some embodiments, these instructions may be anonymous notices indicating to the first user (or second user) that the products and services have been delivered to the second user (or first user) and / or signed by the second user (or first user) without disclosing one or more of the second user's (or first user's) location information or other personal information. In some embodiments, an administrator or other user associated with the service platform 122 (e.g., a customer help center) may provide delivery notices and / or contact the user to resolve delivery issues while respecting the privacy of other users. For example, an automated system or human agent could respond to an inquiry from a first user regarding the delivery progress of a gift to a second user by providing the first user with an approximate delivery time, without directly disclosing the second user's location (e.g., by showing an address) or indirectly (e.g., by showing the exact commute time from the vendor's restaurant to the second user's home). Other personal information, such as the user's real name (rather than a username or screen name), can be similarly protected. Administrator users can also provide further assistance to users with other actions, such as selecting gifts or arranging supplemental deliveries.
[0109] In operation 258, the service platform 122 instructs the event platform 142 to initiate an event. In some embodiments, the service platform 122 instructs the event platform 142 to initiate an event based on an indication that delivery of each product and / or service to each physical location is complete. For example, the service platform 122 may initiate an event via the API endpoint 144 in Figure 1. In another example, the service platform 122 may require a user to log in to the event (for example, using a link or calendar invitation). In some embodiments, the service platform 122 may initiate an event at a point in time, such as 30 minutes after all parties have received their orders. In some embodiments, the service platform 122 may initiate an event after one or more (but not all) parties have received their orders. In some embodiments, the service platform 122 may capture or record interactions (e.g., audio or video) between one or more users and / or between users and delivery drivers. For example, the service platform 122 may record that an influencer is eating food selected by a follower and the follower's reaction. In another example, the service platform 122 may record the handoff between the user and the delivery driver to confirm delivery. The service platform 122 may also provide a code that the user gives to the delivery driver as a further or alternative way to confirm delivery. In some embodiments, the processing logic may initiate an audio conference, chat, video conference, or other medium for the event. In some embodiments, the service platform 122 may send an invitation to join a virtual event to client devices 110A and 110B once it has received confirmation that the product and / or service has been received at a first physical location associated with a first user and a second physical location associated with a second user.
[0110] In some embodiments, participants (e.g., users) who have not received their orders by the start of the event may be restricted from entering the event until they receive their orders. In some embodiments, participants who have not received their orders by the start of the event may be allowed to enter the event before receiving their orders.
[0111] In some embodiments, the service platform 122 can continue to coordinate the delivery of products and services during the event. For example, gifts can be planned to be delivered when the event starts, or digital products and services can be delivered during the event (for example, after a predetermined amount of time has elapsed or after a predetermined level of user engagement has been observed). In some embodiments, the service platform 122 can similarly coordinate the delivery of products at the end of the event or after the event has ended.
[0112] Figure 3 shows examples of graphical user interfaces (GUIs) 300 for client devices according to several embodiments of the present disclosure. The GUI 300 may relate to applications 112 of client devices 110A-Z, as well as first and second users (e.g., influencer users and follower users) as described with reference to Figure 2. The GUI 300 includes an event scheduling element 302, a product / service ordering element 306, a tracking element 308, an asynchronous communication element 310, an event element 312, and a notification element 314. In some embodiments, the elements described above may also be referred to as (single or plural) GUI elements. In some embodiments, the GUI 300 may include more, fewer, or different GUI elements than those shown in Figure 3. In some embodiments, GUI elements 302-314 may be buttons, lists, text boxes, media players, maps, or other types of GUI elements, or may include such GUI elements. In some embodiments, GUI elements 302-314 can correspond to GUI elements on a shared page of an application, GUI elements on another page of an application, GUI elements on another application, or combinations or other arrangements of the above GUI elements.
[0113] In some embodiments, the event scheduling element 302 may allow a user to schedule and / or accept an event (as described, for example, with reference to operations 206-214). In some embodiments, the event scheduling element 302 may indicate one or more of the date, time, and event type that the user can select or accept. In one example, an influencer user may provide a list of available time slots for an event (e.g., a lunch event) within the event scheduling element 302. Follower users (or multiple follower users) can view the influencer user's availability within the event scheduling element 302 on their respective client devices and select available events, dates, and times to make an agreement.
[0114] In some embodiments, the preference element 304 may allow the user to input preferences such as dietary restrictions or minimum / maximum price limits. In some embodiments, as described with reference to Figure 2, the preferences entered or selected by the first and second users in the preference element 304 on their respective client devices may influence the products and services available for ordering (for example, on the ordering element 306). In another example, an event coordinator or administrator user may specify, via the environment setting element 304, that all deliveries for all parties must be received before or at the start of the event.
[0115] In some embodiments, the order element 306 may allow the user to view and select products and services that can be ordered in connection with an event. In some embodiments, different users may have different products and services. For example, users may be located in different geographical locations that offer different products and services. Furthermore, products and / or services may be physical (e.g., food, flowers) or digital (e.g., gift cards, in-app content). To help the user identify the desired product or service, the order element 306 may be provided with a search function. In some embodiments, products and / or services offered to the user may be ranked or ordered. For example, products and services may be ranked based on the user's previous or preferred choices, user or other user preferences (e.g., provided via preference element 304), feedback from other users (e.g., customer reviews), price, etc. In some embodiments, products and services may be ranked based on the product / service vendor, delivery driver service, and / or the reliability of the delivery driver. In some embodiments, featured or sponsored products and / or services (e.g., promoted by a vendor or other party) may be ranked higher than unfeatured or unsponsored products and services. In some embodiments, the ordering element 306 can display ranked products and / or services in the form of a list where higher-ranked products and / or services are at the top of the list and lower-ranked products and / or services are at the bottom of the list. In some embodiments, higher-ranked products and / or services can be made visible within the ordering element 306, while lower-ranked products and / or services can be hidden within the ordering element 306 (for example, outside the visible area of a scrollable list).
[0116] In some embodiments, the order element 306 can provide products and / or services available to the recipient (e.g., the influencer user) for selection and assistance by the giver (e.g., the follower user). In some embodiments, as described above, available products and / or services can be determined and ranked using the recipient's location, food preferences, etc., rather than the giver's. For example, a follower user can select products or services to give to an influencer user based on the influencer user's preferences. In some embodiments, the selected products / services and / or the identity of the giver can be hidden from the recipient to provide anonymity, protect personal information (e.g., sensitive data), or create a surprise. In some embodiments, in addition to products and / or services ordered by the recipient for delivery to themselves, products and / or services selected as a gift or favor can be delivered to the recipient. In some embodiments, the recipient is not allowed to select their own products and services via the order element 306, but instead one or more givers can select products and services for the recipient. For example, one or more follower users can select the food that an influencer user will eat during a live event. In a further example, one or more follower users can select the recipes and ingredients that an influencer user will use during a live event (e.g., a cooking event, a baking event, or a grilling event). In some embodiments, products and services can be ordered or received in real time during the event. Using the above examples, followers can react to the influencer eating, cooking, or commenting on the food by ordering additional foods / ingredients that the influencer should try next. In some embodiments, such interactions and reactions can be captured or recorded. The influencer can reuse the captured content as new content within the system or on social media platforms.
[0117] In some embodiments, the order element 306 may further present available products and / or services to the user's device associated with the user for selecting one or more backup products and / or services. Backup products and / or services are offered to the user within the order element 306 in relation to (for example, simultaneously with) the primary products and services selected by the user, and can be selected by the user. In some embodiments, backup products and / or services can be offered and / or ranked based on whether the available backup products and services are associated with a different vendor or delivery service than the primary products and services, and thus an improved backup option can be provided if the primary vendor or delivery service is unable to complete the primary order. In some embodiments, the system can automatically select backup products and services on behalf of the user. For example, the system can select the second-highest ranked product or service for the user, or the product or service that is closest to the primary product or service selected by the user within the order element 306.
[0118] In some embodiments, the system 100 (or its components, e.g., the service platform 122) in Figure 1 can determine the latest availability or status of displayed or selected products and / or services for one or more stakeholders. For example, the system can check that all products are available (e.g., hours before or on the day of an event) and determine the latest delivery estimate. In some embodiments, the system can also determine the latest availability or status of backup products. In some embodiments, as described later, the system can present the latest products within the order element 306 or generate a notification using the notification element 314. In some embodiments, the system can switch primary products and / or services to backup products and / or services, or determine new (one or multiple) backup products and / or services based on the latest availability or status of (one or multiple) primary and / or backup products and / or services.
[0119] In some embodiments, the tracking element 308 may allow users to track the progress of their own orders or other users' orders as the delivery service is delivering the orders. The service platform 122 may receive real-time delivery tracking and / or estimated delivery times from the delivery service (for example, via API endpoints 134A-Z in Figure 1) and present real-time tracking and / or estimated delivery times to one or more users via the tracking element 308. In some embodiments, the system may also receive traffic pattern data (for example, live or predicted road traffic statistics along the delivery route) from the delivery service or a third-party mapping provider and present the traffic pattern data (for example, as an overlay).
[0120] In some embodiments, the asynchronous communication element 310 may allow users to communicate with each other outside of or during a virtual event. For example, an asynchronous communication element such as a chat box or comments section may be provided so that stakeholders can interact with each other during the pre-event ordering window. Users can share what they are ordering with other users or make requests to other users. In some embodiments, natural language processing (NLP) may be used to set preferences (similar to preference element 304, for example) based on individual stakeholders' messages, rank products and services, or interact with other aspects of the system. For example, an influencer user might post a chat message saying, "I love pepperoni pizza!" In response, the processing logic may use the ordering element 306 to rank pepperoni pizza higher for the follower user.
[0121] In some embodiments, the event element 312 can allow users to participate in scheduled virtual events. For example, the event element 312 may be a video conferencing element that presents streaming audio and video from the service platform 122 or event platform 142. Similarly, the event element 312 may also transmit user audio and video (captured, for example, by the microphone and camera of a client device) to the service platform 122 or event platform 142.
[0122] In some embodiments, the notification element 314 can provide users with various notifications regarding event schedules, product and service orders, product and service deliveries, event participation, or other related activities. For example, the notification element 314 can provide prompts or reminders to all parties who have not selected one or more products or services by the (single or multiple) deadline to place an order. Other types of notifications, such as email, text messages, or other forms of confirmation messages, can be used instead of or in addition to the notification element 314. In another example, the notification element 314 can provide users with verification messages for all selected goods and services. In some embodiments, verification messages can be provided to the sender / giver, the recipient, or both.
[0123] Figures 4A to 4B are flowcharts of an example method 400 for synchronizing a food delivery service to respond to a virtual event, according to several embodiments of the present disclosure. The method is performed by processing logic that may include hardware (circuits, dedicated logic, etc.), software (e.g., instructions executed on a processing unit), or a combination thereof. In some embodiments, some or all of the operations of method 400 can be performed by one or more components of system 100 in Figure 1. In some embodiments, one or more operations of method 400 can be performed by a service platform 122 of server 120, as described with respect to Figure 1. In some embodiments, one or more operations of method 400 can be performed by applications 112 in client devices 110A to Z. Note that components described with respect to Figure 1 can be used to illustrate the embodiments of Figures 4A to 4B. In some embodiments, the operations (e.g., blocks 402 to 422) may be the same, different, fewer, or more. For example, in some embodiments, the operations shown by dashed lines (e.g., blocks 402 to 414) may not exist. In some embodiments, the operation may be in a different order than that shown with respect to Figures 4A and 4B.
[0124] In block 402, the processing logic receives an expression of acceptance from the first user account regarding an event between the first user associated with the first user account and the second user associated with the second user account. In some embodiments, block 402 corresponds to operation 214 in Figure 2A.
[0125] In block 404, the processing logic identifies a first delivery service based on at least a first location corresponding to a first user. Similarly, in block 406, the processing logic identifies a second delivery service based on at least a second location corresponding to a second user. In some embodiments, blocks 404-406 correspond to operations 222-224 in Figure 2B.
[0126] In block 408, the processing logic selects a first product identifier corresponding to a first product from a first set of product identifiers related to products available for delivery by a first delivery service. Similarly, in block 410, the processing logic selects a second product identifier corresponding to a second product from a second set of product identifiers related to products available for delivery by a second delivery service. In some embodiments, selecting the first and second product identifiers corresponds to operations 226-244 in Figures 2A-2C (e.g., receiving products from the delivery service, filtering products, and / or receiving selections from the client device). In some embodiments, the first and second sets of product identifiers may be the same or different sets. For example, the first and second sets of product identifiers may be the same if the first and second users live in the same geographical area covered by the same delivery service, or they may be different if the first and second users live in different geographical areas covered by different delivery services. Similarly, the first and second product identifiers may be the same or different product identifiers. In some embodiments, a first product identifier corresponding to a first product may be one of several product identifiers corresponding to several products selected by the processing logic. Similarly, a second product identifier corresponding to a second product may be one of several product identifiers corresponding to several products selected by the processing logic. In some embodiments, the first and second multiple product identifiers may be associated with products available for delivery by multiple or different delivery services. In such embodiments, the delivery services identified in blocks 402 and 404 can be further identified based on which (one or multiple) delivery services provide the selected / identified product.
[0127] In some embodiments, the processing logic may provide prompts or reminders (for example, via notification element 314 as described with reference to Figure 3) to all parties who have not selected one or more products or services by the (single or multiple) deadline. In some embodiments, the system may shift the event to a later time to give parties more time to place an order. In some embodiments, the system may automatically select products or services for parties who have not yet placed an order. For example, the system may select top-ranked products or items for a user based on their dietary preferences and price limits.
[0128] In block 412, the processing logic sends a first request to the first delivery service for delivery of the first product to a first location corresponding to a first user within a first period. Similarly, in block 414, the processing logic sends a second request to the second delivery service for delivery of the second product to a second location corresponding to a second user within a first period. In some embodiments, blocks 412-414 correspond to operations 246-248 in Figure 2C.
[0129] In one embodiment, to determine when blocks 412-414 should be executed, the service platform 122 may estimate a lead time based on historical data associated with delivery services 132A-B, reflecting the estimated time from the submission of an order request for product delivery until the product is subsequently delivered. Based on the event period and the estimated lead time, the service platform 122 may further determine a third period (one or multiple) during which an order request for product delivery should be submitted, and the order request for product delivery is submitted during this third period. The historical data associated with delivery services 132A-B may include driver performance data associated with one or more drivers for each delivery service. Driver performance data can be obtained via API endpoints 134A-B.
[0130] In block 416, the processing logic receives a first instruction that the first product has been delivered via a first delivery service to a first location corresponding to a first user associated with a first user account on a service platform (e.g., service platform 122). Similarly, in block 418, the processing logic receives a second instruction that the second product has been delivered via a second delivery service to a second location corresponding to a second user associated with a second user account. In some embodiments, blocks 412-214 correspond to operations 250-256 in Figure 2C.
[0131] In block 420, the processing logic determines, based on the first and second instructions, that the first and second products were delivered within a first period related to the event. The first period may relate to the start time of the event and may include a window before or after the event to consider early or late delivery. In another example, the first period may relate to a pre-event delivery window. In yet another example, the first period may be defined by the start and end times of the event. Various other periods may be used in various embodiments. The period may be determined, for example, by a first or second user, a service platform, an event platform, a first or second delivery service, or any other entity.
[0132] In some embodiments, the processing logic provides a first user account associated with the first user with a first notice that the second product has been delivered to a second location corresponding to the second user, the first notice anonymizes personal information related to the second user, the personal information including the second location and the name of the second user. Similarly, the processing logic may provide a second user account associated with the second user with a second notice that the first product has been delivered to a first location corresponding to the first user, the second notice anonymizes personal information related to the first user, the personal information including the first location and the name of the first user.
[0133] In some embodiments, the first period is a delay period after the initial target period, and the delay period relates to one or more of the following: a delay in the delivery of the first product, an agreement between the first and second users to delay the event, or a delay in the attendance of the first user. For example, an event that was initially planned to span the initial target period may be delayed by a delivery driver in delivering the product or service. As a result, the user, system administrator, or system may decide to delay the start of the event to account for the delay and notify the first and second users accordingly. In another example, a user may agree to delay the event for various reasons and indicate this agreement to the system. In yet another example, a user may not attend the event on time or indicate that they will be late. If this delay is unacceptable to other users or the system, the system may decide to delay the event. Furthermore, the system may impose penalties on the user (e.g., user account) for not attending the event on time (e.g., imposing a monetary penalty or removing the user (permanently or temporarily) from the service platform).
[0134] In some embodiments, the processing logic can identify problems related to events such as the various delay issues described above. The processing logic can provide a third notification related to resolving the problem to a second user account relating to the second user, the third notification identifying the problem, proposing a solution to the problem, and at least partially anonymizing the personal information relating to the first user.
[0135] In block 422, the processing logic, in response to determining that the first and second products have been delivered within a first period, initiates a video conference for the event among multiple participants, including the first and second users. In some embodiments, block 422 corresponds to operation 258 in Figure 2C.
[0136] In another embodiment of block 404, processing logic identifies one or more delivery services available for delivery to a first location corresponding to a first user. The processing logic further identifies multiple products available for delivery to the first location by one or more delivery services. In another embodiment of block 408, processing logic provides a first user account with identifiers for multiple products available for delivery to the first location for selection. The processing logic receives from the first user account a selection of first product identifiers related to a first product from among the multiple product identifiers. Based on the selection by the first user account, the processing logic selects a first delivery service from among one or more delivery services. In some embodiments, identifying multiple products available for delivery to the first location by one or more services further includes identifying multiple products based at least in part on user preferences related to a second user account. In some embodiments, if multiple delivery services are available for the first and / or second locations, the service platform 122 selects the first and second delivery services shown in Figures 2A-2C from among one or more delivery services for each location based on the selections by the respective first and second clients. The processing logic then proceeds to sending the delivery request in block 412.
[0137] In some embodiments, the processing logic can continue to coordinate the delivery of products and services even during the event. For example, gifts can be planned to be delivered when the event starts, or digital products and services can be delivered during the event (for example, after a predetermined amount of time has elapsed or after a predetermined level of user engagement has been observed). In some embodiments, the service platform 122 can similarly coordinate the delivery of products at the end of the event or after the event has ended.
[0138] Figure 5 is a block diagram showing an exemplary computer system 500 according to an embodiment of the present disclosure. The computer system 500 executes one or more instruction sets that cause a machine to perform one or more of the methodologies described herein. Instruction sets and instructions, etc., can mean instructions that, when executed by the computer system 500, cause the computer system 500 to perform one or more operations of the service platform 122. The machine can operate within the capabilities of a server or client device in a client-server network environment, and can operate as a peer machine in a peer-to-peer (or distributed) network environment. The machine can be a personal computer (PC), tablet PC, set-top box (STB), personal digital assistant (PDA), mobile phone, web appliance, server, network router, switch, bridge, or any machine capable of executing an instruction set (sequential or otherwise) that specifies the actions that the machine should perform. Furthermore, although only a single machine is shown, the term “machine” in the context of computer system 500 should be interpreted as including any group of machines that individually or collectively execute an instruction set to perform one or more of the methodologies described herein.
[0139] The computer system 500 includes a processing unit 502, main memory 504 (for example, dynamic random access memory (DRAM) such as read-only memory (ROM), flash memory, synchronous DRAM (SDRAM), or Rambus DRAM (RDRAM)), static memory 506 (for example, flash memory, static random access memory (SRAM), etc.), and data storage device 516, which communicate with each other via a bus 508.
[0140] The processing unit 502 represents one or more general-purpose processing units, such as a microprocessor or a central processing unit. Specifically, the processing unit 502 may be a composite instruction set computing (CISC) microprocessor, a reduced instruction set computing (RISC) microprocessor, a very long instruction word (VLIW) microprocessor, or a processing unit that executes other instruction sets, or a processing unit that executes a combination of instruction sets. The processing unit 502 may also be one or more dedicated processing units, such as an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), a digital signal processor (DSP), or a network processor. The processing unit 502 is configured to execute instructions of the system architecture 500 and the service platform 122 in order to perform the operations described herein.
[0141] The computer system 500 may further include a network interface device 522 that provides communication with other machines via a network 518 such as a local area network (LAN), intranet, extranet, or internet. The computer system 500 may also include a display device 510 (e.g., a liquid crystal display (LCD) or cathode ray tube (CRT)), an alphanumeric input device 512 (e.g., a keyboard), a cursor control device 514 (e.g., a mouse), and a signal generating device 520 (e.g., a speaker).
[0142] The data storage device 516 may include a non-temporary computer-readable storage medium 524 that stores instruction sets of the system architecture 500 and service platform 122 that embody one or more of the methodologies or functions described herein. The instruction sets of the system architecture 100 and service platform 122 may also reside entirely or at least partially in the main memory 504 and / or the processing unit 502 while the computer system 500 is executing the instruction sets, and the main memory 504 and the processing unit 502 also constitute computer-readable storage medium. Furthermore, the instruction sets can be transmitted or received over the network 518 via the network interface device 522.
[0143] While the example of computer-readable storage medium 524 is shown as a single medium, the term “computer-readable storage medium” can include a single or multiple mediums that store instruction sets (e.g., a centralized or distributed database, and / or associated caches and servers). The term “computer-readable storage medium” can include any medium that stores, encodes, or holds instruction sets for a machine to execute, or that causes a machine to execute one or more of the methodologies of this disclosure. The term “computer-readable storage medium” can include, but is not limited to, solid memory, optical media, and magnetic media.
[0144] The above description provides numerous details. However, it will be apparent to those skilled in the art who would benefit from this disclosure that they can implement this disclosure without these specific details. In some cases, well-known structures and devices are shown in block diagram form rather than in detail, so as not to obscure this disclosure.
[0145] Some parts of the detailed explanation are presented in terms of algorithms and symbolic representations of operations on data bits in computer memory. These algorithmic descriptions and representations are means used by those skilled in the art to most effectively communicate their research to others skilled in the art. Here, and in general, an algorithm is considered to be a consistent set of actions that produce a desired result. These actions require the physical manipulation of physical quantities. These quantities usually, though not always, take the form of electrical or magnetic signals that can be stored, transferred, combined, compared, and manipulated in other ways. For reasons of common use, it is sometimes found convenient to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, etc.
[0146] However, these and similar terms should all be associated with appropriate physical quantities and should be recognized as merely convenient notations given to those quantities. Unless otherwise stated, explanations using terms such as “generating,” “providing,” “obtaining,” “identifying,” or “determining” throughout the explanation should be understood to mean the operation and processing of a computer system or similar electronic computer device that manipulates data represented as physical (e.g., electronic) quantities in computer system memory or registers and transforms it into other data similarly represented as physical quantities in computer system memory or registers, or other such information storage devices, transmitters, or display devices.
[0147] This disclosure also relates to an apparatus for performing the operations described herein. This apparatus may include a general-purpose computer that is configured specifically for a particular purpose or that is selectively operated or reconfigured by a computer program stored in the computer. Such computer programs may be stored on computer-readable storage media, including, but not limited to, floppy disks, optical disks, compact disk read-only memory (CD-ROM), magneto-optical disks, read-only memory (ROM), random access memory (RAM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), magnetic or optical cards, or any type of disk suitable for storing electronic instructions.
[0148] As used herein, the words “example” or “exemplary” mean that they serve as examples, cases, or illustrations. Any aspect or design described herein as “example” or “exemplary” should not necessarily be interpreted as being preferable or more advantageous than other aspects or designs. Rather, the use of the words “example” or “exemplary” is intended to illustrate the concept concretely. As used in this application, the term “or” is intended to mean inclusive “or” rather than exclusive “or.” That is, unless otherwise explicitly stated or evident from the context, the expression “X includes A or B” is intended to mean either of the natural inclusive substitutions. That is, if X includes A, if X includes B, or if X includes both A and B, “X includes A or B” is satisfied under any of these cases. Also, as used herein and in the appended claims, the articles “a” and “an” can generally be interpreted as meaning “one or more” unless otherwise explicitly stated or evident from the context that they refer to a singular form. Furthermore, throughout this text, the use of the terms “a certain implementation” or “one implementation,” or “a certain embodiment” or “one embodiment,” is not intended to mean the same implementation or embodiment unless explicitly stated. The terms “first,” “second,” “third,” “fourth,” etc., as used herein, are intended as labels to distinguish different elements from each other and do not necessarily imply an order that follows these numerical designations.
[0149] For the sake of simplicity, the methods described herein are shown and described as a series of actions or operations. However, the actions described herein can be performed in various orders and / or simultaneously with other actions not shown and described herein. Furthermore, not all described actions are necessary to perform the methods described herein. Also, those skilled in the art will understand that these methods can also be represented as a series of correlated states via state diagrams or events. It should also be understood that the methods disclosed herein can be stored in articles of manufacture so that such methods can be easily transmitted and transferred to computer devices. The term articles of manufacture as used herein is intended to include computer programs that can be accessed from any computer-readable device or storage medium.
[0150] Further embodiments disclose one or more processing devices for performing the operations of the embodiments described above. In embodiments of this disclosure, a non-temporary computer-readable storage medium stores instructions for performing the operations of the embodiments described above. In other embodiments, a system for performing the operations of the embodiments described is also disclosed.
[0151] It should be understood that the above description is illustrative and not limiting. Other embodiments will become apparent to those skilled in the art upon reading and understanding the above description. Accordingly, the scope of this disclosure can be determined by referring to the appended claims and the entire scope of equivalents to which such claims are entitled.
Claims
1. A method of coordinating an event with the delivery of products or services to different locations, The processing unit receives a first instruction that a first product has been delivered via a first delivery service to a first location corresponding to a first user associated with a first user account of the service platform, Receiving a second instruction that the second product has been delivered via a second delivery service to a second location corresponding to a second user associated with a second user account, Based on the first instruction and the second instruction, it is determined that the first product and the second product were delivered within the first period related to the event, In response to determining that the first product and the second product have been delivered within the first period, a video conference for the event is initiated among multiple participants, including the first user and the second user. Methods that include...
2. The first user account further includes receiving an expression of consent to the event between the first user associated with the first user account and the second user associated with the second user account. The method according to claim 1.
3. In response to the expression of consent to the event between the first user associated with the first user account and the second user associated with the second user account, the first delivery service is identified based on the first location corresponding to at least the first user, Identifying the second delivery service based on the second location corresponding to at least the second user, The method according to claim 2, further comprising:
4. The first delivery service selects a first product identifier corresponding to the first product from among a plurality of first product identifiers related to the product that can be used for delivery, The second delivery service selects a second product identifier corresponding to the second product from among a plurality of second product identifiers related to the products that can be used for delivery, The method according to claim 2, further comprising:
5. Sending a first request to the first delivery service for delivery of the first product to the first location corresponding to the first user within the first period, Sending a second request to the second delivery service for delivery of the second product to the second location corresponding to the second user within the first period, The method according to claim 1, further comprising:
6. Based on historical data related to the first delivery service, estimate a lead time that reflects the estimated time from the transmission of the first request for delivery of the first product until the delivery of the first product; Based on the first period and the estimated lead time, a third period is determined for sending the first request to deliver the first product. The further includes the first request for delivery of the first product being sent during the third period. The method according to claim 5.
7. Identifying one or more delivery services that can be used for delivery to the first location corresponding to the first user, Identifying multiple products that can be used for delivery to the first location by one or more delivery services, Providing the first user account with identifiers for the plurality of products that can be used for delivery to the first location for selection, The first user account receives a selection of a first product identifier from among the plurality of product identifiers that relates to the first product, Based on the selection made by the first user account, the first delivery service is selected from the one or more delivery services, The method according to claim 1, further comprising:
8. Identifying the plurality of products available for delivery to the first location by the one or more delivery services further includes identifying the plurality of products based at least in part on user preferences associated with a second user account. The method according to claim 7.
9. The first delivery service determines that it cannot deliver the first product within the first period, In response to the first delivery service determining that it is unable to deliver the first product within the first period, a third request is sent to the alternative delivery service to deliver a replacement product to the first location corresponding to the first user within the first period. The method according to claim 1, further comprising:
10. The first period is the initial target period, and the first period is delayed for a certain period of time, and the delayed period is Delivery delay of the first product mentioned above, An agreement between the first user and the second user to delay the aforementioned event, or The first user's late arrival, The method according to claim 1, relating to at least one of the following.
11. The delay period relates to the delivery delay of the first product, and the method further includes delaying the start of the video conference based on the delay period. The method according to claim 10.
12. A first notice that the second product has been delivered to the second location corresponding to the second user, wherein the first notice, which anonymizes personal information relating to the second user, including the second location and the name of the second user, is provided to the first user account relating to the first user; A second notice indicating that the first product has been delivered to the first location corresponding to the first user, wherein the second notice, which anonymizes personal information relating to the first user, including the first location and the name of the first user, is provided to the second user account relating to the second user; The method according to claim 1, further comprising:
13. To identify the problem related to the aforementioned event, A third notice relating to resolving the aforementioned problem, which identifies the problem, proposes a solution to the problem, and provides to the second user account relating to the second user a third notice relating to the second user, which at least partially anonymizes the personal information relating to the first user. The method according to claim 1, further comprising:
14. Further including delaying the start of the video conference based on the aforementioned problem, The method according to claim 13.
15. A system for coordinating events with the delivery of products or services to different locations, Memory devices and, A processing unit coupled to the memory device, The apparatus is equipped with, The processing device receives a first instruction that a first product has been delivered via a first delivery service to a first location corresponding to a first user associated with a first user account of the service platform, Receiving a second instruction that the second product has been delivered via a second delivery service to a second location corresponding to a second user associated with a second user account, Based on the first instruction and the second instruction, it is determined that the first product and the second product were delivered within the first period related to the event, In response to determining that the first product and the second product have been delivered within the first period, a video conference for the event is initiated among multiple participants, including the first user and the second user. A system that performs actions including those mentioned above.
16. The operation further includes receiving from the first user account an expression of consent to the event between the first user associated with the first user account and the second user associated with the second user account. The system according to claim 15.
17. The aforementioned operation is, In response to the expression of consent to the event between the first user associated with the first user account and the second user associated with the second user account, the first delivery service is identified based on the first location corresponding to at least the first user, Identifying the second delivery service based on the second location corresponding to at least the second user, The system according to claim 16, further comprising:
18. A non-temporary computer-readable medium containing instructions, wherein, when executed by a processing unit, the instructions cause the processing unit to perform an action to coordinate an event with the delivery of a product or service to a different location, and the action is The processing unit receives a first instruction that a first product has been delivered via a first delivery service to a first location corresponding to a first user associated with a first user account of the service platform, Receiving a second instruction that the second product has been delivered via a second delivery service to a second location corresponding to a second user associated with a second user account, Based on the first instruction and the second instruction, it is determined that the first product and the second product were delivered within the first period related to the event, In response to determining that the first product and the second product have been delivered within the first period, a video conference for the event is initiated among multiple participants, including the first user and the second user. Non-temporary computer-readable media, including [specific examples of such media].
19. The operation further includes receiving from the first user account an expression of consent to the event between the first user associated with the first user account and the second user associated with the second user account. The non-temporary computer-readable medium according to claim 18.
20. The aforementioned operation is, Identifying one or more delivery services that can be used for delivery to the first location corresponding to the first user, Identifying multiple products that can be used for delivery to the first location by one or more delivery services, Providing the first user account with identifiers for multiple products that can be used for delivery to the first location for selection, The first user account receives a selection of a first product identifier from among the plurality of product identifiers that relates to the first product, Based on the selection made by the first user account, the first delivery service is selected from the one or more delivery services, A non-temporary computer-readable medium according to claim 18, further comprising: