Home / Recipes / Tech voice memo → job summary + invoice line items + Jobber note
Problem 4: Paperwork eats your evenings
Tech voice memo → job summary + invoice line items + Jobber note
A tech records a 20-second voice memo after the job. The workflow transcribes it, writes a customer-friendly summary, matches parts and labor to your price book, flags anything not in the price book, and saves it all as a DRAFT note on the Jobber job for someone to approve. Prices only ever come from your price book.
The problem
Owners describe doing dispatch, office and paperwork at night. We found anecdotes, not measured hours, so we don't claim a time saving.
- One-man HVAC shop owners describe being the dispatcher, office manager and paperwork person (anecdotal). Source: r/HVAC thread on running a one-man shop (Anecdote (Reddit); read via search summary, not opened directly)
- Plumbers name invoicing, scheduling and estimates as their biggest admin headache (anecdotal). Source: r/Plumbing thread: biggest admin headache (Anecdote (Reddit); read via search summary, not opened directly)
Who it's for
Owner-operators and small crews who do invoices at night, and shops whose techs hate typing on a phone.
Tools and monthly cost
| Tool | Official price |
|---|---|
| Speech-to-text (example: OpenAI gpt-4o-mini-transcribe or whisper-1) | about $0.003 / minute (gpt-4o-mini-transcribe) or $0.006 / minute (whisper-1) pricing page |
| AI model (example: OpenAI gpt-4o-mini) | $0.15 per 1M input tokens, $0.60 per 1M output tokens pricing page |
| n8n | Community Edition: free if you self-host (you pay for the server). n8n Cloud: from EUR 20 / month (Starter) or EUR 50 (Pro) pricing page |
| Jobber (you probably already pay for it) | Core from $29 / month billed annually ($49 monthly); Connect from $99 (built-in quote and invoice follow-ups); Grow from $149 pricing page |
Example month: Illustrative arithmetic. Assume 100 memos of about 1 minute: speech-to-text $0.30-$0.60, AI extraction under $0.05. No texting costs. Plus n8n. Or skip n8n entirely and use the included Claude skill by pasting the transcript.
Setup
- Give techs a way to send the audio file to the workflow's upload webhook with the job id: an iPhone Shortcut or Android share target that posts multipart form data (fields: audio file, jobId, tech).
- Create a Jobber Developer Center app with job read/write and products read scopes; connect it with an n8n OAuth2 credential.
- Import workflow.json; set your speech-to-text and model API keys.
- Edit the ALIASES list in 'Match price book + build draft' with the slang your techs use (e.g. 'flush' → 'Water heater flush').
- Optional review queue: the workflow appends a row (job, items, needs-pricing, recommendations) to a sheet; swap the mock sheet URL for a Google Sheets node.
- Record three real memos and compare the draft notes with what you'd have invoiced before letting anyone rely on it.
Download
Download voice-memo-to-invoice.zip
Contains the n8n workflow, AI prompts, a Claude skill version (documentation only, not executed in our tests), the mock data, the test runner with its last results, and the mock server we tested against. All keys in .env.example are fake.
Test result
Every workflow was imported into n8n 2.45.4 and run end to end on our test machine. Twilio, Jobber and Stripe were replaced by a local mock server that accepts the same request shapes as their documented APIs and records every call. The AI steps used a small local model (Qwen2.5-3B-Instruct, 4-bit) and the speech-to-text steps used Whisper base.en running locally. Mock data (customers, quotes, invoices, recordings) is invented. Nothing was sent to a real phone, customer or account.
5/5 scenarios passed (run 2026-10-27)
| PASS | M1 | Memo: "Okay, this is job fifty five twelve, the Raman house. Furnace was locking out on flame failure. Pulled the..." |
| PASS | M2 | Memo: "Kitchen sink leak at the Baptiste job. The leak was at the P trap, the old trap was cracked, so I put in a..." |
| PASS | M3 | Memo: "Kevin Tran, annual water heater maintenance. Flushed the tank, lots of sediment came out. The anode rod was..." |
| PASS | M4 | Memo: "AC not cooling at the Novak place. Capacitor was bulged, replaced it with a forty five five MFD run..." |
| PASS | M5-silence | Silent recording: workflow must stop and write nothing |
Actual output from the test run
Draft note written to the mock Jobber job for memo M1 (real Whisper transcript, including its mistakes). Names and numbers are invented.
AI DRAFT from voice memo - review before invoicing Summary: The technician diagnosed and fixed a flame failure issue on the furnace. They replaced the corroded flame sensor and cleaned the filter. The furnace is now operating normally. Work performed: - diagnose flame failure - replace flame sensor - clean filter - replace filter - run cycles Suggested line items (price book prices): - Service call / diagnostic x1 @ $89.00 = $89.00 - Flame sensor x1 @ $65.00 = $65.00 - Furnace filter 16x25x1 x1 @ $18.00 = $18.00 - Labor - per hour x1.5 @ $125.00 = $187.50 Subtotal: $359.50 Recommendations / follow-ups: - keep an eye on the inducer motor Transcript: "Okay, this is Job 5512, the ramen house. Furnace was locking out on flame failure. Hold the flame sensor. It was pretty corroded and pitted. So I swapped it for a new one. Filter was filthy too. Replaced it with a 16 by 25 by one. Ran it through three cycles. It's holding flame fine. I was there about an hour and a half including the diagnostic. The inducer motor is getting a little noisy. She should keep an eye on it, but I didn't touch it today."
Verified with mocks
- Four realistic memos (furnace, sink, water heater, AC) recorded as audio with synthetic voices and transcribed by Whisper; transcription errors such as 'P-VCP trap' and '45 5 MFT' were handled.
- All expected price-book items found, and nothing the tech said they didn't do (e.g. 'the inducer motor is noisy, I didn't touch it') ended up on the invoice.
- Labor hours parsed from speech ('an hour and a half' = 1.5); service call added only when mentioned; a 60-amp disconnect not in the price book flagged for manual pricing with no price.
- Recommendations captured (inducer, garbage disposal quote, expansion tank); a silent recording stops the workflow without writing anything.
Documented from official API docs only
Built to the vendor's documentation but not run against a live account. Check these on yours.
- Jobber job and productOrServices queries (Jobber docs).
- jobCreateNote mutation: listed by Jobber integrations, but the input field names come from a community schema copy. Check in GraphiQL.
- OpenAI-compatible transcription endpoint (multipart 'file' field).
Limitations
- The AI step is an extractor; matching and prices are plain code. A price book with very different names will need more aliases.
- It writes a draft note, not invoice line items, on purpose: a person should approve before billing.
- The small test model sometimes mixed up who the customer was in the summary; prompts now tell it the customer is not the tech, but review summaries.
- Tested with clean synthetic voices; real job sites are noisier.