Why migrate to Novu?
- Open source: Self-host Novu or use Novu Cloud with full transparency
- Unified workflows: Content, routing, delays, and digests in one workflow
- Inbox component: Drop-in React Inbox with headless hooks for custom UI
- Code-first option: Define workflows in TypeScript with the Novu Framework
How do Knock concepts map to Novu?
| Knock Concept | Novu Equivalent | Notes |
|---|---|---|
| Workflows | Workflows | Novu workflows combine content and delivery logic in one definition |
| Users | Subscribers | Identified by subscriberId; pass data inline when triggering |
| Objects / Tenants | Contexts | Scope notifications to tenants with contexts |
| Channels | Integrations | Connect SendGrid, Twilio, FCM, Slack, and 60+ providers |
| In-app feed | Inbox | Replace Knock feed components with <Inbox /> |
| Preferences | Preferences | Global and per-workflow preferences built into Novu |
What are the migration steps?
Phase 1: Set up Novu and connect providers
- Create a Novu Cloud account.
- Connect your email, SMS, push, and chat providers in the Integrations store.
- Copy API keys for Development and Production environments.
Phase 2: Recreate workflows
Rebuild each Knock workflow in the Novu Dashboard or with the Novu Framework. Map Knock steps to Novu channel and action steps (delay, digest, throttle).
Phase 3: Migrate subscribers
Use a lazy migration: pass subscriber details inline when triggering workflows. Novu creates or updates subscribers automatically. For bulk sync, use Bulk create subscribers.
Phase 4: Replace the in-app feed
Replace Knock feed components with the Novu Inbox. Follow the Next.js quickstart or React quickstart.
Phase 5: Switch triggers and validate
Update your backend to call Novu’s Trigger event API instead of Knock. Run both systems in parallel during a transition window, then disable Knock triggers.