Project

General

Profile

Onboarding Diagram » History » Revision 3

Revision 2 (Ryan Supawarapong, 02/19/2026 06:42 AM) → Revision 3/6 (Ryan Supawarapong, 03/12/2026 04:04 AM)

# Onboarding Diagram 

 ## API Spec Template 

 ```plantuml 
 @startuml Onboarding 
 title Onboarding 

 actor "customer" as c user 
 participant "app" as a app 
 participant "backend" as be 
 database "database" as db 
 participant "notification" as n 
 participant "appman" as am 
 participant "thaid" as th 

 c -> a: input mobile and email 
 a -> be: check existing email and mobile 
 be -> db: check database for existing data 
 alt found data 
   db --> be: found data 
   be --> a: found data 

 else  
   db --> be: not found 
   be --> a: not found 
   a -> be: confirm email & mobile 
   be -> db: save email & mobile info 
   db --> be: ok 
   be -> n: send email & mobile otp 
   be --> c: send otp to customer email & mobile 
   c -> a: input otp 
   a -> be: forward otp 
   be -> db: check otp 
   db --> be: ok 
   be -> a: ok 

 end 
 a --> c: redirect user to login 

 a -> be: check customer onboarding status 
 be -> db: check status 
 alt done 
   db --> be: done 
   be --> a: done 
   a --> c: done 

 else 
   a -> c: redirect to onboarding 
 end 

 c -> a: select citizenship type 
 c -> a: PDPA agreement 
 c -> a: input fullname 

 a -> be: send fullname 
 be -> db: save data 
 db --> be: ok 
 be --> a: ok 

 group appman 
 a -> be: init appman 
 be -> am: generate appman link 
 be -> db: save response 
 be --> a: return appman link 

 a -> c: redirect to appman 
 c -> am: do appman 
 am --> a: redirect back 
 a -> be: send id that is done 
 be -> am: get detail 
 am --> be: return detail 
 be -> db: save detail 
 db --> be: ok 
 be -> be: check face comparsion 
 be -> be: check mule? 
 be -> be: check freeze, hr, led, dopa, pep 
 be --> a: ok 

 end 

 a -> c: redirect to address page 
 c -> a: fill current and register address 
 a -> be: send data 
 be -> db: save data 
 db --> be: ok 
 be --> a: ok 

 a -> c: redirect to occupation page 
 c -> a: fill occupation 
 a -> be: send data 
 be -> db: save data 
 db --> be: ok 
 be --> a: ok 


 a -> c: redirect to workplace address page 
 c -> a: fill workplace address 
 a -> be: send data 
 be -> db: save data 
 db --> be: ok 
 be --> a: ok 

 a -> c: redirect to bank page 
 c -> a: fill bank 
 a -> be: send data 
 be -> db: save data 
 db --> be: ok 
 be --> a: ok 


 a -> c: redirect to income page 
 c -> a: fill source of income and country of income 
 a -> be: send data 
 be -> db: save data 
 db --> be: ok 
 be --> a: ok 


 a -> c: redirect to suitability test page 
 c -> a: fill suitability 
 a -> a: check if more than 30 points 

 alt more than 30 points 
   a -> c: acknowledge agreement 
 end 

 a -> be: send data 
 be -> db: save data 
 db --> be: ok 
 be --> a: ok 

 a -> c: redirect to verify identity page 
 c -> a: choose ndid or Thaid 

 group Thaid 

 a -> be: ask for thaid link/qr 
 be -> be: generate thaid link/qr 
 be -> db: save thaid link/qr 
 db --> be: ok 
 be --> a: return link/qr 
 c -> th: do thaid 

 th --> be: send data 
 be -> db: save data 
 db --> be: ok 


 end 

 group Ndid 

 c -> a: choose bank 
 a -> be: ask for ndid link/qr 
 be -> be: generate ndid link/qr 
 be -> db: save ndid link/qr 
 db --> be: ok 
 be --> a: return link/qr 
 c -> th: do thaid 

 th --> be: send data 
 be -> db: save data 
 db --> be: ok 


 end 

 @enduml 
 ``` 

 
 <img style="width: 1153px;" src="clipboard-202603121103-zz3jz.png"><br> 115px;" src="clipboard-202602191342-gbzfe.png"><br>