← Files KnockARCHIVED FILE

skills/knock-migrate-to-knock/rules/migration-plan.md

2.91 KB · Oct 3, 2026 · 06:18 UTC

↓ Download file

---
title: Migration plan
description: Produce a phased Knock migration plan without mutating Knock resources
tags:
  - migrate
  - plan
  - phases
category: knock-migrate-to-knock
last_updated: 2026-07-24
---

# Migration plan

After inventory and mapping, write a phased plan into `knock-plan.md` under a `## Migration plan` section — do not paste it into chat. Do not execute Knock resource creation unless the user explicitly asks.

## Plan structure

### 1. Summary

- Source platform(s) detected
- Approximate number of message types
- Suggested first slice (usually auth + billing transactional)
- Link the primary tutorial (Braze / Courier / generic)

### 2. Technical resource order

When migrating Knock dashboard / API resources, follow the dependency order from the [Braze](https://docs.knock.app/tutorials/migrate-from-braze) and [Courier](https://docs.knock.app/tutorials/migrate-from-courier) tutorials:

1. Channels
2. Workflows (+ templates)
3. Translations
4. Tenants (if needed)
5. Users
6. Subscriptions
7. Preferences

Do not migrate preferences before users exist in the target environment.

### 3. Product cutover phases

Within that technical order, ship product value in slices:

| Phase | Work | Done when |
| --- | --- | --- |
| 0. Foundations | Knock account, environments, channel providers | Channels send a test in development |
| 1. Critical transactional | Password reset, verify email, invites, receipts | Parity with old sends; dual-run or feature flag |
| 2. Product / collaboration | Mentions, assignments, digests | Batching defined; workflow categories assigned |
| 3. Lifecycle | Onboarding, trial, win-back | Stop / exit criteria documented |
| 4. Recipients model | Identify users, tenants, subscriptions | Scoped correctly for B2B / lists |
| 5. Preferences | Preference center + category mapping; honor old opt-outs | Opt-outs respected in Knock |
| 6. In-app | Feed and/or guides | UI wired in app |
| 7. Cutover | Remove old provider calls | No dual sends |
| 8. Cleanup | Delete unused campaigns/providers | Docs updated |

### 4. Application code changes (local only)

List concrete files/modules to change for triggers and identify calls. Propose diffs only if the user asks. Do not push workflows.

### 5. Risks and open questions

- Dashboard-only templates with no export path
- Missing stable user ids
- Marketing vs transactional deliverability (separate email channels)
- Compliance (SMS consent, unsubscribe)

### 6. What not to do yet

Explicitly state that Knock MCP/CLI resource writes and the [email MCP migration tutorial](https://docs.knock.app/tutorials/migrate-email-with-mcp-server) wait until the user opts in.

## Closing chat message

After writing the plan file, chat is one status line plus a single bold confirmation question as the last line, for example:

Wrote `knock-plan.md`: 14 message types inventoried, 8-phase migration plan drafted.

**Which migration phase should we plan in more detail next?**

SHA-256: c1730c964027c84d8b5858af788588093d5bf7900e06fc809725c69d4d619a20