Good morning, Kelsey 👋
Here's a quick look at what needs your attention today.
My To-Dos
Needs Your Attention
Missing Last Month's Data
Upcoming Bookings
🎯 CEO Scoreboard
👥 Client Portal Engagement
📊 Your Analytics Last 28 days
Your Clients
Loading...
Update Monthly Data
Add New Client
Fill in the form and click Create — they'll receive a login email automatically.
Documents
Upload a PDF report for a client — it'll appear in their Reports tab automatically.
Uploaded Reports
Loading...
Blog Posts
New Post
All Posts
Loading...
Social Preview Images
Blog posts get a preview image automatically every time you save them. These are the other pages people share on social — generate (or re-generate) each one's branded preview image below. You only need to re-run one if you change that page's headline.
Social Posts
Draft and schedule posts for Facebook & Instagram. Auto-publishing isn't connected yet — for now, scheduled posts show up here as reminders; mark them "Posted" once you've shared them manually.
New Post
Document Requests
New Request
All Requests
Loading...
Messages
Conversations
Loading...
QuickBooks Connection
Your Accountant Connection
Checking connection status...
Invoice Numbering
The portal assigns its own invoice numbers (e.g. 1022-MBA). If one is ever created directly in QuickBooks instead of through the portal, the two counters can drift and collide. Run this to scan QBO for the highest number actually in use and fast-forward the portal's counter past it.
Client QBO Customer IDs
Link each client to their QBO customer record so the billing tab can pull their invoices. Click Edit on a client, then use the Search QBO button to find and select the correct customer by name — the API ID will be filled in automatically.
Loading...
Receipt Review
Expense Categories
Loading...
Budget
Set annual budget targets per account. Clients can view by month, quarter, or full year in their portal.
Reimbursement Requests
Review and process employee reimbursement requests across all clients.
Billing
Loading billing data...
Standard Operating Procedures
Click any section to expand the step-by-step process.
👤 1. Adding a New Client
- 1Go to the Add Client tab in the sidebar.
- 2Fill in the Business Name, Contact Name, Email, and Tier. The YTD Goal is optional (Tier 3 only).
- 3Click Add Client (No Invite Yet) to create the record without sending an email.
- 4Back in All Clients, click Edit on the new client to open their profile.
- 5Check Client is onboarding to hide the full portal until you're ready to reveal it.
- 6Use Search QBO to find and link the correct QBO customer record so invoices can be generated.
- 7Click Invite to Portal on the client row to send their login invitation email.
- 8Once onboarding is complete, uncheck the onboarding checkbox to unlock the full portal.
📊 2. Monthly Data Entry
- 1Go to the Monthly Data tab.
- 2Select the client and the month/year you're entering data for.
- 3If the client's QBO or Xero books are connected, click Pull from QBO or Pull from Xero to auto-fill revenue and expense figures.
- 4Review all pulled numbers — correct any mismatched categories if needed.
- 5Enter Accounts Receivable manually (QBO doesn't always surface this cleanly via API).
- 6Add any job costing rows if the client has job costing enabled.
- 7Click Save. The AI narrative will generate automatically within a few seconds.
- 8Review the generated narrative — you can edit it directly before the client sees it.
🧾 3. Receipt Review & Approval
- 1Go to the Receipts tab. A red badge shows how many are pending review.
- 2Filter by client or status as needed.
- 3Open each pending receipt — the AI has suggested a vendor name, amount, date, and expense category.
- 4Choose Post As — Expense if it's already been paid from a bank/card, or Bill if it's still owed to the vendor. Bill mode skips the bank account field since a bill isn't tied to a payment account yet.
- 5If posting as an Expense, select the correct Bank Account from the QBO chart of accounts (where the money came out of).
- 6Confirm or change the Expense Category (also pulled from QBO chart of accounts).
- 7Click Approve. This posts the expense or bill to QBO with the receipt image attached.
- 8If a receipt is a duplicate or junk, click Reject to dismiss it without posting.
📁 4. Documents (Reports, Tax Returns & Requests)
- 1Go to the Documents tab and pick Report, Tax Return, or Request from Client at the top.
- 2Report: select the client, month, year, and type (Basic or Detailed) — the report name auto-fills. Upload the PDF and click Upload Report; it appears immediately in the client's Documents tab.
- 3Tax Return: select the client and tax year, then upload the PDF. The client can pull it (and prior years) anytime instead of you emailing a password-protected file.
- 4Request from Client: select the client, choose Document or Task, and add a short description (e.g. "January bank statement — Chase checking ending 4521"). Queue up several before sending.
- 5Click Send All Requests — the client sees each item in their Documents tab and can upload a file (or mark a task done).
- 6Track everything in the list under each panel, filterable by client. A badge on the Documents tab shows how many client responses you haven't seen yet.
💳 5. Billing Management
- 1Go to the Billing tab to see all clients with their billing settings in one place.
- 2To set a custom price for a client, click the price field in their row and enter a dollar amount. This overrides their proposal price.
- 3Toggle Auto-Invoice on to send a branded invoice on the 1st of each month, with a reminder on the 10th if unpaid.
- 4If a client has set up autopay, their row shows a green Autopay On badge and their payment method.
- 5Click Resend Payment Link if a client needs to re-enter their card.
- 6Click Cancel Autopay to turn off automatic charging (their card stays on file).
- 7The MRR, Autopay, and Auto-Invoice counts at the top update in real time.
🔗 6. QBO / Xero Connection
- 1Go to the QuickBooks tab.
- 2Your Accountant Connection is Mahala's own QBO firm account — used for billing, creating invoices, and searching the QBO customer list. Connect this first.
- 3To pull a client's P&L data, connect their individual QBO books: open their Edit modal and click Connect Client's QBO. This is a separate OAuth connection per client.
- 4For Xero clients: same process — click Connect Client's Xero in their Edit modal.
- 5Each client's books connection only lets you read their P&L — it does not post anything to their books (except receipt approvals, which post to their QBO).
- 6QBO tokens expire — if pulling data fails, re-connect the relevant account.
✅ 7. Month End Checklist
- 1Go to the Month End tab at the start of each close cycle.
- 2Select the month being closed.
- 3Work through each client row — click to expand their checklist.
- 4Check off each task as you complete it: pull financials, enter monthly data, approve receipts, upload report, send invoice.
- 5The row turns green when all tasks are checked for that client.
- 6Add custom one-off tasks using the text field at the bottom of any client's checklist.
- 7Click Mark Month Complete once everything's done — the checklist stays open so you can immediately click Notify Client to email them that their books are ready, without leaving the screen.
- 8Progress is saved automatically — you can close the tab and come back.
📐 8. Setting Up a Client Budget
- 1Go to the Budget tab in the sidebar.
- 2Select the client and the budget year from the dropdowns.
- 3Make sure Enable Budget is turned on for the client — check this in their Edit modal if the Budget tab isn't showing in their portal.
- 4Enter monthly budget amounts for each revenue and expense line item. You can type directly into any cell.
- 5Add an overall Budget Note at the bottom (optional) — this appears in the client's portal as "Notes from Kelsey."
- 6You can also add a per-line note to any individual row to explain assumptions or flag items.
- 7Click Save Budget. The client's portal immediately shows actuals vs. budget with progress bars.
- 8Actuals are pulled live from QBO each time the client (or you in preview) loads their Budget tab. No manual entry needed for actuals.
💸 9. Reimbursement Requests
- 1Make sure Enable Reimbursements is turned on in the client's Edit modal — this shows the Reimbursements tab in their portal.
- 2When a client submits a reimbursement, you'll receive a push notification and can find it in the Reimbursements tab in the sidebar.
- 3Review the request — it shows the employee name, expense date, amount, description, and any attached receipt.
- 4Click the receipt thumbnail to open and verify the attached image or PDF.
- 5Select Approve to mark the reimbursement as approved, or Reject to decline it. The client sees the updated status in their portal immediately.
- 6Use the Push to QBO button to post the approved reimbursement as an expense in the client's QuickBooks account.
- 7Add an internal note if needed — this is visible only to you, not the client.
🏦 10. Reconciliation
- 1Before a client's first month, open their Edit modal and add their Bank / Credit Card Accounts, or click Pull from QBO to import them automatically. These accounts are what drives their Reconciliation checklist.
- 2Go to the Reconciliation tab and select the Month and Year — optionally narrow the list further by Client or Account Type.
- 3Each client card lists their accounts, one row per account, with a Bank Statement and Reconciliation Report upload slot for each.
- 4Click Upload PDF under each slot to attach the file. The client's card turns green (✓ Complete) once every account has both files for that month.
- 5Click Replace on an already-uploaded file if you need to swap it out.
- 6The progress counter at the top ("X of Y files uploaded") tracks how far along the whole month is across every client.
🔐 11. Client Type Setup
This isn't its own tab — it's three checkboxes in a client's Edit modal that control what they see in their portal. Getting the wrong one checked means a client sees too much, or not enough.
- 1Regular bookkeeping client: leave all three unchecked — they get the full portal (Home, Financials, Documents, etc.) based on their tier.
- 2New client still being set up: check Client is onboarding — hides everything except Proposals & Contracts until you uncheck it once onboarding is complete.
- 3Tax prep only, no bookkeeping relationship: check Tax prep client only — their portal shows nothing but the Tax Returns tab.
- 4Registered agent only, no bookkeeping at all: check Registered agent client only — their portal shows nothing but a Documents tab for scanned mail you upload on their behalf.
📝 12. Creating & Sending a Proposal
- 1Go to the Proposals tab and click + New Proposal.
- 2Search for either a CRM Lead (a new prospect — becomes a client automatically when they sign) or an Existing Client (updates their billing rate instead). Fill in one, not both.
- 3Set how many days the proposal stays valid.
- 4Edit the price and description for each of the three tiers and pick which one you're recommending — the client can still switch between all three when viewing it.
- 5Add any add-ons from the presets, or add a custom line item, and set which tiers each one is offered on. One-time items bill once on the first invoice — never added to the recurring monthly rate.
- 6Click 👁 Preview to see exactly what the client will see, Save as Draft to finish it later, or Save & Send to Client to email it now.
- 7Once the client accepts and signs, a Create Invoice button appears on their proposal row to generate their first invoice.
⏱ 13. Time Tracking
- 1Go to the Time Tracking tab.
- 2To track live: select a client from the timer dropdown, click ▶ Start, then ⏸ Pause or ⏹ Stop & Log when you're done.
- 3To log time after the fact: fill in the client, date, hours, rate, and an optional description under Manual Entry, then click Log Entry.
- 4Every entry appears in the table below with its dollar amount calculated automatically (hours × rate).
- 5Filter the table by client or by billed/unbilled status using the dropdowns above it.
- 6Once you've invoiced a client for their logged hours, click Mark Billed on each entry so it stops counting toward "unbilled."
- 7Click 🖨 Print Report for a printable summary of the currently-filtered entries.
📇 14. CRM / Lead Pipeline
- 1Go to the CRM tab to see every prospect, from first contact through to Won or Lost.
- 2Click + Add Lead to add one manually, or ⬆ Import CSV to bring in a batch at once.
- 3Leads move through statuses as you work them: New → Contacted → Invite Sent → Invite Accepted → Proposal Sent → Won (or Lost at any point). Filter the list by any of these.
- 4Tax Prep Client is its own status, separate from the pipeline above, for prospects who only want tax prep rather than ongoing bookkeeping.
- 5When a lead is ready for pricing, go to Proposals → + New Proposal and search for them under "CRM Lead" — sending and accepting a proposal is what actually converts them into a real client.
- 6The stat cards at the top (Total, New, In Progress, Won) update live as leads move through the pipeline.
✍️ 15. Publishing a Blog Post
- 1Go to the Blog Posts tab and fill in a Title and a URL-friendly Slug (letters, numbers, and hyphens only).
- 2Write an Excerpt — this is what shows on the public blog listing page.
- 3Write the post in the Content box. Select text and click Heading, Bold, or Bullet/Numbered List to format it, or leave nothing selected to drop in a starting template.
- 4Click ✨ Format as HTML once you're done writing to convert it into the styled format the live post uses.
- 5Set the Publish Date and Status: Draft (not visible), Scheduled (goes live automatically on that date), or Published (live immediately).
- 6Click Save Post — this also auto-generates a branded social preview image for the post from its title, so there's nothing extra to do before sharing it.
- 7Use 👁 Preview to see exactly how the post will look before it's public.
Time Tracking
Log billable hours per client. Generate printable invoices or reports.
Manual Entry
Or log time directly if you forgot to use the timer.
Time Entries
✉️ Email Campaigns
Every automated email, in one place. Turn any of them off, or narrow who gets it using tags you've set on clients and contacts (Edit Client and the CRM detail panel both have a Tags field).
📣 Send a One-Off Message
Not a recurring campaign — writes and sends once, right now, to whoever matches. Good for "tax prep clients, organizer's ready" type messages.
Recent Sends
Every email that's actually gone out — one-off broadcasts and automated campaigns alike — so you can see what's sending without checking Resend separately.
Loading...
Automated Campaigns
Loading...
Pick a campaign on the left.
⭐ Reviews
Submissions from leave-a-review.html. Nothing shows on your public testimonials page until you approve it.
Pending Approval
Loading...
Live on Your Site
Loading...
🏷️ Pricing Reference
The default tiers and add-on prices every new proposal starts from. Read-only — edit the actual numbers per-proposal in the Proposals tab, or ask me to change the defaults themselves.
Add-Ons
📊 Portal Analytics
What clients are actually opening in their portal — helps you see which features are worth the upkeep and which clients aren't logging in much.
Most-Used Tabs (All Clients)
Loading...
By Client
Loading...
🔑 Staff Access
Give a staff member their own portal login, and pick exactly which parts of the portal they can see.
Loading...
🏦 Reconciliation
Upload bank statements and reconciliation reports for each client.
Loading...
Email Templates
Save reusable email copy. Click to copy to clipboard when you need it.
New Template
Loading...
Tax Deadline Calendar
Federal deadlines pre-loaded. Add custom recurring or one-time deadlines below.
Scheduling
Manage your availability and view upcoming bookings.
Weekly Availability
Google Calendars
Connect Google Calendar, then select which calendars to cross-reference for availability (e.g. personal + business).
Connect / Reconnect Google Calendar👤 Contacts
Everybody — every lead, past inquiry, CPA, referral partner, personal contact, all in one list. Click anyone to edit their info, tags, or birthday in one place. Tag people here to control which automated emails (Email Campaigns tab) reach them. The Pipeline tab shows this same list filtered down to just active sales prospects.
Loading...
🎯 Pipeline
The same contact list, filtered down to people actively in a sales stage. Plain contacts (CPAs, referral partners, personal contacts) live in Contacts and don't show up here.
Loading leads...
Books Health Check — Interest Tracking
Every visit to the free public Books Health Check (mahalaadvisors.com/health-check) lands here, whether or not they finished connecting QuickBooks.
Loading...
Bookkeeping Circle — Subscribers
Everyone currently subscribed to Mahala Bookkeeping Circle.
Loading...
Bookkeeping Circle — Monthly Focus
This is what members see at the top of their portal the moment they log in. Update it once a month to keep the Circle feeling alive instead of static.
Past Months
Loading...
Month End
Loading...
Proposals
Loading...
📧 Gmail
Portal Email Log
| Date | Client | Dir | Subject | To / From |
|---|---|---|---|---|
| Loading... | ||||
All Posts
Loading...