Start here
Read this page first. Four rules explain most of the confusion new users run into.
1 · One person, one role
Every step belongs to one role, and the database refuses anyone else. This is deliberate (separation of duties). If you press a button and see "Not permitted — You do not have authority to do this", your real role is not the one that owns that step.
2 · "View as" only changes the picture
An Administrator can use the top-bar View as switcher to see another role's screens. It does not give that role's powers. To do a role's step, sign in as a person who holds that role.
3 · Nothing is deleted
iManager keeps history. Records can be rejected, superseded or closed, but not removed. Name anything you create while practising (for example start it with ZZ-TEST) so it is easy to recognise later.
4 · Two Finance people are needed
The person who prepares a payout batch cannot approve it ("Segregation of duties"). Create at least two Finance accounts before you pay a creator.
Day-one setup, in order
- Administrator invites the staff. Governance → Administration → People and roles → Invite. Enter name, work email and role. The person gets an email and signs up with Google (invite-only, there is no open sign-up). Later sign-ins use Google or email + password.
- AM, BM or Administrator creates the client, its brand and a contact (see the Administrator and AM sections). BD cannot do this, and BD must pick a brand on the opportunity, so do it before the first lead is converted.
- BD logs the first lead and starts the journey (next section).
- Client contacts cannot be invited in the app. An operator creates each one with
npm run user -w @imanager/server -- add-client --email … --name "…" --account ACC-…(seeDEPLOY.md).
ZZ-QA (client ACC-1100, lead LEAD-4421, campaign CMP-2026-0094 and others) and nine ZZ-QA test accounts. Before real use, an operator should run scripts/qa-test-users.sh disable on the server.Is the BD lead module done? Can I add a lead by hand?
Short answer: yes, adding a lead by hand works. It was performed live on 2 October. Automatic intake does not exist yet.
LEAD-4421 that way, then resolved it, qualified it, and converted it into opportunity OPP-2026-0210, which went on to a won deal and a campaign.
What works
- New lead form: Person, Organisation, how they got in touch (Email, Web form, WhatsApp, Phone, Referral, Instagram, Meeting, Event), What they want, Indicative budget (MYR), Notes.
- The lead gets a number (
LEAD-4421, 4422, …) and starts as Unqualified. - Two clocks start: qualify within 2 hours, first response within 4 hours. The inbox shows a countdown and counts breaches.
- Resolve records links the person and organisation to client records (matched by name, otherwise created).
- Record qualification: Qualified, Nurture or Not qualified, with a note.
- Create opportunity once the lead is resolved and Qualified. A lead converts only once.
- Filter by qualification; the four tiles show inbox size, awaiting qualification, unresolved, SLA breached.
- Every step is written to Governance → Audit & Evidence.
What does not exist
- No automatic intake. Nothing reads an email inbox, a website form, WhatsApp or Instagram. "Channel" is only a label BD chooses. Every lead is typed in.
- Only the BD role can add a lead. The button is hidden for everyone else. An Administrator who forces it gets "Not permitted". BM and Management can view the inbox.
- No edit or delete of a lead after it is created.
- The Conversation panel on a lead is read-only and empty: you cannot write or log messages in it.
- No duplicate-lead check, no import from a spreadsheet.
- RFP / brief intake (the step after qualification) and the outreach pack are not built.
How BD adds a lead, step by step
- Sign in as a user with the BD role. Sidebar → Lead Inbox.
- Press New lead. Fill Person and Organisation (both required) and choose the channel. Type the organisation exactly like the client's name if the client already exists, so Resolve links to it.
- Add What they want, the indicative budget if the client stated one, and any notes. Submit. A toast shows "Lead logged" with the number.
- Open the lead. If a red "Gate 0 has not passed" box shows, press Resolve records.
- Under Qualification decision choose Qualified (or Nurture / Not qualified), write a note, press Record qualification.
- Press Create opportunity and confirm. You now have an opportunity in state Pending RFP / brief. Continue in the BD section below.
The whole journey on one page
Who owns each stage. Stages 1–14 were run end to end on the live site by role-specific test accounts. Dashed boxes are not built.
Each person's work shows up in their My Work page (sidebar → Workspace), and approvals appear in Approval Workbench (sidebar → Decisions).
Administrator
Control who exists and what they may do, never the commercial record itself. You can read everything and create clients, but you cannot run the BD-to-Finance steps.
You can
- Invite staff, change a person's role, suspend or re-activate them (not on your own account).
- Create a client, brand and contact.
- Edit and publish Branding (login-screen and legal copy).
- Read Audit & Evidence, Risk Centre, Portfolio, Finance Centre, the capability matrix.
- Raise a risk; use Creator Discovery and saved Creator Reports.
You cannot
- Qualify a lead, draft or approve a proposal, assign an AM, write a brief, approve a creator, prepare a contract, run delivery, confirm readiness, raise an invoice or prepare a payout.
- Add a lead (BD only). Assign the Account Manager (Management only).
- Invite a client or creator person in the app.
- Move a risk owned by another role.
Invite a person
- Sidebar → Administration → People and roles → Invite.
- Enter name, work email and role (BD, BM, AM, IM, CM, Finance, Management, Administrator).
- The person receives an email with a link and signs up with Google. Use Resend invite in the same list if it did not arrive.
- To change a role later, use the Role dropdown on that person's row (active people only). Suspend stops their sign-in immediately; Reinstate turns it back on. All changes are audited.
Create a client, brand and contact
- Client Accounts → New client. Legal name is required. It starts as a Prospect account and becomes an Active client when its first deal is Won.
- Open the client → tab Brands → Add brand (brand name required; category, promise, prohibited claims, products/SKUs optional).
- Tab Contacts & approvers → Add contact (name and work email required). Tick Approves campaign briefs, Approves content, Finance contact. These flags are copied onto the campaign when the deal is Won.
Business Development
Resolve the lead, qualify it, and carry the opportunity to a submitted proposal. You own the commercial side until Finance confirms the deal.
You will see: Command Centre, My Work, Approval Workbench, Lead Inbox, Opportunities, Client Accounts, Campaigns, Creator Directory.
Stage 2 · Lead to opportunity
Follow the step-by-step in the leads section above.
Stage 3 · Requirements and proposal
- Open Opportunities → your opportunity → Edit requirements. Set the Brand (chosen from the client's brands), Expected value and Expected close date. A deal cannot be won without a brand. If no brand is listed, ask an AM, BM or Administrator to add it.
- Tab Proposal → Draft a proposal. Add Line items (label, category, qty, unit cost, margin %). Set Agency fee % (default 10) and Contingency % (default 5). At least one line is required. Example: 10 × RM 3,000 = RM 30,000 + 10% fee + 5% contingency = RM 34,500. The Margin % column is for reviewers and does not change the total.
- Press Submit for approval (total must be above zero). A task goes to the Business Manager. If you edit a submitted proposal it becomes a new version and the old approval is withdrawn.
Stage 5 · After the BM approves
- On the proposal tab press Send to client. (Sending is a record in iManager; you send the document to the client yourself.)
- When the client replies, press Record client answer: Accepted, Questions — negotiating or Declined — deal lost (a reason is required). Accepted makes the opportunity Deal accepted, not yet Won. The client does not accept inside iManager; you record what they said.
- Finance now confirms commercial readiness, which makes the deal Won and creates the campaign.
You cannot
- Create a client, brand or contact.
- Approve your own proposal (BM only).
- Confirm readiness / mark Won (Finance only).
- Raise a risk.
Watch out
- If the BM chooses Request changes or Reject, the version stays "Submitted". Create a new version to continue.
- The "Clarification gaps" and the readiness checklist on an opportunity are fixed sample text, not real checks.
Business Manager
Decide whether a priced proposal may leave the building, and at what margin.
You will see: Portfolio Health, Approval Workbench, Lead Inbox, Opportunities, Client Accounts, Campaigns, Creator Directory, Risk Centre.
Approve a proposal
- Open Approval Workbench (or the opportunity's Approval tab). The BD's submitted proposal is waiting.
- Review the line items, fee, contingency, margin and total. The approval is bound to that exact version.
- Press Approve to send, or Request changes / Reject with a reason. Approving moves the opportunity to Pending acceptance.
Also
- You can create a client, brand and contact (same as the AM and Administrator).
- You can raise a risk, and move any risk that names the Business Manager as owner (Start mitigating / Accept risk).
- You read portfolio margins and creator economics.
Management
See the whole book, and decide who runs each campaign. Otherwise read-only by design.
You will see: Portfolio Health, Lead Inbox, Opportunities, Campaigns, Finance Centre, Audit & Evidence, Risk Centre, Creator Directory.
Assign the Account Manager (stage 7)
- After Finance makes a deal Won, a campaign
CMP-YYYY-nnnnexists with no owner. Open My Work → Assign Account Manager, or Campaigns → the campaign → Overview → Assign <name>. - Press the assign button. The Overview shows the Account Manager and a toast confirms ownership.
Everything else is for reading: portfolio margins (accurate only once envelope accounting is built), Finance Centre, risks, the audit trail. You can raise a risk.
Account Manager
Author briefs, plan the campaign, and hold the client-facing line. You can start only after Management assigns you to the campaign.
You will see: Campaigns, Approval Workbench, Creator Approval, Content Tracking, Client Accounts, Opportunities, Creator Discovery / Directory / Compare, Risk Centre.
Stage 8 · Brief
- Campaigns → the campaign → tab Briefs → New brief. Brief name is required; add Objective, Call to action and Mandatories (one per line, e.g.
#Ad). Up to 8 waves per campaign. - Submit for internal review → Approve internally (or Return to draft).
- Send to client. The client contact approves, requests changes or rejects in their portal.
- If the client asked for changes press Start revision; the draft returns as the next version.
Stage 9 · Planning and release
| Tab | Button | What it records |
|---|---|---|
| Pipeline | New requirement group | Who to recruit: role, count, backups, platforms, tiers, follower range, engagement, niches, locations, rate range, brand-safety and client-approval flags |
| Financials | Add envelope | Approved budget amount per cost category |
| Rights | Set up rights plan | Licences, approved / prohibited claims, disclosure, exclusivity |
| Measurement | Set up measurement plan | KPIs, targets, sources |
| Pipeline | Release <group> | Gate 3: only when that group's brief is Client approved. The campaign moves to Recruiting |
Later in the journey
- Approve a creator (second step, after the IM): candidate drawer → Approve as AM. A client task opens automatically.
- Contracts with the IM (prepare, send, record signed).
- Scripts: after the CM approves, you Approve and send to client.
- Record results (reach, engagements, clicks, conversions, revenue) per day on the Measurement tab.
Influencer Manager
Bring candidates who can actually deliver, at a rate that fits the envelope.
You will see: Campaigns, Creator Discovery, Creator Directory, Compare Creators, Creator Reports, Creator Approval, Content Tracking, Client Accounts.
Stage 10 · Find and approve creators
- Find a creator. Creator Directory → Add creator, or Creator Discovery → Live search · influencers.club → Add as candidate. Every live search or enrich spends real influencers.club credits. Blocked creators are refused.
- Open the campaign → Pipeline → open the candidate. Stage starts at Sourced.
- Record outreach → Record negotiation → Agree terms (a rate above 0 is required; a warning shows if outside the group's range).
- Only then Approve as IM. Approving before terms are agreed is refused ("Terms not agreed").
- The AM approves next, then the client approves in their portal (the client sees name, categories, location and languages, never the rate).
Stage 11 · Contract (with the AM)
- In the candidate drawer: Prepare contract (needs everyone's approval and an agreed rate). Enter deliverables (one per line) and payment terms in days.
- Send for signature, then Record signed. The candidate becomes Contracted. Cancel contract works only before signing.
Campaign Manager
Get approved work published on time, with disclosure intact. Because creators have no portal yet, you record what they send.
You will see: Campaigns, Content Tracking, Creator Discovery / Directory, Risk Centre. Contract value and payment terms show as 0 for your role.
Stage 12 · Delivery, in order (campaign tabs)
- Logistics → New shipment (creator must have a signed contract) → Confirm address → Release (choose courier, enter an AWB of six or more characters).
- Scripts → Receive script (log what the creator sent) → Approve and send to Account Manager → the AM, then the client, approve. If changes are asked, receive the script again as the next version.
- Packages → Receive content (needs a client-approved script; title, platform, format, duration, due date, priority) → Approve and send to client → the client approves.
- Schedule → pick the approved package, day and time (Malaysia time).
- Publishing (Gate 6) → Verify each of the six conditions with evidence text → Authorize publishing.
- Record published with the pasted link. This also lets Finance release the creator's payment.
- Measurement → Record results. One entry per day; recording a day again replaces it. Results are typed by hand.
Finance
Nothing is Won, and nothing is paid, until Finance says so.
You will see: Finance Centre, Receivables, Payables, Payout Workbench, Portfolio, Opportunities, Campaigns, Audit & Evidence, Risk Centre.
Stage 6 · Confirm commercial readiness (Deal Won)
- Open the opportunity once the client's Accepted answer is recorded and a brand is set → Confirm commercial readiness.
- In one act the system marks the opportunity Won, creates the campaign
CMP-YYYY-nnnn, fixes the commercial baseline (the billing ceiling), copies the client's approvers from the contact flags, creates the six Gate 6 conditions, and turns the client into an Active client. Then tell Management to assign the AM.
Stage 13 · Pay a creator
- Payables → New payable against an executed contract (never above its value). Payables are not created automatically.
- Verify the creator's payment profile. The payable stays on hold until the CM has recorded the content as published. After that it becomes Ready to prepare by itself. The Release button cannot bypass this.
- Payout Workbench → tick the payables → Prepare batch (one currency per batch).
- A different Finance person presses Approve batch. This produces the payment file (for example
KOLHUB-PAYRUN-0001.csv). No money has moved yet. - When the bank statement shows the payment, press Confirm settlement. The payable becomes Paid.
Stage 14 · Invoice the client (Receivables)
- New invoice. It must stay inside the commercial ceiling; an invoice over it is refused with the amount still billable. → Send.
- When the client says they paid, record Client says paid; once the money is in the bank press Confirm receipt. "Declared paid" and "receipt confirmed" are different facts.
A daily job (npm run sweep) moves invoices to Overdue and clears "payment term not due yet" holds on payables. It must be scheduled on the server.
Client contact (portal)
A client signs in and lands on Approvals. That is the whole portal today.
- Account. An operator creates the sign-in with the
add-clientcommand (not in the app). The client's website address must be listed as a trusted origin. - Sign in. You land on
/client/approvalsand see your company name. If nothing needs you, it says "No approvals need your attention right now". - Briefs: Approve, Request changes, or Reject (a note is required unless you approve).
- Creators: Review creator → Approve or Reject. You see name, categories, location and languages, never the rate or cost.
- Scripts and content: Review script / Review content → Approve, Request changes or Reject.
Isolation (verified live)
Every internal page redirects back to Approvals, and direct data requests return nothing. A client sees only their own account.
Not available to clients
- Accepting a proposal (the BD records your answer).
- Campaign status, results, invoices, reports.
- Signing contracts or inviting colleagues.
Creators have no sign-in or portal yet. Staff record their scripts and content for them.
When the system says no
These messages are the system working as designed. Find the line, then do the named thing.
| You see | Meaning | What to do |
|---|---|---|
| Not permitted — You do not have authority to do this | Your real role does not own this step. "View as" does not count. | Ask the role that owns it (see the sections above). |
| Gate 0 has not passed | The lead's person or organisation is not resolved. | BD: press Resolve records. |
| Gate 2 is shut | Deal not accepted, or no brand on the opportunity. | BD: record Accepted and set the brand. |
| Already won | A campaign already exists for this opportunity. | Open the campaign. |
| Phase 18 is unresolved (on a brief) | No Account Manager is assigned to the campaign. | Management assigns the AM. |
| Gate 3 is shut | The group's brief is not client-approved. | Finish the brief approval, then Release. |
| Terms not agreed | IM approval attempted before the rate was agreed. | IM: Agree terms first. |
| Not yet approved | Contract requested before everyone approved the creator. | Finish the approval chain. |
| Segregation of duties | The person who prepared a payout batch tried to approve it. | A different Finance person approves. |
| Over the commercial ceiling | The invoice exceeds what is still billable. | Invoice no more than the amount shown. |
| Not connected to the database yet | The action has no live backend. | Not available. Report it. |
Status words
- Lead: Unqualified → Qualified / Nurture / Not qualified
- Opportunity: Pending RFP/brief → Pending proposal → Pending BM approval → Pending acceptance → Deal accepted → Won (or Negotiating / Lost)
- Proposal: Draft → Submitted → Approved to send → Sent → Accepted
- Brief: Draft → Internal review → AM approved → Sent to client → Client approved
- Creator candidate: Sourced → Outreach sent → Negotiating → Terms agreed → IM approved → AM approved → Client approved → Contracted
- Contract: Preparing → Sent for signature → Executed
- Script: Submitted → AM review → Sent to client → Client approved
- Content package: Submitted → Client review → Approved → Published
- Invoice: Posted → Sent → Client declared paid → Paid (Overdue by the daily job)
- Payable: Pending verification → To release / Released → Paid
- Payout batch: Awaiting approval → Approved → Settled
Not built yet
Know these before you promise the team a smooth first campaign.
| Priority | Missing | Effect today |
|---|---|---|
| 1 | Campaign closeout | The Closeout tab is read-only. A campaign never reaches "Closed". Settle payouts and confirm receipts, and record the close outside iManager. |
| 2 | Envelope accounting and campaign status | After a payout, Paid stays RM 0, margin reads 100%, the campaign stays "Phase 18". |
| 3 | AM → CM handover and team assignment | Only the AM is recorded on a campaign. The CM can act once a creator is contracted. |
| 4 | Creator portal | Creators cannot sign in. Staff record scripts and content for them. |
| 5 | Automatic lead intake; client provisioning in the app; client views of status, results, invoices | Leads are typed by BD. Client logins come from an operator command. |
| 6 | Fixed sample text in places | Opportunity "clarification gaps", the readiness checklist and the Closeout checklist are not real data. |
| 7 | Gate 6 evidence from real records; platform data sync; shipment delivery states; accounting sync; credit notes | Typed by hand and trusted. |
Full list with owner and fix status: docs/ROLE_CAPABILITY_AND_GAP_REPORT_2026-10-02.md. The visual test record: docs/IMANAGER_LIVE_TEST_FULL_REPORT_2026-10-02.html.