Answers
Frequently asked questions
What HVAC HQ does, what it costs, and what it does not do yet.
Getting started
What makes HVAC HQ different from ServiceTitan, Jobber or Housecall Pro?
HVAC HQ is one system for the four parts of an HVAC day that go wrong most: the phone, the board, the price book and the estimate. The AI receptionist books real jobs onto the same dispatch board your office uses, through the same rules module, so one technician cannot be sold two overlapping windows, whether the phone, your website or a dispatcher is doing the selling. The price book holds parts and flat-rate services, reprices unlocked parts from wholesale on a target margin while a locked price stays where you set it, and feeds line items straight into estimates, which are signed on a link carrying a hash of exactly what was agreed, then paid by card through your own Stripe or PayPal account if you connect one. What we do not do yet: live distributor price feeds, and texting anyone. We would rather you read that here than find it in week two.
How long does it take to get set up?
Signing up takes a couple of minutes: you pick a plan, pay $7 on Stripe, then sign in with the password you just set. Your empty dispatch board is one click away once Stripe confirms the payment. If sign-in fails for a moment, wait a few seconds and try again. The dashboard then walks you through setup one step at a time, starting with a short interview about your business; the answers feed the website assistant and the office manager. Add a technician (the board refuses a booking until there is someone to assign it to) and it can take work that day, with arrival windows and working days already defaulted. Your price book fills from a CSV of the supplier price sheet you already get, or item by item by hand; your customers, job history and open estimates/invoices import from their own CSVs, and Settings has an importer for each. The website assistant needs switching on, your domains listed and one script tag on your site; the AI line takes longest, since provisioning rents a real number and the line still has to be configured afterwards.
Is there a trial, and do I need a card?
Yes to both, on purpose. Every plan starts with a 7-day test drive for $7, paid at checkout and credited in full toward your first month. That includes 20 AI voice minutes and a real phone number you turn on in setup, so you can call your own receptionist, book a job and sign an estimate. Van limits apply from day one. On day 8 your card is charged the plan price minus the $7 credit; cancel any time before then from Settings and nothing further is charged. Prefer to hear it first with no card? Call the live demo line on the contact page.
Can I bring my existing customers, history and stock across?
Yes, for the parts that matter most. Your supplier's price sheet imports as a CSV in the Price book screen: a header row naming sku and wholesale, with part and category optional; a row missing a SKU or a usable wholesale figure is skipped and listed back to you with the reason, and one upload takes the first 5,000 rows. Settings → Import from another system covers the rest: customers, job history and open estimates/invoices, each from its own CSV, none of them dropping a row silently. Every one either lands or comes back to you with the reason it didn't. Job history lands on the customer's own record rather than the live dispatch board, so bringing over years of it doesn't bury today's work. Van stock still gets typed in, and equipment details have no entry field at all; they fill in from what callers and website visitors tell the assistant.
What does it take to get the AI phone line answering?
Two owner actions, plus an https address for the callback. An owner rents the number, then installs the receptionist on it. Both are owner-only, and provisioning asks you to confirm in a second step, because it rents a real number that bills every month. For the agent to read your board it also needs an https PUBLIC_URL and this business's own tools token; without those it still answers and can talk, but it cannot see the calendar or book, and the install step says exactly that. Readiness shows as four separate checks (number, receptionist, live data, hub tool feature) rather than one green light, alongside a blockers list naming the bridge problems it can detect. A technician is not needed for the line to answer: with nobody on the account the agent takes the details and says the office has to confirm a technician before it promises a time, rather than booking into thin air.
Can I keep my current business number?
Yes, and for most shops that is the right move. Your number stays with your current carrier, in your name, on your bill; you switch on call forwarding with them, pointed at the number HVAC HQ rents you, and the receptionist answers every call to your old number. Most US carriers turn forwarding on when you dial *72 followed by the new number from the business phone, and *73 turns it off; codes vary, so ask your carrier for call forwarding if those do nothing. Forward everything, or forward conditionally so it only takes the calls you are too busy to answer. Two honest limits: the real proof that forwarding works is calling your old number yourself and hearing the receptionist answer, because carriers do not always report forwarding, and outgoing calls from the line show the rented number rather than your old one. If you want your old number to be the line itself, outgoing calls included, that is a number move done with your carrier's paperwork; ask us and we will do it with you, and the number stays yours.
Platform & features
How does the voice AI assistant work?
Once the line is switched on, it answers as a receptionist for your business, greeting callers in your company name. It can do four things: look the caller up from the number the carrier reports, check which arrival windows are genuinely open, book one onto your dispatch board, and flag a life-safety emergency to the top of that board. It sends nobody out, so a gas, CO or smoke caller is told to leave the building and call 911; save a mobile number and it also rings that one number, though somebody answering is not somebody going. Bookings are real jobs on the real board, checked against the same rules your office uses, and the confirmation number, arrival window and technician name are read from a written script rather than rephrased. It is instructed not to quote any price or fee; pricing depends on diagnosis and stays with your office. Save a transfer number and it can also hand a caller to a real person, saying it is connecting them first; if nobody picks up it takes a message.
Can the AI transfer a caller to a person, or text my customers?
Transfer yes, once you set it up. Texting is not live: the rail is built and waiting on carrier registration, and until that clears nothing in HVAC HQ sends a text message. Save a transfer number on the Calls screen and the AI can hand a live caller to a real person: when someone asks for the owner or a human, it says it is connecting them, in their language, and sends the call to your number. It rings for about twenty seconds, and if nobody answers in that time it comes back on the line and takes a message rather than leaving the caller hanging. Two limits worth knowing before you rely on it: voicemail answering inside those twenty seconds counts as answered, so a phone that diverts quickly sends your customer to voicemail instead of back to the AI, and a transferred call is still your line, so the minutes you spend talking come out of your AI voice minutes. Without a saved number the AI does not transfer at all, and nothing in the app dials your customers on its own; the only time your phone rings is a caller being handed to you. Nothing in HVAC HQ sends a text message: no confirmation texts, no reminder texts, no "technician on the way", and no text to your on-call technician either. What it does send your customer is email: signing links, a booking confirmation when the office books someone with an email on file, status updates when a job is dispatched, completed or cancelled, payment receipts, service reminders and review requests. Until you connect your own sending domain that mail leaves from the shared HVAC HQ address rather than yours, and if no verified address is connected at all the send is refused and you get the link back to pass on yourself. If you need reminder texts, keep whatever you use for that today.
What happens on an emergency call?
A suspected gas leak, a carbon monoxide alarm, smoke, or no heat in freezing weather is treated as life-safety. For gas, CO or smoke the caller hears a fixed evacuation instruction word for word: leave now, take everyone, switch nothing on or off, call 911 from outside. It is hand-written in English and Spanish, with English as the fallback for any other language. No heat in freezing weather is flagged urgent without an evacuation. Either way an escalation goes to the top of your dispatch board marked critical, naming your on-call technician if you have one on file. Be clear on what that is. It flags the board, and it emails your on-call address if you saved one. Save mobiles on the rota and your own line rings them in order, up to three times each, ninety seconds apart, stopping as soon as somebody picks up. Nothing in HVAC HQ sends a text yet, including beside that call: the rail waits on carrier registration. The wording never claims a van is on the way. Leave the numbers blank and nothing is ever dialed, which is how every account starts. Somebody answering is not somebody going, so somebody on your side still has to look.
Does it work in Spanish?
English and Spanish, nothing else. The sentences that get read out word for word (the confirmation number, the evacuation instruction, the signing page, the estimate email) are hand-written and reviewed in both languages; the rest of the conversation is the AI speaking, and it is told to follow the caller into Spanish and stay there. The switch is one way, and that part is not left to the AI: once a call has gone to Spanish, the lines read out word for word are locked to Spanish for the rest of it, so a single confused turn cannot put your customer back into English halfway through. Every call opens in English and switches the moment the caller speaks Spanish, no "press 2" needed, and a repeat caller whose record is already marked Spanish is greeted in it before they say a word. The website assistant offers Español from the first screen, and a language it records when someone books carries over to the phone line next time. Your own cockpit is English only for now.
How does dispatch and scheduling actually work?
Jobs sit on the board in arrival windows. The six a business starts with are two hours each, and it can redefine them. A window is a real time interval rather than a label, so overlaps are detected properly and one van cannot be placed in two overlapping windows on the same day. Exclusivity is per van, not per business and not per person: a three-van shop can still sell the same window three times, and two technicians riding one van sell it once between them, unless you cap a window with a fleet-wide job limit, which every channel then honours. Each job also carries how long it takes on site, taken from the price book when the service is known, otherwise from a researched starter table or a business default you can set. That duration decides how much of a technician's day the job occupies: a six-hour compressor replacement booked into the morning closes the later windows that tech would have needed, and a job that cannot finish before closing is refused on every channel rather than sold into a slot it will overrun. One rule decides who holds a window: scheduled, dispatched and in-progress hold it; cancelled, completed and no-show release it. The office moves a job through those from the board, and a completed or cancelled job is final, never quietly reopened. Techs move their own jobs from the portal (on my way, on site, done, nobody home); cancelling stays an office decision. Booked jobs can be rescheduled, reassigned or cancelled from the board, with the same conflict checks a fresh booking gets. When windows are offered we count only vans whose crew holds the skill the job needs, counting everything the riders can do between them; when one is booked we prefer those and fall back to whoever is free. A window is refused on both the offer and the booking once its start falls inside the business's lead time. The phone line can book a future day now: it asks the board for that day and offers only what is genuinely open on it. The website assistant still books today only, and a job it takes can be moved to any day from the board.
Can I set my working days, my own arrival windows, or my time zone?
Yes, all three, from Settings. Working days, your own arrival windows (up to 24, each with an optional crew-wide job cap), closed dates for holidays, your lead time, how far ahead booking opens, and your time zone are all settable by the owner or an office manager. Every booking channel honours the result: the phone line, the website assistant and the board offer and refuse the same windows. New accounts still start on the six built-in two-hour windows and a seven-day week. Worth knowing before you judge the board: the six built-in windows overlap each other, so a one-technician shop can hold at most three in a day. The settings screen warns about overlaps, and a clean no-overlap set is one click away. Until you pick a time zone the server's is used, and the screen says when that fallback is what you are on.
How does the price book work with my supplier's pricing?
You can build the book by hand or from your supplier's CSV, and it holds two kinds of items: parts, which carry a wholesale cost and a margin that sets retail, and flat-rate services like labor, diagnostics and tune-ups, which carry one flat price with no wholesale. Items are added, edited and deleted one at a time on the Price book screen, and any item can be picked straight into an estimate or invoice line on the Documents screen. The importer takes a header row naming sku, part, wholesale, category, and it handles quoted fields properly, so a comma inside a part name stays in the part name; a row still missing a SKU or a usable wholesale figure is skipped, and every skipped row is listed back to you with the reason, none of them dropped silently. Import matches on SKU: existing parts update, new ones are added, nothing is removed, and one upload takes the first 5,000 rows, so a bigger sheet goes up in pieces. Retail recalculates from wholesale using true margin math, not markup on cost. The target margin is one slider for the whole book and it reprices only unlocked parts: a part can lock its own price, either a custom retail or a custom margin, and a locked part or a flat-rate service never moves when the slider does. There are no live distributor or EDI feeds (no Johnstone, Ferguson or Watsco connection), and nothing watches wholesale costs for you: a distributor entry in the price book stores account details and notes only, and retail moves when you re-import, edit an item or move the margin.
Can HVAC HQ handle installation proposals and get them signed?
You build an estimate as line items with a tax rate and terms, picking items straight from your price book or typing them free-form, and the total is computed on the server in cents. The browser figure is only a preview. You can put two or three named packages on one estimate (good / better / best, or whatever you call them); the customer picks one on the signing page and signs that choice, and the chosen option becomes the signed total before the tamper hash is taken. A successful send mints a signing link you can copy, and emails it as well if you enter an address and the hub reports email available; if the email fails you still get the link, and in sandbox mode the send is recorded but nothing is delivered. Mail goes from a shared HVAC HQ address unless you connect your own verified sending domain, and the send panel tells you which. You can also require an access code that you pass on separately. The customer signs on a public page with no account and no install: they type their name, tick an explicit consent box, and can draw a signature if they want. The consent wording for the language the page was showing is stored with the signature along with a hash of the document, so a later change to a line item shows as "altered since signing". On estimates only, not invoices, you can also save a lender's name and application link in Settings so the signing page shows a quiet card that opens the lender's own application: HVAC HQ never takes an application and never runs a credit check. Each package can also carry a percent off (for example 10% on Best), applied after that package's subtotal and before tax; line items keep their full prices so the customer can still see what was quoted. You can save a named package set and load it on the next estimate, or start from empty Good / Better / Best labels in one click. What is still missing: no per-line-item discounts or coupon codes, and no soft-credit pre-approval inside this app. The link expires, so it is not a permanent customer copy.
Can it get any PDF signed, or only the estimates it generates?
Both. Estimates you build here are signed on every plan. Uploading any other PDF and sending it out for signature is on Growth and up: up to 6 MB, place the fields (signature, initials, date, text, checkbox), name up to ten signers, and it goes out on unguessable links that carry no account or customer details: one signer at a time or all at once, with a countersigner for your side if you want one. Save the layout as a template and the next send takes a minute. Signers get the same treatment as estimate signing: no account, no install, English and Spanish, the consent recorded in the exact words they saw, and the finished PDF carries a certificate page. Switch reminders on and a signer who has gone quiet hears about it on days 3, 7 and 14; that is the only email the product sends on its own clock, and it stays off until you turn it on. Finished and uploaded documents live in a per-customer vault, and Settings says plainly whether they are stored permanently on your setup. On an uploaded PDF you can also offer two or three named packages the signer must pick before they sign: label, optional summary, optional display price you type (shown on the signing page and stamped on the certificate). That price is display-only: it is not from your price book and does not create a payment or job cost. If you need Good / Better / Best priced from your book, with percent off and saveable package sets, build a multi-option estimate instead.
Can I write to my customers from inside the app?
Yes. Email is its own screen: compose a message, pick one or more customers (or paste addresses), and send from your own verified domain once connected; until then mail leaves from the shared HVAC HQ address and the send panel says which. Merge fields fill the customer's name, your business name, the sender and their next service date. Ready-made HVAC templates cover the usual messages, you can save your own, and a Write it for me button drafts a subject and body from a one-line brief (metered against your plan's AI actions). An Audience tab buckets the book by due for service, active, at risk and cold, with a one-click compose to a whole bucket and an honest count of customers with no email on file. Flows send a saved template automatically when someone comes due or a job completes; a new flow is off until you turn it on. An inbox reads and answers the replies customers send back, and Analytics counts what went out without inventing opens or bounces. Texting is a separate rail: built end to end (on-my-way, review ask, day-before reminder) and held until carrier registration clears, so nothing texts anyone yet.
Does it show what a job actually made?
On Growth and up, yes. Tie an estimate to a board job and the job screen works out one gross-profit number: what it sold for (the signed document), what the parts cost (the wholesale the app snapshotted when the estimate was written, never shown to the customer), and what the labor cost (exact for flat-rate techs, an allocation of that day's clocked minutes for hourly, and a deliberate blank for salary). The weekly overtime premium is left out and the report says so. Where a cost is not on file the report shows a dot, not a confident zero, and never invents a profit over it. Starter still builds and signs the estimate; the profit read is the Growth rung.
Can I put the assistant on my own website?
Yes. One script tag puts the assistant on your site, and it runs in English or Spanish: it takes the language from what the visitor types and stays in it. It books onto the same dispatch board as the phone line through the same rules, so neither channel can commit a technician who is already in that window, and a window with nobody qualified free stops being offered at all. It stays off until you switch it on, and it will not switch on until you name at least one domain it is allowed to run on. You set a daily cap on how many jobs it may put on the board, and there are per-IP rate limits on top. It deliberately cannot look a customer up, with no returning-customer greeting on the web, because that would turn your client list into something a stranger could query. A gas, CO or smoke phrase interrupts whatever step it is on and gives the evacuation instruction before it asks for anything else.
What does the office manager actually know about my business?
What you can see, and nothing you cannot. Each question pulls a fresh snapshot of your own records (jobs, calls, money, customers) plus the business profile you fill in, and the answer has to come from that snapshot: where a number is missing, it says so instead of guessing one. It gives advice too, grounded three ways: your records, notes you chose to save, or industry research quoted with its source named. Never a comparison against another business on the platform, because it cannot see one. It holds a conversation for about an hour, and its lasting memory is only what a person kept: it may propose a note worth saving, and it is stored when you press Save, not before. Everything it remembers is readable and deletable on the card, personal notes are private to their own login, and one question spends one AI action from your plan's monthly allowance.
Does my phone buzz when something happens?
If you ask it to. Any signed-in device can subscribe to push notifications, and techs can from their portal: an emergency buzzes every subscribed device on the account, a website callback request buzzes office devices, and a job assignment buzzes that technician's own phone, nobody else's. On an iPhone the app has to be added to the Home Screen first, and the screen says so rather than failing quietly. Separately, an owner or office manager can set one on-call email address that receives every emergency escalation as it hits the board. That address is an email and nothing more: nothing retries it, nothing knows whether you read it, and the message itself says exactly that. Save a mobile number beside it and your own line rings that one number as well, up to three times, ninety seconds apart, which is the one thing here that does retry. None of this is a text message; texting waits on carrier registration, and this page will say so the day that changes.
Does van inventory replace a clipboard or a warehouse system?
A clipboard and a ledger, rather than a warehouse system. It holds a count per SKU at each stock location, each van and the shop, with a minimum threshold, and you pick the place first from a switcher. A part at the shop counts against the shop, moved to a van counts against that van instead. Movement is one unit at a time: you tap Scan Out, Restock or Move on the part's own row, and it refuses to go below zero, always naming the count it actually has. Every move writes a line to a movement ledger, capped so the screen says how many it is showing instead of pretending it holds the whole history. Adding a part is by SKU, typed or pasted. Technicians see their own van from the portal and scan the same way. You can photograph the shelves: the office AI suggests counts for parts it can match on that van, a person checks the numbers, and parts the pictures did not show are left alone. Nothing reads a barcode with a camera. Completing a job with SKUs on the work notes takes those parts off the technician's van; if the van is short the job still closes and the shortage is named. A part on an estimate does not move stock. Low stock shows as a count on the dashboard that names the van, it does not order anything.
Can technicians use it in the field?
Yes, and it costs nothing: technicians are free and unlimited, and only vans count against your plan. Techs get their own portal: the office shares the portal link, the tech picks their name and enters their PIN, and they have today's jobs, status updates from the driveway, work notes with the parts they used, this van's stock, job photos (location data is stripped before upload), clock in and out, and their own finished pay stubs. Van stock is in the account menu on the phone. They can photograph the bins; the office AI suggests a count they check before anything is written. It is a web app that installs to a home screen, so there is no app-store rollout to push across a fleet. Offline it stays useful on purpose: the last-loaded job list still shows, and a status change made with no bars is queued on the phone and sent when the signal comes back. Photos, stock scans, notes on their own and the clock still need a connection, and the screen says so at the moment it matters rather than losing work quietly. Native iOS and Android apps with offline working are on the roadmap, not shipped.
Can it run my payroll?
No, and the feature is called Pay Prep rather than payroll for exactly that reason. It is on the Scale plan. It builds the pay run; your bookkeeper or payroll provider pays it. A run starts from the shifts your techs actually clocked in the portal, prices hourly, salary, flat rate per job and commission on signed work in any combination, and works overtime out the federal way: commission and spiffs earned in a week raise the rate overtime is owed at, not just the base wage. Bonuses, reimbursements and deductions ride as their own lines, reimbursements stay out of taxable wages, and no two runs may cover the same day, so a week cannot be paid twice even after the pay cycle is re-cut. The owner or an office manager reviews a draft and finalizes it; a finalized run is never edited, only adjusted on the next run or reissued on the record. Each tech sees their own finished pay and stub PDF in the portal, and the whole run exports as a CSV. A finalized run can also post its gross to QuickBooks Online as a journal entry when you have connected your own company, and the payment ledger posts its signed documents as invoices with their payments; item mapping, deposits and payroll liabilities stay the bookkeeper's. Be clear on the boundary: gross pay only. Nothing is withheld, nothing is filed with any agency, and no money moves. The stub says on its face that it is not the itemized wage statement some states require, and it does not work out daily overtime, which California and a few other states require.
Pricing & billing
What does it cost, and are there contracts?
Three flat tiers: Starter at $195 per month, or $1,989/yr (about $165.75/mo) billed yearly (up to 1 van, 195 AI voice minutes), Growth at $395 per month, or $4,029/yr (about $335.75/mo) billed yearly (up to 3 vans, 395 AI voice minutes), and Scale at $695 per month, or $7,089/yr (about $590.75/mo) billed yearly (up to 10 vans, 695 AI voice minutes). The site, the app and the sales line all read those figures from one table, so they cannot disagree. Every plan answers your phone, runs your board, holds your customers, sends estimates for signature and records what you were paid. Each tier then includes everything in the one below it, plus a short list of its own. Growth adds uploaded PDF signing, maintenance plans, job costing and load sizing. Scale adds Pay Prep. Every plan is month to month. Pay a year up front and save 15%. No setup fee, no minimum term, no long-term contract, and you can cancel at any time and keep access through the period you have already paid for. Two things can land on top of the tier. If you use up your plan's monthly AI voice minutes, you top up with a minute pack, priced on the pricing page and always below your plan's own per-minute rate. And going past your plan's van limit adds $100/mo per extra van to your subscription automatically once billing is set up; before billing is set up, the van limit is a hard stop. Technicians themselves are free and unlimited on every tier, so putting a second pair of hands on a van costs nothing.
How does billing actually work today?
Real, and self-serve. Signing up opens Stripe Checkout for a 7-day test drive at $7, credited toward your first month. After that, changing plans, adding a van past your limit, updating your card, seeing past invoices and cancelling are all self-serve: plan changes and extra vans ($100/mo per extra van each) apply immediately with Stripe's standard proration, and retiring a van takes its charge back off, and your card, invoice history and cancellation go through Stripe's own hosted billing portal: one button in Settings, nothing custom-built to trust with a card number. If the trial ends without converting (or a subscription lapses, say a card declines), the account soft-locks rather than disappearing: you can keep dispatching, viewing and signing documents, and recording payments exactly as before; only two things pause (booking a brand-new job and adding a new teammate) until billing is sorted from Settings. Voice-minute overage (below) is a separate meter.
What if I pay for a month and it is not what I thought?
30 days from your first full charge. If it is not doing what we said, tell us and we refund that month's plan fee. Minute packs are not refunded, because those minutes were already spoken. The clock runs from that first full charge, the one taken at the end of the test drive, and not from the day you signed up. There is no form and no retention call: email us and we process it. It sits on top of cancellation rather than replacing it, so you can also just cancel from Settings at any time and keep access through the period you already paid for. It is written into the Terms of Service under Subscription, billing and payment, because a promise that only appears on a marketing page is not a promise.
What happens when I hit my plan's van limit?
A van is a vehicle, and it is the only thing we count. Technicians are free and there is no limit on them: put two people on one van and it still counts as one, takes one job at a time, and is qualified for anything either of them can do. You manage vans under Inventory, and the limit bites when you add one there. Once billing is set up, going over your plan's van limit is not blocked. It adds (or increases) a $100/mo per extra van line on your subscription, prorated by Stripe like any other change, so the fleet keeps growing without a support ticket. Retire a van you no longer run and that line shrinks the same way, prorated. Retiring is always yours to do: a technician leaving does not take their van off your plan, because the van is still yours to keep for the next hire, and nothing about the person who left blocks you from retiring it when you decide to. If you cancel the account outright, the extra vans go with it: they are part of the same subscription, so nothing keeps billing after you cancel. Settings shows vans used against your limit either way. The only time adding a van over the limit IS blocked is before billing has ever been set up. The error names your plan, says every van is on the road, and points at Settings rather than a person, since that is now genuinely a one-click fix. Office logins are not limited either: add as many owners, office managers and dispatchers as you need, and a field tech only needs a login if they are also working the desk.
How do payments work inside the platform?
Two ways, and you can use either or both. Connect your own Stripe or PayPal keys in Settings and anyone with a login can open a card checkout for the balance on an estimate or invoice: the customer pays on Stripe's or PayPal's own page, the payment is recorded exactly once however the confirmation arrives, and a receipt goes out by email. The keys are yours and so is the money. There is no platform account in the middle, and HVAC HQ never holds your funds. Everything else is the ledger: payments taken in cash or by check are recorded by hand, build an undeposited balance, and get marked deposited when the money moves to your bank; marking it records the movement without transferring anything, and the screen says so. The whole ledger exports as a bookkeeper-ready CSV, dated in your own time zone so reconciliation does not slip a day. A recorded payment is saved the moment you enter it, and if it cannot be saved you get an error, not a quiet success. Card money is not in that drawer, because it is not in your drawer: it is at Stripe until Stripe sends it on. So the payments screen also reads your own Stripe account and says where it is, in plain words: what is available, what is still settling, when your bank gets paid next, and the last few payouts with the day each one lands. Open a payout to see the payments inside it and what Stripe kept from each, and the screen states what cards cost you over the last 30 days. If a payout to your bank fails, any phone with notifications on hears about it with Stripe's own reason. All of that is read straight from Stripe and is read-only: nothing in HVAC HQ moves your money, and there is no button here that starts a payout. Not built: refunds from inside the app, cards on file, starting a payout, and a customer-facing pay link on the signing page; a checkout starts from your side today.
How are my AI voice minutes counted?
Your plan's allowance is set by its price: at $1 a minute, a plan includes as many minutes as its monthly fee buys. Run the allowance out and you top up with a minute pack rather than being charged an open-ended overage. Every pack costs less per minute than the plan rate, so planning ahead is never punished. Call length comes from the phone platform's own per-call record, so usage is measured rather than estimated; a call that arrives without a recorded length is shown as unmeasured instead of being guessed at. If auto top-up is on (it is by default) a pack is added the moment the allowance runs out, so the line never stops answering mid-season. You can switch that off in Settings. What is not automated is the money: a pack is never charged to your subscription card automatically. It is recorded as owed and settled with us directly.
Security & data
How secure is my data?
Your business records (jobs, customers, technicians, price book, documents, balances) are scoped on the server from your session cookie, never from a body field, query parameter or header. Ask for another business's record and you get a not-found rather than a permission error, so ids cannot be probed. Three surfaces sit outside the cookie deliberately and carry their own per-business secret instead: the phone agent's data bridge, signed with your line's own token; the embedded website widget's key; and the tech portal's code, which opens nothing until a technician's own PIN is entered. A signing link is the credential for the customer holding it. Passwords and technician PINs are stored only as scrypt digests and session tokens only as hashes, and those digests are stripped before any response. Sign-in is throttled on the account and the IP together, and a request-screening layer with per-IP rate limits on the API sits in front of the app. What we will not overstate: those throttles are in-memory per server process, the phone-line admin screen spans the whole install rather than one business, the database file is not encrypted at rest, and HTTPS depends on how your instance is deployed.
Are you SOC 2, ISO 27001, HIPAA or PCI certified?
No. HVAC HQ holds no SOC 2 report, no ISO 27001 certificate, and no HIPAA or PCI attestation, and we are not putting a badge on the page we cannot back. Two different things touch a card here, and neither one puts a card number on our servers: your customers' card payments run through your own Stripe or PayPal account, on Stripe's or PayPal's own hosted pages, so the number goes to the processor and never to HVAC HQ; and your own subscription to HVAC HQ, including the $7 test drive, runs through Stripe's Checkout and hosted billing portal the same way. If an insurer or a commercial customer needs a specific attestation, ask us what we can actually evidence before you commit to it.
Who on my team can see what?
Four roles: owner, office manager, dispatcher and technician. The owner is the account: billing, plans and teammates, the phone number, the sending domain, the payment processor keys, and the website widget's key. An office manager runs the business beside them: payroll and timesheets, the price book, imports, maintenance plans, the scheduling rules, the technician roster and portal code, the business profile, and the answers the phone agent gives. Dispatchers and technicians get the day to day (the board, customers, documents, the payment ledger) and deliberately none of the settings above. The owner can change a role or take a login back at any time: the last owner can never be demoted or removed, nobody can remove their own login, and either change signs that person out everywhere immediately. Two things ask for a technician's own PIN rather than a login: signing in to the tech portal, and halting an emergency escalation. Hand logins out with all of that in mind.
Are my calls recorded, and how is voice data handled?
Calls are transcribed, and that transcript is part of what you get. Speech is converted to text in real time so the agent can take the details, book into a real window and triage an emergency, and what lands in your account is the call log with its transcript and metadata, a summary row per call, plus whatever the call produced: a job, an emergency, a customer record. Raw call audio is a different matter: it is kept only as long as processing requires and deleted once that is done. Recording a call to keep the audio is a separate per-line setting that is off unless someone turns it on. The spoken conversation itself runs on our platform's telephony service. Either way, the call-recording and notification rules where you and your callers are located still apply to you, so see the Privacy Policy for what is kept and for how long.
Who owns my data, and can I export or delete it?
You do. We do not sell your business data and we do not share it between businesses on the platform. Self-serve export and self-serve account deletion are not built yet, so email privacy@hvac-hq.com and a person handles it. The same goes for removing an individual call-log row: there is no button for it today.
Still have a question?
Ask the assistant in the corner of this page, or send us a note, and a person answers.