From FileInvite to self-hosted in two weeks.
A practical migration playbook for firms moving off FileInvite, Content Snare, Clustdoc, or TaxDome onto a self-hosted document collection system. Written from real migrations, not theory.
Why migrate at all?
Most firms migrate for one of three reasons: data residency (regulator or client wrote it into a contract), cost (subscription seat counts ballooning past CHF 800/month), or workflow rigidity (the SaaS tool doesn't fit how the firm actually works and can't be customised). We've done migrations for all three. The playbook below applies in any case; the differences are in the cut-over communication.
The 14-day timeline
- Days 1–2. Audit and data export from the existing tool. Get every active request, every uploaded document, every client record into your own infrastructure as a one-time snapshot.
- Days 3–6. Workflow rebuild on n8n. Replicates the existing tool's behaviour, then improves on it.
- Day 7. Internal review with your team. Walk through every reminder template, every escalation rule, every edge case.
- Days 8–10. Parallel running. New workflow runs in shadow mode — sends nothing, but logs what it would have sent. Compare against the old tool's actual sends. Catch divergences.
- Day 11. Cut-over. New workflow goes live; old tool moves to read-only. Existing in-flight requests continue in the old tool until they close naturally.
- Days 12–14. Watch and tune. Daily review of sent reminders. Tone adjustments, edge-case fixes, training data captured for the AI compose step.
Step 1: data export — what you actually need
Most SaaS document tools have an export. None of them have a useful export. You will get a ZIP of CSVs that don't reference each other cleanly. The minimum viable export contains:
- Client list — client_id, name, email, status, last contact date
- Request list — request_id, client_id, due_date, status, completion date
- Document list — document_id, request_id, filename, uploaded_at, file_url
- Communication log — timestamp, request_id, message_type, message_body, sent_to
- Files — the actual document blobs, downloaded by URL
Most exports give you the first three reliably, the fourth partially, and the fifth via a separate download workflow. Budget half a day for re-stitching the relations. If the vendor's export doesn't include the communication log, you can usually pull it from your sent-mail archive instead.
Step 2: rebuild the workflow on n8n
We start from the seven-node skeleton (Schedule → Read Sheet → Filter → Loop → Calculate Tier → AI Compose → Send + Log) and adapt it to the firm's specific tier rules. The existing tool's reminder cadence becomes the starting Calculate Tier logic. The existing tool's message templates become the AI's tone-of-voice training data. The existing tool's escalation rules become the Switch node's branches.
The migration doesn't change what your workflow does. It changes where the data lives and how easy it is to evolve.
Step 3: client communication
This is where most migrations fail. Your clients have learned to recognise emails from FileInvite (or whichever tool you're leaving). They click "Upload" by reflex. If the new system's emails look different, look spammy, or come from a different domain, the return-rate drops — sometimes by 30 or 40 percentage points in week one.
The fix is mundane: send the new emails from the same domain the old ones came from (your firm's domain, not a third-party SaaS), match the visual style of your previous communications closely, and explicitly tell clients what's changing in the first new email. Two paragraphs at the top:
"We've moved our document collection in-house. The link below works the same way as before — drop your file, you're done. The only change is that everything now stays on our servers in Switzerland. If you have any trouble, reply to this email and we'll help."
Step 4: parallel running
Three days minimum. The new workflow runs in shadow mode — Calculate Tier and AI Compose run for every active request, but the Send node is replaced with a log-only step. We compare:
- Tier decisions: same or different from old tool's escalation?
- Message timing: same or different from old tool's cadence?
- Message content: tonally consistent with the firm's voice?
- Edge cases: what does the new workflow do for the weird clients?
Divergences get triaged: some are bugs in the new workflow, some are improvements (the new workflow is smarter), some are policy decisions the firm needs to make. By day three of parallel running, divergence drops to under 5%.
Step 5: cut-over
On cut-over day: stop the old tool from sending new requests. Existing in-flight requests in the old tool continue until they close naturally (typically within 14 days for quarterly cycles). New requests go to the new workflow from minute one. Both systems run side-by-side until the old tool is empty; then it's downgraded to read-only or cancelled.
The cancellation timing matters: most SaaS document tools auto-renew annually. Time your cut-over so you can cancel before the next renewal date. We've seen firms forget this and pay for an unused year because of a 30-day cancellation notice clause.
Step 6: watch and tune
First two weeks after cut-over, the firm's partner reviews every outbound reminder for the first two days, then samples for the next twelve. Edits become AI training data. By day 14, edits are rare; by day 30, they stop entirely. The AI has learned the firm's voice well enough to operate unsupervised on the gentle and firm tiers; escalations remain partner-reviewed indefinitely because relationship judgment is human work.
What you save
Concrete numbers from a recent migration (12-person accounting firm, moving from FileInvite Pro):
- Subscription saved. CHF 540/month on FileInvite cancelled.
- Hosting added. CHF 110/month on Exoscale + Workspace.
- Net monthly saving. CHF 430 from month one.
- One-time setup. CHF 4,200, paid back in 10 months.
- Hours saved. Roughly the same as the old tool — the migration doesn't change throughput, it changes who owns the engine.
For firms whose primary motivation is data residency rather than cost, the math is similar but the tier costs more. The Regulated tier with Swiss-only AI runs ~CHF 800/month; the migration is about moving from "legally workable" to "no residual risk".
Want to see your migration timeline?
We do these migrations in 14 days. The free 30-minute audit covers the audit phase — we look at your current tool, your data volumes, your team's capacity, and tell you what your specific timeline would be. Email info@swissflow.org and we'll come back within 48 hours.
Published April 2026.