Surface only the agency door
This demo is about the individual agent who sources a lead and gets paid when it onboards, so the console offers that one entry point and goes straight to its form rather than showing a chooser with one option. The direct and bancassurance INIT activities are hidden, not removed — both still work over the API with their own permissions, and the bancassurance door is what makes the cross-channel duplicate story possible. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
e750eb8287
commit
f61d3a74cd
@ -73,12 +73,19 @@ export const ACTIONS = {
|
|||||||
'zk-state-issued': [{ uid: 'zk-act-onboard', label: 'Complete Onboarding', by: 'Ops' }],
|
'zk-state-issued': [{ uid: 'zk-act-onboard', label: 'Complete Onboarding', by: 'Ops' }],
|
||||||
}
|
}
|
||||||
|
|
||||||
/** The three doors. Each is a separate INIT activity with its own permissions. */
|
/**
|
||||||
|
* Entry points surfaced in the console.
|
||||||
|
*
|
||||||
|
* The workflow has THREE INIT activities — direct, bancassurance and agency —
|
||||||
|
* and all three still work over the API with their own permissions. Only the
|
||||||
|
* agency door is shown here, because this demo is about the individual agent
|
||||||
|
* who sources a lead and gets paid when it onboards.
|
||||||
|
*
|
||||||
|
* The other two are hidden, not removed: the bancassurance door is what makes
|
||||||
|
* the cross-channel duplicate story possible, and deleting it would take the
|
||||||
|
* skip-ahead behaviour with it.
|
||||||
|
*/
|
||||||
export const ENTRY = [
|
export const ENTRY = [
|
||||||
{ uid: 'zk-act-init-direct', label: 'Self-Serve Lead', channel: 'direct',
|
{ uid: 'zk-act-init-agent', label: 'Partner Agent Lead', channel: 'agency',
|
||||||
note: 'Customer or call centre. Self-declared, no KYC.' },
|
note: 'POSP or broker sourcing a lead. Everything after this happens without them.' },
|
||||||
{ uid: 'zk-act-init-bank', label: 'Partner Bank Lead', channel: 'bancassurance',
|
|
||||||
note: 'Bank RM. Carries the bank’s CKYC, so it starts at Qualified.' },
|
|
||||||
{ uid: 'zk-act-init-agent', label: 'Partner Agent Lead', channel: 'agency',
|
|
||||||
note: 'POSP or broker. This is the door the demo is about.' },
|
|
||||||
]
|
]
|
||||||
|
|||||||
@ -10,7 +10,8 @@ import './screens.css'
|
|||||||
* did CKYC. Whichever door is used, everything after it is identical.
|
* did CKYC. Whichever door is used, everything after it is identical.
|
||||||
*/
|
*/
|
||||||
export default function AddLead() {
|
export default function AddLead() {
|
||||||
const [entry, setEntry] = useState(null)
|
// One door surfaced: skip the chooser entirely rather than show a list of one.
|
||||||
|
const [entry, setEntry] = useState(ENTRY.length === 1 ? ENTRY[0] : null)
|
||||||
const navigate = useNavigate()
|
const navigate = useNavigate()
|
||||||
|
|
||||||
return (
|
return (
|
||||||
@ -39,7 +40,9 @@ export default function AddLead() {
|
|||||||
<h2 className="panel__title">{entry.label}</h2>
|
<h2 className="panel__title">{entry.label}</h2>
|
||||||
<p className="panel__sub">{entry.note}</p>
|
<p className="panel__sub">{entry.note}</p>
|
||||||
</div>
|
</div>
|
||||||
<button type="button" className="af__ghost" onClick={() => setEntry(null)}>Change door</button>
|
{ENTRY.length > 1 ? (
|
||||||
|
<button type="button" className="af__ghost" onClick={() => setEntry(null)}>Change door</button>
|
||||||
|
) : null}
|
||||||
</div>
|
</div>
|
||||||
<ActivityForm
|
<ActivityForm
|
||||||
activityUid={entry.uid}
|
activityUid={entry.uid}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user