Examples

Loan application

A loan from application to payout, with a risk decision, underwriting, an offer that can expire, and the applicant as an outside party.

An applicant sends a loan application. The loan officer checks that it's complete and pulls a credit report, and a rule sorts the risk into low, medium or high. Medium risk goes to underwriting, and the applicant can withdraw while that happens. Approved loans get an offer, and the loan is paid out if the applicant signs within 14 days.

There's no template for this one. Paste it into the Flowmark pane to see it drawn.

Flowmark
process Loan application
pool Applicant
lanes Loan officer | Underwriting | Operations

lane Loan officer
start:message Application received
  <= Applicant: Loan application
user Check application
xor Application complete?
  yes -> Pull credit report
  no (default) -> Return application

service Pull credit report
rule Assess risk
xor Risk band?
  low -> #offer
  medium -> Underwrite loan
  high (default) -> #declined

lane Underwriting
user Underwrite loan
  on:message Applicant withdrew -> Application withdrawn
xor Loan approved?
  yes -> #offer
  no (default) -> #declined

lane Loan officer
xor #offer
send Send offer
  => Applicant: Loan offer
eventgw #answer
  -> Offer signed
  -> Offer expired

catch:message Offer signed
  <= Applicant: Signed offer
lane Operations
service Pay out loan
end Loan paid out

lane Loan officer
catch:timer(P14D) Offer expired
end Offer lapsed

send Return application
  => Applicant: Missing documents
end Application returned

xor #declined
send Send decline notice
  => Applicant: Decline notice
end Application declined

lane Underwriting
end Application withdrawn

What to notice

  • The applicant is a pool, not a lane. They're outside the bank, so the diagram shows only what passes between you: the application, the offer, the signed offer and the notices. See Pools and messages.
  • Two decisions share their outcomes. Low risk and an underwriter's yes both go to xor #offer; high risk and an underwriter's no both go to xor #declined. The merges keep each step to one arrow in.
  • A message boundary event. on:message Applicant withdrew stops underwriting if the applicant pulls out.
  • A race between a reply and a deadline. eventgw #answer takes whichever comes first: the signed offer or the 14-day timer. See Waiting for a reply.
  • Every outcome has its own end event: paid out, lapsed, returned, declined and withdrawn.

On this page