# US 12,192,294 B2 · System and method for integrating external services into process workflow environments

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,192,294 B2
- Document ID: US12192294B2
- Status: Granted
- Kind: B2
- Application number: 18/348,634
- Filed: 2023-07-07
- Published: 2023-11-02
- Granted: 2025-01-07
- Earliest claimed: 2021-01-07
- Assignees: The Toronto-Dominion Bank
- Applicants: The Toronto-Dominion Bank
- Inventors: Joseph Vincent Scarfutti; Christian Caberoy De La Peña; Aneesha Suresh Bulchandani
- Web page: https://patentgrep.com/patent/US12192294B2

## CPC

- G06Q 10/06316: {Sequencing of tasks or work}
- H04L 67/51: Discovery or management thereof, e.g. service location protocol [SLP] or web services
- G06F 16/25: Integrating or interfacing systems involving database management systems
- G06F 16/9024: {Graphs; Linked lists (G06F16/9027 takes precedence)}
- H04L 67/142: Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms
- H04L 67/55: Push-based network services
- H04L 67/562: Brokering proxy services
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A system and method are provided for integrating external services into process workflow environments. The method can include subscribing to one or more topics in an external domain coupled to at least one external microservice to be notified of incoming messages, the topics in the external domain being mapped to topics in an internal domain coupled to a message broker for routing messages within the internal domain. The method can also include subscribing to the one or more topics in the internal domain to be notified of outgoing messages to the at least one external microservice and detecting an incoming message published to a first topic by a first external microservice. The method can also include sending the incoming message to the first topic of the internal domain, detecting an outgoing message from the first topic or a second topic of the internal domain, and publishing the outgoing message to the first external microservice or another external microservice via a corresponding topic in the external domain.

## Claims

### Claim 1

A system for integrating external services into process workflow environments, the system comprising:
a processor; and
a memory coupled to the processor, the memory storing computer executable instructions that when executed by the processor cause the processor to:
enable at least one external microservice to connect to an internal domain of an enterprise system via a software interface to permit messages to cross between a platform of the enterprise system that provides the internal domain, and an external domain separate and external to the platform, via the software interface, during execution of a process workflow;
detect an incoming message at the software interface, the incoming message being associated with execution of the process workflow executed within the internal domain of the enterprise system, the incoming message provided by a first of the at least one external microservice in the external domain;
determine a first internal topic of one or more internal topics in the internal domain to which the incoming message is to be routed from the external domain, wherein the first internal topic is determined from a notation in the incoming message identifying topic, subprocess, and record identifier for routing the incoming message; and wherein each of the one or more internal topics corresponds to a service task in a state of the process workflow;
publish the incoming message to the first internal topic to notify subscribers of the first internal topic of the incoming message;
obtain a data object for the process workflow and determine one or more next tasks in the process workflow;
update the data object based on the one or more next tasks or a current task in the process workflow;
detect an outgoing message comprising the updated data object, the outgoing message comprising a corresponding service task to be performed by the first of the at least one external microservice, the outgoing message corresponding to a first external topic associated with the outgoing message and comprising the notation utilized by the first internal topic;
publish the outgoing message to the first external topic to enable the first of the at least one external microservice to obtain the outgoing message comprising the updated data object via the software interface by having subscribed to the first external topic; and
instruct a workflow state change of the process workflow to be updated.

### Claim 2 (depends on 1)

The system of claim 1, wherein a message broker in the internal domain maps one or more external topics to respective ones of the one or more internal topics in the internal domain, the message broker for routing messages within the internal domain.

### Claim 3 (depends on 2)

The system of claim 2, wherein the outgoing message from the internal domain is detected by subscribing to the message broker that is configured to route messages within the internal domain.

### Claim 4 (depends on 3)

The system of claim 3, wherein the message broker is stateless and wherein the computer executable instructions further cause the processor to:
save state information to a state service to persist changes to the one or more internal topics while executing the process workflow.

### Claim 5 (depends on 3)

The system of claim 3, wherein the message broker subscribes to the one or more internal topics in the internal domain from all non-service tasks to be notified of internal messages.

### Claim 6 (depends on 1)

The system of claim 1, wherein the data object is obtained for the current task in the process workflow based on the first internal topic or the first external topic associated with the first of the at least one external microservice.

### Claim 7 (depends on 1)

The system of claim 1, wherein the computer executable instructions further cause the processor to:
save state information to a state service to persist changes to one or more external topics while executing the process workflow.

### Claim 8 (depends on 1)

The system of claim 1, wherein the one or more internal topics or one or more external topics associated with the external domain are arranged into a plurality of subprocesses.

### Claim 9 (depends on 1)

The system of claim 1, wherein the process workflow has been translated from a workflow graph.

### Claim 10 (depends on 9)

The system of claim 9, wherein the one or more internal topics or one or more external topics associated with the external domain have corresponding workflow tasks that have been translated for the process workflow from the workflow graph to a file and data interchange format.

### Claim 11 (depends on 10)

The system of claim 10, wherein the workflow graph is translated from a business process model and notation (BPMN) format to a JavaScript object notation (JSON) file and data interchange format.

### Claim 12 (depends on 1)

The system of claim 1, wherein the first of the at least one external microservice publishes a data intake task.

### Claim 13 (depends on 1)

The system of claim 1, wherein the first of the at least one external microservice publishes a service task.

### Claim 14

A method of integrating external services into process workflow environments, the method comprising:
enabling at least one external microservice to connect to an internal domain of an enterprise system via a software interface to permit messages to cross between a platform of the enterprise system that provides the internal domain, and an external domain separate and external to the platform, via the software interface, during execution of a process workflow;
detecting an incoming message at the software interface, the incoming message being associated with execution of the process workflow executed within the internal domain of the enterprise system, the incoming message provided by a first of at least one external microservice in external domain;
determining a first internal topic of one or more internal topics in the internal domain to which the incoming message is to be routed from the external domain, wherein the first internal topic is determined from a notation in the incoming message identifying topic, subprocess, and record identifier for routing the incoming message; and wherein each of the one or more internal topics corresponds to a service task in a state of the process workflow;
publishing the incoming message to the first internal topic to notify subscribers of the first internal topic of the incoming message;
obtaining a data object for the process workflow and determining one or more next tasks in the process workflow;
updating the data object based on the one or more next tasks or a current task in the process workflow;
detecting an outgoing message comprising the updated data object, the outgoing message comprising a corresponding service task to be performed by the first of the at least one external microservice, the outgoing message corresponding to a first external topic associated with the outgoing message and comprising the notation utilized by the first internal topic;
publishing the outgoing message to the first external topic to enable the first of the at least one external microservice to obtain the outgoing message comprising the updated data object via the software interface by having subscribed to the first external topic; and
instructing a workflow state change of the process workflow to be updated.

### Claim 15 (depends on 14)

The method of claim 14, wherein a message broker in the internal domain maps one or more external topics to respective ones of the one or more internal topics in the internal domain, the message broker for routing messages within the internal domain.

### Claim 16 (depends on 14)

The method of claim 14, wherein the data object is obtained for the current task in the process workflow based on the first internal topic or the first external topic associated with the first of the at least one external microservice.

### Claim 17 (depends on 14)

The method of claim 14, further comprising:
saving state information to a state service to persist changes to one or more external topics while executing the process workflow.

### Claim 18 (depends on 14)

The method of claim 14, wherein the process workflow has been translated from a workflow graph.

### Claim 19 (depends on 18)

The method of claim 18, wherein the one or more internal topics or one or more external topics associated with the external domain have corresponding workflow tasks that have been translated for the process workflow from the workflow graph to a file and data interchange format.

### Claim 20

A non-transitory computer readable medium for integrating external services into process workflow environments, the non-transitory computer readable medium comprising computer executable instructions for:
enabling at least one external microservice to connect to an internal domain of an enterprise system via a software interface to permit messages to cross between a platform of the enterprise system that provides the internal domain, and an external domain separate and external to the platform, via the software interface, during execution of a process workflow;
detecting an incoming message at the software interface, the incoming message being associated with execution of the process workflow executed within the internal domain of the enterprise system, the incoming message provided by a first of at least one external microservice in the external domain;
determining a first internal topic of one or more internal topics in the internal domain to which the incoming message is to be routed from the external domain, wherein the first internal topic is determined from a notation in the incoming message identifying topic, subprocess, and record identifier for routing the incoming message; and wherein each of the one or more internal topics corresponds to a service task in a state of the process workflow;
publishing the incoming message to the first internal topic to notify subscribers of the first internal topic of the incoming message;
obtaining a data object for the process workflow and determining one or more next tasks in the process workflow;
updating the data object based on the one or more next tasks or a current task in the process workflow;
detecting an outgoing message comprising the updated data object, the outgoing message comprising a corresponding service task to be performed by the first of the at least one external microservice, the outgoing message corresponding to a first external topic associated with the outgoing message and comprising the notation utilized by the first internal topic;
publishing the outgoing message to the first external topic to enable the first of the at least one external microservice to obtain the outgoing message comprising the updated data object via the software interface by having subscribed to the first external topic; and
instructing a workflow state change of the process workflow to be updated.
