Note: Descriptions are shown in the official language in which they were submitted.
<br/>CA 03083958 2020-05-29<br/>WO 2019/108683 <br/>PCT/US2018/062894<br/>MAINTAINING CONTEXT IN TRANSACTION <br/>CONVERSATIONS<br/>CLAIM OF PRIORITY <br/>.. [0001] This application claims priority to U.S. Patent Application Serial <br/>No.<br/>15/853,576, filed December 22, 2017, entitled "MAINTAINING CONTEXT IN <br/>TRANSACTION CONVERSATIONS", which claims priority to U.S. Provisional <br/>Patent Application Serial No. 62/593,261, filed Dec. 1, 2017, entitled <br/>"MAINTAINING CONTEXT IN TRANSACTION CONVERSATIONS", and<br/> .. these applications are herein incorporated by reference in their entirety.<br/>FIELD OF THE TECHNOLOGY <br/>[0002] The present invention relates to retail transactions, and more <br/>specifically to <br/>providing interactive transaction returns within a retailer network.<br/> BACKGROUND <br/>[0003] After a customer completes a purchase transaction of goods or services <br/>in a <br/>"brick and mortar" (i.e., physical location) retail store, a store employee <br/>typically <br/>provides a printed paper receipt to the customer at the point of sale (POS). <br/>The<br/>.. customer may also be presented with the additional or alternative option of <br/>having a<br/>digital receipt emailed to him/her.<br/>[0004] While this is a familiar process to customers, there are some <br/>limitations in <br/>the typical model of providing receipts. Customers often complain that printed <br/>receipts are not environmentally friendly, and losing receipts is a common <br/>issue.<br/>From a retailer's perspective, the engagement with a printed receipt is very <br/>low,<br/>since customers rarely return to a receipt to inspect it or follow up on the <br/>information contained in it. Email receipts, meanwhile, are falling out of <br/>favor with<br/>-1-<br/><br/>CA 03083958 2020-05-29<br/>WO 2019/108683 <br/>PCT/US2018/062894<br/>younger generations that increasingly prefer messaging channels to <br/>communicate. <br/>For retailers, email receipts do not provide a way to have a two-way dialogue <br/>with a <br/>customer and keep the customer engaged, satisfied, and interested. Neither <br/>printed <br/>nor email receipts provide a way to understand the customer on an ongoing <br/>basis<br/> after the point of sale.<br/>-2-<br/><br/>CA 03083958 2020-05-29<br/>WO 2019/108683 <br/>PCT/US2018/062894<br/>SUMMARY OF THE INVENTION <br/>[0005] The following presents a simplified summary of the disclosure in order <br/>to <br/>provide a basic understanding of certain embodiments of the invention. This <br/>summary is not an extensive overview of the disclosure and it does not <br/>identify<br/>.. key/critical elements of the invention or delineate the scope of the <br/>invention. Its sole<br/>purpose is to present some concepts disclosed herein in a simplified form as a <br/>prelude to the more detailed description that is presented later.<br/>100061 In general, certain embodiments of the present invention provide <br/>mechanisms for maintaining context in an individualized transaction <br/>conversation<br/>within a retail network. A notification of a customer interaction from a <br/>customer is<br/>received within a retailer network. Based on at least one messaging channel <br/>and at <br/>least one interaction type in the notification, the system determines that an <br/>active <br/>conversation with the customer is open. A natural language processing (NLP) <br/>model <br/>is then selected based on one or more conversation markers in the active<br/>conversation. At least one customer intent is determined with respect to one <br/>or more<br/>entities, and a response to the customer interaction is generated based on the <br/>at least <br/>one customer intent and the one or more entities.<br/>[0007] In some embodiments, these steps allow a customer to switch messaging <br/>channels from one to another in the middle of a conversation, without need for<br/>.. establishing a new conversation or transaction, re-authenticating, or doing <br/>anything<br/>else on a different messaging channel. For example, a customer may be having a <br/>conversation with a retailer chatbot in his car, through his car's <br/>conversation <br/>features. When the customer is home, he will be able to continue the <br/>conversation <br/>where he left off on his Google Home appliance without performing any extra <br/>steps<br/>to re-establish the conversation. In this sense, the system is capable of <br/>maintaining<br/>context like a real assistant would. In some implementations, rather than a <br/>conversation, context can be maintained in a shopping experience or online <br/>experience. This experience can start or stop at any time, and the context can <br/>be <br/>maintained throughout.<br/>-3-<br/><br/>CA 03083958 2020-05-29<br/>WO 2019/108683 <br/>PCT/US2018/062894<br/>[0008] In some embodiments, a two-way conversation between the customer and <br/>the <br/>retailer or retailer network can occur, individualized and based on the <br/>transaction, <br/>messaging channel, customer profile, customer insights, and other relevant <br/>data <br/>within the retailer network. In some embodiments, as the insight and <br/>understanding<br/> into a customer accrue from conversation history, messaging, interactions, <br/>transactions, inferred insights, and more, the conversation can be further <br/>individualized to suit a customer's needs and market more efficiently to the <br/>customer. In some embodiments, the process of individualized transaction <br/>messages <br/>or conversations being initiated with the customer after a transaction is <br/>performed in<br/>real time or substantially real time, effectively allowing for communication <br/>immediately or nearly immediately after a transaction is completed.<br/>[0009] These and other features of the present invention will be presented in <br/>more <br/>detail in the following specification of certain embodiments of the invention <br/>and the <br/>accompanying figures which illustrate by way of example the principles of the<br/>invention.<br/>-4-<br/><br/>CA 03083958 2020-05-29<br/>WO 2019/108683 <br/>PCT/US2018/062894<br/>BRIEF DESCRIPTION OF THE DRAWINGS <br/>[0010] The included drawings are for illustrative purposes and serve only to <br/>provide <br/>examples of possible structures and operations for the disclosed inventive <br/>systems, <br/>apparatus, methods and computer program products for providing interactive<br/> transaction returns in a retailer network. These drawings in no way limit any<br/>changes in form and detail that may be made by one skilled in the art without <br/>departing from the spirit and scope of the disclosed implementations.<br/>[0011] Figure 1A shows an example of a system for maintaining context in an <br/>individualized transaction conversation within a retailer network, in <br/>accordance with<br/>some implementations.<br/>[0012] Figure 1B shows an example of a system for maintaining context in an <br/>individualized transaction conversation within a retailer network, in <br/>accordance with <br/>some implementations.<br/>[0013] Figure 2 shows a flowchart of an example of a method for providing<br/>transaction messages within a retailer network, performed in accordance with <br/>some<br/>implementations.<br/>[0014] Figure 3 shows a flowchart of an example of a method for providing an <br/>individualized transaction conversation within a retailer network, performed <br/>in <br/>accordance with some implementations.<br/>[0015] Figure 4 shows a flowchart of an example of a method for maintaining<br/>context in an individualized transaction conversation within a retailer <br/>network, <br/>performed in accordance with some implementations.<br/>[0016] Figure 5 shows a flowchart of an example of a method for maintaining <br/>context in an individualized transaction conversation within a retailer <br/>network, in<br/>accordance with some implementations.<br/>[0017] Figure 6A illustrates an initial product query screenshot, in <br/>accordance with <br/>some implementations.<br/>[0018] Figure 6B illustrates an example screenshot that includes product <br/>purchase <br/>information, in accordance with some implementations<br/>-5-<br/><br/>CA 03083958 2020-05-29<br/>WO 2019/108683 <br/>PCT/US2018/062894<br/>[0019] Figure 6C illustrates an example screenshot of additional product <br/>details that <br/>are presented to the customer, in accordance with some implementations.<br/>[0020] Figure 6D illustrates an options screenshot for presenting additional <br/>content, <br/>in accordance with some implementations.<br/>[0021] Figure 7 illustrates the training of a predictive model for maintaining <br/>context <br/>in an individualized transaction conversation within a retailer network, in <br/>accordance with some implementations.<br/>[0022] Figure 8 illustrates an example of a server, configured in accordance <br/>with <br/>one or more embodiments.<br/>-6-<br/><br/>CA 03083958 2020-05-29<br/>WO 2019/108683 <br/>PCT/US2018/062894<br/>DETAILED DESCRIPTION OF THE SPECIFIC EMBODIMENTS <br/>[0023] In the following description, numerous specific details are set forth <br/>in order <br/>to provide a thorough understanding of the present invention. The present <br/>invention <br/>may be practiced without some or all of these specific details. In other <br/>instances,<br/> well known process operations have not been described in detail to not<br/>unnecessarily obscure the present invention. While the invention will be <br/>described <br/>in conjunction with the specific embodiments, it will be understood that it is <br/>not <br/>intended to limit the invention to the embodiments.<br/>[0024] For every transaction, a digital receipt is offered to the customer. If <br/>selected<br/>as an option, the digital receipt is sent electronically via email to the <br/>customer, along<br/>with additional content. Although this type of receipt can work well with some <br/>customers, the burden of accessing the receipt is on the customer. That is, <br/>the <br/>customer must remember to access her email and then open the digital receipt, <br/>as <br/>well as maintaining a copy of such receipt for later use, such as a product <br/>return or a<br/>question about a product.<br/>[0025] Certain embodiments of the present invention automatically provide <br/>digital <br/>receipts for purchased goods, or other content related to customers, potential <br/>customers, transactions, retailers, or products within the retailer network, <br/>through a <br/>diverse set of messenger channels so that a customer can access the digital <br/>receipts<br/>and additional content through her preferred channel or even different <br/>preferred<br/>channels at different times. For instance, cross-channel mechanisms provide <br/>access <br/>to digital receipts and their associated additional content through messenger <br/>channels, such as SMS, Whatsapp, Messenger, WeChat, QQ, Snapchat, Fiber, Line, <br/>Telegram, Tango, Kik, etc. Said in another way, context around digital receipt <br/>use is<br/>maintained and available across multiple messaging channels.<br/>[0026] Figure 1A shows an example of a system for maintaining context in an <br/>individualized transaction conversation within a retailer network, in <br/>accordance with <br/>some implementations. The system in Figure 1A includes a variety of different <br/>hardware and/or software components which are in communication with each <br/>other.<br/>The non-limiting example of Figure 1A includes at least one retailer network <br/>server<br/>-7-<br/><br/>CA 03083958 2020-05-29<br/>WO 2019/108683 <br/>PCT/US2018/062894<br/>104, at least one client system 108, at least one retailer database 112, and <br/>at least one <br/>customer profile database 122.<br/>[0027] Retailer database 112 is a database that stores and maintains data <br/>pertaining <br/>to a plurality of retailers within a retailer network. In some <br/>implementations, the<br/>retailer database 112 is a multi-tenant database or other non-relational <br/>database<br/>management system. This database can include one or more records for each of a <br/>plurality of retailers within a retailer network. In some implementations, the <br/>database can include one or more shared tables, in which multiple retailers <br/>have <br/>records in the same table, and share many of the same standard objects and <br/>columns<br/> for their records.<br/>[0028] Customer Profile Database 122 is a database that stores and maintains <br/>customer profiles. In some implementations, the customer profile database 122 <br/>may <br/>be a single customer profile database shared by retailers within the retailer <br/>network. <br/>In some implementations, various permissions are placed within the Customer<br/> Profile Database 122 such that limited views of the information are provided<br/>depending on the retailers' access permissions for tables and fields.<br/>[0029] Retailer network server 104 may communicate with other components of <br/>the <br/>system. This communication may be facilitated through a combination of <br/>networks <br/>and interfaces. Retailer network server 104 may handle and process data <br/>requests<br/>from the client system 108. Likewise, retailer network server 104 may return a<br/>response to client system 108 after a data request has been processed. For <br/>example, <br/>retailer network server 104 may retrieve data from one or more databases, such <br/>as <br/>the retailer database 112 or the customer profile database 122. It may combine <br/>some <br/>or all of the data from different databases, and send the processed data to <br/>client<br/>system 108.<br/>[0030] Client system 108 may be a computing device capable of communicating <br/>via <br/>one or more data networks with a server. Examples of client system 108 include <br/>a <br/>desktop computer or portable electronic device such as a smartphone, a tablet, <br/>a <br/>laptop, a wearable device, an optical head-mounted display (OHMD) device, a <br/>smart<br/>-8-<br/><br/>CA 03083958 2020-05-29<br/>WO 2019/108683 <br/>PCT/US2018/062894<br/>watch, etc. Client system 108 includes at least one browser in which <br/>applications <br/>may be deployed.<br/>[0031] Figure 1B shows an example of a system 100 for maintaining context in <br/>an <br/>individualized transaction conversation within a retailer network, in <br/>accordance with<br/> some implementations. In some implementations, system 100 may represent a<br/>retailer network. In some implementations, a retailer network may be <br/>maintained <br/>and operated by a retail solutions provider. For example, a single retail <br/>solutions <br/>provider may offer a central hub for retailers to offer goods and services in <br/>a <br/>physical space, such as a mall. In some implementations, such a central hub <br/>can be a<br/>physical space, online marketplace, a mobile application, a sales cloud <br/>service, or<br/>any other physical or non-physical hub for retailers to be grouped under. A <br/>retailer <br/>network may offer centralized services, marketing data, customer-facing <br/>storefronts, <br/>exchanges between retailers, and other services for retailers and their <br/>customers.<br/>[0032] Retailer Engine 110 is an engine for providing services that a retailer <br/>uses to<br/>interact within the retailer network or system 100. In some implementations,<br/>Retailer Engine 110 provides a complete set of services for retailers. In some <br/>implementations, retailer services may include services relating to or <br/>facilitating <br/>Point of Sale (POS) transactions, online retail services for customers, <br/>marketing <br/>campaigns, customer profiles, customer data analytics, and more. In some<br/>implementations, retailer engine 110 handles connectivity to retailers and <br/>retailer<br/>systems, including authentication of retailers within system 100. In some <br/>implementations, retailer engine 110 interfaces with message creation or <br/>conversation creation components of system 100 in order to deliver information <br/>and <br/>services relating to retailers, transactions, products, and more.<br/>[0033] Retailer Database 112 is a database within the retailer network of some <br/>or all<br/>of the retailers within the retailer network. The Retailer Database 112 stores <br/>retailer <br/>information, retailer metadata, information about the financial or other <br/>aspects of the <br/>retailer with respect to the retailer network, and any other information <br/>relating to <br/>retailers within the retailer network. In some implementations, the retailer <br/>database<br/>-9-<br/><br/>CA 03083958 2020-05-29<br/>WO 2019/108683 <br/>PCT/US2018/062894<br/>112 stores information relating to product configurations, inventory, and/or <br/>product <br/>data for one or more retailers.<br/>[0034] Transaction Engine 114 is an engine that facilitates the transaction <br/>between a <br/>customer and a retailer. Customers may be shoppers who have purchased goods or<br/>services from the retailer or are about to purchase goods or services from the<br/>retailer, or have otherwise used or entered into a relationship with the <br/>retailer. <br/>Customers within the retailer network may potentially be customers of more <br/>than <br/>one retailer in the network. For example, a customer Mark might shop at one <br/>retailer <br/>for shoes, then go to a different retailer in the same retailer network for <br/>jeans. Each<br/>transaction with the retailer is facilitated by the Transaction Engine 114. In <br/>some<br/>implementations, the Transaction Engine 114 provides services for POS <br/>transactions, online transactions, credit card authorization and management, <br/>and <br/>otherwise facilitates the completion of transactions. In some implementations, <br/>system 100 stores transaction information, including any transaction updates <br/>or<br/> history that is received from or processed within the Retailer Engine. The<br/>Transaction Engine interfaces with the Retailer Engine 110 to receive data on <br/>retailers, products, and customers for processing the transactions.<br/>[0035] Receipt Engine 116 is an engine of system 100 that generates and <br/>retrieves <br/>receipt information for customers who have completed transactions, and adds<br/>functionality to receipts in various ways. In some implementations, the <br/>retailer<br/>creates a receipt based on a transaction independently of the retailer network <br/>or <br/>system 100, and receipt engine 116 then recreates the receipt within a format <br/>compatible with the retailer network and its processes. Receipt engine 116 <br/>recreates <br/>the receipt with functionality and aspects that enable it to be understood by <br/>other<br/>components of system 100, and allows it to be passed on in various ways to <br/>others<br/>parts of system 100 and to customers in messages and/or conversations. In some <br/>implementations, receipts may be generated automatically. For example, <br/>automatic <br/>expense generation processes may automatically generate receipts in a number <br/>of <br/>ways. In some implementations, the receipts are generated in such a way that <br/>they<br/>are presentable to customers. When interfacing together, the Receipt Engine <br/>116 and<br/>the Transaction Engine 114 allow for the creation and lifecycle management of<br/>-10-<br/><br/>CA 03083958 2020-05-29<br/>WO 2019/108683 <br/>PCT/US2018/062894<br/>orders. In some implementations, the Receipt Engine 116 is configured to <br/>create and <br/>receive receipts as well as send receipt events, including triggering events <br/>for other <br/>parts of the system 100, to deliver receipts to customers.<br/>[0036] Customer Profile Engine 120 allows for storage, retrieval, and <br/>processing of<br/>customer profiles within the retailer network. In some implementations, <br/>customer<br/>profiles capture a partial or full view of a customer from multiple angles <br/>within the <br/>retailer network. In some implementations, portions of customer profiles or <br/>complete customer profiles are viewable by certain retailers in the retailer <br/>network, <br/>or all of the retailers in the retailer network. In some implementations, some <br/>or all of<br/> customer profiles can be shared among retailers, and the captured data from<br/>transactions and other pieces of customer data or knowledge can be used for <br/>each <br/>retailer in the network to gain a better understanding of the customer and use <br/>that <br/>understanding to provide more customized services for the customer. In some <br/>implementations, a customer profile may contain data such as customer <br/>metadata,<br/>information about the devices that a customer is using or has used, explicit <br/>customer<br/>preferences, implicit customer preferences or customer insights inferred from <br/>data <br/>within the retailer network, information about the messaging channels the <br/>customer <br/>prefers or has used before, and more.<br/>[0037] Customer Profile Database 122 is a database that stores and maintains<br/>customer profiles. Customer Profile Engine 120 stores customer profiles and<br/>customer information within the Customer Profile Database 122, and retrieves <br/>information from the database as well. In some implementations, the customer <br/>database may be a single retailer database shared by retailers within the <br/>retailer <br/>network. In some implementations, various permissions are placed within the<br/> Customer Profile Database 122 such that limited views of the information are<br/>provided depending on the retailers' access permissions for tables and fields.<br/>[0038] Conversation Engine 130 allows for the creation, processing, and <br/>analysis of <br/>individualized transaction conversations within the system 100. Individualized <br/>transaction conversations are conversations between one or more customers and <br/>one<br/>or more retailers, one or more customers and the retailer network provider, or <br/>some<br/><br/>CA 03083958 2020-05-29<br/>WO 2019/108683 <br/>PCT/US2018/062894<br/>other such combination resulting in a conversation between any entities or <br/>agents of <br/>the retail network and one or more customers. In varying embodiments, the <br/>conversations are individualized such that they are tailored to the customer <br/>or <br/>customers' profile data, including the customer's preferences, needs, <br/>historical<br/>behavior from past transactions or conversations, the customer's interactions <br/>with<br/>retailers or retailer networks in the past, user device information, preferred <br/>messaging channels, and more. The Conversation Engine 130 interfaces with the <br/>Customer Profile Engine 120 to retrieve and process customer profile data, in <br/>order <br/>to individualize and tailor the conversation to a particular customer or <br/>customers. In<br/>some implementations, the Conversation Engine 130 selects a messaging template<br/>from the Template Database 132. In some implementations, messaging templates <br/>are templates that can be selected based on preferred messaging channel, user <br/>device <br/>currently being used, type of message being prepared for the customer, and <br/>more. In <br/>some implementations, the Conversation Engine 130 is configured to wait for <br/>and<br/> receive interactions from the customer within the conversation, then respond<br/>accordingly. In some implementations, interactions may include responding back <br/>by <br/>text, voice, or other means of communication, clicking on buttons, hovering on <br/>one <br/>or more items within the content of the conversation, or simply doing nothing <br/>for a <br/>period of time. In some implementations, responses may be dynamically <br/>generated<br/>based on the context of the conversation, the interaction being responded to,<br/>inferring one or more pieces of data about the customer's needs based on the <br/>customer profile, or any other relevant info relating to the conversation and <br/>the <br/>customer. For example, the Conversation Engine 130 may retrieve a customer <br/>profile showing that the customer does not like to be contacted more than once <br/>a<br/>day. Accordingly, the engine may opt to not respond to the interaction, but <br/>may<br/>rather wait until the next day to respond. In another example, the user may <br/>reply to a <br/>receipt asking for the expected date of delivery, and the Conversation Engine <br/>130 <br/>can retrieve such data from the Transaction Engine 114 or Receipt Engine 116, <br/>then <br/>respond to the customer accordingly. Several other possibilities for <br/>responding to<br/>interactions can be contemplated. The Conversation Engine 130 also interfaces <br/>with<br/>a Messaging Engine 140, which generates and sends the individualized <br/>transaction<br/>-12-<br/><br/>CA 03083958 2020-05-29<br/>WO 2019/108683 <br/>PCT/US2018/062894<br/>messages that can begin a particular conversation with a customer, and a <br/>Natural <br/>Language Processing Engine 134, which parses user interactions and messages, <br/>analyzes them for meaning, intent, entities, attributes, and/or context, and <br/>sends <br/>information to the Conversation Engine 130 for generating responses and future<br/> conversations.<br/>[0039] The Machine Learning and Predictive Engine 150 facilitates machine <br/>learning and predictive analysis within the system 100 for various processes, <br/>including customer insights and preferences, how to generate individualized <br/>transaction messages and responses to interactions, and more. In some<br/>implementations, the engine predicts customer behavior or preferences based on<br/>historical data about the customer and/or other customers within the retailer <br/>network. Machine learning and predictive processes are discussed further <br/>below.<br/>[0040] Figure 2 shows a flowchart of an example of a method 200 for providing <br/>transaction messages within a retailer network, performed in accordance with <br/>some<br/>implementations. Method 200 and other methods described herein may be<br/>implemented using system 100 of Figure 1B, although the implementations of <br/>such <br/>methods are not limited to system 100.<br/>[0041] At block 202, system 100 receives identity information for a customer <br/>captured during a transaction. In some implementations, the transaction is <br/>between a<br/>customer and a retailer within the retailer network. In some implementations, <br/>this<br/>identity information is captured during a POS at a physical retailer space, <br/>while in <br/>other implementations, the identity information is captured via forms during <br/>an <br/>online transaction process. Identity information may include, for example, the <br/>customer's phone number, full name, address, credit card or payment <br/>information,<br/>age, gender, income, purchasing preferences, and preferred methods of <br/>messaging or<br/>communication.<br/>[0042] At block 204, system 100 accesses a database of customer profiles. In <br/>some <br/>implementations, each customer profile is associated with one or more <br/>retailers in <br/>the retailer network. In some implementations, the database is the Customer <br/>Profile<br/>Database 122. The customer profile may contain any amount of a wide variety of<br/>-13-<br/><br/>CA 03083958 2020-05-29<br/>WO 2019/108683 <br/>PCT/US2018/062894<br/>customer information, including, for example, customer metadata, user devices <br/>currently or historically used, past purchasing history, customer demographic <br/>market, family information, customer insights inferred from other data, <br/>predictive <br/>information about the customer, locations the customer has visited, social <br/>media<br/> presences of the customer, and social graphs for the customer. In some<br/>implementations, customer profile information is stored in the database only <br/>if the <br/>customer grants permission.<br/>[0043] At block 206, system 100 matches the identity information for the <br/>customer <br/>with at least one customer profile from the database. For example, the only <br/>identity<br/>information about the customer gained during the transaction may have been a <br/>customer phone number. System 100 matches the phone number with a customer <br/>profile with the same phone number. In some implementations, more than one <br/>customer profile may be matched with the identity information, each containing <br/>some overlapping content (for example, the multiple customer profiles may <br/>contain<br/>the same phone number but different email addresses or different names.) In <br/>some<br/>implementations, upon matching the identity information with a customer <br/>profile, <br/>system 100 links the identities, i.e. the identity information and the <br/>customer profile. <br/>In this way, a unified customer profile, or unified identity, can gradually <br/>emerge <br/>over time based on one or more transactions with retailers and additional<br/>information captured about the customer. In some implementations, once the<br/>identities are linked, system 100 can further make inferences based on the <br/>unified <br/>identity, including potentially predictive analysis and/or machine learning <br/>via the <br/>machine learning and predictive engine 150. In some implementations, various <br/>user <br/>IDs associated with the customer are federated into the customer profile, thus<br/>creating a federated customer profile and allowing several different <br/>identities from<br/>different transactions and retailers to link together to form a single, <br/>unified customer <br/>profile. In some implementations, a federated customer profile may contain <br/>information relating to one or more of: the retailer, one or more additional <br/>retailers, <br/>the transaction, one or more additional transactions, and one or more <br/>messaging<br/>channels. In some implementations, a federated customer profile can contain <br/>one or<br/>-14-<br/><br/>CA 03083958 2020-05-29<br/>WO 2019/108683 <br/>PCT/US2018/062894<br/>more pieces of information outside of the retailer network, such as an email <br/>address <br/>that hasn't been used within the retailer network.<br/>[0044] At block 208, system 100 determines one or more preferred messaging <br/>channels associated with the customer. In some implementations, the preferred<br/>.. messaging channel or channels may be explicitly given by a customer, or <br/>explicitly<br/>appear in a customer profile or customer interaction. In some implementations, <br/>the <br/>preferred messaging channels may be implicitly determined rather than <br/>explicit. In <br/>some implementations, the preferred messaging channels are determined from the <br/>customer profile. For example, a customer may have indicated in a feedback <br/>form<br/> that the customer prefers phone and Facebook Messenger to other messaging <br/>channels. System 100 then infers which of the two options is the user's <br/>current <br/>preferred messaging channel, or infers that a combination of both are <br/>preferred, <br/>based on other pieces of customer profile info, such as which of the two <br/>options the <br/>user has historically used more often, or used more recently.<br/>[0045] At block 210, system 100 sends one or more individualized transaction<br/>messages to the customer via the preferred messaging channels. In some <br/>implementations, multiple individualized transaction messages may be sent to <br/>the <br/>customer simultaneously, near-simultaneously, or successively in a single <br/>session. <br/>In some implementations, one or more individualized transaction messages are <br/>sent<br/>to multiple customers at once. In some implementations, the individualized<br/>transaction messages are related to the transaction, and are tailored and <br/>dynamically <br/>generated for the customer based on the customer's preferences and/or customer <br/>insights inferred from the customer profile information. In some <br/>implementations, <br/>one or more customer insights are generated for the customer based on the <br/>identity<br/>information for the customer, the retailer, and one or more pieces of data <br/>related to<br/>the transaction. The individualized transaction message or messages are then <br/>generated dynamically based on the generated customer insights. For example, <br/>system 100 may generate customer insights that the customer likes to shop for <br/>children's clothes at a particular children's clothing store on Sundays, and <br/>may tailor<br/>an individualized transaction message about children's clothing to appear on<br/>Saturday nights, when the customer may be preparing to shop for clothes.<br/>-15-<br/><br/>CA 03083958 2020-05-29<br/>WO 2019/108683 <br/>PCT/US2018/062894<br/>Furthermore, the system 100 may infer from the size and style of the products <br/>purchased in the past that the customer is buying the clothes for his <br/>daughter, age 8-<br/>10, and tailor the conversation accordingly.<br/>[0046] In some implementations, an individualized transaction message can be a<br/>digital receipt for the transaction. In some implementations, the <br/>individualized<br/>transaction messages include selectable content that initiates, upon <br/>selection, an <br/>additional interactive process with the customer that is related to the <br/>transaction. <br/>Some examples include forms, fields, action buttons, links, and radio buttons. <br/>In <br/>some implementations, system 100 initiates the communication according to an<br/>Application Programming Interface (API) for the messaging channel, or <br/>capabilities<br/>stipulated elsewhere for the messaging channel. The method 200 of providing an <br/>individualized transaction message ends at block 212.<br/>[0047] Figure 3 shows a flowchart of an example of a method 300 for providing <br/>an <br/>individualized transaction conversation within a retailer network, performed <br/>in<br/> accordance with some implementations. Method 300 and other methods described<br/>herein may be implemented using system 100 of Figure 1B, although the <br/>implementations of such methods are not limited to system 100.<br/>[0048] At block 302, system 100 receives a notification of a triggering event. <br/>In <br/>some implementations, the triggering event is related to a customer and one or <br/>more<br/>retailers within the retailer network. A triggering event is some event that <br/>triggers<br/>the possibility of sending a message to or initiating a conversation with a <br/>customer <br/>within the retailer network. Examples of triggering events may include a <br/>completed <br/>transaction, which triggers the possibility of sending a digital receipt for <br/>the <br/>transaction to the customer; the delivery of an item, which triggers the <br/>possibility of<br/>sending a delivery notification to the customer about the item; or the <br/>occurrence of a<br/>two-week date since an item was delivered to the customer, which triggers the <br/>possibility of sending a feedback request to the user regarding whether the <br/>user liked <br/>the product. In some implementations, the triggering event can be sent from a <br/>chatbot, a retailer, a third party outside of the retailer network, or other <br/>source. In<br/>some implementations, notifications for triggering events can be sent from <br/>multiple<br/>-16-<br/><br/>CA 03083958 2020-05-29<br/>WO 2019/108683 <br/>PCT/US2018/062894<br/>sources at once, or multiple triggering events can be combined from one or <br/>more <br/>sources into a single notification. In some implementations, system 100 <br/>actively <br/>listens for notifications and triggering events or toggles between an active <br/>listening <br/>mode and a mode that disables listening based on various situations.<br/>[0049] At block 304, system 100 accesses a database of customer profiles. In <br/>some<br/>implementations, each customer profile is associated with one or more <br/>retailers in <br/>the retailer network. In some implementations, the database is the Customer <br/>Profile <br/>Database 122. The customer profile may contain any amount of a wide variety of <br/>customer information, including, for example, customer metadata, user devices<br/> currently or historically used, past purchasing history, customer demographic<br/>market, customer insights inferred from other data, predictive information <br/>about the <br/>customer, and social media presences of the customer. In some implementations, <br/>customer profile information is stored in the database only if the customer <br/>grants <br/>permission.<br/>[0050] At block 306, system 100 matches the customer with at least one <br/>customer<br/>profile from the database. For example, identity information about the <br/>customer may <br/>have been captured during a transaction with a retailer, such as a customer <br/>phone <br/>number. System 100 matches the phone number with a customer profile with the <br/>same phone number. In some implementations, upon matching the identity<br/>information with a customer profile, system 100 system 100 links the <br/>identities, i.e.<br/>the identity information and the customer profile. In this way, a unified <br/>customer <br/>profile, or unified identity, can gradually emerge over time based on one or <br/>more <br/>transactions with retailers and additional information captured about the <br/>customer. <br/>In some implementations, once the identities are linked, system 100 can <br/>further<br/>make inferences based on the unified identity, including potentially <br/>predictive<br/>analysis and/or machine learning via the machine learning and predictive <br/>engine <br/>150. In some implementations, various user IDs associated with the customer <br/>are <br/>federated into the customer profile, thus creating a federated customer <br/>profile and <br/>allowing several different identities from different transactions and <br/>retailers to link<br/>together to form a single, unified customer profile. In some implementations, <br/>a<br/>federated customer profile may contain information relating to one or more of: <br/>the<br/>-17-<br/><br/>CA 03083958 2020-05-29<br/>WO 2019/108683 <br/>PCT/US2018/062894<br/>retailer, one or more additional retailers, the transaction, one or more <br/>additional <br/>transactions, and one or more messaging channels. In some implementations, a <br/>federated customer profile can contain one or more pieces of information <br/>outside of <br/>the retailer network, such as an email address that hasn't been used within <br/>the<br/> retailer network.<br/>[0051] At block 308, system 100 determines a message type based at least on <br/>the <br/>triggering event. Message types correspond to messages that the system might <br/>send <br/>to the user in various situations. In some implementations, message types can <br/>include, for example, digital receipts, feedback requests, deals, retailer <br/>information,<br/>product information, customer information, concierge services, tracking <br/>information, returns and exchanges, related products, recommendations, and <br/>additional content about products, services, transactions, retailers, or the <br/>retailer <br/>network. Messages may also relate to allowing the customer to join an online <br/>community for fostering communication about the product or related topics, <br/>such as<br/>offering membership to a Facebook group dedicated to a trending style movement <br/>to<br/>a customer who has purchased a trending piece of clothing. In some <br/>implementations, system 100 determines a response type or interaction type <br/>instead <br/>of or in addition to the message type. For example, the response type may be <br/>determined based on a customer initiating a response to a message, indicating <br/>that<br/>she wishes to have a video about a product sent to her phone. System 100 then<br/>determines the response type based on the intent of the customer to have a <br/>video <br/>sent to her, formatted for a specific device and/or message channel.<br/>[0052] At block 310, system 100 determines a preferred messaging channel <br/>associated with the customer. In some implementations, the preferred messaging<br/>channel is determined from the customer profile. For example, a customer may <br/>have<br/>indicated in a feedback form that the customer prefers phone and Facebook <br/>Messenger to other messaging channels. System 100 then infers which of the two <br/>options is the user's current preferred messaging channel based on other <br/>pieces of <br/>customer profile info, such as which of the two options the user has <br/>historically used<br/>more often, or used more recently.<br/>-18-<br/><br/>CA 03083958 2020-05-29<br/>WO 2019/108683 <br/>PCT/US2018/062894<br/>[0053] At block 312, system 100 selects a message template based on at least <br/>the <br/>message type and message channel. In some implementations, the message <br/>template <br/>is selected from a list of message templates, such as the templates located <br/>within <br/>Template Database 132. In some implementations, the message template relates <br/>to<br/>instructions, steps, or rules associated with the determined message type and <br/>the<br/>determined messaging channel. For example, the Facebook Messenger API, or <br/>capabilities stipulated elsewhere for the Facebook Messenger, may determine <br/>that <br/>there is a limit to the number of messages that system 100 should send to <br/>customers <br/>within the Facebook Messenger messaging channel. Accordingly, the message<br/>template may stipulate that no more than X number of messages may be sent per <br/>day<br/>to a customer. In some implementations, the message template contains <br/>particular <br/>formatting and content that determines how a message is presented to a user. <br/>For <br/>instance, different templates may be associated with different users, <br/>resulting in <br/>different content and/or formatting being presented to different users for the <br/>same<br/> type of transaction. In some implementations, system 100 selects a message<br/>template further based on a customer profile, identity, persona, or customer <br/>insights. <br/>In some implementations, selecting a message template includes determining <br/>whether to send a detailed message or a simple message. This determination can <br/>be <br/>based on explicitly defined preferences or customer interactions, or <br/>implicitly<br/>inferred through customer preferences, the customer profile, customer <br/>insights,<br/>message history, and/or customer interactions.<br/>[0054] At block 314, system 100 initiates an individualized transaction <br/>conversation <br/>with the customer. In some implementations, system 100 initiates the <br/>conversation <br/>according to the message template. In some implementations, system 100 <br/>initiates<br/>the conversation according to the triggering event. An individualized <br/>transaction<br/>conversation constitutes one or more messages involving a customer via a two-<br/>way <br/>messaging channel. In some implementations, the conversation takes the form of <br/>a <br/>series of messages between a retailer or retailer network and the customer, in <br/>which <br/>the customer interacts or responds to individualized transaction messages or<br/>responses from the retailer or retailer network, in a back-and-forth exchange. <br/>In<br/>-19-<br/><br/>CA 03083958 2020-05-29<br/>WO 2019/108683 <br/>PCT/US2018/062894<br/>some implementations, initiating the conversation includes initializing and <br/>sending a <br/>message via the determined preferred messaging channel.<br/>[0055] At block 316, system 100 receives an interaction from the customer. In <br/>some <br/>implementations, the interaction can include a response via the messaging <br/>channel, a<br/>lack of response for a period of time, closing the messenger window or <br/>shutting<br/>down the application, clicking on one or more links within the messaging <br/>channel, <br/>requesting a move from one channel to another, or any other conceivable <br/>response <br/>within the individualized transaction conversation.<br/>[0056] At block 318, system 100 dynamically generates a response to the<br/>interaction. In some implementations, the response is dynamically generated <br/>based<br/>on one or more predictions from customer profile info, based on predictive <br/>learning <br/>processes. In some implementations, system 100 determines whether or not to <br/>dynamically generate the response based on information about the customer in <br/>the <br/>customer profile. In some implementations, machine learning processes are <br/>executed<br/>based on information about the customer, transaction, retailer, or other <br/>aspect of the<br/>retailer network in order to dynamically generate the response to the <br/>interaction. In <br/>some implementations, the individualized transaction conversation can continue <br/>with interactions and responses until the customer terminates the conversation <br/>or <br/>indicates a desire to terminate the conversation, or system 100 determines <br/>that the<br/>conversation does not need a reply, or system 100 terminates the conversation.<br/>[0057] In some implementations, system 100 provides for the branching of <br/>conversations based on the inputs or interactions with the customer. System <br/>100 <br/>determines or infers elements of the conversation relating to the order or <br/>flow of the <br/>conversation, then dynamically responds to the customer based on this order. <br/>The<br/>order or flow of the conversation can be based on partial information. In some <br/>cases,<br/>system 100 may change course and modify the branching and order of the <br/>conversation at a later point in the conversation based on additional <br/>information.<br/>[0058] Figure 4 shows a flowchart of an example of a method for maintaining <br/>context in an individualized transaction conversation within a retailer <br/>network, <br/> performed in accordance with some implementations. Method 400 and other<br/>-20-<br/><br/>CA 03083958 2020-05-29<br/>WO 2019/108683 <br/>PCT/US2018/062894<br/>methods described herein may be implemented using system 100 of Figure 1B, <br/>although the implementations of such methods are not limited to system 100.<br/>[0059] At block 402, system 100 receives a notification of a customer <br/>interaction <br/>from a customer within the retailer network. In some implementation, the<br/>notification includes a messaging channel and interaction type for the <br/>customer<br/>interaction. In some implementations, the customer interaction is related to a <br/>transaction between customer and one or more retailers within the retailer <br/>network, <br/>and the notification includes information about the transaction and retailer, <br/>including <br/>product information if applicable. In some implementations, the customer<br/>interaction can include a response via the messaging channel, a lack of <br/>response for<br/>a period of time, closing the messenger window or shutting down the <br/>application, <br/>clicking on one or more links within the messaging channel, requesting a move <br/>from <br/>one channel to another, or any other conceivable response within the <br/>individualized <br/>transaction conversation. In some implementations, an interaction type may be <br/>a<br/>form of interaction, including a message within a messaging channel, an email <br/>reply,<br/>an SMS, a like or retweet on social media, silence, or other conceivable forms <br/>of <br/>interaction.<br/>[0060] At block 404, system 100 determines that an active conversation with <br/>the <br/>customer is open. In some implementations, system 100 determines this based on<br/> the one or more messaging channels and interaction types included in the<br/>notification of the customer interaction. An active conversation can be <br/>considered a <br/>conversation in which a customer still considers to be in progress or has not <br/>intended to terminate yet, or a conversation in which a customer has shown <br/>intention <br/>to continue to participate in or interact with in some way. In some <br/>implementations,<br/>determining that an active conversation with the customer is open can be based <br/>on<br/>the conversation history of the customer. For example, a recent message from <br/>the <br/>conversation history of the customer may show that the customer has inquired <br/>about <br/>new running shoes, A few days later, the customer can interact with a chatbot <br/>within <br/>the retailer network to mention that he "found out my shoe size is 10.5 mens".<br/>System 100 can determine, based on the type of interaction (offering <br/>information<br/>about shoe size), the time after the past message was sent, and the context <br/>(wanting<br/>-21-<br/><br/>CA 03083958 2020-05-29<br/>WO 2019/108683 <br/>PCT/US2018/062894<br/>running shoes) that the conversation is open and that the customer has <br/>provided <br/>information to help system 100 recommend running shoes for him. In some <br/>implementations, determining that an active conversation with the customer is <br/>open <br/>is based on a conversational threshold period, such that an active <br/>conversation is<br/> open if a previous conversation message was sent within the conversational<br/>threshold period. Such a period may be, for example, 3 days, or a week. In <br/>some <br/>implementations, system 100 determines that a conversation is not open and <br/>active, <br/>and either generates a new conversation or message and sends it to the <br/>customer, or <br/>prompts the customer on whether he wishes to continue the past conversation.<br/>[0061] In some implementations, system 100 accesses a database of customer<br/>profiles, and matches the customer with at least one customer profile from <br/>this <br/>database. In some implementations, this customer profile includes conversation <br/>history for the customer. In some implementations, the conversation history is <br/>used <br/>for determining that an active conversation with the customer is open.<br/>[0062] At block 406, system 100 selects a natural language processing (NLP) <br/>model<br/>from a list of NLP models. In some implementations, this selection is based on <br/>one <br/>or more conversational markers in the active conversation. An NLP model <br/>extracts <br/>information and meaning (both syntactic and semantic) from a statement, such <br/>as a <br/>statement that the customer provides in an interaction or reply in a chat<br/>conversation. NLP models are capable of converting what a customer says or <br/>writes<br/>into some form of understanding or context within a conversation. In some <br/>implementations, the one or more conversational markers include customer <br/>intent <br/>data. In some implementations, conversational markers are marked and denoted <br/>during particular timestamps or number of messages within a conversation, and<br/>include the content of one or more messages.<br/>[0063] At block 408, system 100 determines at least one customer intent with <br/>respect to one or more entities. Generally speaking, after selecting an NLP <br/>model, <br/>system 100 attempts to determines intents of the customer, i.e., what the <br/>customer <br/>wants to do, and entities relating to those intents, i.e., what the customer <br/>wants to do<br/>in regards to which entities or objects. For example, a customer may want to <br/>buy a<br/>-22-<br/><br/>CA 03083958 2020-05-29<br/>WO 2019/108683 <br/>PCT/US2018/062894<br/>blue shirt through a particular retailer. The customer intent is "wants to <br/>buy", and <br/>the entity is "blue shirt". How to extract meaning from the statement requires <br/>a <br/>specific NLP model that understands both the intent of wanting to buy, and the <br/>entity of blue shirt. Alternatively, in some embodiments, an NLP model may<br/> understand only one aspect, such as "shirt", and additional NLP models may be<br/>tasked with parsing the meaning of "blue" and "wants to buy". In this fashion, <br/>in <br/>some implementations, queries can be iteratively sent to the customer with <br/>respect to <br/>required customer intent or entity data. In some implementations, required <br/>customer <br/>intent or entity data can be determined from various sources of data. In some<br/>implementations, customer intent or entity data can be inferred from customer<br/>profile data, customer insights, conversation history, or other data within <br/>the retailer <br/>network relating to customers, transactions, products, retailers, and more.<br/>[0064] In some implementations, system 100 works on the process of determining <br/>customer intent and/or entities by sending one or more queries to the customer<br/>relating to customer intents, and receiving one or more responses to those <br/>queries.<br/>Determining the customer intents is then based on the responses to the <br/>queries. For <br/>example, if a customer says, "I want to buy a shirt," system 100 may respond <br/>by <br/>asking, "What color shirt do you want to buy?" It knows to ask this question <br/>by the <br/>particular selected NLP model that understands what a shirt is, that shirts <br/>are<br/>colored, and that people want to buy shirts based on different color <br/>preferences.<br/>When the customer responds, "Blue", then system 100 notes that additional <br/>required <br/>entity information has been obtained (the shirt is "blue"), and can, for <br/>example, <br/>search the inventory of a particular retailer for shirts that are tagged as <br/>blue, or <br/>otherwise appear to be blue or contain blue elements. In some implementations, <br/>one<br/>or more additional NLP models can be selected, or switched to from a current<br/>selected NLP model, based on the responses to these queries.<br/>[0065] At block 410, system 100 generates a response to the customer <br/>interaction <br/>based on the customer intents and entities. In the previous example, based on <br/>the <br/>customer intent and entity "I want to buy a blue shirt", system 100 can send <br/>an<br/>individualized response based on this context and intent, such as a product<br/>recommendation for a blue shirt that a retailer currently has a sale on.<br/>-23-<br/><br/>CA 03083958 2020-05-29<br/>WO 2019/108683 <br/>PCT/US2018/062894<br/>[0066] In some embodiments, these steps allow a customer to switch messaging <br/>channels from one to another in the middle of a conversation, without need for <br/>establishing a new conversation or transaction, re-authenticating, or doing <br/>anything <br/>else on a different messaging channel. For example, a customer may be having a<br/>.. conversation with a retailer chatbot in his car, through his car's <br/>conversation<br/>features. When the customer is home, he will be able to continue the <br/>conversation <br/>where he left off on his Google Home appliance without performing any extra <br/>steps <br/>to re-establish the conversation. Merely maintaining the contextual elements <br/>of the <br/>conversation without skipping a beat is enough. The system determines that the<br/>active conversation is still open, possibly because the conversation was <br/>recent and<br/>was about the same topic; determines some of the intent and contextual <br/>entities <br/>involved; based on this, asks additional questions to determine additional <br/>required <br/>intent and/or entities; and sends responses to the customer's intents. In this <br/>sense, <br/>the system is capable of maintaining context like a real assistant would. In <br/>some<br/> implementations, rather than a conversation, context can be maintained in a<br/>shopping experience or online experience. This experience can start or stop at <br/>any <br/>time, and the context can be maintained throughout.<br/>[0067] In some implementations, any of the steps in Figure 4 can be <br/>implemented <br/>by employing machine learning and/or predictive analysis techniques, which are<br/>described further below.<br/>[0068] Figure 5 shows a flowchart of an example of a method 400 for providing <br/>interactive transaction returns within a retailer network, in accordance with <br/>some <br/>implementations. At block 510, a retailer within the retailer network creates <br/>an order <br/>within the system relating to a customer and a transaction. At block 520, the <br/>Retailer<br/>Engine 110, or Retailer Service herein, accesses the Customer Profile Database <br/>122<br/>and matches the customer information to one or more customer profiles in the <br/>database, then sends the information to the Transaction Engine 114, or Order <br/>Service herein. At block 530, the Receipt Engine 116, or Receipt Service <br/>herein, <br/>determines whether a match was found for a customer profile, then generates a<br/>receipt for the transaction. At block 540, if a match for the profile was <br/>found, then<br/>the Messaging Engine 140 and Conversation Engine 130, or Messaging Service<br/>-24-<br/><br/>CA 03083958 2020-05-29<br/>WO 2019/108683 <br/>PCT/US2018/062894<br/>herein, determine a preferred message channel from the customer profile <br/>information, then the Receipt Engine 116 sends the receipt to the Messaging <br/>Engine <br/>140 and Conversation Engine 130. From there, at Block 550, the Messaging <br/>Engine <br/>140 and Conversation Engine 130 initiate a conversation on the preferred <br/>messaging<br/> channel and send the receipt via an individualized transaction message to the<br/>customer. The conversation content and timing may also depend on the <br/>particular <br/>template that is associated with the particular user for the transaction. That <br/>is, <br/>different users may experience different conversation flows for the same <br/>transaction <br/>type.<br/>[0069] Figure 6A illustrates an initial product query screenshot 600a that is<br/>presented to a customer Sandy after she asks her digital assistant for further <br/>information pertaining to a particular transaction, in accordance with one <br/>example <br/>implementation of the present invention. In this example, Sandy has purchased <br/>an <br/>item from Appana Apparel, and she has requested to see a receipt for such<br/>purchased item. This initial request triggers a conversation with respect to <br/>her<br/>purchased item. Via the digital assistant, Sandy can also choose to continue <br/>various <br/>aspects of the conversation about the Appana Apparel item on various <br/>platforms, <br/>such as Facebook Messenger, Google Home, or telephone call.<br/>[0070] Upon initiation (or continuation) of a conversation pertaining to the<br/>purchased item, Sandy may be presented with any suitable type of information <br/>to<br/>enhance her experience with respect to the purchased item. Figure 6B <br/>illustrates an <br/>example screenshot 600b that includes product purchase information 602 and a <br/>simple "Options" button 604 for selecting additional content, including <br/>interactive <br/>processes, which relate to the particular purchased product. In this example, <br/>the<br/>product purchase information 602 is presented in a simplified manner for<br/>presentation through Sandy's digital assistant application interface on her <br/>cellphone. <br/>In general, the product purchase information may be tailored to the particular <br/>messaging channel, user device, and customer preference. In this example, the <br/>presented product purchase information 602 includes a thumbnail picture of the<br/>purchased product (Venture Waterproof Jacket-Northface), payment type (Visa),<br/>-25-<br/><br/>CA 03083958 2020-05-29<br/>WO 2019/108683 <br/>PCT/US2018/062894<br/>and shipping address (710 Steiner Street, San Francisco), and purchase price <br/>($108.16).<br/>[0071] Any suitable options may be presented if the user selects the options <br/>button <br/>604, and such presentation format and content may also be based on various <br/>factors,<br/>such as particular messaging channel, user device, and customer preference. <br/>Figure<br/>6C illustrates an example screenshot 602c of additional product details that <br/>are <br/>presented to the customer upon selection of the options button 604. Such <br/>product <br/>details, of course, provide more information than the initial screenshot for <br/>such <br/>transaction. As shown, Sandy can see purchase date, taxes paid, and product <br/>price.<br/> This detailed product information may have also been presented in the initial<br/>transaction screenshot, for example, if suitable for the particular messaging <br/>channel <br/>(e.g., in an email).<br/>[0072] Figure 6D illustrates an options screenshot 602d for presenting <br/>additional <br/>content, including interactive content that relates to the transaction or <br/>product. As<br/>shown, example transaction options may include a video 610a for learning more<br/>about the product, tracking 610b of a product shipment, and personalized <br/>offers <br/>610c that may be determined based on the current product purchase, as well as <br/>previous purchases through the retail network. Other options 610d may also be <br/>accessible.<br/>[0073] Figure 7 illustrates the training of a predictive model 721 for <br/>providing<br/>interactive transaction returns within a retailer network, in accordance with <br/>some <br/>implementations. In some implementations, the method of Figure 6 can be used <br/>by <br/>the system 100 to train the machine learning and predictive engine 150 <br/>illustrated in <br/>Figure 1B. In some implementations, the data in retailer database 112, <br/>customer<br/>profile database 122, or both may be used as training data for the predictive <br/>model<br/>721.<br/>[0074] In Figure 7, system 100 generates attribute sets for customers or <br/>client <br/>devices associated with customers. The characteristics of customers are <br/>represented <br/>by the attribute sets. An attribute set includes parameters extracted from <br/>affinity data<br/>and user attributes obtained by one or more retailers in the retailer network. <br/>In some<br/>-26-<br/><br/>CA 03083958 2020-05-29<br/>WO 2019/108683 <br/>PCT/US2018/062894<br/>implementations, parameters may be extracted from customer profiles in the <br/>customer profile database 122, data from the retailer database 112, customer <br/>insights <br/>inferred from one or more pieces of customer data, client device information, <br/>customer preferences, or any other aspect of information or metadata relating <br/>to<br/> customers within system 100. The more extensive the parameters used in an<br/>attribute set, the more predictive power the resulting predictive model 721 <br/>has.<br/>[0075] In some implementations, system 100 also generates location patterns <br/>741 <br/>from physical sites associated with the retailer network or retailers, such as <br/>sequences of locations in areas within the physical site, dwell times in <br/>areas, number<br/>of separate visits to the areas, pairs of first and last visited areas in each <br/>trip to the<br/>physical site, etc.<br/>[0076] In some implementations, the attribute sets 751 of customers, and <br/>potentially <br/>their location patterns 741, are connected to the observed item-related <br/>activities 753 <br/>as the training targets. Examples of observed item-related activities 753 may <br/>include<br/>items purchased (which may be purchased online, in retail stores, at physical <br/>sites,<br/>or other locations), or responses to individualized transaction messages <br/>announcing <br/>or recommending products. A positive response may be indicated by a trip to a <br/>location of a recommended product, a purchase transaction of an announced <br/>product, an interaction inquiring about further information relating to an <br/>announced<br/>or recommended product, a user selection of a link in a message related to a <br/>product,<br/>a user search of the announced product following an announcement, or the <br/>playback <br/>of a video featuring a recommended item, for example.<br/>[0077] System 100 applies the attribute sets 751 of customers, and potentially <br/>their <br/>location patterns 741, to the predictive model 721 to generate the predicted <br/>item-<br/>related activities 755, and then computes the statistical prediction error 757 <br/>from the<br/>difference between the observed item-related activities 753 and the predicted <br/>item-<br/>related activities 755. In some implementations, one or more machine learning <br/>algorithms 759 are applied to train the predictive model 721 to reduce the <br/>statistical <br/>prediction error 757 or reduce another measurement of prediction errors.<br/>-27-<br/><br/>CA 03083958 2020-05-29<br/>WO 2019/108683 <br/>PCT/US2018/062894<br/>[0078] In some implementations, attribute sets 751 are used to predict <br/>products of <br/>interest, including products that retailers may wish to recommend to customers <br/>or <br/>potential customers. In some implementations, location patterns 741 are used <br/>to <br/>predict areas of interest. The system 100 then ranks the items of interest in <br/>view of<br/>areas of interest where the items are available. For example, an item of <br/>interest that<br/>is on a predicted path of a mobile device in a physical location can be <br/>provided with <br/>a ranking score that is higher than a different item of interest that is away <br/>from the <br/>predicted path of the mobile device in the physical location. In some <br/>implementations, one or more highest ranking items can be selected for <br/>generating<br/>transaction messages. The transmissions of the messages can be timed according <br/>to<br/>the current location of the user or predicted future location of the user, <br/>such that the <br/>messages are relevant to the locations and areas that the user is likely to <br/>visit soon <br/>(e.g., without significant deviation from a predicted path of the user.)<br/>[0079] System 100 digitizes physical and non-physical interactions of the <br/>user, both<br/>in physical locations and in online marketplaces or other online locations, by<br/>stitching together behavioral and transaction data of the users, and <br/>connecting that <br/>information to a digital persona for a personalized information service, such <br/>as a <br/>targeted offer or navigational guidance. System 100 can direct the user to <br/>physical <br/>or online locations of products based on the preferences and/or affinity of <br/>the user to<br/>retailers, products, physical sites, and items purchased in the past by users <br/>having<br/>attributes and/or location patterns similar to those of the user.<br/>[0080] For example, in various implementations, system 100 can acquire: user <br/>information from large audience data providers; geo-location, demographic, <br/>and/or <br/>behavioral data of the users; SKU-level data of items purchased by users, such <br/>as<br/>from various points of sales; and loyalty program information of the users. <br/>System<br/>100 can select, for example, advertisements, offers, or coupons to push to the <br/>user, <br/>based on predicting: what the user will purchase; what offers will or will not <br/>resonate; price sensitivity of the user; how much a user is likely to spend <br/>when using <br/>loyalty points; what life events are likely to occur; a lifetime value of the <br/>user;<br/>and/or what types of retailers will drive the most footfall and spending <br/>within a<br/>physical site such as a mall.<br/>-28-<br/><br/>CA 03083958 2020-05-29<br/>WO 2019/108683 <br/>PCT/US2018/062894<br/>[0081] In one example, Sumi is an eighteen-year-old student shopping for the <br/>new <br/>semester. She browses jeans online at home, walks along Market Street, and <br/>visits <br/>the physical stores of retailers Nordstrom and Macy's. She uses a mobile <br/>application <br/>for social networking installed on her mobile device to send pictures of jeans <br/>to<br/> .. friends.<br/>[0082] The retailer network server 104 tracks the demographics and/or <br/>psychographics attributes of Sumi, the geo-locations of Sumi, her online <br/>browsing <br/>activities, and/or offline shopping histories to infer her preferences and <br/>customer <br/>insights regarding her behavior and future behavior. For example, after <br/>obtaining her<br/>permission, the retailer network server 104 tracks cookies on websites to <br/>build an<br/>online behavior profile for Sumi which is matched to an advertising ID of <br/>Sumi's <br/>mobile devices. Geo-aware retailers and/or the retailer network, also <br/>obtaining her <br/>permission, track the locations of Sumi via GPS using their Software <br/>Development <br/>Kit (SDK) embedded in mobile applications running in Sumi's mobile devices. <br/>The<br/>.. retailer network server 104 and/or system 100 link one or more pieces of <br/>personally<br/>identifying information of Sumi, such as an email address, to a complete <br/>profile of <br/>Sumi, purchase history of Sumi, and loyalty data provided by retailers to the <br/>information server. For example, Sumi's profile may indicate that Sumi has <br/>bought <br/>clothes in the past from retailer Nordstrom in a San Francisco mall, since the<br/>.. information server has obtained the purchase information from the store and <br/>added<br/>her purchase data into her profile.<br/>[0083] Based on the available information about Sumi, the system 100 infers <br/>her <br/>intent to purchase the latest jeans and back-to-school supplies, and predicts <br/>that she <br/>will respond to a 10% discount. At her next visit to one of Nordstrom's <br/>physical<br/>.. locations or to the Nordstrom web site, system 100 identifies and delivers <br/>a real-<br/>time offer of the store to her mobile device. For example, Sumi gets an <br/>advertisement via the mobile application for social networking running in her <br/>mobile device, where the advertisement offers 10% off True Religion jeans at <br/>Nordstrom for the next hour. She buys jeans and a t-shirt, and system 100 <br/>stores her<br/>.. response and purchase data in the customer profile database 122, which can <br/>be used<br/>-29-<br/><br/>CA 03083958 2020-05-29<br/>WO 2019/108683 <br/>PCT/US2018/062894<br/>to train the predictive model 721 in predicting the response of similar users <br/>to <br/>similar advertisements.<br/>[0084] Figure 8 illustrates one example of a server. According to particular <br/>embodiments, a system 1100 suitable for implementing particular embodiments of<br/>.. the present invention includes a processor 1201, a memory 1203, an <br/>interface 1211,<br/>and a bus 1215 (e.g., a PCI bus or other interconnection fabric) and operates <br/>as a <br/>counter node, aggregator node, calling service, zookeeper, or any other device <br/>or <br/>service described herein. Various specially configured devices can also be <br/>used in <br/>place of a processor 1201 or in addition to processor 1201. The interface 1211 <br/>is<br/> typically configured to send and receive data packets over a network.<br/>[0085] Particular examples of interfaces supported include Ethernet <br/>interfaces, <br/>frame relay interfaces, cable interfaces, DSL interfaces, token ring <br/>interfaces, and <br/>the like. In addition, various very high-speed interfaces may be provided such <br/>as fast <br/>Ethernet interfaces, Gigabit Ethernet interfaces, ATM interfaces, HSSI <br/>interfaces,<br/> POS interfaces, FDDI interfaces and the like. Generally, these interfaces may<br/>include ports appropriate for communication with the appropriate media. In <br/>some <br/>cases, they may also include an independent processor and, in some instances, <br/>volatile RAM. Although a particular server is described, it should be <br/>recognized that <br/>a variety of alternative configurations are possible.<br/>[0086] Because such information and program instructions may be employed to<br/>implement the systems/methods described herein, the present invention relates <br/>to <br/>machine readable storage media that include program instructions, state <br/>information, <br/>etc. for performing various operations described herein. Examples of machine-<br/>readable storage media include, but are not limited to, magnetic media such as <br/>hard<br/>disks, floppy disks, and magnetic tape; optical media such as CD-ROM disks;<br/>magneto-optical media such as floptical disks; and hardware devices that are <br/>specially configured to store and perform program instructions, such as ROM <br/>and <br/>RAM. Examples of program instructions include both machine code, such as <br/>produced by a compiler, and files containing higher level code that may be <br/>executed<br/> by the computer using an interpreter.<br/>-30-<br/><br/>CA 03083958 2020-05-29<br/>WO 2019/108683 <br/>PCT/US2018/062894<br/>[0087] Although the foregoing invention has been described in some detail for <br/>purposes of clarity of understanding, it will be apparent that certain changes <br/>and <br/>modifications may be practiced within the scope of the appended claims. <br/>Therefore, <br/>the present embodiments are to be considered as illustrative and not <br/>restrictive and<br/>the invention is not to be limited to the details given herein, but may be <br/>modified <br/>within the scope and equivalents of the appended claims.<br/>-31-<br/>