For subscription-based and contract-driven businesses, renewals are the lifeblood of revenue. Yet an alarming number of companies manage renewal dates in spreadsheets, send manual reminder emails, and process billing updates by hand. The result: contracts lapse because nobody noticed the renewal date, customers churn because the renewal experience was clunky, and revenue leaks because price escalation clauses are not applied consistently. Automating contract renewals and billing addresses every one of these failures and, according to industry data, can reduce involuntary churn by 25-30%.
This tutorial walks you through building a complete contract lifecycle automation system that tracks renewal dates, executes pre-renewal campaigns, processes billing, handles failed payments, and syncs everything to your accounting system.
Step 1: Centralize Your Contract Data
The first prerequisite is a single source of truth for all contract information. If your contracts live in file cabinets, email threads, and scattered Google Docs, no automation can help you. Centralize every active contract into a structured database with these fields:
- Contract ID: Unique identifier
- Customer name and contact email
- Start date and end date
- Renewal type: Auto-renew, opt-in renewal, or one-time
- Contract value: Monthly or annual recurring revenue
- Price escalation clause: Annual increase percentage, if applicable
- Payment method on file: Credit card, ACH, invoice
- Account owner: The internal rep responsible for the relationship
- Renewal status: Active, Pending Renewal, Renewed, Churned
Use Airtable, HubSpot deals, Salesforce opportunities, or a dedicated contract management tool like PandaDoc or Ironclad. The database becomes the trigger source for every downstream automation.
Five-phase renewal timeline with built-in dunning sequence for failed payments
Step 2: Build the Pre-Renewal Campaign
Renewals should never surprise customers. Build a three-touch pre-renewal campaign triggered by the contract end date. Create a Make.com scenario that runs daily, scans your contract database for contracts approaching key milestones, and triggers the appropriate action:
90 days out: Send an internal Slack notification to the account owner. Include the contract value, customer health score (if you track one), and any open support tickets. This gives the account team time to address issues before the renewal conversation. If the contract value exceeds a threshold, create a CRM task for a proactive check-in call.
60 days out: Send the customer a personalized email previewing their renewal. Include their current plan, any price changes (applying the escalation clause), and a summary of their usage or value received. For customers on annual contracts with a 3% annual increase, calculate and display the new price so there are no surprises.
30 days out: Send a final renewal notice with explicit action items. For auto-renew contracts, confirm the payment method on file and give them a deadline to update it. For opt-in renewals, include a digital signature link (DocuSign or PandaDoc) to accept the new terms.
Step 3: Process the Renewal Billing
On the renewal date, the automation executes the billing action based on the contract type. For auto-renew contracts with a credit card on file, charge the card via Stripe's subscription billing or a direct charge API call. For ACH-billed customers, initiate the bank transfer through your payment processor. For invoice-billed customers, generate and send a new invoice in QuickBooks with the updated renewal amount.
Critical implementation detail: apply price escalation clauses automatically. If the contract specifies a 3% annual increase, the automation should calculate the new amount (previous amount multiplied by 1.03), update the contract record with the new value, and use that new amount for billing. Never rely on someone remembering to manually update prices -- that is pure revenue leakage.
Step 4: Handle Failed Payments with Dunning
When a renewal charge fails -- expired card, insufficient funds, bank decline -- you need an automated recovery sequence. This is called dunning, and it recovers 20-40% of otherwise-lost revenue. Build this four-step dunning sequence:
- Day 0: Retry the charge automatically. Many failures are transient (bank processing delays), and a simple retry succeeds 15% of the time.
- Day 1: Send a friendly email: "We were unable to process your renewal payment. Please update your payment method here: [link]." Include a direct link to your payment update page.
- Day 3: Send a second email with more urgency: "Your account renewal is at risk. Update your payment to maintain uninterrupted service." Retry the charge again.
- Day 5: Send an SMS: "Action needed: your [Company] account will be suspended on [date] unless payment is updated. Update here: [link]."
- Day 7: Escalate to the account manager with a Slack alert and a CRM task for personal outreach. Retry the charge one final time.
If the payment is recovered at any step, immediately stop the dunning sequence, process the renewal, and send a confirmation. This stop logic is identical to the approach in our payment reminders tutorial.
Step 5: Sync to Accounting and Generate Reports
After successful renewal billing, two things must happen in parallel. First, create a sales receipt or invoice in your accounting system (QuickBooks or Xero) with the renewal amount, customer reference, and the correct revenue recognition period. For annual contracts paid upfront, set up a deferred revenue schedule if your accounting requires it.
Second, update your contract database: set the new start date, new end date (one year from renewal), and reset the renewal status to "Active." This ensures the next renewal cycle triggers on schedule without any manual intervention.
Successful renewal triggers parallel accounting entry, database update, and customer confirmation
Step 6: Build the Renewal Dashboard
Create a dashboard that gives your leadership team visibility into the renewal pipeline. Key metrics to track: total contracts up for renewal in the next 30/60/90 days, total ARR at risk, renewal rate (target: 85%+ for B2B), involuntary churn rate (failed payments that were not recovered), and average revenue per renewal (to track the impact of price escalation clauses).
Segment the dashboard by contract size and customer segment. Enterprise renewals need different handling than SMB renewals, and your automation rules should reflect that. Enterprise contracts might get a personal call from the account executive 90 days out, while SMB contracts rely entirely on the automated email sequence.
For a deeper dive into automating the billing side, explore our invoice automation guide. If your renewal process involves generating updated contracts with new terms, document automation tools integrate well with this workflow. And to see how contract data feeds into broader business analytics, our report generation tutorial covers the reporting layer.
Need Help Setting This Up?
Our automation engineers can build this workflow for you in days, not weeks. Get a free process audit to see exactly how it would work for your business.
Book Your Free Process Audit