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