How to run nps and csat surveys as Professional Services Founders

Customer SupportFor Professional Services Founders2 apps12 steps~24 min to set up

You're a 12-person consultancy. Client satisfaction lives in your head, in scattered email threads, and in the occasional verbal debrief after a project wraps. You know you should be running NPS surveys after each engagement and CSAT checks at key milestones, but the 'system' is a Google Form you built in 2023 that three people have actually filled out. You don't have a CX team. You have you, a senior consultant who's already billing 90% of her time, and a Notion page that says 'survey clients quarterly' with no owner. Renewal conversations catch you off guard because you had no signal that the client was drifting. Churn is invisible until it isn't.

Customer SupportFor Professional Services Founders2 apps12 steps~24 min to set up
Outcome

What you'll set up

An automated NPS survey that goes out via Gmail after every project close, with responses flowing into a Starch dashboard so you can see client health at a glance — no manual export required.
A CSAT trigger tied to project milestones that sends mid-engagement pulse checks and flags any score below your threshold directly to your Slack, so you catch problems before the retainer renewal conversation.
A client health view inside Starch that combines NPS scores, CSAT trends, email sentiment from Gmail threads, and open deal data from HubSpot so you walk into every QBR knowing exactly where you stand.
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.

Apps used
Data sources & config

Starch syncs your HubSpot data on a schedule — deal stages, contacts, company records — and syncs your Gmail on a schedule for thread history and outbound survey delivery. Slack is connected from Starch's integration catalog; the agent queries it live to post alerts when scores drop. Google Calendar is synced on a schedule to track project milestone dates that trigger CSAT sends. Survey response capture runs through browser automation where a dedicated form tool isn't already connected.

Prompts to copy
Build me a client health dashboard that shows NPS score, last CSAT rating, days since last email contact, and open retainer value for each active client. Pull client and deal data from HubSpot and email history from Gmail.
Create an automation that sends an NPS survey email via Gmail 3 days after a HubSpot deal moves to 'Project Closed.' Log the response in the client record and alert me in Slack if the score is 6 or below.
Build a CSAT survey automation that triggers at the 30-day and 60-day mark of any active retainer. Send via Gmail, capture the 1-5 rating and a comment field, and add the result to the client's record in my CRM.
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 your deals, contacts, and pipeline stages on a schedule — this is how it knows when a project closes and who the client contact is.
2 Connect Gmail as a scheduled-sync provider. This is your survey delivery channel and the source of email thread history that feeds into the client health view.
3 Connect Slack from Starch's integration catalog so the agent can post real-time alerts when an NPS score drops below your threshold — no manual checking required.
4 Connect Google Calendar as a scheduled-sync provider so Starch can read project milestone dates and fire CSAT surveys at the 30- and 60-day marks of active retainers.
5 Open the CRM app in Starch and describe your client health schema: 'I want a client record that shows company name, primary contact, current retainer value, last NPS score, last CSAT rating, and days since last email.' Starch builds that view against your live HubSpot and Gmail data.
6 Set up the post-project NPS automation: tell Starch 'When a HubSpot deal moves to Closed Won and the type is Project, wait 3 business days, then send an NPS email from my Gmail to the primary contact. Use this template: [paste your 2-question NPS email]. Log the numeric response and any comment back to the client's CRM record.'
7 Set up the mid-retainer CSAT automation: tell Starch 'For any deal tagged as Retainer in HubSpot, send a CSAT survey email at day 30 and day 60 from the deal start date. Capture a 1-5 rating and an open comment. Write the result into the client record.'
8 Configure the alert rule: 'If any NPS response is 6 or below, or any CSAT rating is 2 or below, post a Slack message to #client-health with the client name, score, their comment, and the primary contact's email.'
9 Build the client health dashboard: tell Starch 'Show me a table of all active clients sorted by lowest NPS score first. Columns: client name, retainer value, NPS, CSAT trend (last 3 scores), days since last Gmail thread, and renewal date from HubSpot.' This becomes your weekly QBR prep view.
10 Run a backfill: if you have historical survey responses sitting in a Google Sheet or an old Typeform export, tell Starch to import them and map them to the right client records so your trends don't start from zero.
11 Set a weekly digest automation: 'Every Monday at 8am, email me a summary of client health — any NPS or CSAT responses received in the last 7 days, any clients who haven't been contacted in 21+ days, and any retrenewals due in the next 45 days.'
12 Review the first month of responses, then tell Starch to adjust the survey cadence or threshold rules based on what you're seeing — no rebuilding required, just describe the change.

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 Retainer Health Review — Meridian Strategy Group

Sample numbers from a real run
Clients on active retainer8
NPS surveys sent (post-project, Q2)11
NPS responses received9
Average NPS score47
CSAT surveys sent (30- and 60-day triggers)14
Clients flagged below threshold (NPS ≤ 6 or CSAT ≤ 2)2
Retainer revenue at risk (flagged clients)68,000

Meridian Strategy Group, a 12-person operations consultancy, had two retainer clients they thought were happy. One, a $42,000/year logistics client, gave an NPS of 5 and left a comment about 'not enough senior face time.' The other, a $26,000/year manufacturing client, hit CSAT of 2 at the 60-day mark with a note about deliverable turnaround. Neither flag would have surfaced before the renewal call under the old system — which was no system. With Starch, the Monday digest landed in the founder's inbox with both alerts, the Gmail thread history showing the last contact was 19 days ago, and the HubSpot renewal dates: one in 38 days, one in 52 days. The founder had two weeks to get ahead of both conversations instead of walking into them cold. The logistics client renewed at the same rate after two additional senior check-ins were added to the engagement scope. The manufacturing client negotiated a reduced retainer. Total retained: $42,000 of the $68,000 at risk — and the founder knew it was coming.

Measurement

How you'll know it's working

Net Promoter Score by client and by service line (not just an aggregate)
CSAT trend per client over the retainer lifetime (are scores going up or drifting down?)
Days between project close and survey response (how fast are you getting signal?)
Percentage of active clients flagged below threshold in rolling 90 days
Retainer renewal rate correlated against NPS score at last touchpoint
Comparison

What this replaces

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

Typeform + Zapier + HubSpot
You can wire this yourself in a weekend, but you're maintaining three separate accounts, the Zaps break when HubSpot's schema changes, and the survey responses live in Typeform while your client records live in HubSpot — no unified health view without a custom report.
Delighted or Medallia
Dedicated NPS platforms with good benchmarking data, but they don't know your HubSpot deal stages, your Gmail thread history, or your retainer renewal dates — so you still have to manually connect client health signals to business context.
HubSpot Service Hub
Native to your CRM which is a real advantage, but the survey and feedback tools are gated behind the Service Hub tier, which starts to get expensive fast for a 12-person firm that primarily needs this for 8–15 retainer clients.
Google Forms + manual follow-up
Free and you already know how to use it, but responses don't route anywhere automatically, there's no alert when a score drops, and the 'system' only works when someone remembers to send the link.
On Starch RECOMMENDED

One platform — crm, founder inbox 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 actually send the survey emails, or does it just draft them for me to send?
Starch sends them via your connected Gmail account on the schedule you define. The emails come from your actual address, not a generic survey platform address, which tends to get better open rates for a consultancy where the client relationship is personal. You write the template once; Starch handles the sends.
Where do the survey responses go? I don't want to manage another inbox or dashboard.
Responses flow directly into the client record in your Starch CRM and update the client health dashboard automatically. If a score drops below your threshold, you get a Slack alert. You don't have to check anything — the signal comes to you.
We use HubSpot for our CRM. Does Starch replace it?
No, and it doesn't need to. Starch syncs your HubSpot data on a schedule — deals, contacts, pipeline stages — and builds views and automations on top of it. Your team keeps using HubSpot for what they're used to. Starch is the layer that connects HubSpot signals to Gmail history, survey responses, and renewal dates in one place.
Is Starch SOC 2 certified? Our clients are asking.
Not yet — Starch is not currently SOC 2 Type II certified. If that's a hard requirement for a client contract or your own compliance posture, that's worth knowing upfront. It's on the roadmap.
What if a client responds to the survey email with a long reply instead of just a score?
Gmail syncs those replies back to Starch, and the agent can read the thread and summarize the sentiment for you. You'd tell Starch: 'If a client replies to a survey email with a message longer than one sentence, summarize the key concern and add it to their CRM record.' It won't replace reading the email, but it means the insight lands in the right place instead of getting buried.
Can I customize the survey questions? We do NPS differently for project work vs. ongoing retainers.
Yes. You describe the two survey types to Starch — one for project closes, one for retainer milestones — with different questions and different trigger conditions. Each automation is configured separately. You're not locked into a generic template.
What happens if the HubSpot deal stage naming doesn't match what I told Starch to watch for?
Starch reads your actual HubSpot schema when it syncs, so you can tell it 'trigger when a deal moves to the stage called [your exact stage name].' If your stage names are inconsistent across pipelines, Starch will surface that when you're building the automation — which is honestly useful information on its own.

Ready to run run nps and csat surveys on Starch?

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

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