SaaS Data Export Checklist: Can You Rebuild the Work?
Check SaaS exports for missing files, relationships and access limits. Notion and Slack documentation anchors a practical worksheet for testing your exit.
An export is useful only if it serves the job you need after leaving. Reading an old invoice, moving a project into another application and restoring a whole workspace are different jobs. A download can succeed at the first and fail at the other two. Before cancelling a tool, identify which job matters and try it with a small, representative sample.
Correction, September 24, 2026: an earlier version described a nine-tool experiment and claimed that only three exports passed. That experiment did not take place. This article replaces it with documented examples and a proposed inspection procedure; Mirror has not run the tests below on customer accounts.

Illustration only.
What the vendor promises, and what remains to test
Official documentation checked September 24, 2026. The table describes documented capabilities, not measured export results. Your account role, plan and settings still matter.
| Product and scope | Documented output or restriction | What to check in your sample | Source |
|---|---|---|---|
| Notion pages and databases | HTML, Markdown and database CSV exports are supported. HTML can include page and block comments. | Choose a commented page and a database row with an attachment; check both in the extracted files. | Notion export guide |
| Notion workspace | Pages the exporter cannot access are excluded. Reuploading an export does not instantly recreate the workspace. | Inventory private pages separately and test the destination importer before treating the archive as a migration. | Notion export guide |
| Slack Free and Pro public channels | Workspace Owners and Admins can export messages and file links as JSON. On Free, exported file links cover only the last 90 days. | Separate message coverage from attachment coverage; a link is not a downloaded attachment. | Slack workspace export guide |
| Slack broader conversations | Business+ owners must apply for the export covering private channels and direct messages. Enterprise exports have separate options; Slack says Enterprise organization exports cannot be imported into other workspaces. | Confirm permissions and the supported destination route before scheduling the move. | Slack workspace export guide |
| Google Docs individual file | On a computer, File → Download lets you choose a file type. This is an individual-file operation. | Download one representative document in the intended format and inspect it in the destination application. | Google download instructions |
These examples expose three separate questions: can you request the export, does it contain the records you need, and can your next tool use those records? An answer to one does not settle the others. In particular, a workspace administrator should not assume the word “workspace” includes every private page or conversation.
Decide what a pass means before downloading
For an archive, a pass might mean that a colleague can locate a decision, read its context and open the associated file without access to the old service. Editing the original project may be unnecessary.
For a migration, the requirements are stricter. You may need editable records, correct owners, linked parent tasks and usable dates. A readable PDF can be a perfectly good archive while being an unsuitable input for the new project tracker.
For recovery, ask how you would restore operations after losing account access. A folder of documents may preserve information while leaving permissions, automations and integrations to rebuild. Do not label that folder a complete recovery solution until the restoration steps are understood.
Write one sentence defining your objective: “After cancelling, another team member must be able to retrieve each signed proposal and its final approval.” This is more testable than “we need all our data.” It also helps when planning a migration: the required result determines what must move first.
Build a sample that can reveal omissions
Use an authorized test area or a small set of records you are permitted to export. Include an ordinary item and the awkward cases your actual work relies on: a nested page, a comment, a file attachment, a linked record and an older item. If your workflow includes non-English text or dates with time zones, include those too.
Record the expected contents before exporting. Otherwise, discovering an empty attachments folder leaves you guessing whether any attachments existed. A screenshot can help document the starting state, but avoid capturing unrelated private information.
A sample is an early warning mechanism, not proof that an entire account is complete. Passing five representative records does not establish that fifty thousand records will transfer successfully. If the sample fails, however, you have a concrete question to resolve before committing to the larger job.
A worksheet for inspecting the result
Copy this table into your migration notes. Leave a row unresolved when you have not checked it; a download completing is not evidence for every row.
| Check | Evidence to record | Decision if it fails |
|---|---|---|
| Scope | Account role, selected workspace or folders, date range, export settings | Request the correct scope or document excluded areas |
| Record coverage | Expected sample IDs or names matched to exported records | Locate the missing records before proceeding |
| Attachments | Actual local files opened, separately from attachment URLs | Find an authorized download route and test it |
| Relationships | One child linked to its correct parent in the destination | Map identifiers or plan manual reconstruction |
| Discussion context | One decision with its author, date and relevant comment | Preserve a readable archive if the importer drops context |
| Editability | One imported record changed and saved successfully | Choose another format or accept archive-only use |
| Access | Intended recipients can open the result; others cannot | Rebuild and review sharing permissions |
| Repeatability | Export date, file location, instructions and responsible person | Assign ownership before the next renewal decision |
Do not compare the number of ZIP entries directly with the number of application records. One document might generate a page file, several images and a metadata file. Count comparable things: task rows against tasks, attachment files against expected attachments, and selected folders against the folders in scope.
Inspect links before calling files portable
Open the extracted archive with the original service signed out. Where practical, inspect local documents offline as well. A page that displays while you are signed in may be loading an image or attachment from the old account. Record whether each important link points to a local file, a public resource or an authenticated vendor address.
This proposed check does not establish what will happen after deletion. A link may work today and stop later. If continued access depends on the vendor, ask for the documented retention conditions and obtain an independent copy where authorized. The retention-policy comparison covers a separate question: what services say they keep after cancellation. Retention and possession are different requirements.
For email, use the same method without assuming that every mailbox format imports into every client. Choose a message with an attachment and check its date, sender, folder or label placement and readability in the intended destination. This article does not compare email providers or certify a particular import path.
Try the destination before ending the subscription
Import the sample into a disposable destination project, not the team’s live workspace. Keep the original unchanged while comparing the two. Check for duplicate records, shifted dates and broken references, then ask someone who did not prepare the export to perform the task defined at the start.
Here is an explicitly hypothetical result: a sample contains 12 tasks and four attachments. All 12 task names appear after import, but only three attachment files open locally and two child tasks have no parent. The task count passes; the migration does not. The next action is to resolve one missing attachment and two relationships, not to declare the export “mostly complete” and cancel.
If the destination cannot import a feature, decide whether you can replace it with a readable archive, rebuild it manually or keep the original service longer. Put that effort beside the subscription savings. A cheaper replacement is not automatically a cheaper move, which belongs in the pricing audit checklist before an annual commitment.
Keep evidence someone else can use
Store the original archive, a separate working copy and a short README containing the export date, scope, requesting role, format and known omissions. Protect the archive according to its contents; exporting private work should not turn it into a broadly shared folder. Keep any decryption instructions available to the authorized person who may need to recover it.
Choose a repeat interval based on how much newly created work you could afford to reconstruct. A quarterly reminder is not automatically adequate for a busy workspace, and daily exports are not automatically useful if nobody can restore them. Recheck after a major plan change or migration decision because the previous result described a particular configuration.
The useful output of this exercise is a bounded statement: “These records can be read here, these files are independent copies, and these features need rebuilding.” That gives a team a practical basis for leaving. An export button, by itself, does not.



