AI agent workflow · Customer success operations
Prepare upcoming subscription renewal reviews
For customer-success teams managing subscriptions in Stripe and accounts in HubSpot, this guide defines a weekly renewal-readiness review that gathers the evidence before an owner decides what to do.
This workflow connects
1 · Services and tools
How the services work together
The outcome belongs to the complete service chain—not any one integration. Each service contributes a specific input, action, or destination and needs an explicit AgentUse connection.
Stripe
Retrieve subscriptions and billing evidence for the configured renewal window
Stripe MCP server with read-only API access
Retrieve subscriptions and billing evidence for the configured renewal window
Stripe MCP server with read-only API access
HubSpot
Resolve the account, customer-success owner, lifecycle context, and declared renewal fields
HubSpot remote MCP server
Resolve the account, customer-success owner, lifecycle context, and declared renewal fields
HubSpot remote MCP server
Gmail
Read recent approved account correspondence for explicit commitments, objections, and open questions
Google Gmail MCP server (Developer Preview)
Read recent approved account correspondence for explicit commitments, objections, and open questions
Google Gmail MCP server (Developer Preview)
Renewal review artifact
Publish the renewal-readiness queue, evidence, gaps, and terminal receipt as a viewable weekly result
AgentUse artifact tools + schedule
Publish the renewal-readiness queue, evidence, gaps, and terminal receipt as a viewable weekly result
AgentUse artifact tools + schedule
2 · Agent architecture
See which AgentUse agent owns each stage
The workflow needs cross-system judgment but no delegation or external mutation. A single agent can gather Stripe, HubSpot, and Gmail evidence, then leave all commercial decisions and outreach to the named account owner.
One read-only agent is sufficient because every stage shares the same bounded evidence surface and produces one review artifact. Deterministic code should calculate windows and amounts, while the model explains gaps and uncertainty.
renewal-readiness-reviewer
managerCollect the configured renewal window, reconcile subscription and account identity, surface readiness gaps, and publish a weekly evidence-backed queue without contacting customers or changing billing or CRM state.
3 · Map the workflow
Describe the job before choosing tools
The job is not predicting churn from vague sentiment. It reconciles the billing system's upcoming subscription events with the CRM's ownership and the customer's explicit recent correspondence so the account team can see what is known, missing, or contradictory.
Collect
List active and trialing subscriptions whose current period or configured renewal date falls inside the review horizon, with complete pagination.
Resolve
Map each Stripe customer to one HubSpot company using an explicit ID mapping or a unique approved identity match.
Enrich
Retrieve the account owner, declared renewal fields, and recent in-scope Gmail correspondence without treating silence as a negative signal.
Assess
Identify observable readiness gaps such as missing owner, unresolved billing state, cancellation flag, promised follow-up, or conflicting renewal dates.
Prioritize
Order the queue by renewal date and declared business rules, preserving unknown values instead of inventing churn probability or revenue impact.
Deliver
Save a cited weekly queue with one accountable next action per matched renewal and a separate unresolved-identity section.
4 · Audit permissions
Find the real permission ceiling of every connector
Start with the connected identity and token scopes, then inspect the tools the MCP server actually exposes. Labels, folders, and prompt instructions express workflow intent; only credentials, resource ACLs, tool filtering, and runtime policy can enforce it.
Stripe MCP
Partially enforcedWorkflow intent
Credential ceiling
Exposed operations
- • Search API methods
- • List subscriptions
- • List invoices by customer or subscription
- • Write through stripe_api_write when exposed
What is actually enforced
Strengthen it: Use a restricted read key or a project-owned wrapper that exposes only GET /v1/subscriptions and GET /v1/invoices. Do not give the agent stripe_api_write.
List invoices ↗HubSpot MCP
Partially enforcedWorkflow intent
Credential ceiling
Exposed operations
- • Search available CRM objects and properties
- • Read object details allowed by the installed tool set
- • No assumption of vector search or unrestricted activity access
What is actually enforced
Strengthen it: Provision a least-privilege HubSpot user, review the install-time permission list, inspect the live tool inventory, filter unused HubSpot tools in AgentUse, and do not depend on activity objects when Sensitive Data blocks them.
HubSpot MCP permissions ↗Gmail MCP
Partially enforcedWorkflow intent
Credential ceiling
Exposed operations
- • Search paginated threads
- • Retrieve full thread content
- • Draft and label operations when those tools remain exposed
What is actually enforced
Strengthen it: Use a dedicated customer-success mailbox or identity, retain only search_threads and get_thread, and remove draft and label tools.
Gmail MCP setup ↗Renewal review artifact
EnforcedWorkflow intent
Credential ceiling
Exposed operations
- • Save a session-linked Markdown artifact
- • List prior artifact metadata
- • Read prior baseline and renewal IDs when configured
What is actually enforced
Strengthen it: Key the group by Stripe account, renewal horizon, and ISO week; do not grant broad filesystem write access.
AgentUse artifact tools ↗- Provide the Stripe account and mode, active subscription statuses, renewal horizon, relevant price or invoice fields, pagination ceiling, and credential owner.
- Provide the canonical Stripe-customer-to-HubSpot-company property or an approved fallback identity rule with ambiguous examples.
- Provide HubSpot object and property scope, owner field, lifecycle meanings, declared renewal fields, and Sensitive Data status.
- Provide the Gmail identity, approved labels, lookback window, and rules for extracting explicit commitments or objections without inferring sentiment.
- Define readiness categories, date and amount calculations, prioritization rules, materiality thresholds, escalation owners, and success measure.
- Name the customer-success review owner, weekly schedule and timezone, artifact group, baseline policy, and data-retention limit.
5 · Prepare data
Give every input and output field a meaning
Each queue row keeps the subscription and customer identifiers, source-owned renewal date, transparent amount calculation, CRM match, explicit correspondence, readiness classification, and accountable next action. Source receipts keep missing coverage visible.
| Field | Example | Rule |
|---|---|---|
| run_envelope | acct_live_… / 90d / 2026-W37 | Required Stripe account and mode, horizon, timezone, query fingerprint, baseline cutoff, and run ID |
| collection_status | complete / 67 subscriptions / final cursor | Record per-source counts, pages, denied reads, final cursors, errors, and whether the baseline advanced |
| subscription_key | sub_1Q… / cus_R9… | Required Stripe subscription and customer IDs; one queue row per subscription revision |
| renewal_at | 2026-10-15T00:00:00Z | Use the documented subscription period or configured contract field and identify which source owns the date |
| scheduled_amount | USD 24,000 annualized from current recurring items | Show source line items, currency, cadence, and calculation; label estimates and never call them booked revenue |
| account_match | HubSpot company 821 / explicit stripe_customer_id | Record method, matched ID, and confidence; ambiguous or missing matches stay unresolved |
| owner | CS owner 184 / Maya Chen | Use the current explicit HubSpot owner field or unknown |
| correspondence_evidence | Gmail thread 18f… / 2026-09-04 / renewal review requested | Only explicit statements from in-scope messages, with source and observed time |
| readiness_status | needs_owner_action | ready, needs_owner_action, billing_exception, identity_unresolved, or blocked, with stated evidence |
| next_action | Owner reviews open pricing question by 2026-09-18 | One accountable internal action and date; no automatic customer outreach |
| terminal_receipt | incomplete / Gmail page failed / readiness withheld | Complete, incomplete, or blocked, including withheld sections and baseline decision |
6 · Choose approval points
Decide when the agent should ask first
Let routine collection and preparation run on their own. Ask for approval before an action changes an external system or commits you to something. Keep prohibited actions outside the workflow entirely.
Runs automatically
Read bounded Stripe subscriptions and billing evidence, read matched HubSpot account state and approved Gmail threads, calculate declared dates and amounts, classify readiness, and save the weekly review artifact.
Ask for approval
Change a subscription, invoice, discount, CRM owner, lifecycle stage, renewal property, or queue priority; create a task; or draft or send customer communication.
Never allowed
Cancel or modify billing, promise pricing or terms, infer churn probability from silence or sentiment, call estimated recurring value booked revenue, merge ambiguous identities, contact customers, or store credentials in agent files.
Your preparation pack is ready when it contains
Stripe account and renewal horizon
HubSpot identity and owner schema
Gmail correspondence scope
Readiness and prioritization rules
Representative renewal fixtures
Customer-success and finance review owners
7 · Create custom AgentUse agents
Create an agent for your renewal horizon and account model
Validate one historical horizon with finance and customer success, then schedule the read-only review. Keep billing, CRM, and communication changes outside the routine agent.
First run
Reconcile a historical window
Compare subscription coverage, account matches, dates, and owner actions against a known renewal cohort without changing any source system.
Ongoing
Prepare the queue weekly
Refresh the configured horizon, process each subscription revision once, and save one complete or blocked ISO-week artifact.
Review
Let owners decide the intervention
Customer success and finance review gaps, assign work in their normal system, and separately approve any billing or customer action.
Ready to build
Agent creation prompt
Copy this complete build brief into the project workspace you want the agent to update.
Create a production-ready AgentUse workflow that prepares a weekly renewal-readiness review by reconciling upcoming Stripe subscriptions with HubSpot ownership and explicit recent Gmail correspondence. It must not contact customers or change billing or CRM state.
Run `npx agentuse@latest skills get core --full` and `npx agentuse@latest skills get creator --full`. Inspect the installed AgentUse version, model catalog, project conventions, and live MCP tool lists. Use https://docs.stripe.com/mcp, https://docs.stripe.com/api/subscriptions/list, https://docs.stripe.com/api/invoices/list, https://developers.hubspot.com/docs/apps/developer-platform/build-apps/integrate-with-the-remote-hubspot-mcp-server, https://developers.google.com/workspace/gmail/api/reference/mcp, https://developers.google.com/workspace/gmail/api/reference/mcp/tools_list/search_threads, https://developers.google.com/workspace/gmail/api/reference/mcp/tools_list/get_thread, https://developers.google.com/workspace/gmail/api/guides/configure-mcp-server, https://docs.agentuse.io/reference/builtin-tools#artifact-tools, and https://docs.agentuse.io/reference/agent-syntax as implementation references. If a connector cannot return the required data in the unattended runtime, report that source as blocked rather than requesting recurring exports.
Create `agents/subscription-renewals/renewal-readiness-reviewer.agentuse`. Give it Stripe read access only for required GET methods, HubSpot read tools for configured CRM objects and properties, Gmail search_threads and get_thread, AgentUse artifact tools, and read-only access to its exact prior-artifact group when baseline state is required. Expose no Stripe write, Gmail draft or label, HubSpot mutation, or communication tool.
Inputs are the Stripe account and live or sandbox mode, active subscription statuses, renewal horizon, price and invoice fields, pagination ceiling, HubSpot company and owner schema, canonical Stripe customer ID property, approved fallback identity rule, Gmail identity, labels and lookback, readiness categories, date and amount rules, materiality thresholds, review owners, artifact group, timezone, baseline, and retention policy.
Use Stripe's list-subscriptions API through stripe_api_read or an equally narrow read wrapper and paginate to completion. Collect the current period or configured renewal date, cancellation flags, recurring items, customer ID, and status. For each in-window subscription, use the list-invoices endpoint filtered by subscription or customer and paginate it to completion; preserve invoice ID, status, amount_due, amount_remaining, due_date, and status transitions needed to support a billing-exception claim. Do not infer an unpaid or failed state from subscription status alone. Use deterministic code for date windows, currency-safe amount arithmetic, source counts, and fingerprints. Label annualized or future amounts as estimates and never represent them as booked revenue.
Match Stripe customers to HubSpot through an explicit stored customer ID first. Permit a fallback only when normalized billing identity and corroborating account data produce one unique match. Record the method and confidence. One-to-many, conflicting, or missing matches remain unresolved and receive no Gmail search. Read the current owner and declared renewal properties from HubSpot. Account for HubSpot Sensitive Data restrictions and do not depend on blocked activity objects.
For uniquely matched accounts, search only the approved Gmail scope and retrieve full relevant threads. Extract explicit commitments, objections, open questions, or timing changes with thread ID, message ID, and timestamp. Do not infer churn, satisfaction, customer tier, or urgency from silence, tone, or message volume.
Emit run_envelope, collection_status, and one record per subscription revision with subscription_key, source-owned renewal_at, scheduled_amount with calculation, account_match, owner, correspondence_evidence, readiness_status, gaps, uncertainty, and one internal next_action. Status must be ready, needs_owner_action, billing_exception, identity_unresolved, or blocked. Save one Markdown artifact with the queue, unresolved identities, source receipts, and terminal receipt. Incomplete collection prevents baseline advancement and any claim of full coverage.
Run first on a supervised historical horizon, then schedule weekly under AgentUse Serve. Deduplicate subscription work by subscription ID plus the relevant updated or period revision, and output by Stripe account, horizon fingerprint, and ISO week. Done means every in-window subscription is accounted for once, every match and readiness signal is evidenced, every matched row has an owner and dated next action, and no source system changed.
Create fixtures for explicit ID match, unique fallback, ambiguous account, conflicting renewal date, cancellation at period end, unpaid invoice, missing owner, explicit customer concern, silent customer, multi-currency items, pagination failure, and unavailable HubSpot or Gmail source. Run doctor, a complete mock test, deterministic date and amount tests, and one supervised read-only run before scheduling.
At handoff provide the agent path, connector identities and actual tool inventories, source and privacy matrix, data schema and arithmetic rules, exact supervised command, fixture and session evidence, example renewal artifact, known coverage limits, weekly schedule recommendation, and customer-success review checklist. Never request, print, or store credentials in agent files.The agent adapts the implementation to your installed AgentUse version and actual tools.