Advisor Onboarding Blueprint
Registration and onboarding process for independent financial advisors with CID approval and mandate signing
| Feature | advisor-onboarding |
| Category | Workflow |
| Version | 1.0.0 |
| Tags | advisor-registration, approval-workflow, financial-services |
| YAML Source | View on GitHub |
| JSON API | advisor-onboarding.json |
Actors
| ID | Name | Type | Description |
|---|---|---|---|
advisor | Advisor | human | |
onboarding_officer | Onboarding Officer | human | |
cid_officer | CID Officer | human | |
esignature_service | eSignature Service | external |
Fields
| Name | Type | Required | Label | Description |
|---|---|---|---|---|
onboarding_id | number | Yes | Onboarding Id | Validations: required |
identification_number | text | Yes | Identification Number | Validations: required, unique |
passport_number | text | No | Passport Number | |
first_name | text | Yes | First Name | Validations: required, maxLength |
last_name | text | Yes | Last Name | Validations: required, maxLength |
email | Yes | Validations: required, email | ||
mobile_phone | phone | Yes | Mobile Phone | Validations: required, phone |
advisor_code | text | Yes | Advisor Code | Validations: required, pattern |
status | select | Yes | Status | Validations: required |
cancellation_reason | text | No | Cancellation Reason | |
envelope_id | text | No | Envelope Id |
States
State field: status
Values:
| State | Initial | Terminal |
|---|---|---|
initiated | Yes | |
in_progress | ||
waiting_approval | ||
approved | ||
mandate_signing | ||
mandate_signed | Yes | |
cancelled | Yes | |
expired | Yes |
Rules
- validation: ID and passport must be unique in system, Valid email and phone required, Advisor code format alphanumeric 6-10 chars
- permissions: Onboarding-Activ8 creates and manages, Onboarding-CID approves, Advisor views own onboarding
SLA
| Scope | Max Duration | Escalation |
|---|---|---|
| max_duration | 30d |
Outcomes
Create_advisor_onboarding_duplicate (Priority: 0) — Error: DUPLICATE_IDENTITY
Given:
- ANY:
identification_number(db) exists ORpassport_number(db) exists
Then:
- emit_event event:
validation.duplicate_found
Result: Error duplicate found
Create_advisor_onboarding (Priority: 1)
Given:
identification_number(input) existsemail(input) existsadvisor_code(input) existsclient.role(session) eqOnboarding-Activ8
Then:
- create_record target:
onboarding - emit_event event:
onboarding.created
Result: Advisor onboarding created
Send_to_approval (Priority: 3)
Given:
onboarding_id(input) existsstatus(db) ininitiated,in_progressidentification_number(db) existsclient.role(session) eqOnboarding-Activ8
Then:
- transition_state field:
statusfrom:in_progressto:waiting_approval - emit_event event:
approval.submitted
Result: Sent for CID approval
Cid_approve_onboarding (Priority: 4)
Given:
onboarding_id(input) existsstatus(db) eqwaiting_approvalclient.role(session) eqOnboarding-CID
Then:
- transition_state field:
statusfrom:waiting_approvalto:approved - emit_event event:
approval.granted
Result: CID approved onboarding
Complete_onboarding_mandate (Priority: 5)
Given:
onboarding_id(input) existsstatus(db) eqapprovedclient.role(session) eqOnboarding-Activ8
Then:
- transition_state field:
statusfrom:approvedto:mandate_signing - set_field target:
envelope_idvalue:generated - emit_event event:
mandate.generated
Result: Mandate sent to eSignature service
Handle_mandate_signed (Priority: 6)
Given:
onboarding_id(input) existsstatus(db) eqmandate_signingenvelope_status(input) eqsigned
Then:
- transition_state field:
statusfrom:mandate_signingto:mandate_signed - emit_event event:
mandate.signed
Result: Mandate signed, onboarding complete
Get_advisor_onboarding (Priority: 10)
Given:
onboarding_id(input) existsclient.role(session) inOnboarding-Activ8,Onboarding-CID
Then:
- emit_event event:
onboarding.retrieved
Result: Returns advisor onboarding data
Update_advisor_onboarding (Priority: 11)
Given:
onboarding_id(input) existsstatus(db) ininitiated,in_progressclient.role(session) eqOnboarding-Activ8
Then:
- set_field target:
updated_atvalue:now - emit_event event:
onboarding.updated
Result: Advisor onboarding updated
Cancel_advisor_onboarding (Priority: 12)
Given:
onboarding_id(input) existscancellation_reason(input) existsstatus(db) not_inmandate_signed,cancelledclient.role(session) eqOnboarding-Activ8
Then:
- transition_state field:
statusfrom:currentto:cancelled - set_field target:
cancellation_reasonvalue:from_input - emit_event event:
onboarding.cancelled
Result: Onboarding cancelled
Get_creator_onboardings (Priority: 20)
Given:
client.role(session) eqOnboarding-Activ8
Then:
- emit_event event:
list.retrieved
Result: Returns created onboardings
Get_cid_onboardings (Priority: 21)
Given:
client.role(session) eqOnboarding-CID
Then:
- emit_event event:
list.retrieved
Result: Returns pending approvals
Errors
| Code | Status | Message | Retry |
|---|---|---|---|
ONBOARDING_NOT_FOUND | 404 | Onboarding not found | No |
DUPLICATE_IDENTITY | 409 | Advisor with this identity exists | No |
INVALID_STATUS_TRANSITION | 400 | Invalid status transition | No |
MISSING_REQUIRED_FIELD | 400 | Required field missing | No |
INVALID_EMAIL_FORMAT | 400 | Invalid email | No |
INVALID_PHONE_FORMAT | 400 | Invalid phone | No |
UNAUTHORIZED_ACCESS | 403 | Unauthorized | No |
INVALID_ADVISOR_CODE | 400 | Invalid advisor code | No |
DOCU_SIGN_ERROR | 500 | eSignature service error | No |
MANDATE_GENERATION_FAILED | 500 | Mandate generation failed | No |
Events
| Event | Description | Payload |
|---|---|---|
onboarding.created | Advisor onboarding created | onboarding_id |
onboarding.retrieved | Onboarding retrieved | onboarding_id |
onboarding.updated | Onboarding updated | onboarding_id |
onboarding.cancelled | Onboarding cancelled | onboarding_id |
validation.duplicate_found | Duplicate found | identification_number |
approval.submitted | Submitted for approval | onboarding_id |
approval.granted | Approval granted | onboarding_id |
mandate.generated | Mandate generated | onboarding_id |
mandate.signed | Mandate signed | onboarding_id |
list.retrieved | List retrieved | filter |
Related Blueprints
| Feature | Relationship | Reason |
|---|---|---|
| client-onboarding | recommended | |
| proposals-quotations | optional | |
| user-auth | required |
AGI Readiness
Goals
Reliable Advisor Onboarding
Registration and onboarding process for independent financial advisors with CID approval and mandate signing
Success Metrics:
| Metric | Target | Measurement |
|---|---|---|
| processing_time | < 5s | Time from request to completion |
| success_rate | >= 99% | Successful operations divided by total attempts |
Constraints:
- performance (negotiable): Must not block dependent workflows
Autonomy
Level: semi_autonomous
Human Checkpoints:
- before transitioning to a terminal state
Escalation Triggers:
error_rate > 5
Tradeoffs
| Prefer | Over | Reason |
|---|---|---|
| reliability | speed | workflow steps must complete correctly before proceeding |
Coordination
Protocol: orchestrated
Consumes:
| Capability | From | Fallback |
|---|---|---|
user_auth | user-auth | degrade |
Safety
| Action | Permission | Cooldown | Max Auto |
|---|---|---|---|
| create_advisor_onboarding | supervised | - | - |
| create_advisor_onboarding_duplicate | supervised | - | - |
| get_advisor_onboarding | autonomous | - | - |
| update_advisor_onboarding | supervised | - | - |
| cancel_advisor_onboarding | supervised | - | - |
| send_to_approval | supervised | - | - |
| cid_approve_onboarding | supervised | - | - |
| complete_onboarding_mandate | autonomous | - | - |
| handle_mandate_signed | autonomous | - | - |
| get_creator_onboardings | supervised | - | - |
| get_cid_onboardings | autonomous | - | - |