Language selection

Search

Patent 2973972 Summary

Third-party information liability

Some of the information on this Web page has been provided by external sources. The Government of Canada is not responsible for the accuracy, reliability or currency of the information supplied by external sources. Users wishing to rely upon this information should consult directly with the source of the information. Content provided by external sources is not subject to official languages, privacy and accessibility requirements.

Claims and Abstract availability

Any discrepancies in the text and image of the Claims and Abstract are due to differing posting times. Text of the Claims and Abstract are posted:

  • At the time the application is open to public inspection;
  • At the time of issue of the patent (grant).
(12) Patent: (11) CA 2973972
(54) English Title: SYSTEM AND METHOD FOR GENERATING AN INTERACTION REQUEST
(54) French Title: SYSTEME ET METHODE DE GENERATION D'UNE REQUETE D'INTERACTION
Status: Granted
Bibliographic Data
(51) International Patent Classification (IPC):
  • G06F 17/00 (2019.01)
  • G06Q 10/10 (2012.01)
  • G06Q 40/02 (2012.01)
(72) Inventors :
  • TSERETOPOULOS, DEAN C.N. (Canada)
  • HARPER, GREGORY RICHARD (Canada)
  • WALIA, SARABJIT SINGH (Canada)
  • D'AGOSTINO, DINO PAUL (Canada)
  • LEE, JOHN JONG-SUK (Canada)
  • CHAN, PAUL MON-WAH (Canada)
  • JETHWA, RAKESH THOMAS (Canada)
  • MOON, TAE GYUN (Canada)
(73) Owners :
  • THE TORONTO-DOMINION BANK (Canada)
(71) Applicants :
  • THE TORONTO-DOMINION BANK (Canada)
(74) Agent: CPST INTELLECTUAL PROPERTY INC.
(74) Associate agent:
(45) Issued: 2019-03-26
(22) Filed Date: 2017-07-18
(41) Open to Public Inspection: 2018-03-30
Examination requested: 2018-12-17
Availability of licence: N/A
(25) Language of filing: English

Patent Cooperation Treaty (PCT): No

(30) Application Priority Data:
Application No. Country/Territory Date
15/282,727 United States of America 2016-09-30
15/620,582 United States of America 2017-06-12
15/620,632 United States of America 2017-06-12

Abstracts

English Abstract

A method and system are provided for generating an interaction request to initiate a first interaction session using a first interaction channel between a request recipient and a request service provider. The method includes determining an identifier of the interaction request to be generated, determining a task associated with the interaction request, obtaining context data of a plurality of other interaction sessions associated with the identifier, determining a subset of the context data of the plurality of other interaction sessions and generating the interaction request using the subset of the context data. The interaction request may be a modified version of an initial interaction request.


French Abstract

Une méthode et un système sont divulgués pour générer une requête dinteraction pour amorcer une première session dinteraction en utilisant un premier canal dinteraction entre un bénéficiaire de requête et un fournisseur de service de requête. La méthode comprend la détermination dun identifiant de la requête dinteraction, la détermination dune tâche associée à la requête dinteraction, lobtention de données de contexte dune pluralité des autres sessions dinteraction associée à lidentifiant, la détermination dun sous-ensemble de données de contexte de la pluralité dautres sessions dinteraction et la génération de la requête dinteraction en utilisant le sous-ensemble des données de contexte. La requête dinteraction peut être une version modifiée dune requête dinteraction initiale.

Claims

Note: Claims are shown in the official language in which they were submitted.


41
Claims:
1. A device for generating an interaction request to initiate a first
interaction session using a
first interaction channel between a request recipient and a request service
provider, the device
comprising a processor and memory, the memory storing computer executable
instructions that
when executed by the processor cause the processor to:
determine an identifier of the interaction request to be generated;
determine a task associated with the interaction request;
obtain context data of a plurality of other interaction sessions associated
with the
identifier, the plurality of other interaction sessions occurring proximal in
time with the first
interaction session to be initiated, the context data being related to
activity of the request
recipient;
assign weighting values to the context data of the plurality of other
interaction sessions
based on interaction channel type;
determine a subset of the context data of the plurality of other interaction
sessions that
are related to the task, wherein the subset of the context data comprises the
context data of the
plurality of other interaction sessions satisfying a weighting threshold
value; and
generate the interaction request using the subset of the context data.
2. The device of claim 1, wherein the computer executable instructions
further cause the
processor to:
detect an initial interaction request for initiating the first interaction
session using an
initial interaction channel,
and wherein determining the identifier is based on an identifier assigned to
the initial interaction
request, determining the task is based on a task associated with the initial
interaction request,
and generating the interaction request comprises modifying the initial
interaction request using
the subset of the context data.
3. The device of claim 2, wherein modifying the initial interaction request
comprises
translating the initial interaction request for transmission in one of the
plurality of other
interaction sessions that uses an interaction channel different from the
initial interaction channel.

42
4. The device of claim 2, wherein modifying the initial interaction request
comprises
translating the initial interaction request for initiating the first
interaction session using the first
interaction channel that is different from the initial interaction channel.
5. The device of claim 1, wherein a plurality of interaction requests are
generated using the
subset of the context data and the computer executable instructions further
cause the processor
to:
provide the plurality of interaction requests for selection by the request
service provider
for initiating the first interaction session.
6. The device of any one of claims 1 to 5, wherein the computer executable
instructions
further cause the processor to:
send the interaction request to the request recipient.
7. The device of any one of claims 1 to 6, wherein the computer executable
instructions
further cause the processor to:
associate the task and the subset of the context data with the interaction
request; and
store the association with the interaction request in the memory for use in
determining a
subsequent interaction request.
8. The device of any one of claims 1 to 7, wherein generating the
interaction request
comprises:
detecting the task and the subset of the context data are associated with a
previous
interaction request; and
generating the interaction request based on the previous interaction request.
9. The device of any one of claims 1 to 8, wherein the computer executable
instructions
further cause the processor to:
send the interaction request to the request recipient in one of the plurality
of other
interaction sessions that uses an interaction channel different from the first
interaction channel.

43
10. The device of any one of claims 1 to 9, wherein the interaction request
comprises data
consistent with other data transmitted to the request recipient in one of the
plurality of other
interaction sessions.
11. The device of any one of claims 1 to 10, wherein the plurality of other
interaction
sessions comprises other interaction sessions initiated within a predetermined
time preceding
the interaction request.
12. The device of any one of claims 1 to 10, wherein the plurality of other
interaction
sessions comprises other interaction sessions active at a time of detecting
the interaction
request.
13. The device of any one of claims 1 to 12, wherein each of the plurality
of other interaction
sessions and the first interaction session use different types of interaction
channels and the
context data of each of the plurality of other interaction sessions comprises
an identifier of the
type of interaction channel used.
14. The device of any one of claims 1 to 13, wherein the device comprises a
context server
in communication with a request recipient device, and the device is part of a
request service
provider device.
15. The device of any one of claims 1 to 13, wherein the device comprises
an artificial
intelligence server in communication with a request recipient device, and the
device is part of a
request service provider device.
16. A method of generating an interaction request to initiate a first
interaction session using
a first interaction channel between a request recipient and a request service
provider, the
method comprising:
determining an identifier of the interaction request to be generated;
determining a task associated with the interaction request;
obtaining context data of a plurality of other interaction sessions associated
with the
identifier, the plurality of other interaction sessions occurring proximal in
time with the first

44
interaction session to be initiated, the context data being related to
activity of the request
recipient;
assigning weighting values to the context data of the plurality of other
interaction
sessions based on interaction channel type;
determining a subset of the context data of the plurality of other interaction
sessions that
are related to the task, wherein the subset of the context data comprises the
context data of the
plurality of other interaction sessions satisfying a weighting threshold
value; and
generating the interaction request using the subset of the context data.
17. The method of claim 16 further comprising:
detecting an initial interaction request for initiating the first interaction
session using an
initial interaction channel,
and wherein determining the identifier is based on an identifier assigned to
the initial interaction
request, determining the task is based on a task associated with the initial
interaction request,
and generating the interaction request comprises modifying the initial
interaction request using
the subset of the context data.
18. The method of claim 17, wherein modifying the initial interaction
request comprises
translating the initial interaction request for transmission in one of the
plurality of other
interaction sessions that uses an interaction channel different from the
initial interaction channel.
19. The method of claim 17, wherein modifying the initial interaction
request comprises
translating the initial interaction request for initiating the first
interaction session using the first
interaction channel that is different from the initial interaction channel.
20. The method of claim 16, wherein a plurality of interaction requests are
generated using
the subset of the context data and the method further comprising:
providing the plurality of interaction requests for selection by the request
service provider
for initiating the first interaction session.
21. The method of any one of claims 16 to 20 further comprising:
sending the interaction request to the request recipient.

45
22. The method of any one of claims 16 to 21 further comprising:
associating the task and the subset of the context data with the interaction
request; and
storing the association with the interaction request in the memory for use in
determining
a subsequent interaction request.
23. The method of any one of claims 16 to 22, wherein generating the
interaction request
comprises:
detecting the task and the subset of the context data are associated with a
previous
interaction request; and
generating the interaction request based on the previous interaction request.
24. The method of any one of claims 16 to 23 further comprising:
sending the interaction request to the request recipient in one of the
plurality of other
interaction sessions that uses an interaction channel different from the first
interaction channel.
25. The method of any one of claims 16 to 24, wherein the interaction
request comprises
data consistent with other data transmitted to the request recipient in one of
the plurality of other
interaction sessions.
26. The method of any one of claims 16 to 25, wherein the plurality of
other interaction
sessions comprises other interaction sessions initiated within a predetermined
time preceding
the interaction request.
27. The method of any one of claims 16 to 25, wherein the plurality of
other interaction
sessions comprises other interaction sessions active at a time of detecting
the interaction
request.
28. The method of any one of claims 16 to 27, wherein each of the plurality
of other
interaction sessions and the first interaction session use different types of
interaction channels
and the context data of each of the plurality of other interaction sessions
comprises an identifier
of the type of interaction channel used.

46
29. A computer readable medium for generating an interaction request to
initiate a first
interaction session using a first interaction channel between a request
recipient and a request
service provider, the computer readable medium comprising computer executable
instructions
for:
determining an identifier of the interaction request to be generated;
determining a task associated with the interaction request;
obtaining context data of a plurality of other interaction sessions associated
with the
identifier, the plurality of other interaction sessions occurring proximal in
time with the first
interaction session to be initiated, the context data being related to
activity of the request
recipient;
assigning weighting values to the context data of the plurality of other
interaction
sessions based on interaction channel type;
determining a subset of the context data of the plurality of other interaction
sessions that
are related to the task, wherein the subset of the context data comprises the
context data of the
plurality of other interaction sessions satisfying a weighting threshold
value; and
generating the interaction request using the subset of the context data.
30. The computer readable medium of claim 29 further comprising computer
executable
instructions for:
detecting an initial interaction request for initiating the first interaction
session using an
initial interaction channel,
and wherein determining the identifier is based on an identifier assigned to
the initial interaction
request, determining the task is based on a task associated with the initial
interaction request,
and generating the interaction request comprises modifying the initial
interaction request using
the subset of the context data.
31. The computer readable medium of claim 30, wherein modifying the initial
interaction
request comprises translating the initial interaction request for
transrnission in one of the
plurality of other interaction sessions that uses an interaction channel
different from the initial
interaction channel.

47
32. The computer readable medium of claim 30, wherein modifying the initial
interaction
request comprises translating the initial interaction request for initiating
the first interaction
session using the first interaction channel that is different from the initial
interaction channel.
33. The computer readable medium of claim 29, wherein a plurality of
interaction requests
are generated using the subset of the context data and the computer readable
medium further
comprising computer executable instructions for:
providing the plurality of interaction requests for selection by the request
service provider
for initiating the first interaction session.
34. The computer readable medium of any one of claims 29 to 33 further
comprising
computer executable instructions for:
sending the interaction request to the request recipient.
35. The computer readable medium of any one of claims 29 to 34 further
comprising
computer executable instructions for:
associating the task and the subset of the context data with the interaction
request; and
storing the association with the interaction request in the memory for use in
determining
a subsequent interaction request.
36. The computer readable medium of any one of claims 29 to 35, wherein
generating the
interaction request comprises:
detecting the task and the subset of the context data are associated with a
previous
interaction request; and
generating the interaction request based on the previous interaction request.
37. The computer readable medium of any one of claims 29 to 36 further
comprising
computer executable instructions for:
sending the interaction request to the request recipient in one of the
plurality of other
interaction sessions that uses an interaction channel different from the first
interaction channel.

48
38. The computer readable medium of any one of claims 29 to 37, wherein the
interaction
request comprises data consistent with other data transmitted to the request
recipient in one of
the plurality of other interaction sessions.
39. The computer readable medium of any one of claims 29 to 38, wherein the
plurality of
other interaction sessions comprises other interaction sessions initiated
within a predetermined
time preceding the interaction request.
40. The computer readable medium of any one of claims 29 to 38, wherein the
plurality of
other interaction sessions comprises other interaction sessions active at a
time of detecting the
interaction request.
41. The computer readable medium of any one of claims 29 to 40, wherein
each of the
plurality of other interaction sessions and the first interaction session use
different types of
interaction channels and the context data of each of the plurality of other
interaction sessions
comprises an identifier of the type of interaction channel used.

Description

Note: Descriptions are shown in the official language in which they were submitted.


1
SYSTEM AND METHOD FOR GENERATING AN INTERACTION REQUEST
TECHNICAL FIELD
[0001] The following relates generally to generating an interaction
request.
BACKGROUND
[0002] Traditionally, accessing a service was often limited to a single
interaction channel.
For example, a user wishing to conduct banking services can visit a branch and
conduct the
banking services with a customer service representative in-person. In recent
years, the same or
similar services have been offered through multiple interaction channels. For
example, banking
services can also be conducted through an automatic teller machine (ATM), an
automated
telephone service, voice call with a customer service representative, a mobile
application or a
website. Similarly, merchants, service providers and other businesses often
provide a choice of
interaction channels for accessing services, for increasing coverage and/or
for the convenience
of its users and customers. However, as the number of interaction channels
increases, it can
become more difficult to provide the user with an integrated and seamless user
experience.
SUMMARY
[0003] Certain example systems and methods described herein are able to use
context data
of other interaction sessions to generate an interaction request for a new
interaction session. In
one aspect, there is provided a device for generating an interaction request
to initiate a first
interaction session using a first interaction channel between a request
recipient and a request
service provider. The device includes a processor and memory. The memory
stores computer
executable instructions that when executed by the processor cause the
processor to determine
an identifier of the interaction request to be generated, determine a task
associated with the
interaction request, and obtain context data of a plurality of other
interaction sessions
associated with the identifier. The plurality of other interaction sessions
occurs proximal in time
with the first interaction session to be initiated. The context data is
related to activity of the
request recipient. The memory also stores computer executable instructions
that when
executed by the processor cause the processor to determine a subset of the
context data of the
plurality of other interaction sessions that are related to the task, and
generate the interaction
request using the subset of the context data.
[0004] In another aspect, there is provided a method of generating an
interaction request to
initiate a first interaction session using a first interaction channel between
a request recipient
and a request service provider. The method includes determining an identifier
of the interaction
23173164.1
CA 2973972 2017-07-18

2
request to be generated, determining a task associated with the interaction
request, and
obtaining context data of a plurality of other interaction sessions associated
with the identifier.
The plurality of other interaction sessions occurs proximal in time with the
first interaction
session to be initiated. The context data is related to activity of the
request recipient. The
method also includes determining a subset of the context data of the plurality
of other interaction
sessions that are related to the task, and generating the interaction request
using the subset of
the context data.
[0005] In another aspect, there is provided non-transitory computer
readable medium for
generating an interaction request to initiate a first interaction session
using a first interaction
channel between a request recipient and a request service provider. The
computer readable
medium includes computer executable instructions for determining an identifier
of the interaction
request to be generated, determining a task associated with the interaction
request, and
obtaining context data of a plurality of other interaction sessions associated
with the identifier.
The plurality of other interaction sessions occurs proximal in time with the
first interaction
session to be initiated. The context data is related to activity of the
request recipient. The
computer readable medium also includes computer executable instructions for
determining a
subset of the context data of the plurality of other interaction sessions that
are related to the
task, and generating the interaction request using the subset of the context
data.
BRIEF DESCRIPTION OF THE DRAWINGS
[0006] Embodiments will now be described by way of example only with
reference to the
appended drawings wherein:
[0007] FIG. 1 is a schematic diagram of an example computing environment.
[0008] FIG. 2 is a block diagram of example data components of a data
storage.
[0009] FIG. 3 is a block diagram of an example computing system.
[0010] FIG. 4 is a block diagram of an example configuration of a context
server.
[0011] FIG. 5A is a flow diagram of an example of computer executable
instructions for
processing an interaction request.
[0012] FIG. 5B is a flow diagram of an example of computer executable
instructions for
processing an interaction response.
[0013] FIGs. 6A-6C are flow diagrams of examples of computer executable
instructions for
interaction sessions to perform an example task.
23173164.1
CA 2973972 2017-07-18

3
[0014] FIG. 7 is an example of a graphical user interface of a virtual chat
session.
[0015] FIG. 8 is an example of a graphical user interface of an
authentication message on
a mobile application.
[0016] FIG. 9 is another example of a graphical user interface of an
authentication
message on a mobile application.
[0017] FIGs. 10A-10C are flow diagrams of examples of computer executable
instructions
for example interaction sessions.
[0018] FIG. ibis a block diagram of example data components of a context
data storage.
[0019] FIG. 12 is an example of a graphical user interface for a customer
service
application.
[0020] FIG. 13 is a block diagram of an example configuration of an
artificial intelligence
server.
[0021] FIG. 14 is a flow diagram of another example of computer executable
instructions
for processing an interaction request.
[0022] FIG. 15 is another example of a graphical user interface of a
virtual chat session.
[0023] FIG. 16 is another example of a graphical user interface of a
virtual chat session.
[0024] FIG. 17 is a flow diagram of another example of computer executable
instructions
for processing an interaction request.
[0025] FIG. 18 is a flow diagram of an example of computer executable
instructions for
generating an interaction request.
DETAILED DESCRIPTION
[0026] It will be appreciated that for simplicity and clarity of
illustration, where considered
appropriate, reference numerals may be repeated among the figures to indicate
corresponding
or analogous elements. In addition, numerous specific details are set forth in
order to provide a
thorough understanding of the example embodiments described herein. However,
it will be
understood by those of ordinary skill in the art that the example embodiments
described herein
may be practised without these specific details. In other instances, well-
known methods,
procedures and components have not been described in detail so as not to
obscure the
example embodiments described herein. Also, the description is not to be
considered as limiting
the scope of the example embodiments described herein.
23173164.1
CA 2973972 2017-07-18

4
[0027] Services are often provided through multiple interaction channels,
such as physical
locations, telephone communications, mobile applications, websites, instant
messaging/web
chats, and social media. A user may access a service using one or more
interaction channels
at a time, or may switch between different interaction channels. For example,
a user may try to
carry out a task through a website only to encounter difficulty, prompting the
user to call the help
line to reach a customer service representative. The task may then be carried
out on the
website with the guidance of the customer service representative over the
phone, or the task
may be completed over the phone with the customer service representative.
[0028] However, different interaction channels may be implemented in silos
and may not
have access to the history of user activity performed in another interaction
channel. This can
result in the user having to repeat steps or provide information that was
previously provided in a
different interaction channel, which can be frustrating and time consuming for
the user.
Similarly, this can also result in the service provider providing the same or
similar information
already provided in a different interaction channel, which may no longer be
needed by the user
or may not be current in view of other interaction sessions that have recently
taken place or are
simultaneously taking place. Even with access to the history of user activity
from multiple
interaction channels, it can be difficult for a service provider to identify
the user history that is
relevant to a particular interaction session taking place. Such information
may include vast
amounts of data that may be difficult to review and process in near real-time
that is required to
provide a responsive interactive experience.
[0029] Certain example systems and methods described herein are able to use
context data
of other interaction sessions to process an interaction request for a new
interaction session. In
one aspect, there is provided a device for processing an interaction request.
The device
includes a processor and memory. The memory stores computer executable
instructions that
when executed by the processor cause the processor to detect the interaction
request for a first
interaction session using a first interaction channel between a request
initiator and a request
service provider, assign an identifier to the interaction request, determine a
task associated with
the interaction request, and obtain context data of a plurality of other
interaction sessions
associated with the identifier. The plurality of other interaction sessions
occurs proximal in time
with the first interaction session. The context data is related to activity of
the request initiator.
The memory also stores computer executable instructions that when executed by
the processor
cause the processor to associate a subset of the context data with the
interaction request. The
subset of the context data is the context data of the plurality of other
interaction sessions that
23173164.1
CA 2973972 2017-07-18

5
are related to the task. The memory also stores computer executable
instructions that when
executed by the processor cause the processor to facilitate the first
interaction session using the
subset of the context data.
[0030] In another aspect, there is provided a method of processing an
interaction request.
The method includes detecting the interaction request for a first interaction
session using a first
interaction channel between a request initiator and a request service
provider, assigning an
identifier to the interaction request, determining a task associated with the
interaction request,
and obtaining context data of a plurality of other interaction sessions
associated with the
identifier. The plurality of other interaction sessions occurs proximal in
time with the first
interaction session. The context data is related to activity of the request
initiator. The method
also includes associating a subset of the context data with the interaction
request. The subset
of the context data is the context data of the plurality of other interaction
sessions that are
related to the task. The method also includes facilitating the first
interaction session using the
subset of the context data.
[0031] In another aspect, there is provided non-transitory computer
readable medium for
processing an interaction request. The computer readable medium includes
computer
executable instructions for detecting the interaction request for a first
interaction session using a
first interaction channel between a request initiator and a request service
provider, assigning an
identifier to the interaction request, determining a task associated with the
interaction request,
and obtaining context data of a plurality of other interaction sessions
associated with the
identifier. The plurality of other interaction sessions occurs proximal in
time with the first
interaction session. The context data is related to activity of the request
initiator. The computer
readable medium also includes computer executable instructions for associating
a subset of the
context data with the interaction request. The subset of the context data is
the context data of
the plurality of other interaction sessions that are related to the task. The
computer readable
medium also includes computer executable instructions for facilitating the
first interaction
session using the subset of the context data.
[0032] In certain example embodiments, facilitating the first interaction
session may include
providing the subset of the context data during the first interaction session
for use by the
request service provider and/or providing authentication information for use
by the request
service provider to bypass performance of a first authentication operation in
the first interaction
session.
23173164.1
CA 2973972 2017-07-18

6
[0033] Certain example systems and methods described herein are able to use
context data
of other interaction sessions to process an interaction response for use in an
interaction
session. In one aspect, there is provided a device for processing an
interaction response of a
request service provider. The device includes a processor and memory. The
memory stores
computer executable instructions that when executed by the processor cause the
processor to
detect the interaction response for a first interaction session using a first
interaction channel
between a request initiator and the request service provider, assign an
identifier to the
interaction response, determine a task associated with the interaction
response, and obtain
context data of a plurality of other interaction sessions associated with the
identifier. The
plurality of other interaction sessions occurs proximal in time with the first
interaction session.
The context data is related to activity of the request initiator. The memory
also stores computer
executable instructions that when executed by the processor cause the
processor to associate a
subset of the context data with the interaction response. The subset of the
context data is the
context data of the plurality of other interaction sessions that are related
to the task. The
memory also stores computer executable instructions that when executed by the
processor
cause the processor to modify the interaction response using the subset of the
context data.
[0034] In another aspect, there is provided a method of processing an
interaction response
of a request service provider. The method includes detecting the interaction
response for a first
interaction session using a first interaction channel between a request
initiator and the request
service provider, assigning an identifier to the interaction response,
determining a task
associated with the interaction response, and obtaining context data of a
plurality of other
interaction sessions associated with the identifier. The plurality of other
interaction sessions
occurs proximal in time with the first interaction session. The context data
is related to activity
of the request initiator. The method also includes associating a subset of the
context data with
the interaction response. The subset of the context data is the context data
of the plurality of
other interaction sessions that are related to the task. The method also
includes modifying the
interaction response using the subset of the context data.
[0035] In another aspect, there is provided non-transitory computer
readable medium for
processing an interaction response of a request service provider. The computer
readable
medium includes computer executable instructions for detecting the interaction
response for a
first interaction session using a first interaction channel between a request
initiator and the
request service provider, assigning an identifier to the interaction response,
determining a task
associated with the interaction response, and obtaining context data of a
plurality of other
23173164.1
CA 2973972 2017-07-18

7
interaction sessions associated with the identifier. The plurality of other
interaction sessions
occurs proximal in time with the first interaction session. The context data
is related to activity
of the request initiator. The computer readable medium also includes computer
executable
instructions for associating a subset of the context data with the interaction
response. The
subset of the context data is the context data of the plurality of other
interaction sessions that
are related to the task. The computer readable medium also includes computer
executable
instructions for modifying the interaction response using the subset of the
context data.
[0036] In certain example embodiments, modifying the interaction response
includes
translating the interaction response for transmission in one of the plurality
of other interaction
sessions that uses an interaction channel different from the first interaction
channel, or for
transmission in a new interaction session that uses an interaction channel
different from the first
interaction channel.
[0037] In certain example embodiments, modifying the interaction response
includes
updating data of the interaction response to be consistent with other data
transmitted to the
request initiator in one of the plurality of other interaction sessions.
[0038] Certain example systems and methods described herein are able to use
context data
of other interaction sessions to process an interaction request in an
interaction session. In one
aspect, there is provided a device for processing an interaction request. The
device includes a
processor and memory. The memory stores computer executable instructions that
when
executed by the processor cause the processor to detect the interaction
request in a first
interaction session using a first interaction channel between a request
initiator and a request
service provider, assign an identifier to the interaction request, determine a
task associated with
the interaction request, and obtain context data of a plurality of other
interaction sessions
associated with the identifier. The plurality of other interaction sessions
occurs proximal in time
with the first interaction session. The context data is related to activity of
the request initiator.
The memory also stores computer executable instructions that when executed by
the processor
cause the processor to associate a subset of the context data with the
interaction request. The
subset of the context data is the context data of the plurality of other
interaction sessions that
are related to the task. The memory also stores computer executable
instructions that when
executed by the processor cause the processor to generate at least one
interaction response in
response to the task using the subset of the context data.
[0039] In another aspect, there is provided a method of processing an
interaction request.
The method includes detecting the interaction request in a first interaction
session using a first
23173164.1
CA 2973972 2017-07-18

8
interaction channel between a request initiator and a request service
provider, assigning an
identifier to the interaction request, determining a task associated with the
interaction request,
and obtaining context data of a plurality of other interaction sessions
associated with the
identifier. The plurality of other interaction sessions occurs proximal in
time with the first
interaction session. The context data is related to activity of the request
initiator. The method
also includes associating a subset of the context data with the interaction
request. The subset
of the context data is the context data of the plurality of other interaction
sessions that are
related to the task. The method also includes generating at least one
interaction response in
response to the task using the subset of the context data.
[0040] In another aspect, there is provided non-transitory computer
readable medium for
processing an interaction request. The computer readable medium includes
computer
executable instructions for detecting the interaction request in a first
interaction session using a
first interaction channel between a request initiator and a request service
provider, assigning an
identifier to the interaction request, determining a task associated with the
interaction request,
and obtaining context data of a plurality of other interaction sessions
associated with the
identifier. The plurality of other interaction sessions occurs proximal in
time with the first
interaction session. The context data is related to activity of the request
initiator. The computer
readable medium also includes computer executable instructions for associating
a subset of the
context data with the interaction request. The subset of the context data is
the context data of
the plurality of other interaction sessions that are related to the task. The
computer readable
medium also includes computer executable instructions for generating at least
one interaction
response in response to the task using the subset of the context data.
[0041] In certain example embodiments, a plurality of interaction responses
are generated
and provided to the request service provider for use in the first interaction
session. In certain
example embodiments, the interaction responses generated are sent to the
request initiator in
the first interaction session.
[0042] In certain example embodiments, the task and the subset of the
context data are
associated with the interaction responses generated, and the association is
stored in memory
for use in determining a subsequent interaction response. A subsequent
interaction response
may be generated by detecting that the task and the subset of the context data
are associated
with an interaction response, and generating the subsequent interaction
response based on the
associated interaction response.
23173164.1
CA 2973972 2017-07-18

9
[0043] Certain example systems and methods described herein are able to use
context data
of other interaction sessions to generate an interaction request for a new
interaction session. In
one aspect, there is provided a device for generating an interaction request
to initiate a first
interaction session using a first interaction channel between a request
recipient and a request
service provider. The device includes a processor and memory. The memory
stores computer
executable instructions that when executed by the processor cause the
processor to determine
an identifier of the interaction request to be generated, determine a task
associated with the
interaction request, and obtain context data of a plurality of other
interaction sessions
associated with the identifier. The plurality of other interaction sessions
occurs proximal in time
with the first interaction session to be initiated. The context data is
related to activity of the
request recipient. The memory also stores computer executable instructions
that when
executed by the processor cause the processor to determine a subset of the
context data of the
plurality of other interaction sessions that are related to the task, and
generate the interaction
request using the subset of the context data.
[0044] In another aspect, there is provided a method of generating an
interaction request to
initiate a first interaction session using a first interaction channel between
a request recipient
and a request service provider. The method includes determining an identifier
of the interaction
request to be generated, determining a task associated with the interaction
request, and
obtaining context data of a plurality of other interaction sessions associated
with the identifier.
The plurality of other interaction sessions occurs proximal in time with the
first interaction
session to be initiated. The context data is related to activity of the
request recipient. The
method also includes determining a subset of the context data of the plurality
of other interaction
sessions that are related to the task, and generating the interaction request
using the subset of
the context data.
[0045] In another aspect, there is provided non-transitory computer
readable medium for
generating an interaction request to initiate a first interaction session
using a first interaction
channel between a request recipient and a request service provider. The
computer readable
medium includes computer executable instructions for determining an identifier
of the interaction
request to be generated, determining a task associated with the interaction
request, and
obtaining context data of a plurality of other interaction sessions associated
with the identifier.
The plurality of other interaction sessions occurs proximal in time with the
first interaction
session to be initiated. The context data is related to activity of the
request recipient. The
computer readable medium also includes computer executable instructions for
determining a
23173164.1
CA 2973972 2017-07-18

10
subset of the context data of the plurality of other interaction sessions that
are related to the
task, and generating the interaction request using the subset of the context
data.
[0046] In certain example embodiments, the context data of the plurality of
other interaction
sessions may be assigned weighting values based on interaction channel type
and the subset
of the context data includes the context data of the plurality of other
interaction sessions
satisfying a weighting threshold value.
[0047] In certain example embodiments, the plurality of other interaction
sessions may
include other interaction sessions initiated within a predetermined time
preceding the interaction
request and/or active at a time of detecting the interaction request. Each of
the plurality of other
interaction sessions and the first interaction session may use different types
of interaction
channels and the context data of each of the plurality of other interaction
sessions may include
an identifier of the type of interaction channel used.
[0048] In certain example embodiments, the context data of the plurality of
other interaction
sessions may be ranked based on relevance to the task and the subset of the
context data is
associated with the interaction request in order of the ranking.
[0049] FIG. 1 illustrates an exemplary computing environment 100. In one
aspect,
computing environment 100 may include one or more client devices 104, a system
140, and a
communication network 120 connecting one or more of the components of
environment 100.
[0050] Client devices 104 may be associated with one or more users 110.
Users 110 can
include both real and/or virtual/automated entities. The computing environment
100 may
include multiple client devices 104, each associated with a separate user 110
or with one or
more users 110. In certain embodiments, user 110 may operate client device 104
such that
client device 104 performs one or more processes consistent with the disclosed
embodiments.
For example, user 110 may use client device 104 to perform a transaction
involving one or more
accounts associated with user 110 and/or other users that are provided,
maintained, managed,
and/or processed by system 140. In certain aspects, client device 104 can
include, but is not
limited to, a personal computer, a laptop computer, a tablet computer, a
notebook computer, a
hand-held computer, a personal digital assistant, a portable navigation
device, a mobile phone,
a wearable device, a gaming device, an embedded device, a smart phone, third
party portals,
an automated teller machine (ATM), and any additional or alternate computing
device, and may
be operable to transmit and receive data across communication network 120.
23173164.1
CA 2973972 2017-07-18

11
[0051] Communication network 120 may include a telephone network, cellular,
and/or data
communication network to connect different types of client device 104. For
example, the
communication network 120 may include a private or public switched telephone
network
(PSTN), mobile network (e.g., code division multiple access (CDMA) network,
global system for
mobile communications (GSM) network, and/or any 3G or 4G wireless carrier
network, etc.),
WiFi or other similar wireless network, and a private and/or public wide area
network (e.g., the
Internet).
[0052] In one embodiment, system 140 may be one or more computer systems
configured
to process and store information and execute software instructions to perform
one or more
processes consistent with the disclosed embodiments. In certain embodiments,
although not
required, system 140 may be associated with one or more business entities,
such as business
entity 190. In certain embodiments, business entity 190 may be any type of
business entity. For
example, system 140 may be a system associated with a commercial bank, a
retailer, or some
other type of business.
[0053] While certain aspects of the disclosed embodiments are described in
connection with
business entity 190 as a financial institution (e.g., commercial bank) that
provides financial
services accounts to users 110 and processes financial transactions associated
with those
financial service accounts, the disclosed embodiments are not so limited. In
other embodiments,
system 140 may be associated with a business entity 190 that provides customer
or user
accounts, such as retailers, merchants and other consumer and/or commercial
service
providers.
[0054] The system 140 may include one or more servers to facilitate or
carry out a service
requested by user 110 via the client device 104. Exemplary servers include a
mobile
application server 142, an interactive voice response (IVR) server 144, a
social media server
146, a web server 148, and a call server 150. In the example of a commercial
bank business
entity 190, the system 140 may also include a branch server 154. The servers
can be used to
implement different interaction channels provided by business entity 190. The
system 140 may
also include a cryptographic server 160 for performing cryptographic
operations and providing
cryptographic services. The cryptographic server 160 can also be configured to
communicate
and operate with a cryptographic infrastructure 162. The system 140 may also
include one or
more data storages for storing and providing data for use in such services,
such as data storage
152. System 140 also includes a context server 170, which as discussed below,
can be used to
associate context data of other interaction sessions with an interaction
request from, or an
23173164.1
CA 2973972 2017-07-18

12
interaction response to, a client device 104. System 140 may also include one
or more agent
devices 180 for use by one or more agents 182 (e.g., workstations operated by
live agents at a
contact centre). System 140 may also include an artificial intelligence server
190 to
automatically perform operations, make selections, and generate interaction
messages as
described herein.
[0055] Mobile application server 142 supports interactions with a mobile
application installed
on client device 104 to provide a mobile interaction channel. Mobile
application server 142 can
access other resources of system 140 to carry out requests made by, and to
provide content
and data to, the mobile application on client device 104. In an example
embodiment, mobile
application server 142 supports a mobile banking application to provide a
mobile banking
interaction channel.
[0056] IVR server 144 supports interactions over a telephone network that
uses voice
and/or keypad inputs received from client device 104. The IVR server 144 can
access other
resources of system 140 to carry out requests made by, and to provide response
to, user 110
during the call. In an example embodiment, IVR server 144 supports an
automated telephone
service to provide an automated telephone banking interaction channel. The IVR
server may
also interact with call server 150 to route the telephone call to an agent 182
via agent device 80.
In an example embodiment, agent device 180 can be a workstation having
telephony
capabilities operated by a live agent 182. In some embodiments, IVR server 144
may be
absent from system 140, and calls from client device 110 over the telephone
network may be
directed to the call server 150 directly.
[0057] Social media server 146 supports interaction in the form of one or
more social media
platforms, such as email, chat, videoconferencing, text-messaging, etc. In an
example
embodiment, social media server 146 communicates with one or more applications
running on
agent device 180 to enable an agent 182 to interact with user 110 via a social
media platform.
In an example embodiment, social media server 146 supports online chat
functionality to
provide an online chat interaction channel on the website of business entity
190 or a third-party
social media website.
[0058] Web server 148 supports interactions using a website accessed by an
internet
browser running on the client device 104. A user 110 may access webpages
regarding a
company's products or services. The webserver 148 may carry authentication
protocols to
support secured webpages. In an example embodiment, web server 148 supports a
secured
web portal to provide an online banking interaction channel.
23173164.1
CA 2973972 2017-07-18

13
[0059] In the example of a commercial bank business entity 190, branch
server 154
supports the computer systems (e.g., ATMs, workstations of branch tellers)
located at branch
locations. In this example embodiment, the agent device 180 can include ATMs
and
workstations operated by branch tellers, and branch server 154 supports an in-
person banking
interaction channel.
[0060] Data storage 152 may be provided using one or more data storage
devices
configured to store information consistent with the disclosed embodiments. In
the example
embodiment shown in FIG. 2, data storage 152 may include customer data 200,
account data
202, and transaction data 204. In one aspect, customer data 200 may include
one or more data
records uniquely identifying one or more users 110 of business entity 190
associated with
system 140. By way of example, a customer of a financial institution (e.g.,
business entity 190)
may access a web page associated with system 140 (e.g., through web server
148), and
subsequently register for online banking services and provide data. The data
may be linked to
the customer and stored within customer data 200.
[0061] In certain aspects, customer data 200 may include personal
information associated
with a user 110 (e.g., a name, home address, or date of birth), demographic
information (e.g.,
educational level, income level), government-issued identifiers (e.g.,
driver's license numbers or
Social Security numbers), employment information (e.g., employer name or
address), and/or
contact information (e.g., e-mail addresses, home numbers, work numbers, or
mobile numbers).
Other types of customer information may be stored and used.
[0062] Customer data 200 may include client device identification
information identifying
one or more client devices 104 registered to user 110. In one embodiment, the
user may
provide the client device identification information (e.g., a mobile telephone
number provided by
the user when registering for online banking services). Alternatively, system
140 may be
configured to execute processes that automatically collect client device
identification information
(e.g., collecting an Internet Protocol (IF) address associated with the
customer's smartphone by
web server 148).
[0063] In an example embodiment, customer data 200 may include geographic
position
data associated with user 110 and/or at least one of client devices 104
registered to user 110.
For instance, the geographic position data may identify a current geographic
position of user
110 and/or client devices 104, and additionally or alternatively, one or more
prior geographic
positions of user 110 and/or client devices 104. In certain aspects, system
140 may obtain a
portion of the geographic position data from client device 104 across
communication network
23173164.1
CA 2973972 2017-07-18

14
120. By way of example, client device 104 may include a global position system
(e.g., a GPS)
that tracks a current geographic position of client device 104, and client
device 104 may
transmit geographic position data indicative of the current geographic
position of client device
104 to system 140 across communication network 120. For instance, client
device 104 may
append the geographic position data to data transmitted to system 140 in
response to a
completed transaction, and/or a required update to system 140. In other
instances, client device
104 may transmit the geographic position data to a third-party system (e.g., a
mobile
telecommunications provider), and system 140 may obtain portions of the
geographic position
data from the third-party system across network 140 through an appropriate
application
programming interface (API). Upon receipt of the geographic position data from
client device
104 and/or the third-party system, system 140 may be configured to format and
store the
received positional information within data storage 152 (e.g., as portions of
customer data 200).
[0064] In certain aspects, account data 202 may include information
identifying one or more
accounts of customers of a financial institution (e.g., business entity 190)
associated with
system 140. In one embodiment, account identification information may include
financial service
account information. For example, such service account information may include
a checking
account, a savings account, a revolving credit line, an account linked to a
credit or debit card, a
brokerage account, a wealth account, an investment account, and any additional
or alternate
account provided or supported by the issuing bank. In other embodiments,
account data 202
may include information identifying investment portfolios held by one or more
customers of the
financial institution (e.g., positions in one or more securities held by the
customers). Information
within account data 202 may also identify, for a single customer, one or more
accounts
associated with the customer and account data corresponding to the accounts
(e.g., account,
expiration date information, and/or card security codes, account balance
information, and/or
credit limit information).
[0065] In other aspects, account data 202 may include account information
associated with
nonfinancial service accounts, such as online customer accounts for retailers,
merchants or
other services or activities.
[0066] Transaction data 204 may include information identifying one or more
transactions
involving one or more customers or accounts of business entity 190 associated
with system
140. In one embodiment, such transactions may include, but are not limited to,
purchase
transactions (e.g., purchases of goods and/or services from electronic or
physical retailers),
financial service transactions (e.g., fund transfers), bill payment
transactions (e.g., electronic bill
23173164.1
CA 2973972 2017-07-18

15
payment transactions), financial instrument or security transactions (e.g.,
purchases of
securities), deposits or withdrawals of funds, or applications for credit from
the financial
institution or other entity.
[0067] Referring back to Figure 1, system 140 may also include a
cryptographic server 160
for performing cryptographic operations and providing cryptographic services
(e.g.,
authentication (via digital signatures), data protection (via encryption),
etc.) to provide a secure
interaction channel and interaction session, etc. The cryptographic server 160
can also be
configured to communicate and operate with a cryptographic infrastructure 162,
such as a
public key infrastructure (PKI), certificate authority (CA), certificate
revocation service, signing
authority, key server, etc. The cryptographic server 160 and cryptographic
infrastructure 162
can be used to protect the various data communications described herein, to
secure
communication channels therefor, authenticate parties, manage digital
certificates for such
parties, manage keys (e.g., public and private keys in a PKI), and perform
other cryptographic
operations that are required or desired for particular applications of the
system 140. The
cryptographic server 160 may be used to protect the customer data 200, account
data 202, and
transaction data 204 by way of encryption for data protection, digital
signatures or message
digests for data integrity, and by using digital certificates to authenticate
the identity of the users
110 and client devices 104 with which the system 140 communicates to inhibit
data breaches by
adversaries. It can be appreciated that various cryptographic mechanisms and
protocols can be
chosen and implemented to suit the constraints and requirements of the
particular deployment
of the system 140 as is known in the art.
[0068] Fig. 3 illustrates an example computer system 300. Computer system
300 may
reflect computer systems associated with system 140, mobile application server
142, IVR server
144, social media server 146, web server 148, call server 150, branch server
154, cryptographic
server 160, context server 170, artificial intelligence server 190, client
device 104 and/or agent
device 180.
[0069] In certain embodiments, computer system 300 may include one or more
processors 302, a communication interface 304, and memory device 306.
Communication
interface 304 enables the computer system 300 to communicate with one or more
other
components of computing environment 100, such as client device 104 or system
140 (or one of
its components), via a bus or other communication network, such as
communication network
120. Memory device 306 can include tangible and non-transitory computer-
readable medium
23173164.1
CA 2973972 2017-07-18

16
having stored therein computer programs, sets of instructions, code, or data
to be executed by
processor 302.
[0070] In FIG. 4, an example configuration of context server 170 is shown.
Context server
170 includes a context aggregator module 400, a context analyzer module 402,
an interaction
detector module 410, an identifier assignment module 412, a task determination
module 414, a
context selection module 416, and an interaction facilitator module 418.
[0071] The context aggregator module 400 receives or determines context
data for
interaction sessions that have been completed or that are taking place in
system 140 for one or
more users 110. The context data for an interaction session can include
numerous information
related to the interaction session, such as the purpose, task and/or subject
of an interaction
session, the identity of the user 110 and/or client device 104 involved in the
interaction session,
the type of interaction channel used, the start and finish times/dates of the
interaction session,
the location of user 110 and/or client device 104, references to other related
interaction
sessions, other metadata, etc.
[0072] In an example embodiment, the context data may be determined by the
applicable
servers of system 140, agent device 180 and/or agent 182, at the time of
performing
transactions within the interaction session, and recorded as part of the
transaction data 204
stored in data storage 152. In this example embodiment, context aggregator
module 400 can
request or access such transaction data 204 from data storage 152. A local
copy of the context
data retrieved from data storage 152 can be stored in context data storage 420
for increased
performance of the context server 170.
[0073] In an example embodiment, the context aggregator module 400 monitors
the
communications being sent or received by, or within, system 140 to determine
when an
interaction session is carried out, and the context aggregator module 400
generates context
data associated with such interaction session and stores such context data in
context data
storage 420.
[0074] In this way, the context aggregator module 400 can track and process
in parallel
multiple interaction sessions concurrently taking place (e.g., all interaction
sessions concurrently
taking place between a user 110 and system 140). Context aggregator module 400
can
generate in parallel context data associated with all such interaction
sessions, and make the
context data of each interaction session available for use in the other
interaction sessions
concurrently taking place, as well as for use in future interaction sessions.
The context data
23173164.1
CA 2973972 2017-07-18

17
may be accessed in parallel by multiple interaction sessions and/or when
processing multiple
interaction requests.
[0075] In an example embodiment, the context aggregator module 400 can
determine
context data for an interaction request (whether or not the interaction
session has been
established). For example, if the interaction session of the interaction
request has not yet been
established, certain context data can still be determined, such as the
time/date the request is
initiated, the identity of the request initiator, the interaction channel of
the interaction session
being requested, other metadata, etc.
[0076] The context data determined by the context aggregator module 400 can
be stored
and organized in the context data storage 420 as a database that can be
queried based on
various context data fields, such as details on the purpose, task and/or
subject of an interaction
session or interaction request or interaction response, the identity of the
user 110 and/or client
device 104 involved in the interaction session, the type of interaction
channel used, the start and
finish times/dates of the interaction session, etc. It will be understood that
not all fields of
context data will be applicable to all interaction sessions, interaction
requests or interaction
responses.
[0077] The context analyzer module 402 analyzes context data stored in the
context data
storage 420 according to various criteria, the results of which may be used by
the task
determination module 414 and/or context selection module 416, and examples of
which are
described in the embodiments and example scenarios herein.
[0078] The interaction detector module 410 can detect an interaction
request for an
interaction session between a request initiator and a request service
provider. The interaction
detector module 410 can also detect an interaction response of the request
service provider
during an interaction session with the request initiator. In an example
embodiment, each
interaction to and from the system 140 is sent to interaction detector module
410 for processing
and/or the interaction detector module 410 monitors communications being sent
or received by,
or within, system 140 to identify interaction requests and responses.
[0079] The identifier assignment module 412 assigns an identifier to an
interaction request
or response.
[0080] The task determination module 414 determines a task associated with
the interaction
request or response. It will be appreciated that a task can represent a
specific transaction to be
carried out by or for user 110 (e.g., transfer $500 from savings account of
user 110 to chequing
23173164.1
CA 2973972 2017-07-18

18
account of user 110), or it can represent a general subject area among many
possible subjects
for which the interaction request or response could relate to (e.g., mortgage
product of user
110).
[0081] The context selection module 416 selects a subset of the context
data from the
context data available to the context server 170 to associate with the
interaction request or
response. The subset of the context data can then be used in the requested
interaction session
after that session is established. In this way, activity history of user 110
relevant to the
interaction request or response may be identified for use while irrelevant
context data can be
ignored.
[0082] Interaction facilitator module 418 uses the subset of the context
data to facilitate the
interaction session requested by the interaction request or to modify the
interaction response.
[0083] It will be appreciated that context server 170 may be incorporated
into a single
computer or a single server or service, or alternatively, may be distributed
among one or more
computing systems 300. In an example embodiment, context server 170 (or a
module thereof,
such as those shown in FIG. 4 for example) may be implemented as one or more
software
programs, such as a software application (e.g., a web service) executed by one
or more
processors included in one of the other servers of system 140, client device
104, agent device
180, or another server or computing system 300.
[0084] It will also be appreciated that the context server 170 may not
include all modules
shown in FIG. 4 and/or the functionality described with respect to each
module. For example, in
certain example embodiments, the context server 170 may be configured to only
process
interaction requests such that the applicable modules and functionality to
process interaction
responses are not provided, or vice versa.
[0085] It will also be appreciated that any module or component exemplified
herein that
executes instructions may include or otherwise have access to computer
readable media such
as storage media, computer storage media, or data storage devices (removable
and/or non-
removable) such as, for example, magnetic disks, optical disks, or tape.
Computer storage
media may include volatile and non-volatile, removable and non-removable media
implemented
in any method or technology for storage of information, such as computer
readable instructions,
data structures, program modules, or other data. Examples of computer storage
media include
RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital
versatile
disks (DVD) or other optical storage, magnetic cassettes, magnetic tape,
magnetic disk storage
23173164.1
CA 2973972 2017-07-18

19
or other magnetic storage devices, or any other medium which can be used to
store the desired
information and which can be accessed by an application, module, or both. Any
such computer
storage media may be part of any of the servers in system 140, client device
104, or agent
device 180, or accessible or connectable thereto. Any application or module
herein described
may be implemented using computer readable/executable instructions that may be
stored or
otherwise held by such computer readable media.
[0086] Referring to FIG. 5A, an example embodiment of computer executable
instructions
for processing an interaction request is shown. At block 500, the interaction
detector module
410 detects an interaction request for an interaction session using an
interaction channel.
[0087] At block 502, the identifier assignment module 412 assigns an
identifier to the
interaction request. In an example embodiment, an identifier unique to user
110 and/or client
device 104 can be used. In an example embodiment, the identity of user 110
and/or client
device 104 initiating the interaction request, or for which the request
relates, may be inserted in
the interaction request itself. In an example embodiment, the identity of user
110 and/or client
device 104 can be determined by system 140 upon receiving the interaction
request (e.g.,
through telephone number caller identification technology used in the IVR
server 144 or call
server 150, or collecting an IP address associated with client device 104).
[0088] At block 504, the task determination module 414 determines a task
associated with
the interaction request. In an example embodiment, the context analyzer module
402 analyzes
a set of context data related to the interaction request to generate
statistical information related
thereto. Based on the degree of similarity in the context data of the
interaction request and
historical context data of other interaction sessions, the statistical
information may include
probabilities that the interaction request is associated with the same task of
the historical
context data. In this example embodiment, the task determination module 414
can select the
task that has the highest probability of occurring that has similar context
data values as the
interaction request. For example, a user 110 may prefer a specific interaction
channel to
perform specific tasks and thus, the interaction channel may be indicative of
the task associated
with the interaction request (e.g., a user may tend to use the mobile
application channel for
completing routine low-value banking tasks, but tend to use the online banking
channel or
telephone banking channel for less frequent high-value tasks).
[0089] In an example embodiment, the context analyzer module 402 only
analyzes the set
of context data associated with interaction sessions that are active at the
time of detecting the
interaction request. Active interaction sessions may be more indicative of the
task or subject
23173164.1
CA 2973972 2017-07-18

20
area currently of interest to the request initiator. The context analyzer
module 402 can identify
any common properties among the context data of active interaction sessions to
infer a task
associated with the interaction request being processed. In another example
embodiment, the
context analyzer module 402 may limit the set of context data to recent
context data (i.e.,
context data associated with interaction sessions that are active or ended
within the last hour,
day, week, month, or other predetermined period of time).
[0090] At block 506, the context server 170 obtains context data (e.g.,
from the context data
storage 420) of other interaction sessions associated with the identifier that
is related to the
activity of user 110. The other interaction sessions can include previous
interaction sessions
that have ended and/or active interaction sessions that are taking place at
the time the
interaction request is detected.
[0091] At block 508 the context selection module 416 selects a subset of
the context data
from the context data available to the context server 170 (e.g., stored in
context data storage
420) and associates such context data with the interaction request. In an
example embodiment,
the subset of the context data associated with the interaction request may be
limited to active
interaction sessions or to context data of recent interaction sessions.
However, in other
example embodiments, the time window used by the context selection module 416
to determine
the subset of the context data to associate with the interaction request may
be different from the
time window used by the task determination module 414 to determine the task
associated with
the interaction request. For example, the task determination module 414 may
determine, from
analyzing active interaction sessions only, that the interaction request task
relates to a mortgage
product of user 110. The context selection module 416 may then select the
subset of the
context data as all context data across all interaction channels related to
the mortgage term, as
the lifespan of a mortgage product can be relatively long and older activity
may still be relevant.
[0092] In an example embodiment, the context selection module 416 may
assign weighting
values to the context data of the plurality of other interaction sessions
based on relevance,
similarities or differences to the interaction request or response, task,
interaction channel type,
or interaction session being requested. Selection of the subset of the context
data can
incorporate the weighting values, such as only selecting context data of other
interaction
sessions that satisfies a weighting threshold value.
[0093] In an example embodiment, the weighting values of the context data
may be
interdependent on other interaction sessions that are occurring or have
occurred in the past.
For example, weighting values associated with an interaction session may be
altered based on
23173164.1
CA 2973972 2017-07-18

21
whether another interaction session occurs in the same or different
interaction channel in the
vicinity of the interaction session being weighted. For example, the weighting
value may
increase if there is one or more other interaction sessions using the same
interaction channel.
In certain embodiments, the weighting values need not be static but can change
over time. For
example, as more or less interaction sessions use a specific interaction
channel, the weighting
values associated with interactions sessions using that interaction channel
can continually or
periodically be adjusted up or down. In this way, the weighting values
associated with each
interaction session may be determined holistically and be dependent not only
on the internal
context of the interaction session but also the contexts of other interaction
sessions (e.g.
adjacent interaction sessions or in some examples, all interaction sessions in
general).
[0094] At block 510, the interaction facilitator module 418 uses the subset
of the context
data to facilitate the interaction session requested by the interaction
request. In an example
embodiment, the interaction facilitator module 418 facilitates the interaction
session by providing
the subset of the context data to the request service provider. For example,
if the interaction
request is for a live agent telephone session, the interaction facilitator
module can send the
subset of the context data to the agent device 180 for display to the agent
182 servicing the
telephone session (e.g., via a monitor or other display device that is part of
or accessible to the
agent device 180).
[0095] In an example embodiment, if the interaction session requested is a
mobile session,
the interaction facilitator module 418 can use the subset of the context data
to determine
services that may be of interest to user 110 that are related to the task
associated with the
interaction request. Interaction facilitator module 418 then sends the
services of interest to
mobile application server 142, which can then cause the mobile application
running on client
device 104 to display a set of suggested links in the graphical user interface
of the mobile
application (e.g., under a "suggested links" section of the display screen or
as an initial landing
page upon logging into the mobile application). It will be appreciated that,
having identified a
relevant subset of the context data of other interaction sessions, there can
be other ways to use
such subset of the context data to improve the user experience of the
interaction session being
requested.
[0096] Referring to FIG. 5B, an example embodiment of computer executable
instructions
for processing an interaction response is shown. At block 530, the interaction
detector module
410 detects an interaction response for an interaction session using an
interaction channel.
23173164.1
CA 2973972 2017-07-18

22
[0097] At block 532, the identifier assignment module 412 assigns an
identifier to the
interaction response. In an example embodiment, an identifier unique to user
110 and/or client
device 104 that the interaction response is intended for can be used. In an
example
embodiment, the identity of user 110 and/or client device 104 intended to
receive the interaction
response, or for which the response relates, may be inserted in the
interaction response itself.
In an example embodiment, the identity of user 110 and/or client device 104
can be determined
by system 140 by identifying the source of the interaction request for which
the interaction
response is responding to.
[0098] At block 534, the task determination module 414 determines a task
associated with
the interaction response. In an example embodiment, the context analyzer
module 402
analyzes a set of context data related to the interaction response to generate
statistical
information related thereto. Based on the degree of similarity in the context
data of the
interaction response and historical context data of other interaction
sessions, the statistical
information may include probabilities that the interaction response is
associated with the same
task of the historical context data. In this example embodiment, the task
determination module
414 can select the task that has the highest probability of occurring that has
similar context data
values as the interaction response. For example, a user 110 may prefer a
specific interaction
channel to perform specific tasks and thus, the interaction channel may be
indicative of the task
associated with the interaction response (e.g., a user may tend to use the
mobile application
channel for completing routine low-value banking tasks, but tend to use the
online banking
channel or telephone banking channel for less frequent high-value tasks).
[0099] In an example embodiment, the context analyzer module 402 only
analyzes the set
of context data associated with interaction sessions that are active at the
time of detecting the
interaction response. Active interaction sessions may be more indicative of
the task or subject
area currently of interest to the request initiator. The context analyzer
module 402 can identify
any common properties among the context data of active interaction sessions to
infer a task
associated with the interaction response being processed. In another example
embodiment, the
context analyzer module 402 may limit the set of context data to recent
context data (i.e.,
context data associated with interaction sessions that are active or ended
within the last hour,
day, week, month, or other predetermined period of time).
[00100] At block 536, the context server 170 obtains context data (e.g.,
from the context data
storage 420) of other interaction sessions associated with the identifier that
is related to the
activity of user 110. The other interaction sessions can include previous
interaction sessions
23173164.1
CA 2973972 2017-07-18

23
that have ended and/or active interaction sessions that are taking place at
the time the
interaction response is detected.
[00101] At block 538 the context selection module 416 selects a subset of the
context data
from the context data available to the context server 170 (e.g., stored in
context data storage
420) and associates such context data with the interaction response. In an
example
embodiment, the subset of the context data associated with the interaction
response may be
limited to active interaction sessions or to context data of recent
interaction sessions. However,
in other example embodiments, the time window used by the context selection
module 416 to
determine the subset of the context data to associate with the interaction
response may be
different from the time window used by the task determination module 414 to
determine the task
associated with the interaction response. For example, the task determination
module 414 may
determine, from analyzing active interaction sessions only, that the
interaction response task
relates to a mortgage product of user 110. The context selection module 416
may then select
the subset of the context data as all context data across all interaction
channels related to the
mortgage term, as the lifespan of a mortgage product can be relatively long
and older activity
may still be relevant.
[00102] At block 540, the interaction facilitator module 418 uses the
subset of the context
data to modify the interaction response. In an example embodiment, the
interaction facilitator
module 418 translates the interaction response initially intended for
transmission in the current
interaction session to another interaction session that may be taking place
concurrently with
user 110 using a different interaction channel, or to a new interaction
session to be initiated by
the request service provider.
[00103] For example, an online web portal session between web server 148 and a

workstation of a user 110 and a mobile application session between mobile
application server
142 and a mobile device of the same user 110 may be concurrently active. An
interaction
response may be sent from web server 148 as part of an online web portal
session that is
detected or received by the context server 170. In processing the interaction
response,
interaction facilitator module 418 may determine from the context data of the
mobile application
session that user 110 has since left the location of the workstation (e.g.,
using GPS data of the
mobile device), such that the interaction facilitator module 418 translates
the interaction
response sent from web server 148 as an online web portal session message (for
transmission
to the workstation) to a mobile application session message for transmission
to the mobile
device, in order to effectively and timely reach user 110.
23173164.1
CA 2973972 2017-07-18

24
[00104] In an example embodiment, the interaction facilitator module 418
may translate the
interaction response to a message for transmission in a new interaction
session (using a
different interaction channel) not yet established. For example, the
interaction response of an
online web portal session or other electronic-based session may be translated
to an IVR
message and telephone call to user 110 in an attempt to reach user 110
immediately.
[00105] In an example embodiment, the interaction facilitator module 418
can use the subset
of the context data to update data of the interaction response to be
consistent with other data
previously transmitted in other interaction sessions. For example, the
interaction response may
include account data 202 retrieved from data storage 152. However, an event in
another
interaction session may have recently occurred that affects the value of the
account data 202
but has not yet been updated and stored in data storage 152. The interaction
facilitator module
418 can update the interaction response based on the context data of other
interaction sessions
that affected the account data 202 such that up-to-date data is included in
the interaction
response to provide real-time information to user 110.
[00106] In an example embodiment, the interaction facilitator module 418
can update
interaction responses to ensure that consistent data and other information are
provided across
multiple interaction session that use different interaction channels. For
example, a business
entity 190 may want to implement a marketing campaign across different
interaction channels
but ensure that a customer is offered the same product, discount, benefit,
etc. through its web
portal, social media platforms, mobile application, telephone calls and in-
person visits. In
another example, the business entity 190 may wish to promote and encourage use
of a specific
interaction channel over others by offering certain products and greater
discounts, benefits, etc.
only through specific interaction channels. The interaction facilitator module
418 can adjust the
interaction response data based on the offers already provided to user 110, as
set out in the
subset of the context data associated with the interaction response.
[00107] In an example embodiment, the interaction facilitator module 418
can use the subset
of the context data to confirm that an active interaction session with the
client device 104 has
been authenticated, and then use the active interaction session to
authenticate an interaction
session being requested. In this way, the requested interaction session
inherits authentication
properties from the existing authenticated active interaction session, and
interaction responses
related to certain authentication procedures of the interaction session being
requested can be
avoided or reduced. For example, an internet banking session often requires
the user 110 to
enter a customer number and online banking password. A telephone banking
session often
23173164.1
CA 2973972 2017-07-18

25
requires the user 110 to answer multiple security questions (e.g., customer
number, mother's
maiden name, details of recent transactions, social insurance or other
government identification
number, etc.). In an example interaction session, user 110 may enter the
customer number
and password to securely access the online banking website to conduct an
online banking
session with the web server 148. During the online banking session, user 110
places a call to
the telephone banking number. The IVR server 144 may then generate a standard
interaction
response requiring the caller to respond to various security questions which
is detected by or
sent to the context server 170. The context server 170 uses the subset of the
context data to
detect that there is already an active and secure online banking session with
the user 110 and
thus modifies the interaction response to use the online banking channel to
confirm that it is
user 110 that is making the call through the telephone banking channel. For
example, the
interaction response can be modified to authenticate the caller as user 110 by
causing the web
server 148 to display a window prompt in the online banking session accessed
using user 110's
Internet browser that must be clicked in order to confirm that the user 110 of
the online banking
session (which has already been authenticated) is also the caller of the
telephone banking
session. In this way, authentication in the online banking channel is
inherited in the telephone
banking channel. In another example, the interaction facilitator module 418
may modify the
interaction response from the IVR server 144 to cause the web server 148 to
display a
temporary code that the user 110 is prompted to enter in the telephone banking
session as an
alternative to the standard security questions. User 110 may find such
authentication easier
and less onerous as the temporary code is presented to the user 110 on the
online banking
session rather than requiring the user 110 to memorize responses to a variety
of security
questions, which the user 110 may forget and find frustrating.
[00108] It will be appreciated that the description of blocks 502, 504, 506
and 508 may apply
in a similar manner to blocks 532, 534, 536 and 538, respectively.
[00109] FIGs. 6A-6C illustrate computer executable instructions that can be
performed in the
course of example interaction sessions 600A, 600B and 6000 to withdraw funds
from a bank
account. At block 602, client device 104 sends an interaction request for a
virtual chat session
600A (i.e., using the virtual chat channel) to the context server 170 (for
example, by selecting a
virtual chat dialog box on the website of the bank or bank profile page on a
social media
website). For the sake of simplicity, in this example there are no related
previous or concurrent
interaction sessions at the time the interaction request for the virtual chat
session 600A is made
(although other unrelated interaction sessions and context data thereof may
exist) and thus at
23173164.1
CA 2973972 2017-07-18

26
block 604, context server 170 determines that there is no context data to
associate with this
interaction request and sends the interaction request to the social media
server 146. At block
606, the social media server 146 receives the interaction request. At block
608, the social
media server 146 generates an interaction response for authenticating client
device 104. As
noted above for the sake of simplicity, in this example there are no related
previous or
concurrent interaction sessions and thus at block 620, context server 170
determines that there
is no context data to associate with this interaction response and sends the
interaction response
to client device 104 to complete the authentication process and establish the
virtual chat
session 600A between social media server 146 and client device 104 at blocks
608 and 610. In
an example embodiment, the user 110 may be prompted at the beginning of the
virtual chat
session 600A to answer various security questions to authenticate the user 110
as part of the
interaction response authentication procedures. At block 612, the user 110
makes a request
during the virtual chat session 600A to withdraw $500 from the user's bank
account. At block
614, social media server 614 receives the request and confirms that the user
110 has sufficient
funds for making the withdrawal (e.g., by accessing the user's account data
202 in data storage
152). At block 616, the social media server 146 communicates with the branch
server 154 to
locate a branch location having sufficient funds to carry out the withdrawal
and to hold such
funds for the withdrawal. The branch location can be suggested by the virtual
chat agent based
on the location of the user 110 or client device 104, or the user 110 can
select the branch
location during the virtual chat session 600A, for example. At block 618, the
social media server
146 generates context data of the virtual chat session 600A and sends it to
the context server
170. At block 620, the context data of virtual chat session 600A is stored in
the context data
storage 420.
[00110] In an example embodiment, the context data of virtual chat session
600A can
include: (i) a respective identifier of the user 110, client device 104,
and/or virtual chat session
600A; (ii) an identifier of the interaction channel type (i.e., virtual chat);
(iii) an indication/flag to
indicate whether the interaction session is secure (e.g., user 110 has been
authenticated during
virtual chat session 600A); (iv) start and end dates/times of the virtual chat
session 600A; (v)
details of the transactions requested during the virtual chat session 600A
(e.g., withdrawal
request, including amount and branch location to be withdrawn from); and (vi)
status of the
transactions requested (e.g., withdrawal request is pending visit by user 110
to the branch
location).
23173164.1
CA 2973972 2017-07-18

27
[00111] FIG. 6B illustrates an example mobile application session 600B that
occurs
concurrently with or after virtual chat session 600A. At block 630, client
device 104 sends an
interaction request for a mobile application session 600B (i.e., using the
mobile application
channel) to the context server 170 (for example, by loading opening the mobile
banking
application on the client device 104).
[00112] At block 632, the context server 170 processes the interaction
request in accordance
with the computer executable instructions shown in FIG. 5A. The interaction
request for the
mobile application session 600B is assigned an identifier of user 110. The
context server 170
determines that the mobile application session 600A is associated with the
withdrawal request
made in virtual chat session 600A, and sends the interaction request along
with the context data
of virtual chat session 600A to the mobile application server 142.
[00113] In an example embodiment, the context server 170 may determine that
the
interaction request for the mobile application session 600B is associated with
the withdrawal
request of virtual chat session 600A by associating the task of any
interaction session(s) that
occur within a certain proximity in time to the interaction request to be the
task associated with
such interaction request. In this example, the withdrawal request of virtual
chat session 600A is
associated with the interaction request for mobile application session 600B
since virtual chat
session 600A occurs concurrently with or immediately prior to the interaction
request for the
mobile application session 600B.
[00114] In an example embodiment, the context server 170 may determine that
the
interaction request for the mobile application session 600B is associated with
the withdrawal
request of virtual chat session 600A, by associating the task of the
interaction session that
initiates an interaction request to be the task associated with such
interaction request. FIG. 7
illustrates an example graphical user interface 700 of a portion of the
virtual chat session 600A,
displayed on the client device 104 (e.g., via a display screen of the client
device 104). During
virtual chat session 600A, the interaction request for the mobile application
session 600B is
made by the user 110 selecting the link 702 to open the mobile application.
Therefore, the
context server 170 associates the withdrawal request of virtual chat session
600A to the
interaction request for the mobile application session 600B, as the withdrawal
request is also
associated with the virtual chat session 600A in which the interaction request
is initiated. It will
be appreciated that the virtual chat functionality may be part of a website of
business entity 190,
a profile page of a third-party social media website, a mobile application, or
another software
application or website.
23173164.1
CA 2973972 2017-07-18

28
[00115] Referring back to FIG. 6B, at block 634, the mobile application
server 142 receives
the interaction request for the mobile application session 600B and the
context data of virtual
chat session 600A, and the client device 104 and mobile application server 142
establish the
mobile application session 600B at blocks 636 and 638.
[00116] In an example embodiment, at block 636, the mobile application
server 142
generates an interaction response for authenticating client device 104 in
response to the
interaction request and sends the interaction response to the context server
170. For example,
the interaction response may be in the form of a authentication request for a
login and
password. At block 650, the context server 170 processes the interaction
response in
accordance with the computer executable instructions shown in FIG. 5B. The
interaction
response is assigned an identifier of user 110. The context server 170
determines that the
mobile application session 600B is associated with the withdrawal request made
in virtual chat
session 600A (e.g., in a similar manner as previously described for block
632). The context
server 170 uses the subset of the context data to detect that the user 110 has
already been
authenticated in virtual chat session 600A. In cases where the mobile
application session 600B
is initiated from within the secure virtual chat session 600A (such as FIG.
7), the context server
170 can determine this from the subset of the context data and simplify or
remove the
authentication request for a login and password from the interaction response
such that client
device 104 does not have to provide such information at block 638 to establish
the mobile
application session 600B. It will be appreciated that in certain example
embodiments, the
modifications to the interaction response can be performed by the mobile
application server 142
using the subset of the context data provided with the interaction request
from block 632.
[00117] At block 640, the mobile application server 142 uses the context
data of the virtual
chat session 600A to determine that directions to the branch nearest the
location of client device
104 is to be sent. During the mobile application session 600B, client device
104 sends its
location at block 642 and mobile application server 142 provide directions to
the nearest branch
from such location at block 640.
[00118] At block 644, the mobile application server 142 generates context
data of the mobile
application session 600B and sends such context data to the context server
170. At block 646,
the context data of the mobile application session 600B is stored in the
context data storage
420.
[00119] In an example embodiment, the context data of mobile application
session 600B can
include: (i) a respective identifier of the user 110, client device 104,
and/or mobile application
23173164.1
CA 2973972 2017-07-18

29
session 600B; (ii) an identifier of the interaction channel (type i.e.,
virtual chat); (iii) an
indication/flag to indicate whether the interaction session is secure (e.g.,
user 110 has been
authenticated during mobile application session 600B); (iv) start and end
dates/times of the
mobile application session 600B; (v) details of the transactions requested
during the mobile
application session 600B (e.g., withdrawal request, including amount and
branch location to be
withdrawn from, and directions thereto); (vi) status of the transactions
requested (e.g.,
withdrawal request is pending visit by user 110 to the branch location); and
(vii) any interaction
sessions (and context data thereof) related to the mobile application session
600B (such as
virtual chat session 600A).
[00120] FIG. 6C illustrates an example ATM session 6000 that occurs
concurrently with or
after virtual chat session 600A and/or mobile application session 600B. At
block 650, user 110
sends an interaction request for an ATM session 6000 to the agent device 180
(which in this
example is an ATM). At block 652, the agent device 180 forwards the
interaction request to the
context server 170. At block 654, the context server 170 processes the
interaction request in
accordance with the computer executable instructions shown in FIG. 5A. The
interaction
request for the ATM session 6000 is assigned an identifier of user 110. The
context server 170
determines that the ATM session 600C is associated with the withdrawal request
of virtual chat
session 600A and mobile application session 600B, and sends the interaction
request along
with the context data of the virtual chat session 600A and mobile application
session 600B to
the agent device 180. At block 656, the agent device 180 receives the
interaction request for
the ATM session 6000 and the context data of the virtual chat session 600A and
mobile
application session 600B, and the user 110 and agent device 180 establish the
ATM session
600C at blocks 660 and 658.
[00121] In an example embodiment, establishing the ATM session 6000 at
blocks 660 and
658 include authenticating the user 110. For example, authentication at the
agent device 180
can be completed by having the user 110 insert a bank card into the ATM and
entering a
personal identification number (PIN) number. However, if another authenticated
interactive
session is active, the above authentication method can be bypassed and
replaced with a
simplified authentication method, which uses the existing active interactive
session to
authenticate the user 110 in the interaction session being requested.
[00122] For example, referring back to the examples of FIGs. 6A-6C, if the
user 110 has
been authenticated in the mobile application session 600B at blocks 638 and
636 (e.g., the user
110 entered his/her customer number and mobile app password when establishing
the mobile
23173164.1
CA 2973972 2017-07-18

30
application session 600B), then the context data of mobile application session
600B can include
authentication information indicating that this session has been
authenticated. In an example
embodiment, ATM session 600C can then authenticate such user 110 by sending a
message
via the mobile application session 600B to confirm that such user is currently
at the physical
location of the agent device 180 (i.e., accessing the ATM).
[00123] An example graphical user interface 800 of the mobile application
session 600B to
authenticate the user 110 is shown in FIG. 8, in which a pop-up message 802 is
displayed to
confirm that the user 110 is currently at the ATM of the ATM session 600C. The
user 110 is
authenticated in the ATM session 6000 by selecting "yes" to the pop-up message
802 in the
mobile application session 600B. In another example embodiment shown in FIG.
9, a pop-up
message displaying a code is displayed during the mobile application session
600B which must
be entered into the agent device 180 for the user 110 to be authenticated in
the ATM session
6000. The above example authentication methods allow the user 110 to be
authenticated
without needing to memorize pins or other passwords, which may be cumbersome
and difficult
to keep track of.
[00124] In an example embodiment, at block 658, a "default" authentication
interaction
response is generated by the agent device 180 to request user 110 to insert a
bank card and
enter a PIN number. The interaction response is sent to the context server 170
and at block
680, the context server 170 processes the interaction response in accordance
with the
computer executable instructions shown in FIG. 5B. The interaction response is
assigned an
identifier of user 110. The context server 170 determines that the ATM session
600C is
associated with the withdrawal request of virtual chat session 600A and mobile
application
session 600B, and uses the context data associated with the withdrawal request
of virtual chat
session 600A and mobile application session 600B, including authentication
information, to
modify the "default" authentication interaction response. In the example of
FIG. 8, the
interaction response is modified from a requirement to insert the bank card
and PIN number via
the ATM to the graphical user interface and input requirement via the mobile
application session
600B. In the example of FIG. 9, the interaction response is modified from
interactions with
solely the agent device 180 to a combination of interactions with the ATM
session 6000 and
mobile application session 600B.
[00125] Referring back to FIG. 6, at block 662, the agent device 180
dispenses $500 to
complete the withdrawal request initially made in the virtual chat session
600A. The agent
device 180 uses the context data of the virtual chat session 600A to determine
that there is an
23173164.1
CA 2973972 2017-07-18

31
outstanding withdrawal of $500 by user 110. The agent device 180 uses the
context data of the
mobile application session 600B to determine that such outstanding withdrawal
is to be
completed by the ATM at this specific location. Therefore, agent device 180
dispenses $500 to
complete the withdrawal request upon authenticating that the user is at the
agent device 180.
[00126] At block 664, the agent device 180 generates context data of the ATM
session 600C
and sends it to the context server 170. At block 666, the context data of the
ATM session 6000
is stored in the context data storage 420.
[00127] In an example embodiment, the context data of ATM session 6000 can
include: (i) a
respective identifier of the user 110 and/or ATM session 600C; (ii) an
identifier of the interaction
channel type (i.e., ATM); (iii) an indication/flag to indicate whether the
interaction session is
secure (e.g., user 110 has been authenticated during ATM session 6000); (iv)
start and end
dates/times of the ATM session 6000; (v) details of the transactions requested
during the ATM
session 6000 (e.g., withdrawal request, including amount and branch location
to be withdrawn
from, and directions thereto); (vi) status of the transactions requested
(e.g., withdrawal request
is completed); and (vii) any interaction sessions (and context data thereof)
related to the ATM
session 6000 (such as virtual chat session 600A and mobile application session
60013).
[00128] FIGs. 10A-10C illustrate computer executable instructions that can
be performed in
the course of example interaction sessions 1000A, 1000B and 10000 regarding
online bill
payments. FIG. 11 illustrates example data that can be stored in context data
storage 420 in
connection with interaction sessions 1000A, 1000B and 10000.
[00129] Referring to FIG. 10A, example computer executable instructions for
conducting
webpage interaction sessions 1000A is shown. At block 1002, user 110 requests
access to
webpage data (e.g., using an internet browser on a smartphone, laptop, desktop
computer,
etc.). At block 1004, web server 148 provides the requested webpage data. At
block 1006,
context data regarding the webpage session 1000A is generated by the context
server 170, and
such context data is stored at block 1008. In an example scenario, user 110
accesses the
frequently asked questions (FAQ) webpage of a bank website on how to make bill
payments
online (i.e., an FAQ online session), and then logs into his/her online bank
account to access
the webpage for adding a payee to his/her online payments banking profile
(i.e., an online
banking session). As a result, context data 1102 for the FAQ online session
and context data
1104 of the online banking session is generated and stored in context data
storage 420, as
shown in FIG. 11.
23173164.1
CA 2973972 2017-07-18

32
[00130] FIG. 10B illustrates an example in-person branch session 1000B. At
block 1012,
user 110 requests banking services. At block 1014, branch customer services
representatives
complete such services. At block 1016, branch server 154 generates context
data regarding in-
person branch session 1000B, and such context data is stored at 1018. In an
example scenario,
user 110 visits the branch to make bill payments in-person. As a result,
context data 1106 of
the in-person branch session is generated and stored in context data storage
420, as shown in
FIG. 11.
[00131] FIG. 100 illustrates an example voice call session 10000 that can
occur concurrently
with or after the webpage sessions 1000A, as well as in-person branch sessions
1000B. At
block 1030, the user 110 (e.g., via the client device 104) sends an
interaction request for a voice
call session 10000 with an agent 182. (i.e., using the telephone voice
channel).
[00132] At block 1032, the context server 170 processes the interaction
request in
accordance with the computer executable instructions shown in FIG. 5A. The
interaction
request for the voice call session 10000 is assigned an identifier of user
110. The context
server 170 determines that the voice call session 1000 is related to the FAQ
online session and
online banking session, as both such sessions are active at the time the
interaction request for
the voice call session 10000 is detected. The context server 170 then
determines that the task
in common between the context data of the webpage sessions 1000A (i.e.,
context data 1102 of
FAQ online session and context data 1104 of online banking session) is that
they are directed to
adding a payee to an online payments banking profile of user 110 to make bill
payments online.
The context server 170 then associates the context data of the webpage
sessions 1000A to the
interaction request for the voice call session 10000, and sends the
interaction request along
with such context data to IVR server 144 and/or call server 150 to route the
voice call to an
agent 180 via agent device 182. At block 1036 and 1038, the agent device 182
and client
device 104 establish a voice call session 10000.
[00133] In an example embodiment, at block 1040, the agent device 180
displays the context
data of the webpage sessions 1000A (i.e., context data 1102 of FAQ online
session and context
data 1104 of online banking session) or information derived thereof, for use
by the agent 182.
In this way, the context server 170 anticipates that the user 110 is calling
to inquire about how to
add a payee to make bill payments online, and provides relevant information on
the history of
the user 110 to the agent 182 to service the call. The context data 1102 of
the FAQ online
session can provide information on what information has been reviewed by the
user 110 so that
the agent 182 need not repeat it during the voice call session 10000. The
context data 1104 of
23173164.1
CA 2973972 2017-07-18

33
the online banking session may indicate the history of steps that the user 110
has attempted in
order to add a payee, which the Agent 182 can use to identify any errors in
such steps. FIG. 12
illustrates an example graphical user interface 1200 that can be displayed on
the agent device
180 for use by the agent 182.
[00134] In an example embodiment, the agent device 180 can obtain or
determine other
information that may be related to the task associated with the voice call
session 10000 (in this
example, adding a payee to an online payments banking profile), and displays
such other
information to the agent 182. For example, the graphical user interface 1200
of FIG. 12 can
include internal troubleshooting information 1202 and other information 1206
that the agent 182
may find useful in servicing the call.
[00135] In an example embodiment, the context server 170 can determine a
ranking of
relevance of other interaction sessions to the current interaction request
being processed, and
display context data of the other interaction sessions in such ranked order.
For example, the
context server 170 may determine that the context data 1104 of the online
banking session in
which the user 110 attempted to add a payee is the most relevant information
to the agent 182
in assisting the user 110 in successfully adding a payee, followed by the
context data 1102 of
the FAQ webpage session. The context server 170 may also determine that
context data 1106
of in-person branch sessions in which bills were paid may also be relevant
(e.g., because one of
such payees may be the party for which the user 110 is trying to add to
his/her online payments
banking profile) but display it on the graphical user interface 1200 at a
lower ranking, as shown
by the enumerations 1204 in FIG. 12.
[00136] At block 1044, the agent device 180 generates context data 1108 of
voice call
session 10000 and sends it to the context server 170. At block 1046, the
context data 1108 of
voice call session 10000 is stored in the context data storage 420 for future
use.
[00137] In an example embodiment, the artificial intelligence server 190
may be used to
perform various operations discussed herein using artificial intelligence to
automate operations,
make selections and generate messages such as interaction responses.
"Artificial intelligence"
is used herein to broadly describe any computationally intelligent systems
that combine
knowledge, techniques, and methodologies. An artificial intelligence server
190 may be any
system configured to apply knowledge data (e.g., dynamic decision making
models and
techniques) and that can adapt itself in changing environments and update or
generate new
knowledge data based on such environments. Therefore, the artificial
intelligence server 190
may employ any one or combination of computational techniques related to
achieving artificial
23173164.1
CA 2973972 2017-07-18

34
intelligence, such as natural language processing, machine learning, neural
networks, statistical
techniques, constraint programs, fuzzy logic, classifications, symbolic
manipulations, fuzzy set
theory, evolutionary computations, cybernetics, data mining, approximate
reasoning, search and
optimizations, decision trees, soft computing, etc. Employing computationally
intelligent
techniques, the artificial intelligence server 190 may learn to adapt to new
or changing
environment for better performance.
[00138] In FIG. 13, an example configuration of an artificial intelligence
server 190 is shown.
The artificial intelligence server 190 receives input 1302 and generates
output 138, and includes
an artificial intelligence engine 1304 and a knowledge data storage 1306.
[00139] The artificial intelligence server 190 can receive input 1302 from
one or more
component of system 140, such as the context server 170. The input 1302 may
include any
data accessible to system 140, including input requests, input responses
and/or context data
associated with one or more interaction sessions.
[00140] The artificial intelligence engine 1304 can generate an output 1308
based on the
input 1304 and knowledge data stored in the knowledge data storage 1306, using
artificial
intelligence. Knowledge data may represent any information upon which the
artificial
intelligence engine 1304 may determine an appropriate output 1308 to input
1302. Knowledge
data may represent, for example, relationship information between a user 110,
a task, an
interaction request, an interaction response, context data of one or more
interaction sessions,
and/or an operation to be performed in an interaction session.
[00141] In an example embodiment, the artificial intelligence engine 1304
may be trained
based on any data accessible in system 140, such as previous interaction
requests, interaction
responses and context data associated with one or more interaction sessions,
to generate the
knowledge data. The training set of data can be limited to data associated
with a particular user
110 or client device 104 participating in a specific interaction session. In
another example
embodiment, the training set of data can include other data accessible to the
artificial
intelligence engine 1304, such as context data of interaction sessions
involving other users 110
and client devices 104 not participating in the specific interaction session
to which the input
1302 may relate.
[00142] In an example embodiment, the training process of the artificial
intelligence engine
1304 to generate the knowledge data can be iterative. Training may be based on
a wide variety
of learning rules or training algorithms. For example, the learning rules may
include one or more
23173164.1
CA 2973972 2017-07-18

35
of the following: back-propagation, real-time recurrent learning, pattern-by-
pattern learning,
supervised learning, interpolation, weighted sum, reinforced learning,
temporal difference
learning, unsupervised learning, recording learning, etc. As a result of the
training, the artificial
intelligence engine 1304 may learn to modify its behavior in response to its
environment, and
generate new or updated knowledge data to be stored in knowledge data storage
1306.
[00143] For example, in processing an interaction request, the artificial
intelligence engine
1304 may associate the task of the interaction request and the subset of the
context data with
an interaction response. This association can then be stored as part of the
knowledge data
storage 1306 for use when processing a subsequent interaction request to
determine a
subsequent interaction response. In processing an interaction request, the
artificial intelligence
engine 1304 may detect that the task and the subset of the context data are
associated with a
previous interaction response, and then generate an interaction response based
on the previous
interaction response.
[00144] Since the artificial intelligence engine 1304 may learn to modify
its behavior,
information describing relationships for a universe of all combinations of
interaction responses,
interaction requests, and context data of interaction sessions may not need to
be maintained by
the artificial intelligence server 190.
[00145] Referring to FIG. 14, another example embodiment of computer
executable
instructions for processing an interaction request is shown. In an example
embodiment, the
instructions can be executed by the servers of system 140. At block 1400, the
interaction
detector module 410 detects an interaction request in an interaction session
using an interaction
channel. At block 1402, the identifier assignment module 412 assigns an
identifier to the
interaction request. At block 1404, the task determination module 414
determines a task
associated with the interaction request. At block 1406, the context server 170
obtains context
data (e.g., from the context data storage 420) of other interaction sessions
associated with the
identifier that is related to the activity of user 110. At block 1408 the
context selection module
416 selects a subset of the context data from the context data available to
the context server
170 (e.g., stored in context data storage 420) and associates such context
data with the
interaction request. The interaction request and associated subset of the
context data can then
be sent to the artificial intelligence server 190. At block 1410, the
artificial intelligence engine
1304 of the artificial intelligence server 190 can use the subset of the
context data to generate
at least one interaction response in response to the task associated with the
interaction request.
23173164.1
CA 2973972 2017-07-18

36
It will be appreciated that the description of blocks 502, 504, 506 and 508
may apply in a similar
manner to blocks 1402, 1404, 1406 and 1408, respectively.
[00146] In an example embodiment, an interaction request detected at block
1400 may be a
communication message in an interaction session that has already been
established. For
example, user 110 may be participating in a virtual chat session shown in an
example graphical
user interface 1500 of client device 104 (FIG. 15). User 110 may send an
interaction request
1502 in the form of virtual chat message to request an account balance. In
this example, the
message 1502 is detected at block 1400. At block 1402, the message 1502 is
assigned an
identifier associated with user 110 (e.g., a unique user identification number
of user 110). At
block 1404, the task of providing the balance of an account associated with
the user
identification number is determined. In an example scenario, the user
identification number may
be associated with several accounts in data storage 152 (e.g., a chequing
account, savings
account, and credit card account). At blocks 1406 and 1408, context data
associated with other
interaction sessions that have recently updated the balance of the accounts of
user 110 or that
have queried the balance of such accounts are associated with the interaction
request, and
such context data and the interaction request is sent to the artificial
intelligence server 190.
[00147] In an example embodiment, at block 1410, the artificial
intelligence server 190 may
determine using the subset of the context data and the knowledge data that the
user 110 is
likely only interested in the balance of its chequing account. For example,
the subset of the
context data may indicate that the chequing account balance is often queried
by user 110,
whereas the other account balances are not queried or only done so through
interaction
sessions using a different type of interaction channel than the virtual chat
session. In this
example, at block 1410, the artificial intelligence server 190 may generate an
interaction
response 1504 in the form of a virtual chat message providing the balance of
the chequing
account of user 110, and automatically send the interaction response 1504 to
user 110 via the
virtual chat session.
[00148] In another example embodiment, at block 1410, the artificial
intelligence server 190
may determine using the subset of the context data and the knowledge data that
the user 110
may be interested in the balance of more than one account. For example, the
subset of the
context data may indicate that the balance of the chequing account and credit
card account of
user 110 are often queried by user 110 through virtual chat sessions. In this
example, at block
1410, the artificial intelligence server 190 may generate an interaction
response in the form of a
list of suggested responses (e.g., a first suggested response being the
balance of the chequing
23173164.1
CA 2973972 2017-07-18

37
account, and a second suggested response being the balance of the credit card
account), and
send such suggested responses to an agent device 180 for selection by an agent
182 (e.g.,
bank employee) servicing the virtual chat session as the bank representative.
For example, the
list of suggested responses can be displayed to the agent 182 as other
information 1206 in the
example graphical user interface 1200 of FIG. 12. In another example
embodiment, the artificial
intelligence server 190 may generate an interaction response in the form of a
virtual chat
message listing the balance of multiple accounts (not shown in FIG. 15).
[00149] In another example embodiment, at block 1410, the artificial
intelligence server 190
may, having determined using the subset of the context data and the knowledge
data that the
user 110 may be interested in the balance of more than one account, further
determine the
appropriate interaction response to be to request further information for the
user 110. In this
example, at block 1410, the artificial intelligence server 190 may generate an
interaction
response 1604 in the form of a virtual chat message requesting the user 110
specify the
account for which the interaction request 1502 relates, and automatically send
the interaction
response 1604 to user 110 via the virtual chat session (see FIG. 16).
[00150] From the above examples, it can be seen that the artificial
intelligence server 190
may assist an agent 182 by providing suggested interaction responses in
response to
interaction requests. In an example embodiment, the artificial intelligence
server 190 can
generate interaction responses to be automatically sent to the request
initiator of the interaction
session, without input from a human agent 182.
[00151] It will be appreciated that the artificial intelligence server 190
may be incorporated
into a single computer or a single server or service, or alternatively, may be
distributed among
one or more computing systems 300. In an example embodiment, one or more
servers or
devices of system 140 may have its own respective artificial intelligence
server 190 or
implement its own respective artificial intelligence engine 1304, such as
agent device 180 to
implement an automated bot agent 182.
[00152] It will be appreciated that the artificial intelligence server 190
may also be used in
certain example embodiments to perform the tasks and operations described
herein, including
blocks 504, 508, 510, 534, 538, 540, 1404, 1408 and 1410.
[00153] For example, the artificial intelligence server 190 may be used to
determine a
task associated with an interaction request (e.g. block 504 or 1404) or
interaction response (e.g.
block 534). In an example embodiment, the task determination module 414 may
access the
23173164.1
CA 2973972 2017-07-18

38
artificial intelligence server 190 to employ a classification method
(supervised or unsupervised)
to determine the task associated with an interaction request or response. In
an example, the
knowledge data storage 1306 may include a labelled training set of example
interaction
requests and/or responses, and the associated tasks, such that the artificial
intelligence server
190 can infer a function to map new interaction requests and/or responses to
associated tasks
to achieve machine learning. It will be appreciated that the classification
method may include
any one or more of the following: frequentist procedures; Bayesian procedures,
binary and
multiclass classification, feature vectors, linear classifiers, support vector
machines, quadratic
classifiers, kernel estimation, decision trees, neural networks, etc. It will
be further appreciated
that in certain example embodiments, interaction requests, interaction
responses, tasks and/or
context data may be classified or determined based on a classification method,
such as those
discussed herein.
[00154] Although certain example embodiments have been described with respect
to
processing or generating an interaction response (e.g. from a server in system
140) in response
to an interaction request (e.g. from client device 104), it will be
appreciated that the methods,
operations, techniques and principles described herein can be applied to
process and/or
generate interaction requests to initiate an interaction session. For example,
computer
executable instructions similar to those shown in blocks 530, 532, 534, 536,
538 and 540 may
be applied to modify an interaction request (rather than an interaction
response) from a server in
system 140 to initiate an interaction session with client device 104, another
server in system
140 or other request recipient, such that the system 140 (or a server therein)
is the request
initiator of the interaction session. In another example, computer executable
instructions similar
to those shown in blocks 1402, 1404, 1405, 1408 and 1410 may be applied to
generate an
interaction request (rather than an interaction response) from a server in
system 140 to initiate
an interaction session with client device 104, another server in system 140 or
other request
recipient, such that the system 140 (or a server therein) is the request
initiator of the interaction
session.
[00155] In an example embodiment, a server within system 140 may send an
interaction
request for initiating an interaction session with user 110 (e.g. via client
device 104). The
context server 170 detects the interaction request, assigns an identifier to
the interaction
request (e.g. indicative of user 110) and determines a task associated with
the interaction
request. The context server 170 then obtains context data of one or more other
interaction
sessions related to the activity of the request recipient (i.e. user 110),
associates a subset of the
23173164.1
CA 2973972 2017-07-18

39
context data that is related to the task and modifies the interaction request
using the subset of
the context data. The interaction request may be modified in a similar manner
as described
herein with respect to an interaction response.
[00156] Referring to FIG. 17, an example embodiment of computer executable
instructions
for processing an interaction request is shown. At block 1730, the interaction
detector module
410 detects an interaction request for an interaction session using an
interaction channel. At
block 1732, the identifier assignment module 412 assigns an identifier (e.g.,
indicative of the
request recipient or other party for which the interaction request relates) to
the interaction
request. At block 1734, the task determination module 414 determines a task
associated with
the interaction request. At block 1736, the context server 170 obtains context
data (e.g., from
the context data storage 420) of other interaction sessions associated with
the identifier. At
block 1738 the context selection module 416 selects a subset of the context
data related to the
task from the context data available to the context server 170 (e.g., stored
in context data
storage 420) and associates such context data with the interaction request. At
block 1740, the
interaction facilitator module 418 uses the subset of the context data to
modify the interaction
request.
[00157] In another example embodiment, context data of one or more
interaction session
may be used to generate an interaction request to initiate an interaction
session between a user
110 (e.g. via client device 104) and a server of system 140. The context
server 170 determines
an identifier of the interaction request to be generated based on the request
recipient (e.g. user
110) and determines a task associated with the interaction request. The
context server 170
then obtains context data of other interaction sessions associated with the
identifier that occur
proximal in time with the interaction session to be initiated and which is
related to activity of the
request recipient. The context server 170 then determines a subset of the
context data that is
related to the task and generates the interaction request using the subset of
the context data.
The interaction request may be generated in a similar manner as described
herein with respect
to an interaction response, including through the use of the artificial
intelligence server 190.
[00158] Referring to FIG. 18, an example embodiment of computer executable
instructions
for generating an interaction request is shown. At block 1802, the identifier
assignment module
412 assigns an identifier to the interaction request to be generated. The
identifier may be
indicative of the request recipient or other party for which the interaction
request relates. At
block 1804, the task determination module 414 determines a task associated
with the
interaction request. At block 1806, the context server 170 obtains context
data (e.g., from the
23173164.1
CA 2973972 2017-07-18

40
context data storage 420) of other interaction sessions associated with the
identifier. At block
1808 the context selection module 416 selects a subset of the context data
related to the task
from the context data available to the context server 170 (e.g., stored in
context data storage
420) for use in generating the interaction request. At block 1810, the
interaction request to be
sent to the request recipient in connection with the task is generated using
the subset of the
context data. In an example, the interaction facilitator module 418 can
generate the interaction
request. In another example, the subset of the context data can be sent to the
artificial
intelligence server 190 and the artificial intelligence engine 1304 can use
the subset of the
context data to generate the interaction request. It will be appreciated that
the interaction
request generated by the computer executable instructions of FIG. 18 may be a
modified
version of an initial interaction request received or detected by the
interaction detector module
410 in accordance with the computer executable instructions of FIG. 17.
[00159] It will be appreciated that the examples and corresponding diagrams
used herein are
for illustrative purposes only. Different configurations and terminology can
be used without
departing from the principles expressed herein. For instance, components and
modules can be
added, deleted, modified, or arranged with differing connections without
departing from these
principles.
[00160] The steps or operations in the flow charts and diagrams described
herein are just for
example. There may be many variations to these steps or operations without
departing from the
spirit of the invention or inventions. For instance, the steps may be
performed in a differing
order, or steps may be added, deleted, or modified.
[00161] Although the above has been described with reference to certain
specific examples,
various modifications thereof will be apparent to those skilled in the art as
outlined in the
appended claims.
23173164.1
CA 2973972 2017-07-18

Representative Drawing
A single figure which represents the drawing illustrating the invention.
Administrative Status

For a clearer understanding of the status of the application/patent presented on this page, the site Disclaimer , as well as the definitions for Patent , Administrative Status , Maintenance Fee  and Payment History  should be consulted.

Administrative Status

Title Date
Forecasted Issue Date 2019-03-26
(22) Filed 2017-07-18
(41) Open to Public Inspection 2018-03-30
Examination Requested 2018-12-17
(45) Issued 2019-03-26

Abandonment History

There is no abandonment history.

Maintenance Fee

Last Payment of $210.51 was received on 2023-07-04


 Upcoming maintenance fee amounts

Description Date Amount
Next Payment if small entity fee 2024-07-18 $100.00
Next Payment if standard fee 2024-07-18 $277.00

Note : If the full payment has not been received on or before the date indicated, a further fee may be required which may be one of the following

  • the reinstatement fee;
  • the late payment fee; or
  • additional fee to reverse deemed expiry.

Patent fees are adjusted on the 1st of January every year. The amounts above are the current amounts if received by December 31 of the current year.
Please refer to the CIPO Patent Fees web page to see all current fee amounts.

Payment History

Fee Type Anniversary Year Due Date Amount Paid Paid Date
Application Fee $400.00 2017-07-18
Registration of a document - section 124 $100.00 2018-11-16
Request for Examination $800.00 2018-12-17
Final Fee $300.00 2019-02-13
Maintenance Fee - Patent - New Act 2 2019-07-18 $100.00 2019-06-14
Maintenance Fee - Patent - New Act 3 2020-07-20 $100.00 2020-07-15
Maintenance Fee - Patent - New Act 4 2021-07-19 $100.00 2021-07-20
Late Fee for failure to pay new-style Patent Maintenance Fee 2021-07-20 $150.00 2021-07-20
Maintenance Fee - Patent - New Act 5 2022-07-18 $203.59 2022-07-18
Maintenance Fee - Patent - New Act 6 2023-07-18 $210.51 2023-07-04
Owners on Record

Note: Records showing the ownership history in alphabetical order.

Current Owners on Record
THE TORONTO-DOMINION BANK
Past Owners on Record
None
Past Owners that do not appear in the "Owners on Record" listing will appear in other documentation within the application.
Documents

To view selected files, please enter reCAPTCHA code :



To view images, click a link in the Document Description column. To download the documents, select one or more checkboxes in the first column and then click the "Download Selected in PDF format (Zip Archive)" or the "Download Selected as Single PDF" button.

List of published and non-published patent-specific documents on the CPD .

If you have any difficulty accessing content, you can call the Client Service Centre at 1-866-997-1936 or send them an e-mail at CIPO Client Service Centre.


Document
Description 
Date
(yyyy-mm-dd) 
Number of pages   Size of Image (KB) 
Abstract 2017-07-18 1 16
Description 2017-07-18 40 2,317
Claims 2017-07-18 8 297
Drawings 2017-07-18 21 227
Modification to the Applicant/Inventor / Correspondence Related to Formalities 2017-10-06 4 124
Office Letter 2017-10-17 1 48
Representative Drawing 2018-02-22 1 11
Cover Page 2018-02-22 2 48
Request for Examination / PPH Request / Amendment 2018-12-17 17 580
Claims 2018-12-17 8 302
Final Fee 2019-02-13 3 79
Cover Page 2019-02-26 1 45