The disclosure relates to electronic transactions, and more specifically to conducting and recording custom, transaction-based interactions between an application's users and external systems.
Transactions occur in everyday life, for example, when you exchange money for goods and services. Transactions are an exchange, usually a request and response, that occurs as a routine event in running the day-to-day operations of an organization. Online transactions, particularly online, business-to-business transactions, have grown at a phenomenal rate. Indeed, a recent Forrester Research Inc. report projected that online, business-to-business transactions will grow from $7.88 trillion in 2017 to $8.96 trillion in sales in 2018. These transactions are performed on suppliers' e-commerce sites, business networks, product procurement systems, services procurement systems, employee apps for purchasing travel and entertainment services, and EDI. Electronic Data Interchange, which is a major component of these transactions, is the computer-to-computer exchange of business documents in a standard electronic format between business partners.
Another major trend in business is collaborative work management using online collaboration and sophisticated workflows across enterprises, organizations, project teams and even ad hoc teams. Increasingly, workflows span multiple, heterogenous businesses. Project team members may be employees or agents of different organizations with disparate computing systems. Collaborative work management is growing alongside, and often in tandem with, online, business-to-business transactions. These transactions are key components in collaborative workflows. Mission-critical business applications often depend upon the ease, efficiency and integrity of online transactions between the application and an external, transactional system. The transactional ease, efficiency and integrity would be improved if application users could conduct business with external systems from within their application.
What is needed therefore are custom, transaction-based user interactions with external systems.
Technology is disclosed for an application service that provides for custom, transaction-based interactions between users of an application and transactional systems external to that application and for creating a record of those interactions (the “technology”). The technology enables one or more users to participate in online transactions by responding to requests from external systems in real-time and from within the application. The technology facilitates user responses to external system requests by generating a singular user interface, such as an icon, customized in real time for the particular transactional system's request and the corresponding user's response during the performance of a transaction. The technology enables the creation of a record of the transactional requests and user responses. In that way, user responses during a transaction can be audited.
In various embodiments, the technology provides a request-response service that can be used in real-time by one or more users and one or more transactional systems. For example, in one embodiment, consider that an organization holds several accounts with a financial institution. An agent of the organization initiates a business process, which moves funds from one account to another, requires approval from four different managers of the organization. That agent, as a user in the organization's business application, initiates the process with the financial institution's transactional system. The four managers, as users in the application, will each receive requests for approvals from the transactional system. Without leaving their organization's business application, the managers are able to receive, and respond to requests, from the financial institution's transactional system.
In various embodiments, the technology provides a custom interface service that can be used to generate a singular user interface, such as an icon, that is customized in real time for the particular, transactional system's request and the corresponding user's response during the performance of a transaction. Consider again the above example of one embodiment, one of the four managers is working within the business application. On the screen of her device, a message window appears with two custom interfaces. The message window contains information re the transfer of funds. One customer interface is a green button with the text ‘approve’. The other customer interface is a red button with the text ‘decline’. That manager can choose to respond by clicking the green button or by clicking the red button.
In various embodiments, the technology provides a transaction record service that can be used to record data evidencing each interaction between an application's users and an external, transactional system during the performance of a transaction. Consider again the above example of one embodiment, the four managers are each presented with custom interfaces (green and red buttons) and each respond. A record will be kept of the transaction that will include pertinent information related to the requested funds transfer. The transaction record will include pertinent information related to each manager, such as what custom interfaces they were presented with and when, and what response they took and when.
The drawings described herein are for illustrative purposes only of selected embodiments and not all possible implementations and are not intended to limit the scope of the present disclosure.
Action Universal Resource Locator (Action URL): a locator that identifies a resource by its location on a computer network and a method of retrieving it that, in some embodiments, may be used to store and retrieve a transactional request.
Cascading Style Sheets (CSS): a descriptor indicating how an individual element of a HyperText Markup Language (HTML) document or webpage (an HTML element) should be displayed.
Custom Interface: a singular user interface, such as an icon, that is customized in real time for the particular, transactional system's request and the corresponding user's response during the performance of a transaction. E.g., a button that, when clicked by a user, allows a user to take a specific action, such as approve a deposit to a financial account.
Interaction Metadata: data that describes and provides information about a transactional interaction.
Interaction Record: an electronic record which contains interaction metadata.
Payload: data transmitted over a network that is stripped of any header information or other descriptive metadata and which represents the data intended to be sent by the transmitter. E.g., payload may be the substance of a request sent by the transactional system or the substance of a response sent by a user.
Response Universal Resource Locator (Response URL): a locator that identifies a resource by its location on a computer network and a method of retrieving it that, in some embodiments, may be used to store and retrieve a user response to a transactional request.
Transaction Metadata: data that describes and provides information about a transaction.
Transaction Record: an electronic record which contains transaction metadata.
Transactional Interaction: an interaction between a transactional system and an application's user consisting of a transactional request and a user response, which are part of the performance of a transaction. The performance of a transaction may involve more than one transactional interaction.
Transactional Request: a request from a transactional system for a response from an application's user as part of the performance of a transaction. E.g., a banking system may request a user's approval of a deposit to a bank account. A transactional request may be initiated by a user of the transactional system. E.g., an officer of a bank may be a user of a banking system.
Transactional System: a computing system that, in whole or in part, performs transactions, such as, withdrawal from bank accounts, approval of contracts and purchase of goods and services, and that is external to an application.
User Response: a response from an application's user to a request from a transactional system as part of the performance of a transaction. E.g., at the request of a banking system, a user may decline to sign a document authorizing payment of fees.
Technology is disclosed for an application service that provides for custom, transaction-based interactions between users of an application and systems external to that application and for creating a record of those interactions (the “technology”). Several embodiments of the technology are described in more detail in reference to the figures. Turning to
The set of users may access the application service 120 via communication networks, such as communication network 110, using a variety of devices, including a desktop, a laptop, a tablet PC, a smart phone, or a telephone. The set of transactional systems may access the application service 120 via communication networks, such as communication network 130. In various embodiments, application service 120, the set of users and the set of transactional systems may access storage systems, such as storage system 150 via communication networks, such as communication network 110 and communication network 130.
Application service 120 may be implemented in a variety of configurations. One typical configuration may include an online configuration in which application service 120 is implemented in a distributed network, for example, LAN, WAN or Internet. Users and transactional systems access application service 120 over communication networks such as network 110 and network 130 In various embodiments, application service 120 may also be implemented in a client-server configuration in which an application corresponding to the client portion may be installed on the device of the user. Users may access application service 120 using a web browser or an application service application installed on the device of the user.
Turning now to
Transactional interaction service 220, consistent with various embodiments, enables transaction-based interactions between users, such as users 201, 202 and 203, and transactional systems, such as transactional systems 241, 242 and 243, that occur during the performance of transactions, such as transactions 210, 211 and 212. Transactions may be initiated by a user or a transactional system. A transactional system may initiate a transaction by an action taken by one of that system's users. During the performance of one transaction, a transactional system may request one or more responses from an application's user or users.
For example, an application service, such as application service 120 of
Request-response service 221, consistent with various embodiments, receives transactional requests from transactional systems, such as transactional systems 241, 242 and 243, during the performance of transactions, such as transactions 210, 211 and 212. For example, a transactional request may contain data re the transactional system, the action and/or information requested to be taken and/or provided by the user, the initiator, the timestamp, and the attributes for a custom interface that is specially created for this specific transactional request. A transactional system may include systems such as a financial technology system (e.g., a banking system or a brokerage system), a system for purchasing goods and/or services, a system for transporting purchased goods, systems for making insurance claims, and systems of other entities with which an organization conducts business. Actions requested to be taken may include actions such as approve, reject, sign, decline, attach, review and call. The initiator may identify the system or user who initiated the requesting transaction. The timestamp may identify the time the related transaction was initiated, and/or the transactional request was sent, consistent with various embodiments.
In some embodiments, a transactional request may contain an action URL and/or a response URL. An action URL is a universal resource locator that identifies a resource by its location on a computer network and a method of retrieving it, which may be used to store and retrieve a transactional request. A response URL is a universal resource locator that identifies a resource by its location on a computer network and a method of retrieving it, which may be used to store and retrieve a user response.
The attributes for a custom interface contained in a transactional request, consistent with various embodiments, provide the information necessary to generate a customized user interface that will enable the specific transactional interaction required for the performance of a particular transaction. For example, in some embodiments, the custom interface attributes described in the following table may be included in a transactional request.
Turning back to
Request-response service 221, consistent with various embodiments, delivers user responses from users, such as users 201, 202 and 203, to transactional requests from transactional systems, such as transactional systems 241, 242 and 243, during the performance of transactions, such as transactions 210, 211 and 212. For example, a user response may contain data re the user, the action taken (and/or the information provided) by the user, and the timestamp. Data re the user may include identifiers, such as a user id, email address and IP address. Actions taken may include actions such as approved, rejected, signed, declined, attached, reviewed and called. The timestamp may identify the time the related transaction was initiated, the time the transactional request was sent, and/or the time the user responded, consistent with various embodiments. In some embodiments, a user response may be delivered to a response URL that was provided in the transactional request.
Transaction record service 223, consistent with various embodiments, creates an interaction record that provides evidence of each interaction (transactional request and user response) between an application's users, such as users 201, 202 and 203 and a transactional system, such as transactional systems 241, 242 and 243, during the performance of a transaction, such as transactions 210, 211 and 212. Transaction record service 223 includes the interaction records in the transaction record it creates for every transaction. The transaction record, consistent with various embodiments, provides the information necessary to audit a transaction between two independent entities by means of their corresponding, independent computing systems. For example, in some embodiments, the transaction record may include the information provided in the following table.
In the above example, a transaction (Transaction ID: AXB-1P3-768′) occurred between a corporation (‘corp’) and a bank (‘bankofzam’). The transaction was initiated by a user of the bank's transactional system (‘jane@bankofzam.com’) on May 12, 2018. During the performance of the transaction, the transactional system sent four transactional requests to a user of the corporation's application (‘moxie@corpc.com’) in sequence: 1 (‘Label: Approve Payment’); 2 (‘Label: Decline Payment;); 3 (‘Label: Sign’) and 4 (‘Label: Decline to Sign’). The application user did not respond to transactional requests 2 or 4. The application user did respond to transactional requests 1 and 3. The user responses were delivered to their respective response URLs, ‘https://bankofzam.com/approve’ and ‘https://bankofzam.com/sign’. The transaction ended on May 14, 2018. The above, exemplar transaction record provides the information necessary to audit a completed transaction between a corporation and a bank whereby an agent of a corporation approved a payment and signed a document at the request of an agent of a bank, consistent with various embodiments.
Transactional interaction service, such as transactional interaction service 220, request-response service, may be accessed using a variety of computing systems and a variety of devices, including a desktop computer, a laptop computer, a smartphone, or a tablet PC. It may also be accessed using a web browser installed on user devices. Further, the application service environment 200 is platform agnostic, that is, it may be accessed from computing systems and devices running on operating systems, such as The Open Group's UNIX®, IBM® z/OS®, Microsoft Corporation's Windows®, Apple Inc.'s rnacOS® and iOS®, Google Inc.'s Chrome OS™ operating systems, and various implementations of the Linux and Android OS operating systems.
Turning now to
Screen shot 320 shows a message thread occurring in chat function 322 of an application. Informational message 321 is being displayed with respect to transaction 323 (‘Fixed Deposit Placement’). Informational message 321 displays pertinent information re transaction 323 at 324 (‘Principal Amount’ and ‘From A/C No’). Informational message 321 displays status 325 of transaction 323, which indicates that the transactional system has received responses from 2 of 4 users (‘2/4’). Status 325 also indicates that it is the present user's turn to provide input (‘It's your turn!’; ‘Waiting on your input’). The message thread occurring in chat function 322 includes informational messages 327 which indicate that both user (‘Marie Johnson’) and user (‘Andrew Armstrong’) responded to a transactional request by confirming the subject transaction (‘ID 1123457890’).
The present user is also being presented with custom interface 326 within the context of informational message 321. Custom interface 326 represents a transactional request from the transactional system to the present user. Custom interface 326 was specially created in real time for this specific request based on the custom interface attributes contained within the transactional request. In this example, the custom interface attributes resulted in the generation of a rectangular icon with the text ‘Review Now’, which—in response—the present user may choose to click or may choose not to click.
Turning now to
The present user is also being presented with custom interfaces 414 and 415 within the context of informational message 411. Custom interface 414 represents a transactional request from the transactional system to the present user. Custom interface 414 was specially created in real time for this specific request based on the custom interface attributes contained within its corresponding transactional request. In this example, the custom interface attributes resulted in the generation of a rectangular icon with the text ‘Decline’, which—in response—the present user may choose to click or may choose not to click. Custom interface 415 represents a transactional request from the transactional system to the present user. Custom interface 415 was specially created in real time for this specific request based on the custom interface attributes contained within its corresponding transactional request. In this example, the custom interface attributes resulted in the generation of a rectangular icon with the text ‘Approve’, which—in response—the present user may choose to click or may choose not to click.
Turning back to
Turning now to
Application 520 initiated the transaction with transactional system 530 by, among other things, sending data, such as user info to TS 522, to the transactional system 530. As a result, at 521, user info to TS 522 was added to the present record. Transactional system 530 received the data, processed that data with its own encoded business logic and sent data, such as response from TS 532, to application 520. As a result, at 531, response from TS 532 and timestamp 533 were added to the present record, consistent with various embodiments.
Subsequently, transactional system 530 sent a transactional request, which included custom interface attributes 542, to application 520. As a result, at 541, custom interface attributes 542 was added to the present record. Application 520 generated a custom interface corresponding to custom interface attributes 542 on the device of user 510. User 510 responded to the transactional request by means of the custom interface. As a result, at 551, user response 552 was added to the present record, consistent with various embodiments.
Similar additions will be made to the present record, consistent with various embodiments, when further transactional interactions are required and until the performance of the transaction is concluded.
Turning now to
In various embodiments, system 600 is implemented to perform functions such as the functions of environment 100. In various embodiments, application service 610 may be similar to the application service 120 of
Application service 610 includes transactional interaction module 620, request-response module 621, custom interface module 622 and transaction record module 623. In various embodiments, transactional interaction module 620 may be similar to transactional interaction service 220 of
Turning now to
In some embodiments, process 700 may be executed in a system such as system 600 of
Turning now to
In some embodiments, process 800 may be executed in a system such as system 600 of
If the transaction is complete, at block 870, transaction record module 623 summarizes data it recorded for the transactional interactions during the performance of the transaction; and finalizes the transaction record.
Turning now to
The memory 910 and storage devices 920 are computer-readable storage media that may store instructions that implement at least portions of the described technology. In addition, the data structures and message structures may be stored or transmitted via a data transmission medium, such as a signal on a communications link. Various communications links may be used, such as the Internet, a local area network, a wide area network, or a point-to-point dial-up connection. Thus, computer-readable media may include computer-readable media (e.g., “non-transitory” media) and computer-readable transmission media. The instructions stored in memory 910 may be implemented as software and/or firmware to program the processor(s) 905 to carry out actions described above. In some embodiments, such software or firmware may be initially provided to the processing system 900 by downloading it from a remote system through the computing system 900 (e.g., via network adapter 930).
The technology introduced herein may be implemented by, for example, programmable circuitry (e.g., one or more microprocessors) programmed with software and/or firmware, or entirely in special-purpose hardwired (non-program-mable) circuitry, or in a combination of such forms. Special-purpose hardwired circuitry may be in the form of, for example, one or more ASICs, PLDs, FPGAs, etc.
The above description and drawings are illustrative and are not to be construed as limiting. Numerous specific details are described to provide a thorough understanding of the disclosure. However, in certain instances, well-known details are not described in order to avoid obscuring the description. Further, various modifications may be made without deviating from the scope of the invention. Accordingly, the invention is not limited except as by the appended claims.
Reference in this specification to “one embodiment” or “an embodiment” or “some embodiments” or “various embodiments” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the disclosure. The appearances of these phrases in various places in the specification are not necessarily all referring to the same embodiment, nor are separate or alternative embodiments mutually exclusive of other embodiments. Moreover, various features are described which may be exhibited by some embodiments and not by others. Similarly, various requirements are described which may be requirements for some embodiments but not for other embodiments.
The terms used in this specification generally have their ordinary meanings in the art, within the context of the disclosure, and in the specific context where each term is used. Certain terms that are used to describe the disclosure in this specification are used to provide additional guidance to the practitioner regarding the description of the disclosure. For convenience, certain terms may be highlighted, for example using italics and/or quotation marks. The use of highlighting has no influence on the scope and meaning of a term; the scope and meaning of a term is the same, in the same context, whether or not it is highlighted. It will be appreciated that the same thing may be said in more than one way. One will recognize that “memory” is one form of a “storage” and that the terms may on occasion be used interchangeably.
Consequently, alternative language and synonyms may be used for any one or more of the terms discussed herein, nor is any special significance to be placed upon whether or not a term is elaborated or discussed herein. Synonyms for certain terms are provided. A recital of one or more synonyms does not exclude the use of other synonyms. The use of examples anywhere in this specification including examples of any term discussed herein is illustrative only and is not intended to further limit the scope and meaning of the disclosure or of any exemplified term. Likewise, the disclosure is not limited to various embodiments given in this specification.
Those skilled in the art will appreciate that the logic illustrated in each of the flow diagrams discussed above, may be altered in various ways. For example, the order of the logic may be rearranged, sub-steps may be performed in parallel, illustrated logic may be omitted, other logic may be included, etc.
Without intent to further limit the scope of the disclosure, examples of instruments, apparatus, methods and their related results according to the embodiments of the present disclosure are given above. Note that titles or subtitles may be used in the examples for convenience of a reader, which in no way should limit the scope of the disclosure. Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this disclosure pertains. In the case of conflict, the present document, including definitions will control.
Furthermore, in the specification, figures and claims, reference is made to particular features (including method steps) of the invention. It is to be understood that the disclosure of the invention includes all possible combinations of such particular features. For example, where a particular feature is disclosed in the context of a particular aspect or embodiment of the invention, or a particular claim, that feature may also be used, to the extent possible, in combination with and/or in the context of other particular aspects and embodiments of the invention.
Certain terminology and derivations thereof may be used in the following description for convenience in reference only and will not be limiting. For example, words such as “upward,” “downward,” “left,” and “right” would refer to directions in the drawings to which reference is made unless otherwise stated. Similarly, words such as “inward” and “outward” would refer to directions toward and away from, respectively, the geometric center of a device or area and designated parts thereof. References in the singular tense include the plural, and vice versa, unless otherwise noted.
The term “comprises” and grammatical equivalents thereof are used herein to mean that other components, ingredients, steps, among others, are optionally present. For example, an article “comprising” (or “which comprises”) components A, B and C may consist of (i.e., contain only) components A, B and C, or may contain not only components A, B, and C but also contain one or more other components.
Where reference is made herein to a method comprising two or more defined steps, the defined steps may be carried out in any order or simultaneously (except where the context excludes that possibility), and the method may include one or more other steps which are carried out before any of the defined steps, between two of the defined steps, or after all the defined steps (except where the context excludes that possibility).
The term “at least” followed by a number is used herein to denote the start of a range beginning with that number (which may be a range having an upper limit or no upper limit, depending on the variable being defined). For example, “at least 1” means 1 or more than 1. The term “at most” followed by a number (which may be a range having 1 or 0 as its lower limit, or a range having no lower limit, depending upon the variable being defined). For example, “at most 4” means 4 or less than 4, and “at most 40%” means 40% or less than 40%. When, in this specification, a range is given as “(a first number) to (a second number)” or “(a first number)—(a second number),” this means a range whose limit is the second number. For example, 25 to 100 mm means a range whose lower limit is 25 mm and upper limit is 100 mm.
Aspects of the disclosed invention may be embodied as a system, method or process, or computer program product. Accordingly, aspects of the disclosed invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module,” “program,” “device,” or “system.” Furthermore, aspects of the disclosed invention may take the form of a computer program product embodied in one or more computer readable media having computer readable program code embodied thereon.
Any element in a claim that does not explicitly state “means for” performing a specified function, or “step for” performing a specific function is not to be interpreted as a “means” or “step” clause as specified in 35. U.S.C. § 112 ¶6. Specifically, the use of “step of” in the claims herein is not intended to invoke the provisions of U.S.C. § 112 ¶6.