~ 5 min one-off, then seconds per payment
Sign up and create your garage 5 min
Visit the sign-up page and enter your garage's name, a work email, and a password. We email you a verification link the moment you submit the form. Click the link, and your tenant database is provisioned automatically — no waiting, no setup ticket queue.
After verification you land on the Setup garage screen. Fill in your business hours, default VAT rate, address, optional logo and brand colours. None of these are mandatory beyond business name and country; all are editable later under Settings → Garage.
Free trial runs for 14 days. No card needed up front. You pick a plan from Settings → Subscription at the end of the trial — or earlier if you want add-ons before the trial expires.
Invite your staff 2 min
Go to Settings → Team → Add user. Enter their work email and choose a role:
- Tenant admin — full control including billing. There can be more than one.
- Manager — everything except billing, subscription, and staff management.
- Staff — workshop floor: job cards, parts, customers, no settings.
The new user gets a verification email and a temporary password. They must verify before they can sign in. You can revoke or reset access from the same Team page at any time.
Add your first customer 1 min
Customers → Add customer. Required: name plus one contact channel (email or phone). Everything else is optional but more data later means better marketing segments and faster reception desk lookups.
If you've moved from another system, use Customers → Import. Drop a CSV — first row is your headers — and a preview lets you map your columns to ours. Bad rows are skipped with an error log you can download. Roughly one minute per 100 rows.
Once a customer exists you can open a portal account for them (sends an invite email; they choose a password) or send them a one-shot magic link they can click from email/SMS/WhatsApp to sign in without a password.
Add a vehicle to a customer 1 min
Open the customer's detail page → Add vehicle. Type the UK registration plate (VRM). We pull make, model, colour, fuel type, year, MOT status and tax status from DVLA + DVSA automatically. You confirm and save.
The MOT history is cached on save and re-pulled when you click Get MOT info on the vehicle page. Cache means quotes and history printouts load instantly; refresh means you get fresh data when DVSA publishes a new test result.
If DVLA doesn't have the vehicle on file (very new registration, foreign import) the form falls back to manual entry — type the details in.
Open your first job card 3 min
Repairs → New repair. Pick the customer, pick their vehicle. The form has three required fields: complaint (what the customer reported), mileage in, promised completion date. Save.
The job appears on the workshop dashboard with status booked. Inside the job you can:
- Add item — labour line (hours × rate) or a part (search the catalogue).
- Upload photo — before/after shots, defect evidence, parts received.
- Add note — internal-only running log; the customer never sees these.
- Status — advance through
booked → in progress → done → invoiced → paid → closed.
Stock decrements automatically when a part line is saved. Manual adjustments are logged with a reason on the part's Stock movements tab.
Send a quote and get it approved 2 min
Inside the job card, click Create proforma. We render a pro-forma invoice PDF with every line, VAT calculated at your default rate, your branding. Email it.
If the customer has a portal account they see the proforma in their dashboard with an Approve button. One click approves; the job moves to in-progress automatically and you get a notification.
If the customer rejects with a comment, the job stays at booked and you see the comment in the activity feed. Edit lines, re-issue the proforma, repeat.
Take an online payment 5 min one-off, then seconds per payment
First, connect a gateway under Settings → Payment methods:
- Stripe — cards, Apple Pay, Google Pay. Enter your publishable and secret keys.
- PayPal — PayPal accounts and cards. Connect via the PayPal OAuth flow.
- GoCardless — SEPA / UK direct debit. Best for recurring billing.
Test mode is honoured. Toggle it once you've verified a real charge works in production.
On any invoice or job, click Process payment. The relevant gateway opens; charge succeeds, status flips to paid, receipt emails itself. If the customer has paid in person, click Mark paid instead and pick method (cash / bank transfer / card terminal).
Refunds: refund through whichever gateway the original charge came in on. Stripe charges → Stripe refund; PayPal → PayPal. For manual payments, post a negative entry on the customer's credit ledger.
Connect QuickBooks, Xero, or Sage 5 min per provider
Each accounting integration is a £10/month add-on. Subscribe under Settings → Add-ons / Marketplace, then go to Integrations → [provider] → Connect. OAuth at the provider's site, approve, you're back.
Once connected, every invoice you finalise in GarageSync also pushes to the provider. Sync runs as a chunked job with a live progress bar — large back-fills don't block the UI.
Provider-specific quirks we handle so you don't have to:
- QuickBooks Online Start tier: VAT codes are required per line; we pick the correct one automatically.
- Xero: refresh tokens rotate on every refresh — we persist the rotation. Granular scopes (
accounting.invoices, accounting.payments, etc.) rather than the legacy accounting.transactions, because new Xero apps cannot grant the legacy scope.
- Sage Start tier: doesn't accept due dates on invoices — we strip them. Every invoice needs a customer address — we build it from billing/main address with N/A placeholders if missing.
If a sync fails you see honest red/amber status with the exact provider error in Integrations → History. No silent failures.
Connect eBay and import existing listings 10 min
Subscribe to the eBay Sync add-on (£10/month). Then Integrations → eBay → Connect. OAuth at eBay; pick policies if prompted.
Read-only mode is ON by default. Every write call (publish, update, withdraw, delete) throws while it's on. This is the safety net: connect, browse, import, verify everything's right, then flip read-only off when you're ready to publish.
To pull your existing eBay listings into your Parts catalogue:
- Integrations → eBay → Browse listings. We merge Inventory API + Trading API results, deduplicated.
- Tick the listings you want to import.
- Hit Import. Chunked progress bar (3 items per batch). We pull description (HTML stripped), brand, every image (deduplicated by URL hash), and any YouTube/Vimeo/mp4 video found in the description.
To publish a part back to eBay: Part detail → Publish to eBay. Preflight checks the four prerequisites — addon active, OAuth connected, read-only off, four defaults set (category + shipping + payment + return policies). If any miss, you get a precise error pointing at the right settings page.
Sell a car: create a vehicle listing 3 min
Vehicle listings → Add. Type the VRM, we fill DVLA fields. Add price, mileage, body type, fuel, transmission, seats, doors, condition, features, photos, optional walkaround video (MP4/WebM/MOV/MKV, ≤100 MB — we transcode it for fast playback).
Two switches matter:
- Status —
draft / active / sold. Only active and sold are eligible to show publicly.
- Show on the public Cars for sale storefront — toggles whether the world can see it.
Both must be set before the listing appears at your public storefront. Sold listings stay visible with a SOLD badge — useful social proof.
Send a customer a magic link 20 sec
Open the customer's detail page → Generate magic link. We mint a one-shot URL. You can copy-paste it into WhatsApp / SMS / email — anywhere you'd normally send a recovery link.
The customer clicks the link and lands inside their portal already signed in. The link expires the moment it's used; if they need another, generate a fresh one.
Use this when the customer says "I've forgotten my password" or hasn't signed in before but you've created their account.
Set up email, SMS, and WhatsApp notifications 10 min
Settings → Notification channels. Three providers:
- SMTP for email — your own SMTP host, port, encryption, credentials. Press Send test email to verify.
- Twilio for SMS — Account SID + Auth Token + a from number. Send test SMS verifies.
- WhatsApp Cloud API for WhatsApp — phone number ID + permanent token. Send test WhatsApp verifies.
Deliverability tip: for email, set SPF, DKIM, and DMARC records on your sending domain. The page shows the exact DNS entries to add. Reputation builds over a few weeks; expect your first campaigns to land mixed and stabilise.
Send your first email or SMS campaign 15 min
Subscribe to Email Marketing or SMS & WhatsApp Marketing (£7.50/month each). Then [Channel] Marketing → New campaign.
Pick a starter template, edit content (WYSIWYG for email, plain text for SMS, template or free-form for WhatsApp), choose recipients:
- Whole customer list.
- A pre-defined segment (e.g. MOT due in 14 days, last service > 6 months ago).
- A manual selection from the customer browse page.
Send immediately or schedule. The campaign list shows opens, click-throughs, unsubscribes, bounces. We auto-handle the MOT-due reminder cron — set it once under Email Marketing → MOT reminders and forget.
Upgrade to Premium Help support 1 min
Settings → Add-ons → Premium Help. £15/month. Effect is immediate on your next new ticket:
- SLA tightens to 2 hours, 7 days a week including weekends. Standard support runs to 24 working hours, weekdays only.
- WhatsApp unlocks as a contact channel. We can respond to your tickets via WhatsApp instead of email.
- SLA badge on every ticket shows your due time at a glance.
Existing tickets keep the tier they were opened with. Cancel any time — no notice period, the change applies to the next ticket.
Customer management (CRM)
Every customer record lives in a per-tenant database — you only see your customers, never anyone else's. The record holds contact details, billing + delivery addresses, communication preferences, tags, segments, credit balance, magic-link history, and a 360-view of every job, order, vehicle, and message they've had with you.
Pages: Customers for the browse list with filters and bulk actions; Customers → row → View for the full detail; Customers → Duplicates for de-duplication; Customers → Import for CSV bulk import with column-mapper preview.
Features worth knowing: tags drive marketing segments; comm prefs govern email / SMS / WhatsApp routing; the credit ledger supports deposits, charges, and refunds with a hard credit limit; birthdays trigger campaigns if you run Email Marketing.
Vehicles, MOT, and DVLA
Vehicles attach to customers. Type a UK VRM and we fetch make, model, colour, fuel, year, MOT status and tax status from DVLA's Vehicle Enquiry Service in under a second. The DVSA MOT History service feeds a full per-test history with every advisory and defect category (FAIL, MAJOR, DANGEROUS, ADVISORY, MINOR).
We cache both responses on the vehicle row so quotes and printouts load instantly. The Get MOT info button on the vehicle page re-fetches when you suspect DVSA has new data.
Printables on the vehicle page:
- Print Service History — every repair invoice for this vehicle.
- Print MOT & Service History — DVLA details + full MOT log + every repair. Hand this over with a sold car.
Workshop and job cards (repairs)
The workshop dashboard at Repairs → Dashboard is the bays-at-a-glance view: who's working on what, expected completion, parts waiting, jobs running over.
A job card holds the customer, vehicle, complaint, mileage in, promised completion, line items (labour + parts), photos, internal notes, status, and payments. Status flows booked → in progress → done → invoiced → paid → closed. Stock decrements when a part line is saved.
Proforma invoice PDFs render from the line items at any time. Customer can approve through the portal with one click. Once you generate the real invoice you can charge through any connected gateway or mark paid manually.
Parts catalogue and inventory
Parts have name, brand, price, stock, optional part number, supplier, dimensions, weight, video, photos, and compatibility ("Fits car make / model"). The catalogue filters separate Part brand (what's printed on the part) from Fits car make/model (which vehicle it goes on).
Bulk edit supports: set or adjust price (absolute, +/−%, +/−£), set / add / subtract stock, replace brand or colour, toggle customer-orderable and minimum qty, replace compatibility. Everything wraps in a single transaction.
Product videos: drop an MP4/WebM/MOV/MKV up to 100 MB. We transcode through ffmpeg to web-optimised H.264 with the moov atom at the front, so playback starts after the first ~256 KB downloads. YouTube/Vimeo embeds in the description are picked up automatically.
Stock movements log every change (auto-decrement on job line save, manual adjustment with reason) so you can audit historic stock at any date.
Vehicle listings and the public storefront
Vehicle listings are separate from parts. Each listing has price, mileage, body type, fuel, transmission, seats, doors, condition, photos, optional walkaround video, MOT and tax status (pulled from DVLA on demand), and a description.
Two visibility switches: status (draft, active, sold) and show on public storefront. Only active or sold listings with the storefront switch on appear at /?route=cars-for-sale.
The public storefront has Autotrader-style filters: make → model cascade, price min/max, year min/max, mileage max, fuel and transmission multi-select, body type, has-video, sort, free-text search. Sticky sidebar on desktop, slide-out drawer on mobile.
Orders, picking, and shipping
Orders are separate from job cards. They cover parts you sell to customers (or that customers buy themselves through the portal shop). Line items, delivery address, payment, status.
Picking: Picking → Today's picks shows a bay-by-bay walking order. Tick each part as you pull it. Once everything's ticked the order flips to ready to ship.
Shipping settings under Settings → Shipping: carriers (Royal Mail, Parcelforce, DPD, …) with their service tiers, free-shipping threshold, default carrier per region, packaging weight allowance, per-order overrides.
Payments and refunds
Three gateways, any combination: Stripe (cards, Apple/Google Pay), PayPal (PayPal + cards), GoCardless (SEPA / UK direct debit, ideal for recurring billing). Connect under Settings → Payment methods.
Two payment modes on every invoice / job:
- Mark paid for cash / bank transfer / in-person card terminal. Updates the ledger and emails a receipt.
- Process payment for online charges. Gateway opens, charge succeeds, status flips, receipt emails.
Refunds: through the same gateway the original charge used. Stripe→Stripe, PayPal→PayPal, GoCardless→GoCardless. Manual refunds post a negative entry on the customer credit ledger.
GoCardless quirk: settlement takes 2-3 business days. The invoice flips to paid when the webhook confirms settlement, not when the mandate is signed — that's normal.
Accounting integrations
Three providers, three add-ons at £10/month each: QuickBooks Online, Xero, Sage Business Cloud Accounting. Subscribe to as many as you want.
What syncs: invoices and payments push to your accounting provider as you finalise them in GarageSync. Customers and items are matched on existing accounting data so we don't create duplicates. VAT codes are picked up automatically.
The sync runs as a chunked AJAX job with a live progress bar. Large back-fills don't block the UI; you can keep working while a 12-month back-fill runs.
Per-provider notes: QuickBooks needs VAT codes per line on the UK Start tier (we add them). Xero refresh tokens rotate on every refresh (we persist). Sage Start tier rejects due dates on invoices and requires a customer address (we strip the date and build the address).
If a sync fails you see exact provider errors in Integrations → History. The status card shows honest red / amber / green, never the cheerful-but-misleading "all good" that other tools sometimes do.
eBay Sync
£10/month add-on. OAuth-connect once. Read-only mode is ON by default — every write call (publish, update, withdraw, delete) throws while it's on. The safety net is owner-mandated; do not disable it until you've verified everything's right.
Browse and import: we merge Inventory API + Trading API results, deduplicated. Tick listings, hit import. We pull description (HTML stripped to text), brand from item specifics, every picture (deduplicated by URL hash), and any YouTube/Vimeo/mp4 video found in the description.
Publish: from a part page or in bulk from the catalogue. Preflight checks four prerequisites (addon active, OAuth connected, read-only off, default category + 3 policies set) and tells you exactly what's missing.
Business Policies: required by eBay. If your eBay account doesn't have them already (common for older sellers) use Integrations → eBay → Settings to opt in and configure shipping / payment / return policies — we submit the lot in one go.
Per-row refresh: re-pull GetItem for one listing without touching price or stock. Useful when you've edited on eBay directly.
Convert part → vehicle: on a part page, Convert to vehicle for sale. We soft-delete the part, create a vehicle listing draft, copy images, and re-point the eBay link so the round-trip keeps working.
Email, SMS, and WhatsApp marketing
Two add-ons at £7.50/month each. Email Marketing has a WYSIWYG builder, image upload, 5 starter templates, plus an MOT-due reminder cron that's automatic once configured. SMS & WhatsApp Marketing uses a channel selector per campaign — same recipient lists, different transport.
Recipients can be: your whole customer list, a pre-defined segment (e.g. MOT due in 14 days, last service over 6 months ago, VIP tag), or a manual selection you've ticked.
Reporting per campaign: opens, click-throughs, unsubscribes, bounces (email) or delivery / read receipts (SMS/WhatsApp where available).
Deliverability: configure SPF, DKIM, DMARC for your sending domain (DNS records shown in Settings); SMS goes via Twilio; WhatsApp goes via Meta Cloud API (you connect your own Business account).
Loyalty & Rewards
£12.50/month add-on. Define a programme: points-per-£ rate, redemption tiers, expiry rules. Members accrue points on completed repairs and parts orders. Tier benefits map to discounts on parts or labour.
Today it's basic CRUD — members, points, manual redemption. Auto-redemption mechanics (apply at checkout, point-balance-as-currency) are on the roadmap. Current customers use it as a structured rewards log they can show members.
Multi-Location Management
£25.50/month add-on. Add your branches under Multi-location → Locations. Each job card can be assigned to a location. Users can be scoped to a location (staff at branch A see only branch A's jobs). Reports filter by location. Stock view filters by location.
The base unit of accounting is still the tenant — your subscription / billing covers all locations under one umbrella. Locations are a partition within your tenant, not separate tenants.
Reviews and reputation
Built in to the core — no add-on needed. Reviews → Request review sends a tokenised submission link to one customer or a batch, via email / SMS / WhatsApp. The link opens a public form with no login.
External reviews (Google, Facebook) can be logged manually under Reviews → Log review so they aggregate into your reputation card. The reputation card shows average score, total count, recent reviews, channel breakdown.
The customer portal
Every customer can have a portal account. From their side they see: their vehicles with MOT and service history, ability to request repairs, approve quotes (proformas), pay invoices, buy parts, track orders, message your support.
Three ways to give them access: email invite (they set a password), magic link (you send a one-shot URL by email / SMS / WhatsApp; they click and they're in), or sign-up form (they create their own account; you approve).
Customer data isolation: every query is scoped to the signed-in customer ID. They cannot see other customers, you cannot see other garages' customers. Audit-logged on the server side, not just the UI.
Support and the AI assistant
Two tiers. Standard support is free, email-only, 24 working hours weekdays only. Premium Help (£15/month) unlocks WhatsApp as a contact channel and tightens the response window to 2 hours, 7 days a week.
Every ticket gets read by our Groq-powered AI agent. By default the AI drafts a suggested reply as an internal note and a human reviews before sending. The AI never sends on its own unless your sysadmin explicitly enables auto-answer for tenant-to-sysadmin ticket types (and even then it's only on a curated subset).
The AI is grounded in this knowledge base — you're reading the same content right now. It's instructed to admit when it doesn't know and to escalate to a human; it does not invent prices or features.
External tools can post replies through our headless API at /public/api/support.php using a per-tenant API key. Useful for WhatsApp gateways and AI agents.
Reports and analytics
Built in. Sales summary (revenue, refunds, gross/net), repair throughput (jobs per day, average completion time), parts movement (in/out, top sellers, slow movers), customer LTV (lifetime value), MOT-due cohort (how many vehicles need an MOT in the next 30 days).
Date ranges + CSV export on every report. Multi-location filter on the location-aware reports if you run that add-on.
"Card payment failed" but the card was clearly fine
Check Stripe webhook log. Common cause is a PHP notice leaking into the JSON response. Refresh the page and retry. If the second attempt also fails, open a ticket with the full error and we'll trace it through Stripe.
Customer says they didn't get the verification email
1. Check Settings → Notification channels → SMTP test works. 2. Ask the customer to check spam. 3. Resend from the customer's row. 4. If still nothing, check your DNS for SPF / DKIM records.
Xero or Sage says "invalid_grant" on sync
Refresh token expired or rotated and we missed the rotation. Go to Integrations → [provider] → Disable, then Connect again. Persistent? Tell support.
eBay publish fails with "Item Specifics required"
eBay tightened this for vehicle-parts categories. Add a Brand item specific to the part and republish. The preflight will then go green.
Magic-link page says "expired"
Magic links are one-shot. Issue a fresh one from the customer's row.
Public cars-for-sale page is empty
Check three things: public_visible = 1, status is active or sold (not draft), and deleted is off. All three must be true.
AI draft button returns "AI agent not configured"
The Groq API key isn't set. We control this; message us and we'll set it.
AI draft returns "Groq API error 413 / TPM exceeded"
Free Groq tier caps tokens per minute. Wait 60 seconds and retry. If you hit this regularly, we upgrade the Groq tier.
Bulk-edit parts page shows "0 of 0 selected"
Apply your filters first, then use Select all on this page or the cycle button to select across pages. Bulk-edit acts on currently-selected parts.
A duplicate customer keeps reappearing in import
The CSV row has a different email / phone than the existing customer. Use Customers → Duplicates after import to merge.
"Access denied: Admin or Manager privileges required" but you are admin
Session desync after a role change. Sign out, sign back in. If it persists, check your role under Settings → Team.
"WhatsApp channel requires the premium-help add-on"
You (or your API client) tried channel=whatsapp on a standard-tier ticket. Subscribe to Premium Help, or use channel=email.
"Connection timed out" when drafting with AI
Our production host has flaky outbound to some Cloudflare-fronted APIs. We auto-retry 4× with backoff. If you see this repeatedly, message us — we may need to upgrade the host's networking.
Stock movements show a count that doesn't match the catalogue
Two common causes: (1) a manual adjustment posted without a reason that you missed; (2) a job line was edited after save and the stock decrement didn't reverse. Parts → row → Stock movements shows the full history with timestamps.
Vehicle MOT data looks wrong
We pull from DVSA. If DVSA is wrong, the override field on the vehicle lets you set it manually while DVSA fixes their record.
My logo doesn't show on invoices
Re-upload under Settings → Branding. Image must be PNG / JPG, under 2 MB, max 1000×400 px. We auto-resize for the invoice template.
Customer can't see their portal
Confirm their portal account isn't revoked (Customer detail → Portal access). If the account exists and is active, send them a magic link to log in without a password.
Public help page (this one) misses something obvious
Open a ticket — we update the underlying knowledge base, which improves both this page and the AI assistant's answers.