RenewalFlow audits every renewal in your HubSpot portal, flags the broken ones against 14 integrity rules, and pushes the clean ones back as deals.
Read-only on free. We never store deal data we don’t need to display.
Every renewal scored against 14 rules. Failures grouped, warnings flagged.
Triage blocked deals, approve drafts, leave notes. The audit log lives next to the row.
Pro tier. One renewal or 200, safe to retry, with automatic recovery from transient failures.
The same checks your RevOps team would write by hand if they had a free Thursday afternoon. Without the free Thursday afternoon.
A renewal candidate without both dates, or with start on/after end, can’t be pushed cleanly.
rule: start_date_before_end_dateRenewal candidate with a zero, null, or negative deal amount.
rule: amount_positiveDeal isn’t associated with a company. The push target is ambiguous.
rule: company_association_existsSum of line items differs from the deal amount by more than 1% or $1.
rule: line_items_sum_matches_amountDeal associated with more than one company. Push target is ambiguous.
rule: single_company_associationPrimary contact on the renewal has no email. The renewal notice goes nowhere.
rule: contact_has_email+ 8 more · duration sanity, owner inheritance, deal-stage presence, line items exist, line-item prices, line-item quantities, required fields, contact associations
No seats, no usage tiers, no sales calls.
For RevOps teams that want to see what’s broken before paying anyone.
For teams that want renewals back in HubSpot without copy-pasting from a CSV.
Billed monthly in USD via Stripe · No annual commit · Cancel from inside the app
You connect HubSpot with read-only OAuth scopes, and the full audit dashboard is yours forever. Every integrity check, every blocked deal, your entire renewal pipeline. The only paid action is writing renewals back into HubSpot. If all you want is the audit, you never need to enter a card.
HubSpot tells you a deal exists. RenewalFlow tells you whether it’s safe to renew, by checking for missing dates, broken line items, and ambiguous associations. And then it does the part HubSpot can’t: generate a renewal deal from the parent, with the right stage, owner, and line items copied over.
On free, we ask for read-only access to deals, companies, contacts, and line items. Upgrading to Pro adds the matching write scopes, and only then. We re-prompt OAuth at upgrade so the scope change is explicit.
We cache deal, company, contact, and line-item records to power the dashboard and integrity checks. Encrypted at rest. We never store credentials beyond the OAuth refresh token. Revoke from HubSpot at any time; doing so wipes the cache within 24 hours.
Yes. From inside the app, one click into the Stripe billing portal. You keep push access through the end of the billing period, then drop to the free tier. Your audit dashboard, history, and notes stay intact.
Every renewal carries a unique key, so a retry never creates a duplicate. Transient failures (429s, 5xxs) retry with exponential backoff. A persistent failure shows up on the row with the HubSpot error attached, ready to investigate or retry.