How to track prepaid hours and retainers in HubSpot
By Kayabyte
You sell blocks of hours, for example 20 hours a month for a fixed fee, and you want to see how many are left for each client without opening a spreadsheet. HubSpot has no retainer object and no field for time spent, so this takes some building. This guide shows what you can set up with HubSpot alone, what it costs in plan level and manual work, and where an app helps. HubSpot facts last checked 10 November 2026 against HubSpot’s knowledge base.
What HubSpot has and doesn’t have
- No time-spent property on tickets. HubSpot’s default ticket properties include time to close and cumulative time in a status, which measure how long a ticket sat somewhere, not how long anyone worked on it (HubSpot: default ticket properties). Cumulative time in status needs Professional or Enterprise.
- Logged calls and meetings. You can log calls and meetings that happened outside HubSpot, but HubSpot’s article says call duration is not editable in the Log call widget on desktop and suggests a custom property such as Duration if you need it (HubSpot: log activities).
- No prepaid balance. Nothing in HubSpot subtracts hours from a purchased block.
Option 1: properties on the company, filled by hand
- Create number properties on the company (Settings > Properties > Companies): Retainer hours purchased and Retainer hours used. Custom properties exist for any object; the number you can create depends on your subscription (HubSpot: create and edit properties).
- Add a third, Retainer hours remaining. On Professional or Enterprise it can be a calculation property, with a formula of purchased minus used, since equations can use other properties of the same object (HubSpot: calculation properties). On Starter and Free it is another number someone updates.
- Put the three properties on the company sidebar so account managers see them.
It works for a handful of clients. The weak spot is the “used” number: someone has to add up the time and type it in, and nothing records which entries it came from.
Option 2: hours on the ticket, summed to the company
Create a number property on tickets, Hours spent, and have agents fill it in when they close the ticket. On Professional or Enterprise, a rollup property on the company can sum that property across its associated tickets (HubSpot: calculation and rollup properties). Rollups support Sum and can be filtered by association label or by conditions on number and enumeration properties. They add up what is associated, so a month-by-month retainer needs a way to limit the rollup to the current period, and expiring or rolling over unused hours is not something they do.
Option 3: a workflow for the low-balance warning
A company workflow can enroll companies when a filter is true, for example remaining hours below 4, and create a task or send an internal notification to the account manager. Workflows need Professional or Enterprise (HubSpot: create workflows). Creating tasks and sending internal notifications are available workflow actions (HubSpot: workflow actions). By default a record enrols only the first time it meets the trigger, so set re-enrollment, and plan to reset the trigger when a new month starts (HubSpot: enrollment triggers).
Option 4: report on it
Professional and Enterprise accounts can build single-object and custom reports on company properties and export them (HubSpot: custom reports). A report of companies with remaining hours below a number is a quick view for the weekly account meeting.
Where HubSpot’s own tools stop
- Time has to be logged somewhere first, and HubSpot has no place to do that on a ticket.
- Nobody can see which entries make up the balance, or correct one and have the balance follow.
- Monthly renewal, oldest-hours-first draw-down, rollover and expiry are all manual.
- The calculation and rollup properties, workflows and reports need Professional or Enterprise.
Full disclosure: we built an app for this
Retainer Wallet: Prepaid Hours & Time Tracking adds a card to tickets, deals and companies where your team starts a timer or adds time with a description. The time is drawn down from the client company’s retainer, oldest block first, and the balance is written to company properties (hours purchased, used and remaining, percent used, overage, period end and a balance status) that your reports and workflows can use. Monthly retainers renew by themselves, and you choose whether unused hours expire, roll over in full or roll over up to a percentage. Pro adds priority multipliers, one top-up deal when the balance runs low, and client statements. It does not invoice, take payments or give clients a login.
Free covers 1 user and 3 retainers. Starter is USD 29 per month for up to 5 users and unlimited retainers. Pro is USD 59 per month. Every new account gets 14 days of Pro, no card. It installs directly from our site, not from the HubSpot Marketplace.
More detail
- How to track a retainer balance per client
- Time tracking on HubSpot tickets
- Retainer rollover rules
- Client hours statements
- StopWatch, PSOhub, spreadsheets or Retainer Wallet
FAQ
Can HubSpot track retainer hours? Not natively. You can approximate it with number properties on the company, a calculation or rollup property and a workflow on Professional or Enterprise, but the hours have to be entered by hand.
Does HubSpot have time tracking on tickets? HubSpot’s ticket properties measure how long a ticket sat in a status, not time worked. Its knowledge base describes no timer or time entry on tickets.
Do I need Professional or Enterprise to track a retainer balance? For calculation and rollup properties, workflows and custom reports, yes. A manual version with plain number properties works on any plan that allows custom properties.
Questions or corrections: support@kayabyte.dev. HubSpot is a registered trademark of HubSpot, Inc. Kayabyte is an independent developer and is not affiliated with HubSpot.
More guides
- How to audit and clean up HubSpot properties without breaking anything
- How to stop a HubSpot deal reaching Closed won until it is approved
- How to bulk create custom properties in HubSpot from a CSV or spreadsheet
- How to copy properties from one HubSpot account to another
- DealHub or a lightweight approval app for HubSpot deals?
- How to export all properties from HubSpot, with their dropdown options
- How to bulk add dropdown options (and properties) in HubSpot
- HubSpot deal approval options compared: native approvals, workflows, DealGuard and Deal Approvals & Stage Gate
- HubSpot deal approvals without Enterprise: what Free, Starter and Professional can do
- HubSpot discount approval on Sales Hub Professional or Starter
- How to set up discount approvals in HubSpot (deal desk)
- How to see what your HubSpot pipeline looked like last week
- Creating HubSpot properties in bulk: HubSpot import, the API, Lift and Bulk Property Import & Export compared
- HubSpot property naming conventions: a template for internal names, groups and labels
- A weekly stale-deal report in HubSpot, without Enterprise
- Insycle or Bulk Property Import & Export for HubSpot properties?
- How to require approval before a deal moves stage in HubSpot
- How to require fields before a HubSpot deal moves to a stage
- RevOps Deal Desk & CPQ vs Deal Approvals & Stage Gate for HubSpot
- How to stop reps skipping deal stages or moving deals backward in HubSpot
- Export property history in HubSpot: who changed it and when