Software companies
How to shut down a SaaS product: customer data export and notice plan
By SourceX Editorial · Updated
Short answer
To shut down a SaaS product, read what your contracts promise, announce the end date in writing earlier than the longest required notice period, give customers a tested self-serve export before access ends, then delete or return their data as agreed. Keep your own company records, such as Jira, GitHub and finance files, separate from customer content.
Key takeaways
- Read every customer agreement and the terms of service before announcing anything; notice, export and refund duties start there.
- A shutdown notice plan runs in stages: announcement, reminder, final notice, read-only access and deletion.
- An export is only useful if it includes record IDs, timestamps, attachments and a field dictionary.
- Customer content leaves or is deleted on the customer's terms; issues, code and finance files remain company records.
- Confirm deletion at every subprocessor and in every backup before cancelling hosting, and keep the proof.
What does a SaaS shutdown plan need to cover?#
A SaaS shutdown plan covers six workstreams that run in parallel: contracts, customer notice, data export, billing, deletion and the company's own records. Treating the shutdown as one announcement email is how many end in disputes or in support backlogs that outlive the product.
Assign one owner to each workstream and one person to the overall date. In a small software company the CTO usually owns export and deletion, the CEO owns notice and contracts, and finance owns refunds and final invoices.
- Contracts: master agreements, terms of service, order forms, data processing agreements and any negotiated transition-assistance clauses.
- Notice: who is told, in what order, through which channels, and what each message must contain.
- Export: a self-serve download, API access and hands-on help for accounts with unusual data volumes.
- Billing: stopping renewals, prorated credits or refunds, and final invoices.
- Deletion: production data, backups, logs and copies held by subprocessors.
- Company records: issues, code, internal documents and finance files the company keeps after the product ends.
What should the customer notice timeline look like?#
The customer notice timeline should start from the longest notice period any contract requires and add a margin on top. Your terms of service may set a default, but enterprise order forms often contain negotiated notice or transition terms that override it, so review those accounts first.
Send every notice through at least two channels, such as email to the account owner and billing contact plus an in-app banner. Keep a log of who received each notice and when; that log is your evidence if a customer later says they were never told.
The 90, 60, 30 and 0-day offsets in the table are an example planning pattern, not a legal standard. If any contract requires a longer notice period, move the whole schedule earlier so the announcement still clears it.
| Stage (example offset) | What customers receive | What the team does |
|---|---|---|
| Before announcement | Nothing yet | Reviews contracts, tests the export, drafts a migration guide and FAQ |
| Announcement (day -90) | End-of-service date, export instructions, refund terms, a support contact | Turns off new sign-ups and renewals; briefs support and sales |
| Reminder (day -60) | The date again and a direct link to the export | Contacts accounts that have not exported; offers help to the largest |
| Final notice (day -30) | Last export date and the date access becomes read-only | Confirms enterprise accounts in writing; finalizes the deletion runbook |
| Shutdown day (day 0) | Read-only access or a closed login with an export-request contact | Stops processing new data; keeps the export-request inbox staffed |
| After shutdown | Deletion confirmation on request | Deletes production data and backups on the stated schedule and records proof |
- 01Your work records
- 02Personal details removed
- 03You approve the release
- 04Licensed to AI developers
How should customers export their data before access ends?#
Customers should be able to export their data themselves, in a standard format, without filing a ticket. CSV suits tabular records, JSON suits nested objects such as comments and activity, and a zipped folder suits attachments when it includes a manifest mapping each file to its parent record.
Test the export on your largest and oldest accounts before you announce. Exports that work on a demo tenant often time out on accounts with years of history, and a failed export during the final notice period puts the most pressure on a small team.
- Stable record IDs and parent IDs, so relationships survive the export.
- Created and updated timestamps with time zones.
- Attachments and files themselves, not links that will stop working.
- User and owner fields, so customers can rebuild assignments elsewhere.
- A field dictionary explaining custom fields, status values and codes.
- A short guide to importing into the replacement products customers most often choose.
What happens to customer data after the product is turned off?#
Customer data after shutdown is deleted or returned exactly as your data processing agreement and terms describe. Many agreements let the customer choose between return and deletion, and some require written certification of deletion on request.
Deletion has to reach every copy: database snapshots, object storage, search indexes, logs that captured request bodies, and data held by subprocessors such as email delivery, analytics or error tracking. Privacy laws such as GDPR or CCPA may also apply depending on where customers and their users are, so confirm the deletion plan with counsel.
| Data location | Default handling | What to confirm |
|---|---|---|
| Production database | Delete after the final export date | The date matches what the notices said |
| Backups and snapshots | Expire or delete on a stated schedule | Your deletion statement covers backups too |
| Logs and error tracking | Purge, or let retention expire | Logs did not capture customer content in request bodies |
| Subprocessors | Request deletion and keep confirmations | Every subprocessor on your published list is covered |
| Support tickets about customers | Keep as company records only where terms allow | Tickets quoting customer content follow the same rules |
| Billing and tax records | Retain for finance and tax purposes | Retention is limited to what those rules need |
Which records does the company keep after a shutdown?#
The company keeps its own operating records after a shutdown: Jira or Linear issues, GitHub or GitLab repositories with pull requests and reviews, Confluence or Notion documents, internal Slack history, release notes and finance files. These describe how the company built and ran the product, which is different from the content customers stored in it.
Export those records before you cancel the tools that hold them, because vendor windows after termination can be short or nonexistent. Salesforce's Main Services Agreement makes customer data available for export only if requested within 30 days after termination, and HubSpot's terms say most hubs give no access to customer data after the subscription ends. On Slack's Free plan, messages and files older than one year are permanently deleted. Store exports in company-controlled storage with a short index of what each archive contains.
Support tickets sit in between: the conversation is a company record, but it may quote customer content, so tag tickets for a rights review rather than keeping or deleting them by default.
Kept records can have later uses, including licensing engineering and support history to AI developers. That happens only after a rights review, with customer personal data excluded or de-identified, which is why a clean separation at shutdown matters.
Illustrative: sunsetting a fleet maintenance add-on#
Illustrative: a fictional vertical software company sells a fleet maintenance scheduling add-on beside its main dispatch product. Usage is low, the add-on depends on an aging mapping library, and leadership decides to retire it while keeping the core product.
The CTO finds that two enterprise customers have order forms with longer notice and transition-assistance terms, so the timeline is built around them. The team ships a CSV and JSON export with a field dictionary, tests it on the oldest account, and sends reminders by email and in-app banner.
After the final export date the team deletes customer data, collects subprocessor confirmations, and archives the add-on's Jira project, repository and design documents in company storage. Later, that archived engineering history is reviewed for licensing, with customer content excluded from the start.
Shutdown mistakes that create disputes#
Most shutdown disputes come from a gap between what the notice promised and what actually happened. These are the mistakes worth checking for before the announcement goes out.
- Announcing a date before checking negotiated notice terms in enterprise contracts.
- Shipping an export that drops attachments, comments or custom fields.
- Cancelling hosting or a subprocessor before deletion is confirmed and recorded.
- Deleting company records such as issues and repositories along with customer data.
- Leaving the support inbox unanswered during the final notice period.
- Promising backup deletion on a schedule the infrastructure cannot meet.
How SourceX approaches records from a retired product#
SourceX looks only at the company's own records from a retired product, such as engineering issues, code reviews, release history and support conversations, and starts with a metadata fit check. Nothing is shared during the initial assessment; the company describes its systems, years of history and record families.
If a package proceeds, it follows the SourceX five-step transaction: Supply, Rights, Preparation, Approval and Delivery. The rights review weighs customer terms and the shutdown commitments you already made, and the SourceX Evidence Packet documents what was licensed, from provenance through release authorization.
Frequently asked questions
Do we have to refund prepaid annual subscriptions?
That depends on your terms of service and order forms. Many agreements provide a prorated refund or credit when the vendor ends the service early, while others are silent. Read the termination and refund clauses for each contract type, settle on one consistent policy, and state it in the first notice so customers do not have to ask.
Can we keep aggregated usage metrics after shutdown?
Possibly, if your agreements allow aggregated or de-identified usage data to be retained. Check the exact clause, because some limit aggregated data to improving the service, which will no longer exist. Keep only metrics that cannot identify a customer or user, and note the basis in your shutdown file.
Should we open-source the code when we shut down?
Open-sourcing is an option, but review it first. Confirm the company owns the code outright, contractor assignments are signed, third-party libraries permit redistribution, and the full history has been scanned for credentials. Releasing the code also removes the option of licensing it, or its history, on exclusive terms later.
What if a customer misses the export deadline?
Say in the notice what happens after the deadline, and keep a monitored contact address until deletion is complete. While data still exists, many companies honor a late request at their discretion. Once deletion has run, the only answer is a deletion confirmation, so repeat the final date and its consequence in every reminder.
Who should sign off on the shutdown plan?
The CEO approves the overall plan, with counsel reviewing notices, refund terms and the deletion statement. The CTO signs off on the export and deletion runbook, and finance confirms final billing. If investors or lenders hold consent rights over discontinuing a product line, check those documents before the announcement.
Sources
- Under the Salesforce Main Services Agreement, if the customer asks within 30 days after termination or expiration, customer data is made available for export; after that SFDC has no obligation to maintain it and will delete it. Source
- For Sales, Service, CMS and Operations Hub subscriptions, HubSpot will not provide any access to Customer Data after termination or expiration. Source
- On Slack's Free plan, messages and files more than one year old are permanently deleted. Source
Related resources
- InsightDoes licensing company data need lender consent under a credit agreement?
- InsightLender consent before licensing company data: what credit agreements say
- InsightDoes a secured lender's lien cover data licensing revenue?
- QuestionWho owns enterprise data?
- QuestionCan SaaS data be licensed?
- IndustryLegal data
See if your company qualifies
A short company assessment. No data uploads are needed.