SYSTEMS AND METHODS FOR USER AUTHENTICATION

The following relates generally to data retrieval and user authentication. In some embodiments, a user is authenticated in a native mobile application. The native mobile application then obtains an authorization code, and calls an application programming interface (API) to store contextual data about the user. The API then returns, to the native mobile application, a retrieval data token. The native mobile application then launches a chat application via a universal resource identifier (URI), and passes an identification (ID) parameter to the chat application. The chat application then passes the ID parameter to a customer service provider, which then retrieves an access token based upon the authorization code. The customer service provider then retrieves, from the API, the contextual data based upon the: (i) access token, and (ii) retrieval data token.

FIELD

The present disclosure relates generally to data retrieval and user authentication.

BACKGROUND

In today's modern word, many smartphones run a multitude of applications (apps). In some instances, many of the various apps running on a smartphone are unrelated to each other, and the data used by one app is irrelevant to the other apps. However, in some situations, the data relevant to one app is also relevant to another app. For example, a user may open an insurance app to view an insurance claim, and thereafter the user may wish to send a text message (e.g., through a text messaging app, such as a business chat app) to an insurance agent to discuss the insurance claim. In this example, data, such as data of the insurance claim, may be relevant to both the insurance app and the text messaging app; yet, there may be no convenient way for the text messaging app to access the insurance claim data from the insurance app.

The systems and methods disclosed herein provide solutions to these problems and others.

SUMMARY

In one aspect, there is a computer-implemented method for data retrieval based on user authentication. The method may include: authenticating a user in a native mobile application; obtaining, with the native mobile application, an authorization code; calling, with the native mobile application, an application programming interface (API) to store contextual data; returning, from the API to the native mobile application, a retrieval data token; launching, with the native mobile application, a chat application via a universal resource identifier (URI), and passing an identification (ID) parameter to the chat application, wherein the ID parameter comprises: (i) the authorization code, and (ii) the retrieval data token; passing the ID parameter from the chat application to a customer service provider; retrieving, with the customer service provider, an access token based upon the authorization code; and retrieving, with the customer service provider and from the API, the contextual data based upon the: (i) access token, and (ii) retrieval data token.

In another aspect, there is a computer-implemented method for data retrieval based on user authentication, the method may be performed by one or more processors of a user computing device. The method may include: authenticating a user in a native mobile application; obtaining, with the native mobile application, an authorization code; calling, with the native mobile application, an application programming interface (API) to store contextual data; receiving, from the API to the native mobile application, a retrieval data token; launching, with the native mobile application, a chat application via a universal resource identifier (URI), and passing an identification (ID) parameter to the chat application, wherein the ID parameter comprises: (i) the authorization code, and (ii) the retrieval data token; and passing the ID parameter from the chat application to a customer service provider; wherein the authorization code and the retrieval data token allow the customer service provider to retrieve the contextual data.

In yet another aspect, there is a computer-implemented method for data retrieval based on user authentication, the method may be performed by one or more processors of a customer service provider. The method may include: receiving an ID parameter from a chat application, wherein: (i) the ID parameter comprises an authorization code and a retrieval data token, and (ii) a user was authenticated in a native mobile application that called an application programming interface (API) to store contextual data; retrieving an access token based upon the authorization code; and retrieving, from the API, the contextual data based upon the: (i) access token, and (ii) retrieval data token.

DETAILED DESCRIPTION

The present embodiments relate to, among other things, data retrieval and user authentication.

Example Infrastructure

FIG. 1shows an example embodiment of the systems and methods disclosed herein. With reference thereto, computing device101(e.g., a phone, smartphone, personal computer, tablet, etc.) may be connected to computer network120through base station110. Computer network120may comprise a packet based network operable to transmit computer data packets among the various devices and servers described herein. For example, computer network120may consist of any one or more of Ethernet based network, a private network, a local area network (LAN), and/or a wide area network (WAN), such as the Internet. In addition, in some embodiments, computer network120may comprise cellular or mobile networks to facilitate data packet traffic (e.g., mobile device movement data) to and from base station110. Base station110may comprise cellular towers or access points implementing any one or more cellular or mobile device standards, including, for example, any of GSM, UMTS, CDMA, NMT, LTE, 5G NR, or the like. In the example ofFIG. 1, the chat application server(s)130(e.g., business chat server(s)130), and customer service provider server(s)135are also connected to the computer network120.

With further reference toFIG. 1, company server150is connected to the computer network120. It should be understood that the term server as used herein may mean a single server or a group of servers. As is understood in the art, each server(s) includes processor(s) and memory. In the example ofFIG. 1, the company server150includes processor(s)160(which includes authorization service170and application programming interface (API)180, as described below) and memory190. As is understood in the art, the processor160may be a single processor or as a group of processors. Furthermore, the authorization service170and the API180may be implemented together on a single processor or group of processors, or implemented each on their own processor. In addition, in some implementations, the API180is part of the authorization service170(e.g., the authorization service170includes the API180).

In some embodiments, the computing device101may run an application (app)105, such as a native mobile application (e.g., an app of an insurance service, a app of a retail store, etc.). For example, if the app105is a native app of an insurance company, the app105may be used to, e.g., retrieve information about an insurance claim, or to communicate with an insurance agent via communication through a text messaging app. In this regard, as used herein, a text message may refer to a short message service (SMS), a multimedia messaging service (MMS), or any other form of text message.

The example ofFIG. 1also illustrates database195. In some embodiments, the database195includes a database of contextual data. In some implementations, the contextual data includes a customer ID (e.g., a customer name, social security number, or other identifier), and/or a claim ID (e.g., an insurance claim number). Although the example ofFIG. 1illustrates the database195separately from the company server150, in some implementations, the database195is part of the company servers150(e.g., part of the memory190, or separate from the memory190).

Example Implementation

FIG. 2illustrates an example implementation. With reference thereto, at operation205a user authenticates in a mobile application105(e.g., a native mobile application) via the authentication service170. Any form of authentication may be used (e.g., authentication via a password, biometric information, two-factor authentication, etc.). In this regard, a single sign on (sso) token may be used to authenticate the user. Subsequently, at operation210, the app105obtains an authorization code from the authorization service170.

At operation215, the app105calls the API180to store contextual information about the customer (e.g., a customer ID, an insurance claim ID, a customer phone number, device information such as information identifying the device or information identifying an error occurring on the device, etc.). In particular, the contextual information may be information that it is useful for a customer service representative to view when the customer engages in a chat session with the customer service representative. At operation220, the API180stores the provided contextual information, and provides a retrieval data token to the app105. In this regard, as will be seen, the storing of the contextual information at operation220allows for the customer service representative to later access the contextual data without requiring the customer to reauthenticate.

At operation225, the app105launches a chat app290(e.g., via a universal resource identifier (URI)), and passes parameters to the chat app290. In some embodiments, the parameters are part of an ID parameter. In some embodiments, the parameters comprise two parameters, such as the authorization code and retrieval data token. In some implementations, there are character limitations placed on the parameters; for example, the total number of characters (for parameters individually or taken as a whole) may be limited, such as to150characters,512characters, etc. Although, at operation225, the example ofFIG. 1illustrates the app105launching the chat app290, the chat app290may also simply be launched by the computing device101from outside the app105.

At operation230, the customer initiates a chat conversation, and the parameters are passed to the application chat server130. At operation235, the application chat server130passes the parameters to the customer service provider135.

FIGS. 3A, 3B, and 3Cshow examples of chat initialization (e.g., operations225,230and235ofFIG. 2). With reference thereto, screenshots310,320illustrate a user opening a chatbox, and sending a text message through the app105. In some implementations, during normal business hours, a customer is connected directly to a support agent, as in the example of screenshot325. In some embodiments, during off hours, the customer is provided with a message including hours and/or availability information, as in the example of screenshot326. In some implementations, such as in the example of screenshot330, the app105provides a virtual assistant to the user, which then provides link335to the user (however, the app105may provide the link335to the user regardless of whether a virtual assistant is used or not). The user may then click the link335, which, in some embodiments, passes the parameters to the customer service provider135(e.g., operation235ofFIG. 2). Screenshot340shows an optional screen that queries the user about the type of support that the user would like to receive. Screenshot350illustrates a screen confirming that the user has been connected.

Returning now toFIG. 2, at operation240, the customer service provider135parses the parameters (e.g., parses the ID parameter that comprises the authorization code and retrieval data token), and determines routing. The customer service provider135may further call the authorization service170with the authorization code. The authorization service170may return an access token, and may further return a JSON Web Token (JWT).

At operation245, the customer services provider135calls the API180with the access token and retrieval data token to retrieve the contextual information. At operation250, the customer services provider135displays the contextual information from the API180.

Additional Exemplary Embodiments

FIG. 4illustrates an example method for data retrieval based on user authentication. At block405, an app105is authenticated in a computing device101. To authenticate, any suitable technique may be used. For example, authentication based on a password or biometric data may be used. Furthermore, two-factor authentication may be used.

At block410, an authorization code may be obtained by the app105(e.g., from authorization service170of company server150). In some embodiments, the authorization code expires after a predetermined time period.

At block415, the app105calls the API180to store contextual data about the customer. For example, the contextual data may include a customer ID (e.g., a number identifying the customer, the customer's name, the customer's social security number, etc.), an insurance claim ID (e.g., an insurance claim number), the customer's mailing and/or email address, the customer's phone number, retail order information, or any other information. In some implementations, the contextual data includes an insurance policy number (e.g., of an auto insurance policy, a homeowners insurance policy, a life insurance policy, a disability insurance policy, or any other kind of insurance policy), a vehicle identifier (e.g., a vehicle identification number (VIN)), and/or device data (e.g., information identifying the computing device101, or an error occurring on a the computing device101, etc.). In some embodiments, the contextual data may include a process identifier that identifies a step in a call center process, such as a call center process implemented by the customer service provider135. In some embodiments, the contextual data includes analytic data of the user using the native mobile application105, such as data regarding what the user has clicked on in the app105; in some embodiments, the analytic data identifies a customer's journey in the app105up until the point in time that the contextual data is stored.

As will become apparent upon reading this disclosure, storing the contextual data in this way advantageously allows for the contextual data to be retrieved and/or displayed without the customer needing to authenticate again in another app.

In response to the calling of the API180, at block420, the API180returns, to the app105, a retrieval data token. In some embodiments, the retrieval data token expires after a predetermined time period. At block425, the authentication token and/or the retrieval data token are obfuscated (e.g., by the API180), which advantageously allows for an additional layer of data security.

At block430, the app105launches a chat application (e.g., via a URI), and passes an ID parameter to the chat app290. In some embodiments, the ID parameter includes: (i) the authorization code, and (ii) the retrieval data token.

At block435, the ID parameter (e.g., including the obfuscated authorization code and the obfuscated retrieval data token) is passed from the chat app290to the customer service provider135. At block440, the customer service provider135parses the ID parameter (e.g., parses the obfuscated authorization code and obfuscated retrieval data token). At block445, the customer service provider135retrieves (e.g., from the authorization service170) an access token based on the authorization code. In some embodiments, the customer service provider135also retrieves a JWT along with the access token. In some implementations, the access token and/or JWT expire after a predetermined time period.

At block450, the customer service provider135retrieves (e.g., from the API180) the contextual data based upon the: access token, retrieval data token, and/or the JWT. In some implementations, the contextual data is retrieved by calling the API180with the access token, the retrieval data token, token, and/or the JWT. At block455, the retrieved contextual information is displayed on a display (e.g., to a customer service representative).

In some embodiments, some or all of the contextual data is deleted by the customer service provider135after conversation is closed, which advantageously even further improves data security.

Additional Exemplary Embodiments

Aspect 1. A computer-implemented method for data retrieval based on user authentication, comprising:

authenticating a user in a native mobile application;

obtaining, with the native mobile application, an authorization code;

calling, with the native mobile application, an application programming interface (API) to store contextual data;

returning, from the API to the native mobile application, a retrieval data token;

launching, with the native mobile application, a chat application via a universal resource identifier (URI), and passing an identification (ID) parameter to the chat application, wherein the ID parameter comprises: (i) the authorization code, and (ii) the retrieval data token;

passing the ID parameter from the chat application to a customer service provider;

retrieving, with the customer service provider, an access token based upon the authorization code; and

retrieving, with the customer service provider and from the API, the contextual data based upon the: (i) access token, and (ii) retrieval data token.

Aspect 2. The computer-implemented method of aspect 1, further comprising displaying, on a display, the contextual information retrieved from the API.

Aspect 3. The computer-implemented method of aspect 1, wherein the contextual data comprises:

a customer ID,

an insurance claim number,

an insurance policy number,

a process identifier identifying a step in a call center process, or

analytic data of the user using the native mobile application.

Aspect 4. The computer-implemented method of aspect 1, wherein, to retrieve the contextual data, the customer services provider calls the API with the access token and retrieval data token.

Aspect 5. The computer-implemented method of aspect 1, wherein: (i) the authorization code is obtained by the native mobile application from an authorization service, and (ii) the retrieving of the access token based upon the authorization code occurs by sending the authorization code to the authorization service.

Aspect 6. The computer-implemented method of aspect 1, wherein the authentication code and the retrieval data token are obfuscated before they are passed to the chat application.

Aspect 7. The computer-implemented method of aspect 1, wherein a JSON Web Token (JWT) is returned along with the access token, and the retrieval of the contextual data is further based on the JWT.

Aspect 8. The computer-implemented method of aspect 1, wherein the access token is prevented from being retrieved after a predetermined time period expires.

Aspect 9. The computer-implemented method of aspect 1, wherein the authorization code expires after a predetermined time period.

Aspect 10. A computer-implemented method for data retrieval based on user authentication, the method performed by one or more processors of a user computing device, the method comprising:

authenticating a user in a native mobile application;

obtaining, with the native mobile application, an authorization code;

calling, with the native mobile application, an application programming interface (API) to store contextual data;

receiving, from the API to the native mobile application, a retrieval data token;

launching, with the native mobile application, a chat application via a universal resource identifier (URI), and passing an identification (ID) parameter to the chat application, wherein the ID parameter comprises: (i) the authorization code, and (ii) the retrieval data token; and

passing the ID parameter from the chat application to a customer service provider;

wherein the authorization code and the retrieval data token allow the customer service provider to retrieve the contextual data.

Aspect 11. The computer-implemented method of aspect 10, wherein the contextual data comprises a customer ID, or an insurance claim number.

Aspect 12. The computer-implemented method of aspect 10, wherein the contextual data comprises: (i) information identifying the user computing device, and (ii) an error occurring on the user computing device.

Aspect 13. The computer-implemented method of aspect 10, further comprising obfuscating the authentication code and the retrieval data token before passing the authentication code and the retrieval data token to the chat application.

Aspect 14. The computer-implemented method of aspect 10, wherein the access token is prevented from being retrieved after a predetermined time period expires.

Aspect 15. The computer-implemented method of aspect 10, wherein the ID parameter is passed to the customer service provider upon the user clicking a link.

Aspect 16. A computer-implemented method for data retrieval based on user authentication, the method performed by one or more processors of a customer service provider, the method comprising:

receiving an ID parameter from a chat application, wherein: (i) the ID parameter comprises an authorization code and a retrieval data token, and (ii) a user was authenticated in a native mobile application that called an application programming interface (API) to store contextual data;

retrieving an access token based upon the authorization code; and

retrieving, from the API, the contextual data based upon the: (i) access token, and (ii) retrieval data token.

Aspect 17. The computer-implemented method of aspect 16, further comprising displaying, on a display, the contextual information from the API.

Aspect 18. The computer-implemented method of aspect 16, wherein the contextual data comprises a customer ID.

Aspect 19. The computer-implemented method of aspect 16, wherein the contextual data comprises an insurance claim number.

Aspect 20. The computer-implemented method of aspect 16, wherein the authentication code and the retrieval data token are received, by the one or more processors, as obfuscated, and wherein the method further comprises:

parsing the obfuscated authentication code and the obfuscated retrieval data token prior to retrieving the contextual data.

Other Matters

The particular features, structures, or characteristics of any specific embodiment may be combined in any suitable manner and in any suitable combination with one or more other embodiments, including the use of selected features without corresponding use of other features. In addition, many modifications may be made to adapt a particular application, situation or material to the essential scope and spirit of the present invention. It is to be understood that other variations and modifications of the embodiments of the present invention described and illustrated herein are possible in light of the teachings herein and are to be considered part of the spirit and scope of the present invention.