Skip to content

Repository files navigation

Meridian Loan Assigner

Performer | UiPath REFramework | Unattended | Long-Running (Persistence)

The third stage in the Meridian Loan Processing pipeline. This automation consumes applications from the StandardUnderwriting or EnhancedReview queues, creates an Action Center form task for human underwriter review, assigns it using workload-based distribution, then suspends the workflow until the underwriter submits their decision. Upon resumption, it updates MongoDB and routes the application to the appropriate downstream queue.


Features

  • Human-in-the-Loop (HITL) via Action Center -- Creates a structured form task with Application ID (read-only), Decision (Approve/Deny radio), and Reason (free text) fields for underwriter review
  • Workload-Based Assignment -- Assigns tasks to the Underwriter group using Orchestrator's workload balancing, automatically routing to the least-loaded underwriter
  • Long-Running Workflow Pattern -- Uses WaitForFormTaskAndResume to suspend the workflow state in Orchestrator without consuming a robot slot; resumes automatically when the underwriter submits their decision
  • Decision Routing -- Routes completed applications to ApprovedApplications or DeniedApplications queues based on the underwriter's decision, with MongoDB status updates at each step
  • Unified HITL Pattern -- Both standard and enhanced review applications flow through the same parameterized workflow, differing only by source queue and SLA -- not by code path
  • Persistence Support -- Project explicitly enables supportsPersistence: true, allowing workflow state to survive robot restarts and long human review cycles

Process Flow

Start
  |
  v
[Get Transaction Item]
  |- Pull from configured Orchestrator queue
  |    (StandardUnderwriting or EnhancedReview)
  |- Extract AppId from queue item SpecificContent
  |- If no items remain --> End Process
  |
  v
[Create Form Task]
  |- Create Action Center task: "Review Application {AppId}"
  |- Form fields:
  |     Application ID  (read-only, pre-filled)
  |     Decision        (radio: Approve / Deny)
  |     Reason          (required free text)
  |     Submit          (button)
  |- Task catalog from Config ("ActionCatalog")
  |- Priority: Medium
  |
  v
[Assign Task]
  |- Assignment: Workload-based to "Underwriter" group
  |- Orchestrator selects least-loaded underwriter
  |
  v
[Wait for Form Task and Resume]  ** WORKFLOW SUSPENDS HERE **
  |- Robot slot released
  |- Workflow state persisted in Orchestrator
  |- Underwriter reviews in Action Center
  |- Workflow resumes when form is submitted
  |
  v
[Process Decision]
  |- Read Result (approve/deny) and Reason from form
  |- Switch on Result:
  |
  |- Case "approve":
  |     Update MongoDB: Status = "Approved", reasons = {Reason}
  |     Add to "ApprovedApplications" queue
  |
  |- Case "denied":
  |     Update MongoDB: Status = "Denied", reasons = {Reason}
  |     Add to "DeniedApplications" queue
  |
  |- Default:
  |     BusinessRuleException (invalid result)
  |
  v
[Set Transaction Status] --> Loop

Action Center Form

The form task presented to underwriters contains:

Field Type Behavior
Application ID Text (disabled) Pre-filled with AppId, read-only for reference
Decision Radio (required) Approve or Deny -- shortcuts: A / D
Reason Text (required) Free-text justification for the decision
Submit Button Triggers form completion and workflow resumption

Tools & Technologies

Component Technology
RPA Platform UiPath Studio 26.0 (Windows target)
Framework REFramework (Robotic Enterprise Framework)
Human-in-the-Loop UiPath Action Center (Form Tasks + Persistence)
Task Assignment Orchestrator Workload Balancing (Group: Underwriter)
Database MongoDB (via InternalLabs.MongoDB.Activities)
Queue (Input) StandardUnderwriting or EnhancedReview
Queues (Output) ApprovedApplications, DeniedApplications
Config REFramework Config.xlsx + Orchestrator Assets

Key Workflows

File Purpose
Main.xaml REFramework state machine entry point
Framework/GetTransactionData.xaml Gets next queue item from configured queue
Framework/Process.xaml Creates form task, assigns to underwriter, suspends, processes decision on resume
Framework/SetTransactionStatus.xaml Reports Success / Exception back to framework

Configuration

Setting Purpose
OrchestratorQueueName Input queue (StandardUnderwriting or EnhancedReview)
OrchestratorQueueFolder Orchestrator folder path
ActionCatalog Action Center task catalog name
DBConnection MongoDB connection string
Database MongoDB database name
RetryNumberGetTransactionItem Retry count for queue item retrieval

Design Decisions

  • Long-running workflow over polling -- Instead of creating a task in one process and polling for completion in another, this uses UiPath's WaitForFormTaskAndResume persistence pattern. The workflow suspends without consuming a robot slot; the human completes their task; the workflow resumes with decision data attached. This collapses what would otherwise be two components (assigner + decision capture) into a single workflow with a coherent audit trail.
  • Workload-based assignment -- Tasks are assigned to the Underwriter group using Orchestrator's built-in workload balancing rather than round-robin or manual assignment. This automatically routes to the least-loaded underwriter.
  • Single parameterized project -- Both standard and enhanced underwriting use this same project. The only difference is which queue feeds it (configured via OrchestratorQueueName). This avoids code duplication while allowing independent scaling per queue.
  • Switch with BusinessRuleException default -- If the underwriter's decision doesn't match approve or denied, a BusinessRuleException is thrown rather than silently failing. Defense-in-depth against form misconfiguration.
  • Action Center for all human review -- Rather than using ad-hoc review mechanisms for some cases and Action Center for others, all human review is routed through Action Center uniformly. Regulatory expectations require that human review of automated decisions be itself auditable.

Pipeline Context

This is Stage 3 of the Meridian Loan Processing pipeline:

[Email Processor] --> [Loan Prescreen] --> [Loan Assigner] --> [Underwriter Dashboard]
     Intake             Triage/Route        (this)              Attended Workspace

The upstream Loan Prescreen routes applications to StandardUnderwriting or EnhancedReview. This performer creates human review tasks and, upon decision, routes to ApprovedApplications or DeniedApplications for downstream notification processing.


Dependencies

InternalLabs.MongoDB.Activities   [1.0.1]
UiPath.Excel.Activities           [3.5.1]
UiPath.Form.Activities            [25.4.3]
UiPath.FormActivityLibrary        [2.0.8]
UiPath.Persistence.Activities     [1.9.0]
UiPath.System.Activities          [26.2.4]
UiPath.Testing.Activities         [25.10.2]
UiPath.UIAutomation.Activities    [25.10.31]

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors