G2 review asks: find happy, long-tenured customers and draft a personal request
Stripe + Intercom + HubSpot
Who it's for
Marketing and CS teams who want more G2 reviews from customers who are actually happy, with each ask cleared by the account owner first. HubSpot can be swapped for Salesforce, Attio or Pipedrive, and Intercom for Intercom EU if your workspace is EU-hosted.
What you get
Shortlist by owner, and one draft waiting for the owner's OK. Sample output: every company and person in it is fictional.
Stripe: 42 customers with an active subscription older than 12 months. 31 have no failed or overdue invoices in the last year. Intercom: 9 dropped (open bug, complaint or cancellation question in the last 6 months). 4 have no conversations at all, so they are marked 'unknown' and left out. HubSpot: 3 dropped (open ticket or renewal in progress). | Customer | Tenure | Contact | Owner | Why | |---|---|---|---|---| | Quarry Lane Analytics (fictional) | 26 months | Sam Whitlock | Priya Raman | Thanked support twice in May for the export fix | | Fernhill Software (fictional) | 19 months | Dana Okafor | Priya Raman | Asked for advanced reporting tips, no issues raised | | Larkspur Freightworks (fictional) | 14 months | Alex Rivera | Jordan | Onboarded a second team in August | Draft for Priya to OK (text only, not sent): Subject: A quick favour? Hi Sam, It's been great seeing the Quarry Lane team get value from the export changes this spring. If you have five minutes, would you share an honest review of your experience on G2? Good or bad, it helps other teams decide. https://review-link.example/quarry-lane Thanks either way, Priya No customer has been contacted. Each owner needs to OK their drafts first.
Time and cost
Estimate About 20–30 minutes a month, most of it reading the shortlist and drafts.
Assumptions: One monthly run over about 40 active subscriptions, ending with about 10 drafts across 3 owners.
- Stripe: Reads only: active subscriptions, their customers and the last year of invoices. Credit use not confirmed by Stripe.
- Intercom: Reads only: a contact or company lookup per customer, plus their conversations from the last few months. Credit use not confirmed by Intercom.
- HubSpot: Reads only: one company search per remaining customer, with the owner, open deals and open tickets. Credit use not confirmed by HubSpot.
Exact credit costs depend on your plan with each vendor. Check the tool pages before a large run.
MCP servers
Every server is confirmed in: Claude
-
ClaudeChatGPTClaude CodeCursorRead + writeCredits not confirmed
https://mcp.stripe.com -
ClaudeClaude CodeCursorRead + writeCredits not confirmed
https://mcp.intercom.com/mcp -
ClaudeChatGPTRead + writeCredits not confirmedNeeds admin or IT
https://mcp.hubspot.com
Set up in a chat app
Every server in this recipe is confirmed for Claude. Connect each one, then paste the prompts below into one conversation.
- Connect Stripe without code (Claude, ChatGPT)
- Connect Intercom without code (Claude)
- Connect HubSpot without code (Claude, ChatGPT)
Developer setup
Auth setup and mcp.json for Claude Code and Cursor
- Stripe: Sign in with OAuth, or pass an API key as a Bearer token for headless use.
- Intercom: Sign in with OAuth, or pass an API key as a Bearer token for headless use.
- HubSpot: Sign in with OAuth in your client (run
/mcpin Claude Code). Do it once interactively, and the client stores and refreshes the token.
Put this in .mcp.json (Claude Code, project root) or ~/.cursor/mcp.json (Cursor). Swap the example keys for your own, and don't commit real ones. Remove the // comment lines if your client requires strict JSON.
{
"mcpServers": {
"stripe": {
"url": "https://mcp.stripe.com"
// headless alternative: "headers": { "Authorization": "Bearer YOUR_STRIPE_API_KEY" }
},
"intercom": {
"url": "https://mcp.intercom.com/mcp"
// headless alternative: "headers": { "Authorization": "Bearer YOUR_INTERCOM_API_KEY" }
},
"hubspot": {
"url": "https://mcp.hubspot.com"
}
}
}
Step-by-step prompts
- In Stripe, find customers with an active subscription that started at least {months} months ago and no failed or overdue invoices in the last 12 months. Show me a table with the customer, subscription start, plan and last invoice status. Don't change anything.
- For each of those customers, find their company and contacts in Intercom and read their conversations from the last 6 months. Drop anyone with a complaint, open bug, refund or cancellation question. Show me who's left with the main contact, the number of conversations, and a one-line summary.
- Find each remaining company in HubSpot. Show me the company owner, any open deals and any open tickets. Drop companies with an open ticket or a renewal in progress. Group the final list by owner. Don't change anything.
- For each customer, draft a short personal note from the owner asking for an honest G2 review, using {review_link}. Mention one specific thing from their history. Offer nothing in return. Show me the drafts grouped by owner, as text only. Don't send anything.
- Write one short message per owner listing their customers and drafts, and asking them to OK or remove each one. Show me the text only. Don't contact any customer.
Run it on a schedule (optional)
- Run it monthly or once a quarter, so the same customers aren't asked too often.
- In a scheduled run, stop at the shortlist and drafts. Send them to yourself, and get each owner's OK before any customer hears from you.
- Keep a simple list of who was asked and when, and tell the run to skip anyone asked in the last 12 months.
Where this goes wrong
- Quiet support history read as happiness. A customer with no Intercom conversations may just not use the product much. Show the conversation count, and mark zero as 'unknown' instead of happy.
- Stripe customer doesn't match the Intercom company. Billing names and emails often differ from the people who use the product. Match on email domain, list anyone without a clear match, and skip them.
- Asking the billing contact instead of a user. The Stripe customer email is often finance. Use the Intercom contact who actually talks to support, and check the title in HubSpot before drafting.
- Incentive or pressure creeping into the draft. Read every draft for gifts, discounts, credits, swag or words like 'positive' or '5-star'. The ask should be for an honest review with nothing offered in return.
Gotchas
- Review sites set their own rules on incentives and on who you can ask. Read G2's current review guidelines before anything goes out, and keep the ask neutral.
- HubSpot's setup needs an admin: non-admin users need a Super Admin to approve the connector first.
- Intercom's Claude directory connector covers US-hosted workspaces. EU workspaces add Intercom EU as a custom connector, and AU-hosted workspaces aren't supported. On Claude Team or Enterprise an org Owner adds it, and ChatGPT support isn't confirmed.
- Stripe's tools can also create and change customers, invoices and subscriptions, so this recipe tells it to read only. On Claude Team and Enterprise, an owner must add the Stripe connector to the workspace first.
- Using Salesforce instead? Use a SOQL query for the account owner and open Opportunities on each account. It needs Enterprise Edition or above and an admin-created External Client App, ChatGPT needs developer mode, and every tool call counts against the org's daily API request quota.
Download
Get the prompts, guardrails and expected output as one Markdown file. Paste it into a Claude Project or ChatGPT project's instructions, or save it as CLAUDE.md for Claude Code.
New recipe and breakage notes every week
Vendor sites: HubSpot. If we join an affiliate program, these links will be labeled as affiliate links.