01
Getting started
Creating your account
- Go to mybarnabasapp.com and choose Start free trial.
-
Enter your business name, a subdomain (this becomes your private address, e.g.
acme.mybarnabasapp.com), your name, and your email, then pick a plan — $47.50/month or $456/year (annual is the default and saves 20%). - Continue to checkout. A card is required to start, but you are not charged for 30 days — cancel any time before the trial ends and you pay nothing. Have a coupon? Enter it in the “Add promotion code” field on the checkout page.
- After checkout you land on a welcome page and set up your first passkey (Face ID / Touch ID / Windows Hello / a hardware key). That’s it — your account is active and you’re in.
Payment is handled by Stripe — Barnabas never sees your full card number. Your subscription is entirely separate from any Stripe account you later connect to collect client payments (section 4).
Signing in
Your sign-in page is your-subdomain.mybarnabasapp.com.
- Passkey is the everyday login — one tap with Face ID / Touch ID / Windows Hello / a hardware key, no password. You set one up on the welcome page right after checkout.
- No passkey on this device (borrowed computer, new phone, lost device): choose “Email me a code” for a 6-digit one-time code (valid 10 minutes, a few tries). Once you’re in, add a passkey for that device from the account menu (top right) → Add a passkey for this device.
-
Forgot your subdomain: from
mybarnabasapp.com, choose Sign in, enter your email, and it sends you to the right place.
Account security
- Signed-in devices — Options → Signed-in devices lists every browser and device currently signed in, with its last-active time. Sign out any one, or Sign out all other devices if something looks wrong. A session renews while you use it and expires after about a week idle, or 30 days from sign-in.
- Security emails — you are emailed when there is a sign-in from a new device, or a passkey is added to your account. If it wasn’t you, sign out all other devices and set up a fresh passkey.
- “Confirm it’s you” — a few high-risk actions (connecting or disconnecting your Stripe payout account, adding a passkey) ask for a quick re-check with your passkey or an emailed code, even though you’re already signed in. Everyday work — estimates, invoices, refunds, scheduling — never does.
Installing it as an app
In Chrome (desktop or mobile) you can Install Barnabas so it opens in its own window like a native app. It’s the same site — nothing to configure.
02
Key concepts
- Leads vs. Customers
- A Lead is a prospective job; a Customer is someone you’ve worked with (or whose estimate was approved). Barnabas moves a Lead to Customer automatically the moment their estimate is approved. Both live in the same kind of record — the only difference is the label and which tab they show under.
- Estimate → Invoice
- You quote work as an Estimate. When the client approves it (in the portal, or when you record a deposit), Barnabas creates the Invoice automatically. You can also create a standalone Invoice for work that never had an estimate.
- Staged payments
- An invoice isn’t pay-all-at-once. You open a payment request for whatever amount is due now (a deposit, a progress draw, the final balance), the client pays it, then you open the next one. The invoice tracks amount paid / balance due throughout.
- The client portal
- Every estimate and invoice has a private link. The client opens it to review line items, approve, pick optional add-ons, and pay — no login, the unguessable link is the access control. You never build a separate customer account.
- Bill-to (subcontracted work)
- A customer record can name a different customer as the one who actually gets billed — useful when you do work for a property but invoice the general contractor. The job site stays the original customer; estimates, invoices, and notifications route to the bill-to.
- Services catalog
- A reusable list of the work you offer, with a name, description, price, and optional checklist template. Add catalog items to an estimate or invoice with one click instead of retyping them.
03
First-time setup checklist
Do these once, in Options, before you send your first estimate. Fifteen minutes.
| Step | Where | Why it matters |
|---|---|---|
| Business Info | Options → Business Info | Legal name, DBA, address, and contact email appear on every estimate/invoice and become the Reply-To on emails you send. Upload your logo here too. |
| Terms & Conditions | Options → Terms & Conditions | The contract text a client agrees to when they approve an estimate. A copy is frozen onto each estimate, so later edits don’t rewrite history. |
| Numbering | Options → Estimate / Invoice Numbering | Set the starting number for each series (e.g. continue from your old system). The floor only moves forward, never below a used number. |
| Send Messages | Options → Send Messages |
Default subject/body for the estimate email, invoice email, and both texts. Use {name} {total}
{number} {business} — they fill in automatically. The portal link is always added on its own. You can
still edit any of it per send.
|
| Payments | Options → Payments & Accounting | Connect Stripe so clients can pay deposits and invoices online. See section 4. |
| Messaging | Options → Messaging (SMS) | Connect Quo to text estimates, invoices, reminders, and hold two-way conversations. |
| Accounting | Options → Payments & Accounting → Wave | Optional. Mirrors each invoice and payment into a connected Wave account for bookkeeping. |
| Services | Services tab | Add the jobs you quote most, with prices, so estimates are a few clicks. |
| Customers | Customers tab | Add them by hand, or Import from Wave to bring your existing list over. |
| Passkeys | Account menu (top right) → Add a passkey | Set one up on every device you sign in from, so you’re never stuck waiting on an emailed code. |
04
Connecting services
All connections live under Options. Each is independent — connect only what you use.
Stripe (payments) — Options → Payments & Accounting
Click Connect Stripe and complete Stripe’s own onboarding. Connecting or disconnecting Stripe asks you to confirm it’s you first (passkey or emailed code). Client payments go straight to your Stripe account — Barnabas never holds your money. Once connected:
- Estimate deposits can be collected online at approval time.
- Invoices show a Pay button in the portal.
- Card fees are recorded against the payment.
Quo (SMS) — Options → Messaging (SMS)
Paste your Quo API key and the phone number to send from. Barnabas registers a webhook with Quo so inbound texts land in Messages. Used for: sending estimates/invoices by text, appointment reminders, overdue-invoice reminders, review requests, and free-form conversations.
Wave (accounting mirror) — Options → Payments & Accounting
Click Connect Wave and authorize. From then on, each invoice you create is mirrored into Wave as a saved (un-sent) invoice, and payments are booked against it. Wave stays your system of record for the books; Barnabas is the system of record for the job.
- Discounts, line items, and payments carry over. Refunds don’t yet auto-reverse in Wave — you’ll get an Alert telling you to enter the reversal by hand.
- There’s a separate Wave Sync (Dev) tool that pulls your existing Wave customers and invoices into Barnabas. It’s one-way and read-only — safe to run again anytime.
Google Search Console — Options → Search Console
Optional. Connect a verified property to show search-traffic stats on the Dashboard.
Zelle — Options → Zelle
Turn on and enter your Zelle handle / QR image to offer Zelle as a manual payment method on estimates and invoices.
Lead capture — Options → Lead Capture
Generates a webhook URL you paste into your website’s contact-form host (Formspree, etc.). Submissions become Leads automatically.
QuickBooks export — Options → Export for QuickBooks
Downloads your data in a QuickBooks-importable format. One-off, no connection.
05
The sections, one by one
Dashboard
A customizable board of widgets: a map of your customers, upcoming jobs, top services and revenue this month, a compact calendar, and Search Console stats if connected. Use the customize panel to show, hide, and reorder widgets. The map geocodes customer addresses on first load; addresses it can’t place confidently are listed so you can fix them.
Calendar
Your job schedule in Month, Week, or Day view. Drag a job chip to another day to reschedule it. Click an empty day to schedule a new job. Click a job chip to open it. In Day view, timed jobs show their start time and the full title. A client’s name on a chip is a link to their profile.
Jobs
Every job as a card — customer, title, date(s), status (Scheduled / Completed / Cancelled), checklist progress, photo count, and whether it’s been invoiced. Filter by status, search by customer/title/notes. The customer name links to their profile. Opening a job lets you:
- Set one or more scheduled days (they don’t have to be consecutive) and an optional time and duration.
- Build a checklist, or import one from a Service’s template.
- Attach photos (before/after).
- Toggle whether this job sends an appointment reminder or a review request.
- Send a review request once it’s marked Completed.
- Create or open the linked invoice.
Leads / Customers
Two tabs, same kind of record. Each card shows contact details, address (with a map-placement badge), estimate count, and star rating if you’ve recorded one.
- Sort by name (A→Z / Z→A) or by date added (Oldest / Newest) — handy when you remember adding someone recently but not their name.
- Search by name, contact, phone, email, or address.
- Add customer / Add lead, or Import from Wave (Customers tab).
- Opening a profile shows their full history — estimates, invoices, jobs, recurring plans, message thread — and lets you set a bill-to relationship or start a recurring plan.
Estimates
Build a quote from line items (or the Services catalog):
- A new estimate starts with no line items — quick-add from your Services chips, or use Add line item to type one.
- Each line has a title, optional details, quantity, and price. Mark a line optional to let the client add it themselves in the portal.
- Set a discount (fixed or %) and a deposit (fixed or %).
- Informational text lines show on the estimate with no price.
- Send by email and/or text — edit the subject, body, and recipient list right in the send screen. The approve link is added automatically.
- After it’s sent, the card shows Open approval link, Resend, and Record manual payment (for a client who pays the deposit by cash/check).
- The stage bar tracks Draft → Sent → Viewed → Approved → Deposit Paid → Invoiced → Paid.
When a client approves (or you record the deposit), the Invoice is created automatically and you’re notified by email.
Invoices
From an approved estimate, or standalone for estimate-free work. Same line-item editor (a new standalone invoice also starts empty), plus:
- Request payment — open an ask for a specific amount (a deposit, a draw, the final balance). The client pays it in the portal; you then open the next.
- Record manual payment — cash, check, Zelle, bank transfer.
- Refund a payment (Stripe payments are refunded through Stripe; manual ones just adjust the record), with an audit trail.
- Send / Resend by email/text, same editable screen as estimates.
- Filters: Unpaid (money owed, nothing collected), Partially paid, Paid in full (nothing owed).
Messages
Two-way SMS, one thread per customer, plus a newest-first list of every conversation. Inbound texts arrive here automatically (Quo webhook). You can send an outbound attachment — its link is appended to the text since SMS can’t carry files directly.
Services
Your catalog. Each service has a name, description, price, a type (priced or informational), a quick-add toggle (whether it appears as a one-click chip on the estimate/invoice builder), and an optional checklist template that gets copied onto a job when imported.
Recurring Plans
Subscription-style repeat work (monthly maintenance washes, etc.), started from a customer’s profile. A plan has its own line items, frequency, optional setup deposit, and its own client approval portal — the same draft → sent → viewed → approved flow as estimates. Once approved, Barnabas generates the next job automatically, ahead of each due date.
Alerts
Where background failures surface — an “estimate approved” email that didn’t send, a receipt that bounced, an invoice that didn’t sync to Wave, a refund that needs entering in Wave by hand. The action itself (the approval, the payment) always went through; only the follow-up send failed. Each alert says what to do; Dismiss it when handled. The sidebar shows a red count of open alerts.
Reports
Summary figures for the business — pipeline value, revenue, and service breakdowns.
06
Everyday workflows
Quote a job
- Estimates → New estimate. Pick the customer (or add them).
- Add line items — type them, or click a Services chip.
- Set a discount and/or a required deposit if you want one.
- Save, then Send — choose email/text, tweak the message, send.
- The client gets a link, reviews, optionally adds optional items, and Approves. If a deposit is due and Stripe is connected, they pay it right there.
- Barnabas creates the invoice and emails you that it was approved.
Collect a deposit without Stripe (cash/check)
On a sent/viewed estimate card, Record manual payment → enter the amount, method, and which account it went to. This does the same estimate → invoice transition a real online deposit would.
Schedule the work
From the approved estimate or the customer’s profile, Schedule job — set the day(s), time, and duration. It appears on the Calendar and in Jobs. The day before, the customer gets an appointment-reminder text (if enabled and not opted out).
Invoice progress and the final balance
On the invoice, Request payment for the current stage’s amount. The client pays in the portal (or you record it manually). Repeat for each stage. When the balance reaches zero the invoice is Paid in full and, if it came from an estimate, the estimate’s pipeline flips to Paid too.
Get paid and send a receipt
Stripe payments send an automatic receipt. For a manual payment, open the invoice, find the payment, and Send receipt (or resend).
Ask for a review
On a Completed job, Send review request — texts the customer your review message with your Google review link. Set the message and link in Options → Review Requests. Customers can be opted out permanently.
07
Options reference
| Section | What it controls |
|---|---|
| Business Info | Legal name, DBA, address, contact email (Reply-To), logo. |
| Subscription | Your plan (monthly or annual), trial-end or next-renewal date, and Manage billing — opens Stripe’s portal to update your card, download invoices, or cancel. |
| Signed-in devices | Every browser and device signed in to your account; sign out one, or all others. |
| Terms & Conditions | Contract text attached to each estimate at creation. |
| Default Valid Until | How long a new estimate is valid by default. |
| Estimate / Invoice Numbering | Starting number for each series. |
| Send Messages | Default subject/body for estimate email, invoice email, and both texts. |
| Payments & Accounting | Connect / disconnect Stripe and Wave. |
| Zelle | Enable Zelle as a manual payment option; handle and QR image. |
| Wave Sync (Dev) | One-way pull of existing Wave customers/invoices into Barnabas. |
| Export for QuickBooks | Download data for QuickBooks import. |
| Messaging (SMS) | Connect Quo (API key + from-number). |
| Appointment Reminders | On/off and message; sent the day before a job. |
| Overdue Invoice Reminders | On/off, which day-thresholds (3 / 7 / 14), and message. |
| Review Requests | On/off, your Google review URL, and the request message. |
| Lead Capture | Webhook URL for your website’s contact form. |
| Search Console | Connect a Google property for Dashboard search stats. |
Message templates use placeholders that fill in at send time — commonly {business}, {name},
{total}, {number}, {date}, {link} depending on the template. Each section shows which it
supports.
08
The client portal
Public pages your clients use, one unguessable link each:
- Estimate portal — review line items and terms, toggle optional add-ons (the total updates live), approve, and pay a deposit if one’s due.
- Invoice portal — view the invoice and pay whatever the current open request is.
- Recurring plan portal — review and approve a recurring plan and pay any setup deposit.
There is no client login. Sharing the link is granting access, so treat those links like you would a payment link. The first time a client opens an estimate it flips to Viewed on your side.
09
Alerts & troubleshooting
Check the Alerts tab (sidebar, red badge) when something “should have happened” but didn’t. Common ones:
| Alert | What it means | Do this |
|---|---|---|
| Notification email didn’t send | Your “estimate approved” email failed | Check the contact email in Options → Business Info |
| Receipt email didn’t send | A client receipt bounced or was rejected | Open the invoice → Resend receipt once the address is fixed |
| Wave sync | An invoice/payment didn’t reach Wave | Reconnect Wave in Options, then re-save the invoice |
| Wave refund | A refund needs entering in Wave manually | Record the reversal directly in Wave |
Sign-in problems
- “Confirm it’s you” keeps appearing. That’s the extra check for high-risk actions (connecting/disconnecting Stripe, adding a passkey). Confirm with your passkey, or choose Email me a code instead. It’s valid for a few minutes, so back-to-back actions only ask once.
- A “new sign-in” email you don’t recognize. Go to Options → Signed-in devices, choose Sign out all other devices, then set up a new passkey.
- “Too many attempts.” Sign-in codes are limited to a handful of tries and a few requests per 15 minutes. Wait a couple of minutes, then request a fresh code.
- The emailed code never arrives. Check spam. Mail from a new domain is often filtered at first; if it still doesn’t come through, contact support.
A client isn’t receiving estimate/invoice emails
- Check their address is right on the customer record.
- Check your spam folder if you sent a copy to yourself — mail from a new sending domain is often filtered at first.
- If you added an outside address in the recipient list and it failed: the sending system may still be in a restricted mode that only delivers to pre-verified addresses. As a stopgap, send the estimate to your own address and forward it; the approve link in the email still works from a forward.
The app looks out of date after an update. Force-refresh (Ctrl/Cmd + Shift + R), or fully close and reopen the installed app.
A number field shows 0 you can’t clear. Fixed in current versions — the field now shows a faint placeholder instead and accepts typing directly.