How to track renewals and expansion as Professional Services Founders

Customer SupportFor Professional Services Founders3 apps11 steps~22 min to set up

Retainer renewals at a 12-person consultancy don't announce themselves. They're buried in a HubSpot deal that hasn't been touched in 90 days, or in a Gmail thread you half-remember, or in a Stripe invoice that recurs until the client quietly cancels. Expansion conversations — upselling a strategy retainer into an implementation engagement — happen by accident when you're on a call, not because you had a system. You're manually scanning deals every week trying to remember who's up for renewal in 60 days. By the time you notice, the client has already started talking to someone else.

Customer SupportFor Professional Services Founders3 apps11 steps~22 min to set up
Outcome

What you'll set up

A renewal tracker that pulls HubSpot deal data and Gmail thread history into a single view, surfacing accounts where a renewal conversation is due in the next 30, 60, or 90 days
An expansion-signal monitor that flags clients with increasing engagement, recent project completions, or unanswered proposals — so you're having expansion conversations from a position of data, not gut feel
Automated weekly Slack digests listing every account due for renewal or showing expansion signals, so neither you nor your senior account lead has to build the list by hand on Friday afternoon
The Starch recipe

Apps, data, and prompts

The combination of Starch apps, the data sources they pull from, and the prompts you use to drive them.

Data sources & config

Starch syncs your HubSpot data on a schedule (contacts, companies, deals, owners) and syncs your Gmail on a schedule (message threads and labels). Slack is connected from Starch's integration catalog and queried live when the weekly digest automation runs. The renewal tracker and expansion dashboard are custom apps you describe in natural language — no templates to configure, no fields to map by hand.

Prompts to copy
Build me a renewal tracker that shows every active client, their contract end date pulled from the HubSpot deal close date, days until renewal, last Gmail thread date, and a status field I can set to 'On track,' 'At risk,' or 'Conversation started.' Group by renewal quarter and sort by days until renewal ascending.
Set up an expansion signal dashboard that flags clients where the last engagement was marked complete in the last 30 days, where a new proposal has been sent but not yet accepted, or where Gmail thread volume has increased in the last two weeks compared to the previous two. Show the account name, signal type, and recommended next action.
Every Monday at 8am, send me a Slack message listing: (1) renewals due in the next 30 days with last-contact date, (2) clients showing expansion signals, (3) any client I haven't emailed in 45 days. Include the HubSpot deal link for each.
Run these in Starch → or paste them into your favorite agent
Walkthrough

Step-by-step

1 Connect HubSpot as a scheduled-sync provider. Starch pulls contacts, companies, deals, and deal owners on a recurring schedule — your pipeline is live in Starch without any manual export.
2 Connect Gmail as a scheduled-sync provider. Starch syncs message threads so the renewal tracker can surface last-contact dates per client account alongside the deal record.
3 Connect Slack from Starch's integration catalog. The weekly digest automation will post directly to your #account-management channel or a DM — your choice.
4 Start from the CRM app in the Starch App Store, then describe the renewal-specific schema you actually need: contract end date, renewal status, expansion potential score, and last outreach date. Starch rebuilds the schema around your fields, not a generic pipeline.
5 Tell Starch to enrich each deal with the corresponding Gmail thread history so you can see, inside the CRM view, the last email date and the last message subject line without switching tabs.
6 Build the expansion-signal view by describing which signals matter to your firm — completed project milestones, proposal sent but not accepted, inbound questions about new service lines, or a spike in email volume. Starch turns that description into a filtered dashboard view.
7 Set up the Monday morning Slack automation. Describe the format you want: renewals sorted by urgency, expansion opportunities ranked by estimated contract value, and a short list of accounts that have gone quiet. Starch schedules and runs this without you touching it each week.
8 Install the Email Agent app to triage renewal-related inbound threads. Tell it: 'Flag any email from an existing client that mentions contract, renewal, budget, or scope changes as high priority and draft a holding reply I can review.' This keeps renewal conversations from getting lost in general inbox volume.
9 Set a manual trigger for the expansion conversation workflow: when you mark a project as complete in the CRM, Starch automatically drafts an outreach email proposing a scope-extension call, using the client's name, project name, and your firm's relevant service line pulled from the deal record.
10 Review the 90-day renewal pipeline every Monday using the Slack digest as your prompt, then use the CRM view to update deal status, log notes from calls, and move clients through the renewal stages — the Starch CRM writes back to HubSpot so your existing pipeline stays current.
11 Run a quarterly expansion review by asking the Starch CRM: 'Which clients have renewed at least twice, have an average deal size above $15,000, and haven't been pitched a new service in the last six months?' Use the answer to build your expansion call list for the quarter.

See this running on Starch

Connect your tools, describe what you want, and the agent builds it. Closed beta is free.

Try it on Starch →
Worked example

Q2 2026 renewal sweep — Meridian Consulting (11-person strategy firm)

Sample numbers from a real run
Arrowood Capital — strategy retainer renewal48,000
Fenn Group — monthly advisory renewal (flagged at-risk)24,000
Lakeshore Brands — project-to-retainer expansion36,000
Brightway Partners — unanswered proposal follow-up18,000

On Monday April 7, the Starch weekly Slack digest landed in the #account-management channel at 8am. It showed four accounts needing attention that week. Arrowood Capital's $48,000 annual retainer was 22 days from renewal — the deal in HubSpot had a close date of April 29 and the last Gmail thread was 18 days old. The founder sent a renewal confirmation email that morning using a draft Starch prepared from thread context. Fenn Group's $24,000 monthly retainer was flagged 'at risk' because email volume had dropped by 60% over the prior three weeks — a pattern the expansion-signal dashboard had caught automatically. A 15-minute check-in call was booked the same day; the renewal was saved. Lakeshore Brands had completed a brand strategy project two weeks earlier; the CRM's post-completion trigger had already drafted an email proposing a three-month implementation retainer at $12,000/month — the founder reviewed and sent it in four minutes. Brightway Partners had an open proposal for $18,000 in change-management work sent 31 days prior with no reply; the Email Agent flagged it as a follow-up priority and drafted a nudge. Total ARR protected or expanded in one week: $126,000. Time spent building the list: zero — it was waiting in Slack on Monday morning.

Measurement

How you'll know it's working

Renewal rate by contract value (percentage of ARR renewed on time, not just headcount of clients)
Average days from renewal-due to renewal-confirmed (lagging indicator of how proactive the process is)
Expansion revenue as a percentage of total new ARR in the quarter
At-risk account response time — how quickly a flagged account gets a logged outreach action
Client quiet-period rate — number of active accounts with no logged contact in 45+ days
Comparison

What this replaces

The other ways teams handle this today, and how the Starch version compares.

HubSpot Sequences + manual deal review
HubSpot can remind you a deal is stale, but it can't cross-reference email silence, completed project milestones, and renewal date in a single view — you're still assembling the picture manually every week.
Kantata / Projector / Deltek PSA
Purpose-built for professional services but priced and scoped for 100+ person firms; a 12-person consultancy will spend three months on implementation and pay for features they'll never use.
Google Sheets renewal tracker
Fast to start, and you probably already have one; the problem is it doesn't pull from HubSpot or Gmail automatically, so it's only as current as the last time someone updated it — which is rarely before the renewal conversation you needed to have last week.
Salesforce + Gainsight
Gainsight is the gold standard for customer success at scale, but the combined cost and admin overhead is designed for SaaS companies with dedicated CS ops, not a founder-led consultancy where you're also the account manager.
On Starch RECOMMENDED

One platform — crm, email agent, sales agent crm all running on connected data. Setup in plain English; numbers stay current via scheduled syncs and live agent queries.

Try it on Starch →
FAQ

Frequently asked questions

Does Starch write back to HubSpot, or is it just reading deal data?
Starch syncs HubSpot data into its own database on a schedule for fast querying. The CRM app you build in Starch can log notes, update status fields, and track renewal stages inside Starch. If you need changes reflected back in HubSpot, that's a workflow you'd describe to Starch — it can push updates via HubSpot's API through the integration catalog. Worth being clear: the scheduled sync is read-optimized; two-way sync is a separate step you configure explicitly.
What if some of my retainer details are in Google Sheets or Notion, not HubSpot?
Both are reachable. Connect Google Sheets from Starch's integration catalog — the agent queries it live when your renewal tracker needs the data. Starch syncs Notion on a schedule. You'd describe to Starch which field in the sheet maps to which field in your renewal view, and it handles the join. No manual export needed.
We invoice through Stripe. Can the renewal tracker flag clients whose invoices are coming up for renewal based on subscription data?
Yes. Starch syncs your Stripe data on a schedule — charges, subscriptions, and invoices. You can tell Starch: 'Show me every Stripe subscription with a renewal date in the next 60 days, matched to the corresponding HubSpot deal, with the last Gmail contact date.' That cross-source view is exactly what Starch is built for.
Is Starch SOC 2 certified? We sometimes handle sensitive client data in proposals and contracts.
Starch is not SOC 2 Type II certified today. If SOC 2 is a hard requirement for your firm or a client contract you're subject to, that's worth knowing upfront. Starch is transparent about this — it's on the roadmap, not available today.
We use Harvest for time tracking and Float for resourcing. Can Starch pull utilization data into the renewal view to flag overserviced accounts?
Harvest and Float are reachable from Starch's integration catalog of 3,000+ apps — the agent queries them live when an app or dashboard needs the data. You could describe a renewal view that includes billable hours logged in Harvest against the contracted amount, so you can see at a glance which accounts are being overserviced before the renewal conversation. If Harvest or Float has a web dashboard you log into, Starch can also automate data extraction through your browser with no API required.
Will the Monday Slack digest still run if I forget to log into Starch that week?
Yes. Automations run on Starch's infrastructure on the schedule you set — they don't depend on you being logged in. The digest will post to Slack at 8am Monday whether or not you've opened Starch since last week.

Ready to run track renewals and expansion on Starch?

Request closed-beta access. Everything is free during beta.

You're on the list! We'll be in touch soon.