Vinnie — user guide
Also published in the app at
/portal/guide(linked from the portal andadmin console headers as Guide). This file and
server/public/user-guide.mdare kept identical — the server serves the
public/copy so it works in production; this copy lives indocs/so it'seasy to find in the repository.
Vinnie is a WhatsApp assistant for small service businesses. There's no app to install — you talk to it on WhatsApp like you would a colleague, and use a web portal when you want a dashboard, reports, or settings.
1. Getting started
If your business owner has already set you up, you'll have received a WhatsApp welcome message with a summary of what's switched on and a link to your web portal. Two ways to get portal access:
- You were invited by email — reply to the welcome message with your
email address and Vinnie emails you a portal login.
- Self-signup — go to the portal link, choose "First time? Set up portal
access", enter the WhatsApp number you message Vinnie from, then your email. You'll get a verification link by email; open it to set a password. If your owner didn't give you login when they added you, your login then waits for an owner to approve it: they get a WhatsApp message with Approve / Decline buttons (or approve it under Business settings → Team), and Vinnie messages you as soon as they decide. If they did give you login, you're straight in and the owners just get a note that you're now active on the app.
- Your owner gives you login — when adding you (tick **Give web app login
now) or later with Business settings → Team → Give login**. This creates a password the owner shares with you. You then sign in with your WhatsApp number; no email needed.
Lost the link? Just ask Vinnie on WhatsApp:
give me the login link
If your number has login access, Vinnie replies with the link and how to sign in. If it doesn't yet, Vinnie tells you to ask your business owner.
Once you're set up, everything below works straight from WhatsApp — the portal is there when you want to see more than one message at a time.
2. Talking to Vinnie on WhatsApp
Just say what happened, in your own words. A few examples per skill below — you don't need to match them exactly.
Time & activity logging
"worked 3 hours for Peter Parker replacing the geyser"
"Sam worked 2.5 hours at the Davis residence" (a teammate's hours)
"met with Jane Smith for 1 hour about her retirement annuity"
Logs the time, and for client meetings records who you met and what you did. The hours are yours unless you name a teammate (Vinnie won't log hours for someone who isn't on your Team). They go on the client you name. If it's a name you haven't used before, that person is added to your clients. If you're on a job, they go on the job's client. If the hours or the client are missing, Vinnie asks; if more than one client could be meant, it asks which. Hours are valued at your price list's hourly Labour rate when you have one; otherwise just the hours are recorded.
Client portfolio
Mention what you did for the client as part of a consultation log and it's tracked automatically:
"signed him up to Liberty Investment and increased his retirement annuity"
See everything for a client any time in the portal's Clients tab.
Feedback survey & referrals
With the service-rating survey switched on, Vinnie offers to ask the client for feedback whenever a service is done: after you log a client meeting, and when you mark a job done.
Vinnie: "Do you want me to ask Jane to rate the service? (yes/no)"
You: "yes"
Vinnie: "What's Jane's number?" (only if it doesn't have it yet)
Vinnie then messages the client directly with a few tap-to-answer questions and, if your business collects referrals, asks whether they'd refer or recommend you. You get a summary once they've answered.
The questions fit your kind of business:
- Advice & consulting (after a meeting): how happy they are with the
service, whether everything was explained clearly, and whether it covered what they needed.
- Trades & jobs (after a job): how happy they are with the work, whether
you arrived and finished on time, and whether you left everything neat and tidy.
- General services: how happy they are with the service, whether they
were kept informed, and whether it was good value for money.
Vinnie picks the set from your industry. To choose it yourself, go to Business settings → Services → Rating questions.
Travel logbook (SARS)
Record your vehicle's odometer at the start and end of the tax year, and log every business trip as you make it:
"opening odometer 152000"
"drove 47km from office to Smith & Co in Sandton for a portfolio review"
"closing odometer 168450"
Vinnie works out your business vs. private kilometres for the year. If you leave out the exact km, the destination, or the business reason, it'll ask — SARS needs all three on every trip. Private trips (including the drive between home and your regular workplace) aren't logged at all; private distance is worked out as total minus business.
Reminders
"remind me tomorrow at 9am to call the auditor"
"remind me in 2 hours about the Smith quote"
"remind me next Friday at 14:00 to submit the FICA return"
Vinnie understands relative times ("in 3 hours"), days ("tomorrow", "Friday", "next Monday"), and exact dates. It replies with the time it understood so you can double check. Ask "what are my reminders?" to see what's pending, or "cancel my reminder about the Smith quote" to cancel one by name.
Quotes & invoices (PDF)
"generate a quote to Bob for 6 hours of Call-out labour"
"send an invoice to Thandi for 3 x Geyser 150L"
"quote Peter Parker for a TLB for 6 hours and an excavator for 12 hours, plus R6000 delivery and R12000 diesel"
"turn quote 001 into an invoice for Peter Parker"
Vinnie first replies with the details — every item, the client's discount and the total — and a Generate quote (or Generate invoice) button. Nothing is created until you tap it, so check the details first; to change something, just send the corrected request, or tap Cancel.
When you tap Generate, Vinnie numbers the document (QUO-0001 / INV-0001 …), makes the PDF on your own stationery (logo, layout, business details and footer — set up on the Business tab), sends it to you, and sends it to the client by WhatsApp and/or email. Every email to a client is copied to the salesperson who asked for it. If Vinnie doesn't have the client's WhatsApp number or email yet, it asks you after generating and sends it as soon as you reply.
Name as many items as you like in one message, typed or as a voice note. Prices come from your services & products list; an amount you say for an extra ("R6000 for delivery") is used as-is; and a client's standing discount is applied automatically. If an item has no price yet, Vinnie asks once — for several items in one numbered question, answered like "850, 1200" — and remembers the prices.
To invoice work you quoted, say "turn quote 001 into an invoice": you get the invoice details (same items, client and discount as the quote) and a Generate invoice button. Every quote and invoice is kept on the portal's Quotes & invoices tab.
Recording payments. When a client pays, tell Vinnie:
"R800 payment received against invoice 0001"
"Peter Parker paid 500"
If you name the invoice, the payment goes straight onto it. If you only name the client, it goes on their unpaid invoice — or, if they have more than one, Vinnie lists them and asks which (reply "1", "2", … or the invoice number). Every time, it replies with the invoice total, everything received so far and what's still outstanding. A payment on an invoice that's already paid in full, or for a client with no unpaid invoice, isn't recorded — Vinnie tells you why.
Quotes come from your business only when your WhatsApp number is on the Team list (and active). If Vinnie says it doesn't recognise your number, add it under Team in the portal.
Expenses
Record what the business spends, any of three ways:
"spent R450 on diesel at Engen"
"I paid R120 for parking yesterday" (or say it in a voice note)
…or just send a photo (or PDF) of the slip. Vinnie reads the shop, total, VAT and date off it, files it under a category (Fuel, Materials & stock, Meals & entertainment, …) and keeps the slip. Add a caption like "diesel for the TLB" to say what it was for. If it can't read the total, it saves the slip and asks "How much was it?".
Every time, Vinnie replies with what it recorded and a Delete button in case it got something wrong. Anything else can be fixed in the portal.
Jobs
A job is one piece of work for a client. Open one when the work starts:
"new job: geyser replacement for Peter Parker at 12 Main Rd"
"open a job from quote 7" (takes the client and work from the quote)
The job you open becomes your current job. While you're on it, the hours and expenses you send (typed, voice note or slip photo) go on that job, and Vinnie's reply says which job. You don't have to name the client again, because time is logged under the job's client.
"starting the Parker job" / "I'm on job 3": go on a job (or switch to another)
"off the job": you're not on any job (the job stays open)
"job done" / "the Parker job is finished": closes it and shows its totals
"my jobs": the open jobs (▶️ marks yours)
"how's the Parker job going?": hours, expenses, materials and profit so far
Everyone in the business can see and work on every job. If Vinnie can't tell which job you mean, it asks.
Materials. A job opened from a quote starts with the quote's lines as its *planned* materials. As the work goes in, say what you used, and it goes on your current job (or name the job):
"used 3 copper elbows"
"used 20m of 15mm pipe on the Parker job"
"used 2 more bags of cement"
Invoicing a job. When the work's done:
"invoice the Parker job" / "invoice this job"
The invoice bills the materials used. If nothing was marked used, it bills the planned ones, which is the job as quoted. Logged hours are added as a Labour line, unless the bill already charges for time. Prices come from the materials, then your Price list; if one is missing Vinnie asks once and remembers it. You then approve the invoice as usual. A job is invoiced once; bill anything extra as an ordinary invoice.
Profit. A job's profit is what was invoiced (or quoted, until it's invoiced), less the expenses on it and its labour cost. Labour cost is each person's hours times their cost per hour, which an owner sets under Business settings → Team. All amounts are before VAT. Only owners see labour cost and profit.
Bookings and booking rules
Book on WhatsApp with the service and the client:
"book Jane for gel nails on Friday at 10"
The booking takes the service's length from your price list and is titled "Gel nails - Jane". Give each service a length when you add it ("price: Gel nails R350, 60 min", or Takes (min) in Business settings → Price list).
Owners set the booking rules under Business settings → Bookings:
- the hours you take bookings each day (or closed)
- your usual session length
- the gap you keep between sessions
- the most sessions a person takes in a day
- blocked days (leave, public holidays), for everyone or one person
Reminders to clients. Before every booking with a client, Vinnie messages them on WhatsApp: "a reminder of your Gel nails with Bella at Glow Beauty on Wednesday 28 October at 10:00", with Confirm and Reschedule buttons. With no WhatsApp number, it goes by email.
- If they confirm, you get a message saying so.
- If they reschedule, Vinnie asks what time suits them and passes
their answer on to you.
The reminder goes 24 hours before by default. Owners change that under Business settings → Bookings → Remind clients, where 0 switches reminders off.
When you book someone with no number or email on file, Vinnie asks for one, or you can reply "no reminder". In the calendar, a booking shows when its reminder goes and whether the client confirmed. You can add their number there, or press Don't send. Moving a booking sends a fresh reminder for the new time. If a reminder can't be delivered, you're told so you can contact the client yourself.
Switch on "Check every booking against these rules" and every booking or move, on WhatsApp or in the calendar, is checked. If it breaks a rule, Vinnie tells you which and offers the next allowed time. You can still book it anyway.
Meetings, tasks and your clients
Your calendar and to-do list are always on:
"schedule a meeting with Jane Smith tomorrow from 10 to 11"
"add task: call Peter Parker about his annuity, high priority, due Friday"
When a meeting or task is for one of your clients, Vinnie links it to them, so it shows on that client's page in the app. It decides like this:
- One client clearly matches (a full name, or a first or last name only
one client has): it's linked, and the reply says so.
- More than one could match ("call Peter" with two Peters): Vinnie asks
which, with a numbered list. Reply with the number or the name, or "none" if it isn't for a client. The meeting or task is saved either way.
- No client matches: it's saved without a client. Nothing is guessed, and
meetings with a teammate are never linked to a client.
Things a record can only link to through a service you have switched off (a job, say) are never asked about.
Several things in one message
You can ask for more than one thing at once, in a typed message or a voice note:
"Drove from Bononi to Sandton, 30km, to meet Elecia about her life cover and
investments for 90 min - please remind me tomorrow at 10 to follow up about
tax on her investment payout"
Vinnie first lists what it understood ("Got it - 3 things: …"), then does each one in order and replies to each one separately, marked (1/3), (2/3), (3/3). Here that's the trip in your logbook, the 90-minute meeting with Elecia, and the reminder. A trip "to meet" a client for a stated time counts as both the trip and the meeting.
If more than one of them needs an answer from you (which client, send a survey?), Vinnie asks one question at a time and asks the next one after you've answered.
"What can I do?" — checking your active services
"what services do I have active?"
"what can you do for me?"
Vinnie answers only with what's actually switched on for your business — never a guess, and never something you can't use. Each one comes with a short example so you know how to trigger it.
Quick summaries
"how many clients did I see this week?"
"how many kilometres have I travelled this month?"
"how many billable hours do I have for the month?"
Works for today, this week, or this month (say the period, or leave it out for "this month").
Asking for something that isn't turned on
If you ask for something Vinnie recognises but your business hasn't switched on, it says so — and if you're the owner, it offers to switch it on right there:
Vinnie: "Your business doesn't have the travel logbook enabled. Want me to
switch it on now? Reply 'yes' to activate SARS travel logbook."
Reply "yes" and it's on immediately — just resend your original message. Team members (not owners) are told to ask their business owner instead.
Switching a service off hides it everywhere: its WhatsApp commands, its screens in the app, and its parts of each client's page. A financial adviser with quotes, expenses and jobs off, for example, sees a client's meetings, tasks, work done and feedback, with no invoices or jobs. Nothing is deleted: switch it back on and everything recorded before is still there.
3. The web app (/app)
Sign in with your WhatsApp number or your email, plus your password — switch between the two at the top of the sign-in form. Forgot it? Use Forgot password? on the sign-in page (needs an email on your login), or ask your business owner for a new one. On a computer the menu is down the left; on a phone it's a tab bar along the bottom (Home, Invoices, Expenses, Messages, More). Pick Light, Dark or Auto at the bottom of the menu. Owners see the whole business's records; team members see their own. Business settings are visible to the whole team, but only owners can change them.
- Home — what needs your attention (unpaid invoices and the oldest one,
slips that still need an amount, drafts not generated yet, and for owners the billing balance), this month's invoiced vs. received, expenses by category, and what Vinnie recorded most recently.
- Quotes & invoices *(if switched on)* — every quote and invoice with its
total, paid and outstanding. Filter by type and dates, Export CSV. Open one to see its items, Open PDF, Resend to client, turn a quote into an invoice (Turn into invoice), and see every payment. Owners can record a payment or remove one, and download the invoices & payments report.
- Expenses *(if switched on)* — every expense with the slip as proof.
Filter by dates and category, open one to edit it or see the slip, Add expense by hand (attach a slip and press Read slip to fill the form in), and Export CSV for your accountant.
- Jobs *(if switched on)* — every job with its status, hours,
expenses, what it was quoted or invoiced at and (for owners) its profit. Open one to see its materials (planned against used, with prices you can edit), each time entry and expense, and its invoice. Press Invoice this job to create the invoice, or I'm on this job so what you send goes on it. Change its details or status there too. New job opens one by hand, optionally from a quote. In an expense's form, Job moves the expense onto another job (or off one).
- My messages — your WhatsApp conversation with Vinnie, with how it
handled each message.
- Work done — every meeting or site visit you've logged.
- Reminders *(if switched on)* — set, see and cancel reminders.
- Logbook *(if switched on)* — odometer readings, trips (add or delete),
the business/private split and a SARS CSV export.
- Calendar & tasks — your bookings by month, week, day or as a
list. Click a free time to book (pick a service and its length is filled in, and a client), click a booking to send an invite, move or cancel it, or drag it to a new time. Closed hours are shaded and blocked days show in orange. Add to my phone gives you a private link that shows your bookings in your iPhone, Google or Outlook calendar (kept up to date, read-only). Make a new link stops the old one working. Your to-do list is underneath.
- Clients — everyone you work for. Open a client to see, in one place,
their meetings and tasks, plus whatever your services add: jobs, quotes, invoices, payments, work done, linked expenses and feedback. Only the parts for services you have switched on are shown. Owners can edit contact details (and, with quotes & invoices on, the standing discount) and add clients.
- Feedback — referrals (select one to see the survey it came from) and
every survey's answers.
- Business settings *(owners only)* — Profile, Services, Quote & invoice
PDFs, Price list, Team (change roles, set each person's cost per hour, deactivate or reactivate people) and Billing — see the next sections.
4. Billing
Vinnie charges a small monthly fee for each service your business has switched on, plus a per-message usage fee. Everything runs off a prepaid balance:
- Top up before you need it. Add credit any time from the Billing
tab — enter an amount and confirm. There's no live card payment wired up yet, so a top-up is recorded immediately as a manual credit (ask your operator if you need a different arrangement).
- Set a monthly limit if you want to cap what you could ever be charged
in a calendar month, e.g. R50. Once that's reached, Vinnie simply stops billing further usage for the rest of the month — it does not stop the service.
- Low-balance warning. When your balance drops to or below the warning
level (R10 by default), the business owner gets a WhatsApp notice to top up. You won't be messaged again for the same drop until you've topped up.
- The Billing tab shows exactly what each active service costs per
month, your usage so far this period, and your recent transactions.
5. For business owners
Business settings in the app is where you configure the business:
- Profile — name, industry, what you call your people (e.g. "adviser"),
dialling code, time zone, currency, and a description. Time zone and currency default from your dialling code (e.g. +27 → Africa/Johannesburg and ZAR) — use "Use dialling-code default" to reset them, or pick your own.
- AI configuration — paste a description of your business and Vinnie
suggests which services to switch on; review and save.
- Services — toggle any service on or off directly.
- Quote & invoice PDFs — upload one of your existing invoices as a PDF
and Vinnie copies its layout (positions, colours, fonts, headings, VAT and banking blocks) for both your quotes and your invoices — it takes about a minute. It also fills in your business details, footer and VAT rate for you to check. Use Preview quote / Preview invoice, then Save stationery. Upload your logo (PNG/JPG) too — it goes where your invoice has its logo. Before a new logo or sample invoice is used, Vinnie shows you what it is and what it replaces, and asks you to confirm. Prefer something simpler? Pick the built-in Classic or Modern layout instead. VAT % (0 if you don't charge VAT) is added to every quote and invoice total.
- Services, products & equipment (Price list) — your standard prices
(e.g. "Call-out labour, R450 per hour" or "Geyser 150L, R6,500 each"). Quotes use these without asking. Upload price list reads a whole list at once: a CSV (from Excel or Google Sheets: Save as / Download → CSV), a PDF, or a photo of your price board or menu. You see every line marked new, changed (with the old price) or the same, and untick anything you don't want. Lines on your list that aren't in the file are kept unless you tick them for removal. Nothing changes until you press Update price list. PDFs and photos are read by AI, so check the prices first.
- Clients — each client's WhatsApp number, email and discount %,
applied to every quote and invoice for that client.
- Members — see everyone on your team, add a new one (they get a
one-time password if you give them an email), and reset passwords.
Updating your business on WhatsApp
Say "I want to update my business profile" (or "update my settings", "what can I change?"). Vinnie replies with what's on file, how to change each part, and your login link for anything that's easier in the app (logo, quote & invoice layout, team, billing). Then just send the changes, one per message, and say "done" when you're finished:
- Profile: "industry: Electrical contracting", "description: …",
"title: technician", "vat: 15", "change our name to Spark Electrical"
- Services: "switch on travel logbook", "turn off referrals and the
service rating". Only the services you name change.
- Price list: "show my price list", "price: Call-out fee R450",
"price: TLB hire R850 per hour" (adds it, or changes the price), "remove price: TLB hire"
- Rating questions: "rating questions: trades", "general", "advice" or
"automatic"
- On your quotes & invoices: "details: 12 Main Rd, Rivonia · 011 555
1234", "footer: FNB 62812345678 · payment within 30 days"
Sending your logo, price list or a sample invoice on WhatsApp: send the picture or PDF with a caption saying what it is: "logo", "price list" or "sample invoice". A PDF named like "Price List 2026.pdf" needs no caption. A picture with no caption is read as an expense slip. If it isn't one, Vinnie asks whether it's your logo, price list or a sample invoice. Nothing changes until you reply yes:
- A logo shows whether it replaces your current one.
- A price list shows what's new and what changes (old price → new price)
before updating it. Nothing on your list is removed.
- A sample invoice has its layout copied for your quotes and invoices.
These work any time, not only after asking. Only owners can change them; a team member who asks is told who to ask and gets their own login link. Anyone can say "show my price list".
6. Getting help
- Something not working the way you expect? Just describe the problem in
plain language on WhatsApp or ask your operator.
- This guide is also available any time at
/portal/guide.