Skip to main content

Applications

Application entity

An Application is the central work item in AMS. It tracks the lifecycle of an underwriting request.

Key fields:

FieldTypeNotes
titleStringHuman-readable name
slugStringUnique within workspace
applicationTypeEnumTAX, PAYROLL, FINANCIAL
applicationTemplateIdUUIDTemplate this app was created from
currentApplicationStatusIdUUIDFK to current status — read-only via JPA join
currentWorkflowStepIdUUIDNullable; current workflow step
clientApprovalConfirmedAtInstantSet when client approves via portal

Application types

TypeUse case
TAXTax-related applications (returns, audits, certificates)
PAYROLLPayroll processing applications
FINANCIALGeneral financial/mortgage applications

Application types are currently informational — they do not drive different business logic automatically.

Current status

currentApplicationStatus is a read-only JPA join. To change the status:

  • Set currentApplicationStatusId (the UUID column)
  • Never set currentApplicationStatus directly
  • ApplicationInput intentionally omits any status field — status is managed by the workflow engine only
// Correct
application.setCurrentApplicationStatusId(newStatusId);

// Wrong — will not persist
application.setCurrentApplicationStatus(statusObject);

Creating an application

Applications are created via a 5-step wizard:

  1. Select ApplicationTemplate
  2. Set title, description, type
  3. Add applicants (link to client profiles, assign types and roles)
  4. Review document slots (inherited from template as snapshots)
  5. Confirm and submit

On creation:

  • Document slots are copied as snapshots from the template — they are not live-linked
  • The initial workflow status (if defined) is assigned
  • Applicants are linked

Application lifecycle

The exact statuses and transitions depend on the ApplicationTemplate configuration. This is a representative flow; actual statuses are custom-defined per template.

Application detail page tabs

TabContent
OverviewTitle, applicants summary, document completion, current status
ApplicantsList of applicants with profile details; CRUD
DocumentsDocument slots, file uploads, review actions
MessagesComments (application-level + document-level)
DecisionDecision recording
WorkflowRead-only workflow visualization + status history

Client approval

When clientApprovalConfirmedAt is set on an application, the client-approval-check system handler can auto-advance the workflow step. This enables automated progression when a client explicitly approves their application via the client portal.


See also