[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-novu-novu-manage-preferences":3,"mdc-wifrhk-key":32,"related-org-novu-novu-manage-preferences":2938,"related-repo-novu-novu-manage-preferences":3041},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":12,"stars":20,"repoUrl":21,"updatedAt":22,"license":23,"forks":24,"topics":25,"repo":27,"sourceUrl":30,"mdContent":31},"novu-manage-preferences","configure Novu notification preferences","Configure notification preferences in Novu at the workflow and subscriber level. Set default channel preferences (email, SMS, push, chat, in-app), mark preferences as read-only or subscriber-editable, and manage subscriber-specific overrides. Use when setting up notification opt-in\u002Fopt-out, configuring per-channel delivery preferences, or building a preferences management UI.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},"novu","Novu","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fnovu.png","novuhq",[13,17],{"name":14,"slug":15,"type":16},"Operations","operations","tag",{"name":18,"slug":19,"type":16},"Notifications","notifications",1,"https:\u002F\u002Fgithub.com\u002Fnovuhq\u002Fskills","2026-07-13T06:21:30.061407",null,2,[26,19,8],"notification",{"repoUrl":21,"stars":20,"forks":24,"topics":28,"description":29},[26,19,8],"Novu Skill Set for AI Agents ","https:\u002F\u002Fgithub.com\u002Fnovuhq\u002Fskills\u002Ftree\u002FHEAD\u002Fskills\u002Fmanage-preferences","---\nname: novu-manage-preferences\ndescription: Configure notification preferences in Novu at the workflow and subscriber level. Set default channel preferences (email, SMS, push, chat, in-app), mark preferences as read-only or subscriber-editable, and manage subscriber-specific overrides. Use when setting up notification opt-in\u002Fopt-out, configuring per-channel delivery preferences, or building a preferences management UI.\ninputs:\n  - name: NOVU_SECRET_KEY\n    description: \"Server-side API key from https:\u002F\u002Fdashboard.novu.co\u002Fapi-keys. Used by @novu\u002Fapi.\"\n    required: true\n    type: secret\n---\n\n# Manage Preferences\n\nNovu has a two-level preference system:\n1. **Workflow defaults** — configured in the dashboard for UI based workflows or via code in framework based workflows, apply to all subscribers.\n2. **Subscriber overrides** — set by end users, override workflow defaults\n\n## Workflow-Level Preferences\n\nSet default preferences when defining a workflow with `@novu\u002Fframework`:\n\n```typescript\nimport { workflow } from \"@novu\u002Fframework\";\n\nconst alertWorkflow = workflow(\"system-alert\", execute, {\n  preferences: {\n    all: { enabled: true, readOnly: false },\n    channels: {\n      email: { enabled: true },\n      sms: { enabled: false },\n      push: { enabled: true },\n      chat: { enabled: false },\n      inApp: { enabled: true },\n    },\n  },\n});\n```\n\n> Authoring workflows in code? See [`framework-integration`](..\u002Fframework-integration) for the full Framework setup, Bridge Endpoint, step controls, and deployment.\n\n### Channel Types\n\n| Channel | Description |\n| --- | --- |\n| `email` | Email notifications |\n| `sms` | SMS text messages |\n| `push` | Mobile\u002Fweb push notifications |\n| `chat` | Slack, Discord, Teams, etc. |\n| `inApp` | In-app Inbox notifications |\n\n### Read-Only Preferences\n\nSet `readOnly: true` to **hide a workflow's channels from the Preferences UI** — subscribers can't toggle them on or off:\n\n```typescript\nconst criticalAlertWorkflow = workflow(\"critical-alert\", execute, {\n  preferences: {\n    all: { enabled: true, readOnly: true },  \u002F\u002F subscriber CANNOT disable\n  },\n});\n```\n\n### `readOnly` vs `critical` — pick the right one\n\nThese are different mechanisms with different guarantees. See [`design-workflow\u002Freferences\u002Fseverity-and-critical.md`](..\u002Fdesign-workflow\u002Freferences\u002Fseverity-and-critical.md) for the full matrix.\n\n| Flag                                 | What it does                                                                                |\n| ------------------------------------ | ------------------------------------------------------------------------------------------- |\n| `preferences.all.readOnly: true`     | **UI only.** Hides the workflow from the Preferences UI so subscribers can't toggle it.     |\n| `critical: true` (workflow-level)    | **Runtime.** Bypasses subscriber preferences, skips digest, runs without delays.            |\n\nIf you need the notification to **always be delivered** (account suspended, security alert, password reset), set `critical: true` — `readOnly: true` alone won't override existing subscriber overrides at runtime.\n\n### Optional (Subscriber-Editable) Preferences\n\n```typescript\nconst marketingWorkflow = workflow(\"weekly-newsletter\", execute, {\n  preferences: {\n    all: { enabled: true, readOnly: false },  \u002F\u002F subscriber CAN disable\n    channels: {\n      email: { enabled: true },\n      sms: { enabled: false },  \u002F\u002F off by default, subscriber can enable\n    },\n  },\n});\n```\n\n## Subscriber-Level Preferences\n\nSubscribers can override workflow defaults (unless `readOnly: true`).\n\n### Get Subscriber Preferences\n\n```typescript\nimport { Novu } from \"@novu\u002Fapi\";\n\nconst novu = new Novu({\n  secretKey: process.env.NOVU_SECRET_KEY,\n});\n\nconst preferences = await novu.subscribers.preferences.list({\n  subscriberId: \"subscriber-123\",\n});\n```\n\n### Update Subscriber Preferences\n\n```typescript\nawait novu.subscribers.preferences.update(\n  {\n    workflowId: \"weekly-newsletter\",\n    channels: {\n      email: false,   \u002F\u002F opt out of email\n      inApp: true,    \u002F\u002F keep in-app\n    },\n  },\n  \"subscriber-123\"\n);\n```\n\n### Global Preferences\n\nUpdate preferences across all workflows by omitting `workflowId`:\n\n```typescript\nawait novu.subscribers.preferences.update(\n  {\n    channels: {\n      sms: false,  \u002F\u002F disable SMS for all workflows\n    },\n  },\n  \"subscriber-123\"\n);\n```\n\n## Preference Resolution Order\n\nWhen Novu determines whether to deliver a notification:\n\n1. **Subscriber workflow preference** (most specific) — subscriber's override for this specific workflow\n2. **Subscriber global preference** — subscriber's default across all workflows\n3. **Workflow default** — developer-defined default in code\n4. **System default** — all channels enabled\n\nThe most specific preference wins. If a subscriber disables email for a specific workflow, that takes precedence even if their global email preference is enabled.\n\n## Preferences UI Component\n\n### React\n\n```tsx\nimport { Inbox } from \"@novu\u002Freact\";\n\nfunction App() {\n  return (\n    \u003CInbox\n      applicationIdentifier=\"YOUR_NOVU_APP_ID\"\n      subscriberId=\"subscriber-123\"\n      subscriberHash=\"HMAC_HASH\"\n    >\n      {\u002F* The Preferences panel is built into the Inbox *\u002F}\n    \u003C\u002FInbox>\n  );\n}\n```\n\nThe `\u003CInbox \u002F>` component includes a built-in Preferences panel accessible via the settings icon.\n\n### Standalone Preferences\n\nUse the `\u003CPreferences \u002F>` component independently:\n\n```tsx\nimport { Inbox, Preferences } from \"@novu\u002Freact\";\n\nfunction PreferencesPage() {\n  return (\n    \u003CInbox\n      applicationIdentifier=\"YOUR_NOVU_APP_ID\"\n      subscriberId=\"subscriber-123\"\n    >\n      \u003CPreferences \u002F>\n    \u003C\u002FInbox>\n  );\n}\n```\n\n## Common Patterns\n\n### Critical Alerts (Always On)\n\n```typescript\npreferences: {\n  all: { enabled: true, readOnly: true },\n}\n```\n\nSubscribers cannot opt out. Use for security alerts, payment notifications, legal notices.\n\n### Marketing (Opt-Out Friendly)\n\n```typescript\npreferences: {\n  all: { enabled: true, readOnly: false },\n  channels: {\n    email: { enabled: true },\n    sms: { enabled: false },\n  },\n}\n```\n\nSubscribers can toggle channels. SMS is off by default.\n\n### In-App Only by Default\n\n```typescript\npreferences: {\n  all: { enabled: false },\n  channels: {\n    inApp: { enabled: true },\n  },\n}\n```\n\nOnly in-app is on. Subscribers can enable other channels if desired.\n\n\n## Common Pitfalls\n\n1. **`readOnly: true` is per-workflow, not per-channel** — you set `readOnly` on the `all` level. Individual channels inherit it.\n2. **Subscriber overrides don't apply to `readOnly` workflows** — if the workflow is read-only, subscriber preferences are ignored.\n3. **`enabled: false` in the workflow default means the channel is off** — subscribers can still enable it (unless `readOnly: true`).\n4. **The Preferences UI only shows non-readOnly workflows** — read-only workflows are hidden from the subscriber's preference panel.\n5. **Global preferences apply across all non-readOnly workflows** — they're a convenient \"disable all email\" setting, but workflow-specific preferences take precedence.\n\n## References\n\n- [Workflow Preferences Examples](.\u002Freferences\u002Fworkflow-preferences-examples.md)\n- [Subscriber Preferences Examples](.\u002Freferences\u002Fsubscriber-preferences-examples.md)\n- [Preferences UI Examples](.\u002Freferences\u002Fpreferences-ui-examples.md)\n",{"data":33,"body":40},{"name":4,"description":6,"inputs":34},[35],{"name":36,"description":37,"required":38,"type":39},"NOVU_SECRET_KEY","Server-side API key from https:\u002F\u002Fdashboard.novu.co\u002Fapi-keys. Used by @novu\u002Fapi.",true,"secret",{"type":41,"children":42},"root",[43,52,58,84,91,105,530,552,559,672,678,698,849,869,886,954,980,986,1224,1230,1242,1248,1504,1510,1700,1706,1718,1850,1856,1861,1904,1909,1915,1921,2164,2177,2183,2196,2404,2410,2416,2493,2498,2504,2667,2672,2678,2792,2797,2803,2895,2901,2932],{"type":44,"tag":45,"props":46,"children":48},"element","h1",{"id":47},"manage-preferences",[49],{"type":50,"value":51},"text","Manage Preferences",{"type":44,"tag":53,"props":54,"children":55},"p",{},[56],{"type":50,"value":57},"Novu has a two-level preference system:",{"type":44,"tag":59,"props":60,"children":61},"ol",{},[62,74],{"type":44,"tag":63,"props":64,"children":65},"li",{},[66,72],{"type":44,"tag":67,"props":68,"children":69},"strong",{},[70],{"type":50,"value":71},"Workflow defaults",{"type":50,"value":73}," — configured in the dashboard for UI based workflows or via code in framework based workflows, apply to all subscribers.",{"type":44,"tag":63,"props":75,"children":76},{},[77,82],{"type":44,"tag":67,"props":78,"children":79},{},[80],{"type":50,"value":81},"Subscriber overrides",{"type":50,"value":83}," — set by end users, override workflow defaults",{"type":44,"tag":85,"props":86,"children":88},"h2",{"id":87},"workflow-level-preferences",[89],{"type":50,"value":90},"Workflow-Level Preferences",{"type":44,"tag":53,"props":92,"children":93},{},[94,96,103],{"type":50,"value":95},"Set default preferences when defining a workflow with ",{"type":44,"tag":97,"props":98,"children":100},"code",{"className":99},[],[101],{"type":50,"value":102},"@novu\u002Fframework",{"type":50,"value":104},":",{"type":44,"tag":106,"props":107,"children":112},"pre",{"className":108,"code":109,"language":110,"meta":111,"style":111},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { workflow } from \"@novu\u002Fframework\";\n\nconst alertWorkflow = workflow(\"system-alert\", execute, {\n  preferences: {\n    all: { enabled: true, readOnly: false },\n    channels: {\n      email: { enabled: true },\n      sms: { enabled: false },\n      push: { enabled: true },\n      chat: { enabled: false },\n      inApp: { enabled: true },\n    },\n  },\n});\n","typescript","",[113],{"type":44,"tag":97,"props":114,"children":115},{"__ignoreMap":111},[116,169,177,239,257,312,329,362,395,428,461,494,503,512],{"type":44,"tag":117,"props":118,"children":120},"span",{"class":119,"line":20},"line",[121,127,133,139,144,149,154,159,164],{"type":44,"tag":117,"props":122,"children":124},{"style":123},"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic",[125],{"type":50,"value":126},"import",{"type":44,"tag":117,"props":128,"children":130},{"style":129},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[131],{"type":50,"value":132}," {",{"type":44,"tag":117,"props":134,"children":136},{"style":135},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[137],{"type":50,"value":138}," workflow",{"type":44,"tag":117,"props":140,"children":141},{"style":129},[142],{"type":50,"value":143}," }",{"type":44,"tag":117,"props":145,"children":146},{"style":123},[147],{"type":50,"value":148}," from",{"type":44,"tag":117,"props":150,"children":151},{"style":129},[152],{"type":50,"value":153}," \"",{"type":44,"tag":117,"props":155,"children":157},{"style":156},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[158],{"type":50,"value":102},{"type":44,"tag":117,"props":160,"children":161},{"style":129},[162],{"type":50,"value":163},"\"",{"type":44,"tag":117,"props":165,"children":166},{"style":129},[167],{"type":50,"value":168},";\n",{"type":44,"tag":117,"props":170,"children":171},{"class":119,"line":24},[172],{"type":44,"tag":117,"props":173,"children":174},{"emptyLinePlaceholder":38},[175],{"type":50,"value":176},"\n",{"type":44,"tag":117,"props":178,"children":180},{"class":119,"line":179},3,[181,187,192,197,202,207,211,216,220,225,230,234],{"type":44,"tag":117,"props":182,"children":184},{"style":183},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[185],{"type":50,"value":186},"const",{"type":44,"tag":117,"props":188,"children":189},{"style":135},[190],{"type":50,"value":191}," alertWorkflow ",{"type":44,"tag":117,"props":193,"children":194},{"style":129},[195],{"type":50,"value":196},"=",{"type":44,"tag":117,"props":198,"children":200},{"style":199},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[201],{"type":50,"value":138},{"type":44,"tag":117,"props":203,"children":204},{"style":135},[205],{"type":50,"value":206},"(",{"type":44,"tag":117,"props":208,"children":209},{"style":129},[210],{"type":50,"value":163},{"type":44,"tag":117,"props":212,"children":213},{"style":156},[214],{"type":50,"value":215},"system-alert",{"type":44,"tag":117,"props":217,"children":218},{"style":129},[219],{"type":50,"value":163},{"type":44,"tag":117,"props":221,"children":222},{"style":129},[223],{"type":50,"value":224},",",{"type":44,"tag":117,"props":226,"children":227},{"style":135},[228],{"type":50,"value":229}," execute",{"type":44,"tag":117,"props":231,"children":232},{"style":129},[233],{"type":50,"value":224},{"type":44,"tag":117,"props":235,"children":236},{"style":129},[237],{"type":50,"value":238}," {\n",{"type":44,"tag":117,"props":240,"children":242},{"class":119,"line":241},4,[243,249,253],{"type":44,"tag":117,"props":244,"children":246},{"style":245},"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178",[247],{"type":50,"value":248},"  preferences",{"type":44,"tag":117,"props":250,"children":251},{"style":129},[252],{"type":50,"value":104},{"type":44,"tag":117,"props":254,"children":255},{"style":129},[256],{"type":50,"value":238},{"type":44,"tag":117,"props":258,"children":260},{"class":119,"line":259},5,[261,266,270,274,279,283,289,293,298,302,307],{"type":44,"tag":117,"props":262,"children":263},{"style":245},[264],{"type":50,"value":265},"    all",{"type":44,"tag":117,"props":267,"children":268},{"style":129},[269],{"type":50,"value":104},{"type":44,"tag":117,"props":271,"children":272},{"style":129},[273],{"type":50,"value":132},{"type":44,"tag":117,"props":275,"children":276},{"style":245},[277],{"type":50,"value":278}," enabled",{"type":44,"tag":117,"props":280,"children":281},{"style":129},[282],{"type":50,"value":104},{"type":44,"tag":117,"props":284,"children":286},{"style":285},"--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC",[287],{"type":50,"value":288}," true",{"type":44,"tag":117,"props":290,"children":291},{"style":129},[292],{"type":50,"value":224},{"type":44,"tag":117,"props":294,"children":295},{"style":245},[296],{"type":50,"value":297}," readOnly",{"type":44,"tag":117,"props":299,"children":300},{"style":129},[301],{"type":50,"value":104},{"type":44,"tag":117,"props":303,"children":304},{"style":285},[305],{"type":50,"value":306}," false",{"type":44,"tag":117,"props":308,"children":309},{"style":129},[310],{"type":50,"value":311}," },\n",{"type":44,"tag":117,"props":313,"children":315},{"class":119,"line":314},6,[316,321,325],{"type":44,"tag":117,"props":317,"children":318},{"style":245},[319],{"type":50,"value":320},"    channels",{"type":44,"tag":117,"props":322,"children":323},{"style":129},[324],{"type":50,"value":104},{"type":44,"tag":117,"props":326,"children":327},{"style":129},[328],{"type":50,"value":238},{"type":44,"tag":117,"props":330,"children":332},{"class":119,"line":331},7,[333,338,342,346,350,354,358],{"type":44,"tag":117,"props":334,"children":335},{"style":245},[336],{"type":50,"value":337},"      email",{"type":44,"tag":117,"props":339,"children":340},{"style":129},[341],{"type":50,"value":104},{"type":44,"tag":117,"props":343,"children":344},{"style":129},[345],{"type":50,"value":132},{"type":44,"tag":117,"props":347,"children":348},{"style":245},[349],{"type":50,"value":278},{"type":44,"tag":117,"props":351,"children":352},{"style":129},[353],{"type":50,"value":104},{"type":44,"tag":117,"props":355,"children":356},{"style":285},[357],{"type":50,"value":288},{"type":44,"tag":117,"props":359,"children":360},{"style":129},[361],{"type":50,"value":311},{"type":44,"tag":117,"props":363,"children":365},{"class":119,"line":364},8,[366,371,375,379,383,387,391],{"type":44,"tag":117,"props":367,"children":368},{"style":245},[369],{"type":50,"value":370},"      sms",{"type":44,"tag":117,"props":372,"children":373},{"style":129},[374],{"type":50,"value":104},{"type":44,"tag":117,"props":376,"children":377},{"style":129},[378],{"type":50,"value":132},{"type":44,"tag":117,"props":380,"children":381},{"style":245},[382],{"type":50,"value":278},{"type":44,"tag":117,"props":384,"children":385},{"style":129},[386],{"type":50,"value":104},{"type":44,"tag":117,"props":388,"children":389},{"style":285},[390],{"type":50,"value":306},{"type":44,"tag":117,"props":392,"children":393},{"style":129},[394],{"type":50,"value":311},{"type":44,"tag":117,"props":396,"children":398},{"class":119,"line":397},9,[399,404,408,412,416,420,424],{"type":44,"tag":117,"props":400,"children":401},{"style":245},[402],{"type":50,"value":403},"      push",{"type":44,"tag":117,"props":405,"children":406},{"style":129},[407],{"type":50,"value":104},{"type":44,"tag":117,"props":409,"children":410},{"style":129},[411],{"type":50,"value":132},{"type":44,"tag":117,"props":413,"children":414},{"style":245},[415],{"type":50,"value":278},{"type":44,"tag":117,"props":417,"children":418},{"style":129},[419],{"type":50,"value":104},{"type":44,"tag":117,"props":421,"children":422},{"style":285},[423],{"type":50,"value":288},{"type":44,"tag":117,"props":425,"children":426},{"style":129},[427],{"type":50,"value":311},{"type":44,"tag":117,"props":429,"children":431},{"class":119,"line":430},10,[432,437,441,445,449,453,457],{"type":44,"tag":117,"props":433,"children":434},{"style":245},[435],{"type":50,"value":436},"      chat",{"type":44,"tag":117,"props":438,"children":439},{"style":129},[440],{"type":50,"value":104},{"type":44,"tag":117,"props":442,"children":443},{"style":129},[444],{"type":50,"value":132},{"type":44,"tag":117,"props":446,"children":447},{"style":245},[448],{"type":50,"value":278},{"type":44,"tag":117,"props":450,"children":451},{"style":129},[452],{"type":50,"value":104},{"type":44,"tag":117,"props":454,"children":455},{"style":285},[456],{"type":50,"value":306},{"type":44,"tag":117,"props":458,"children":459},{"style":129},[460],{"type":50,"value":311},{"type":44,"tag":117,"props":462,"children":464},{"class":119,"line":463},11,[465,470,474,478,482,486,490],{"type":44,"tag":117,"props":466,"children":467},{"style":245},[468],{"type":50,"value":469},"      inApp",{"type":44,"tag":117,"props":471,"children":472},{"style":129},[473],{"type":50,"value":104},{"type":44,"tag":117,"props":475,"children":476},{"style":129},[477],{"type":50,"value":132},{"type":44,"tag":117,"props":479,"children":480},{"style":245},[481],{"type":50,"value":278},{"type":44,"tag":117,"props":483,"children":484},{"style":129},[485],{"type":50,"value":104},{"type":44,"tag":117,"props":487,"children":488},{"style":285},[489],{"type":50,"value":288},{"type":44,"tag":117,"props":491,"children":492},{"style":129},[493],{"type":50,"value":311},{"type":44,"tag":117,"props":495,"children":497},{"class":119,"line":496},12,[498],{"type":44,"tag":117,"props":499,"children":500},{"style":129},[501],{"type":50,"value":502},"    },\n",{"type":44,"tag":117,"props":504,"children":506},{"class":119,"line":505},13,[507],{"type":44,"tag":117,"props":508,"children":509},{"style":129},[510],{"type":50,"value":511},"  },\n",{"type":44,"tag":117,"props":513,"children":515},{"class":119,"line":514},14,[516,521,526],{"type":44,"tag":117,"props":517,"children":518},{"style":129},[519],{"type":50,"value":520},"}",{"type":44,"tag":117,"props":522,"children":523},{"style":135},[524],{"type":50,"value":525},")",{"type":44,"tag":117,"props":527,"children":528},{"style":129},[529],{"type":50,"value":168},{"type":44,"tag":531,"props":532,"children":533},"blockquote",{},[534],{"type":44,"tag":53,"props":535,"children":536},{},[537,539,550],{"type":50,"value":538},"Authoring workflows in code? See ",{"type":44,"tag":540,"props":541,"children":543},"a",{"href":542},"..\u002Fframework-integration",[544],{"type":44,"tag":97,"props":545,"children":547},{"className":546},[],[548],{"type":50,"value":549},"framework-integration",{"type":50,"value":551}," for the full Framework setup, Bridge Endpoint, step controls, and deployment.",{"type":44,"tag":553,"props":554,"children":556},"h3",{"id":555},"channel-types",[557],{"type":50,"value":558},"Channel Types",{"type":44,"tag":560,"props":561,"children":562},"table",{},[563,582],{"type":44,"tag":564,"props":565,"children":566},"thead",{},[567],{"type":44,"tag":568,"props":569,"children":570},"tr",{},[571,577],{"type":44,"tag":572,"props":573,"children":574},"th",{},[575],{"type":50,"value":576},"Channel",{"type":44,"tag":572,"props":578,"children":579},{},[580],{"type":50,"value":581},"Description",{"type":44,"tag":583,"props":584,"children":585},"tbody",{},[586,604,621,638,655],{"type":44,"tag":568,"props":587,"children":588},{},[589,599],{"type":44,"tag":590,"props":591,"children":592},"td",{},[593],{"type":44,"tag":97,"props":594,"children":596},{"className":595},[],[597],{"type":50,"value":598},"email",{"type":44,"tag":590,"props":600,"children":601},{},[602],{"type":50,"value":603},"Email notifications",{"type":44,"tag":568,"props":605,"children":606},{},[607,616],{"type":44,"tag":590,"props":608,"children":609},{},[610],{"type":44,"tag":97,"props":611,"children":613},{"className":612},[],[614],{"type":50,"value":615},"sms",{"type":44,"tag":590,"props":617,"children":618},{},[619],{"type":50,"value":620},"SMS text messages",{"type":44,"tag":568,"props":622,"children":623},{},[624,633],{"type":44,"tag":590,"props":625,"children":626},{},[627],{"type":44,"tag":97,"props":628,"children":630},{"className":629},[],[631],{"type":50,"value":632},"push",{"type":44,"tag":590,"props":634,"children":635},{},[636],{"type":50,"value":637},"Mobile\u002Fweb push notifications",{"type":44,"tag":568,"props":639,"children":640},{},[641,650],{"type":44,"tag":590,"props":642,"children":643},{},[644],{"type":44,"tag":97,"props":645,"children":647},{"className":646},[],[648],{"type":50,"value":649},"chat",{"type":44,"tag":590,"props":651,"children":652},{},[653],{"type":50,"value":654},"Slack, Discord, Teams, etc.",{"type":44,"tag":568,"props":656,"children":657},{},[658,667],{"type":44,"tag":590,"props":659,"children":660},{},[661],{"type":44,"tag":97,"props":662,"children":664},{"className":663},[],[665],{"type":50,"value":666},"inApp",{"type":44,"tag":590,"props":668,"children":669},{},[670],{"type":50,"value":671},"In-app Inbox notifications",{"type":44,"tag":553,"props":673,"children":675},{"id":674},"read-only-preferences",[676],{"type":50,"value":677},"Read-Only Preferences",{"type":44,"tag":53,"props":679,"children":680},{},[681,683,689,691,696],{"type":50,"value":682},"Set ",{"type":44,"tag":97,"props":684,"children":686},{"className":685},[],[687],{"type":50,"value":688},"readOnly: true",{"type":50,"value":690}," to ",{"type":44,"tag":67,"props":692,"children":693},{},[694],{"type":50,"value":695},"hide a workflow's channels from the Preferences UI",{"type":50,"value":697}," — subscribers can't toggle them on or off:",{"type":44,"tag":106,"props":699,"children":701},{"className":108,"code":700,"language":110,"meta":111,"style":111},"const criticalAlertWorkflow = workflow(\"critical-alert\", execute, {\n  preferences: {\n    all: { enabled: true, readOnly: true },  \u002F\u002F subscriber CANNOT disable\n  },\n});\n",[702],{"type":44,"tag":97,"props":703,"children":704},{"__ignoreMap":111},[705,758,773,827,834],{"type":44,"tag":117,"props":706,"children":707},{"class":119,"line":20},[708,712,717,721,725,729,733,738,742,746,750,754],{"type":44,"tag":117,"props":709,"children":710},{"style":183},[711],{"type":50,"value":186},{"type":44,"tag":117,"props":713,"children":714},{"style":135},[715],{"type":50,"value":716}," criticalAlertWorkflow ",{"type":44,"tag":117,"props":718,"children":719},{"style":129},[720],{"type":50,"value":196},{"type":44,"tag":117,"props":722,"children":723},{"style":199},[724],{"type":50,"value":138},{"type":44,"tag":117,"props":726,"children":727},{"style":135},[728],{"type":50,"value":206},{"type":44,"tag":117,"props":730,"children":731},{"style":129},[732],{"type":50,"value":163},{"type":44,"tag":117,"props":734,"children":735},{"style":156},[736],{"type":50,"value":737},"critical-alert",{"type":44,"tag":117,"props":739,"children":740},{"style":129},[741],{"type":50,"value":163},{"type":44,"tag":117,"props":743,"children":744},{"style":129},[745],{"type":50,"value":224},{"type":44,"tag":117,"props":747,"children":748},{"style":135},[749],{"type":50,"value":229},{"type":44,"tag":117,"props":751,"children":752},{"style":129},[753],{"type":50,"value":224},{"type":44,"tag":117,"props":755,"children":756},{"style":129},[757],{"type":50,"value":238},{"type":44,"tag":117,"props":759,"children":760},{"class":119,"line":24},[761,765,769],{"type":44,"tag":117,"props":762,"children":763},{"style":245},[764],{"type":50,"value":248},{"type":44,"tag":117,"props":766,"children":767},{"style":129},[768],{"type":50,"value":104},{"type":44,"tag":117,"props":770,"children":771},{"style":129},[772],{"type":50,"value":238},{"type":44,"tag":117,"props":774,"children":775},{"class":119,"line":179},[776,780,784,788,792,796,800,804,808,812,816,821],{"type":44,"tag":117,"props":777,"children":778},{"style":245},[779],{"type":50,"value":265},{"type":44,"tag":117,"props":781,"children":782},{"style":129},[783],{"type":50,"value":104},{"type":44,"tag":117,"props":785,"children":786},{"style":129},[787],{"type":50,"value":132},{"type":44,"tag":117,"props":789,"children":790},{"style":245},[791],{"type":50,"value":278},{"type":44,"tag":117,"props":793,"children":794},{"style":129},[795],{"type":50,"value":104},{"type":44,"tag":117,"props":797,"children":798},{"style":285},[799],{"type":50,"value":288},{"type":44,"tag":117,"props":801,"children":802},{"style":129},[803],{"type":50,"value":224},{"type":44,"tag":117,"props":805,"children":806},{"style":245},[807],{"type":50,"value":297},{"type":44,"tag":117,"props":809,"children":810},{"style":129},[811],{"type":50,"value":104},{"type":44,"tag":117,"props":813,"children":814},{"style":285},[815],{"type":50,"value":288},{"type":44,"tag":117,"props":817,"children":818},{"style":129},[819],{"type":50,"value":820}," },",{"type":44,"tag":117,"props":822,"children":824},{"style":823},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[825],{"type":50,"value":826},"  \u002F\u002F subscriber CANNOT disable\n",{"type":44,"tag":117,"props":828,"children":829},{"class":119,"line":241},[830],{"type":44,"tag":117,"props":831,"children":832},{"style":129},[833],{"type":50,"value":511},{"type":44,"tag":117,"props":835,"children":836},{"class":119,"line":259},[837,841,845],{"type":44,"tag":117,"props":838,"children":839},{"style":129},[840],{"type":50,"value":520},{"type":44,"tag":117,"props":842,"children":843},{"style":135},[844],{"type":50,"value":525},{"type":44,"tag":117,"props":846,"children":847},{"style":129},[848],{"type":50,"value":168},{"type":44,"tag":553,"props":850,"children":852},{"id":851},"readonly-vs-critical-pick-the-right-one",[853,859,861,867],{"type":44,"tag":97,"props":854,"children":856},{"className":855},[],[857],{"type":50,"value":858},"readOnly",{"type":50,"value":860}," vs ",{"type":44,"tag":97,"props":862,"children":864},{"className":863},[],[865],{"type":50,"value":866},"critical",{"type":50,"value":868}," — pick the right one",{"type":44,"tag":53,"props":870,"children":871},{},[872,874,884],{"type":50,"value":873},"These are different mechanisms with different guarantees. See ",{"type":44,"tag":540,"props":875,"children":877},{"href":876},"..\u002Fdesign-workflow\u002Freferences\u002Fseverity-and-critical.md",[878],{"type":44,"tag":97,"props":879,"children":881},{"className":880},[],[882],{"type":50,"value":883},"design-workflow\u002Freferences\u002Fseverity-and-critical.md",{"type":50,"value":885}," for the full matrix.",{"type":44,"tag":560,"props":887,"children":888},{},[889,905],{"type":44,"tag":564,"props":890,"children":891},{},[892],{"type":44,"tag":568,"props":893,"children":894},{},[895,900],{"type":44,"tag":572,"props":896,"children":897},{},[898],{"type":50,"value":899},"Flag",{"type":44,"tag":572,"props":901,"children":902},{},[903],{"type":50,"value":904},"What it does",{"type":44,"tag":583,"props":906,"children":907},{},[908,930],{"type":44,"tag":568,"props":909,"children":910},{},[911,920],{"type":44,"tag":590,"props":912,"children":913},{},[914],{"type":44,"tag":97,"props":915,"children":917},{"className":916},[],[918],{"type":50,"value":919},"preferences.all.readOnly: true",{"type":44,"tag":590,"props":921,"children":922},{},[923,928],{"type":44,"tag":67,"props":924,"children":925},{},[926],{"type":50,"value":927},"UI only.",{"type":50,"value":929}," Hides the workflow from the Preferences UI so subscribers can't toggle it.",{"type":44,"tag":568,"props":931,"children":932},{},[933,944],{"type":44,"tag":590,"props":934,"children":935},{},[936,942],{"type":44,"tag":97,"props":937,"children":939},{"className":938},[],[940],{"type":50,"value":941},"critical: true",{"type":50,"value":943}," (workflow-level)",{"type":44,"tag":590,"props":945,"children":946},{},[947,952],{"type":44,"tag":67,"props":948,"children":949},{},[950],{"type":50,"value":951},"Runtime.",{"type":50,"value":953}," Bypasses subscriber preferences, skips digest, runs without delays.",{"type":44,"tag":53,"props":955,"children":956},{},[957,959,964,966,971,973,978],{"type":50,"value":958},"If you need the notification to ",{"type":44,"tag":67,"props":960,"children":961},{},[962],{"type":50,"value":963},"always be delivered",{"type":50,"value":965}," (account suspended, security alert, password reset), set ",{"type":44,"tag":97,"props":967,"children":969},{"className":968},[],[970],{"type":50,"value":941},{"type":50,"value":972}," — ",{"type":44,"tag":97,"props":974,"children":976},{"className":975},[],[977],{"type":50,"value":688},{"type":50,"value":979}," alone won't override existing subscriber overrides at runtime.",{"type":44,"tag":553,"props":981,"children":983},{"id":982},"optional-subscriber-editable-preferences",[984],{"type":50,"value":985},"Optional (Subscriber-Editable) Preferences",{"type":44,"tag":106,"props":987,"children":989},{"className":108,"code":988,"language":110,"meta":111,"style":111},"const marketingWorkflow = workflow(\"weekly-newsletter\", execute, {\n  preferences: {\n    all: { enabled: true, readOnly: false },  \u002F\u002F subscriber CAN disable\n    channels: {\n      email: { enabled: true },\n      sms: { enabled: false },  \u002F\u002F off by default, subscriber can enable\n    },\n  },\n});\n",[990],{"type":44,"tag":97,"props":991,"children":992},{"__ignoreMap":111},[993,1046,1061,1113,1128,1159,1195,1202,1209],{"type":44,"tag":117,"props":994,"children":995},{"class":119,"line":20},[996,1000,1005,1009,1013,1017,1021,1026,1030,1034,1038,1042],{"type":44,"tag":117,"props":997,"children":998},{"style":183},[999],{"type":50,"value":186},{"type":44,"tag":117,"props":1001,"children":1002},{"style":135},[1003],{"type":50,"value":1004}," marketingWorkflow ",{"type":44,"tag":117,"props":1006,"children":1007},{"style":129},[1008],{"type":50,"value":196},{"type":44,"tag":117,"props":1010,"children":1011},{"style":199},[1012],{"type":50,"value":138},{"type":44,"tag":117,"props":1014,"children":1015},{"style":135},[1016],{"type":50,"value":206},{"type":44,"tag":117,"props":1018,"children":1019},{"style":129},[1020],{"type":50,"value":163},{"type":44,"tag":117,"props":1022,"children":1023},{"style":156},[1024],{"type":50,"value":1025},"weekly-newsletter",{"type":44,"tag":117,"props":1027,"children":1028},{"style":129},[1029],{"type":50,"value":163},{"type":44,"tag":117,"props":1031,"children":1032},{"style":129},[1033],{"type":50,"value":224},{"type":44,"tag":117,"props":1035,"children":1036},{"style":135},[1037],{"type":50,"value":229},{"type":44,"tag":117,"props":1039,"children":1040},{"style":129},[1041],{"type":50,"value":224},{"type":44,"tag":117,"props":1043,"children":1044},{"style":129},[1045],{"type":50,"value":238},{"type":44,"tag":117,"props":1047,"children":1048},{"class":119,"line":24},[1049,1053,1057],{"type":44,"tag":117,"props":1050,"children":1051},{"style":245},[1052],{"type":50,"value":248},{"type":44,"tag":117,"props":1054,"children":1055},{"style":129},[1056],{"type":50,"value":104},{"type":44,"tag":117,"props":1058,"children":1059},{"style":129},[1060],{"type":50,"value":238},{"type":44,"tag":117,"props":1062,"children":1063},{"class":119,"line":179},[1064,1068,1072,1076,1080,1084,1088,1092,1096,1100,1104,1108],{"type":44,"tag":117,"props":1065,"children":1066},{"style":245},[1067],{"type":50,"value":265},{"type":44,"tag":117,"props":1069,"children":1070},{"style":129},[1071],{"type":50,"value":104},{"type":44,"tag":117,"props":1073,"children":1074},{"style":129},[1075],{"type":50,"value":132},{"type":44,"tag":117,"props":1077,"children":1078},{"style":245},[1079],{"type":50,"value":278},{"type":44,"tag":117,"props":1081,"children":1082},{"style":129},[1083],{"type":50,"value":104},{"type":44,"tag":117,"props":1085,"children":1086},{"style":285},[1087],{"type":50,"value":288},{"type":44,"tag":117,"props":1089,"children":1090},{"style":129},[1091],{"type":50,"value":224},{"type":44,"tag":117,"props":1093,"children":1094},{"style":245},[1095],{"type":50,"value":297},{"type":44,"tag":117,"props":1097,"children":1098},{"style":129},[1099],{"type":50,"value":104},{"type":44,"tag":117,"props":1101,"children":1102},{"style":285},[1103],{"type":50,"value":306},{"type":44,"tag":117,"props":1105,"children":1106},{"style":129},[1107],{"type":50,"value":820},{"type":44,"tag":117,"props":1109,"children":1110},{"style":823},[1111],{"type":50,"value":1112},"  \u002F\u002F subscriber CAN disable\n",{"type":44,"tag":117,"props":1114,"children":1115},{"class":119,"line":241},[1116,1120,1124],{"type":44,"tag":117,"props":1117,"children":1118},{"style":245},[1119],{"type":50,"value":320},{"type":44,"tag":117,"props":1121,"children":1122},{"style":129},[1123],{"type":50,"value":104},{"type":44,"tag":117,"props":1125,"children":1126},{"style":129},[1127],{"type":50,"value":238},{"type":44,"tag":117,"props":1129,"children":1130},{"class":119,"line":259},[1131,1135,1139,1143,1147,1151,1155],{"type":44,"tag":117,"props":1132,"children":1133},{"style":245},[1134],{"type":50,"value":337},{"type":44,"tag":117,"props":1136,"children":1137},{"style":129},[1138],{"type":50,"value":104},{"type":44,"tag":117,"props":1140,"children":1141},{"style":129},[1142],{"type":50,"value":132},{"type":44,"tag":117,"props":1144,"children":1145},{"style":245},[1146],{"type":50,"value":278},{"type":44,"tag":117,"props":1148,"children":1149},{"style":129},[1150],{"type":50,"value":104},{"type":44,"tag":117,"props":1152,"children":1153},{"style":285},[1154],{"type":50,"value":288},{"type":44,"tag":117,"props":1156,"children":1157},{"style":129},[1158],{"type":50,"value":311},{"type":44,"tag":117,"props":1160,"children":1161},{"class":119,"line":314},[1162,1166,1170,1174,1178,1182,1186,1190],{"type":44,"tag":117,"props":1163,"children":1164},{"style":245},[1165],{"type":50,"value":370},{"type":44,"tag":117,"props":1167,"children":1168},{"style":129},[1169],{"type":50,"value":104},{"type":44,"tag":117,"props":1171,"children":1172},{"style":129},[1173],{"type":50,"value":132},{"type":44,"tag":117,"props":1175,"children":1176},{"style":245},[1177],{"type":50,"value":278},{"type":44,"tag":117,"props":1179,"children":1180},{"style":129},[1181],{"type":50,"value":104},{"type":44,"tag":117,"props":1183,"children":1184},{"style":285},[1185],{"type":50,"value":306},{"type":44,"tag":117,"props":1187,"children":1188},{"style":129},[1189],{"type":50,"value":820},{"type":44,"tag":117,"props":1191,"children":1192},{"style":823},[1193],{"type":50,"value":1194},"  \u002F\u002F off by default, subscriber can enable\n",{"type":44,"tag":117,"props":1196,"children":1197},{"class":119,"line":331},[1198],{"type":44,"tag":117,"props":1199,"children":1200},{"style":129},[1201],{"type":50,"value":502},{"type":44,"tag":117,"props":1203,"children":1204},{"class":119,"line":364},[1205],{"type":44,"tag":117,"props":1206,"children":1207},{"style":129},[1208],{"type":50,"value":511},{"type":44,"tag":117,"props":1210,"children":1211},{"class":119,"line":397},[1212,1216,1220],{"type":44,"tag":117,"props":1213,"children":1214},{"style":129},[1215],{"type":50,"value":520},{"type":44,"tag":117,"props":1217,"children":1218},{"style":135},[1219],{"type":50,"value":525},{"type":44,"tag":117,"props":1221,"children":1222},{"style":129},[1223],{"type":50,"value":168},{"type":44,"tag":85,"props":1225,"children":1227},{"id":1226},"subscriber-level-preferences",[1228],{"type":50,"value":1229},"Subscriber-Level Preferences",{"type":44,"tag":53,"props":1231,"children":1232},{},[1233,1235,1240],{"type":50,"value":1234},"Subscribers can override workflow defaults (unless ",{"type":44,"tag":97,"props":1236,"children":1238},{"className":1237},[],[1239],{"type":50,"value":688},{"type":50,"value":1241},").",{"type":44,"tag":553,"props":1243,"children":1245},{"id":1244},"get-subscriber-preferences",[1246],{"type":50,"value":1247},"Get Subscriber Preferences",{"type":44,"tag":106,"props":1249,"children":1251},{"className":108,"code":1250,"language":110,"meta":111,"style":111},"import { Novu } from \"@novu\u002Fapi\";\n\nconst novu = new Novu({\n  secretKey: process.env.NOVU_SECRET_KEY,\n});\n\nconst preferences = await novu.subscribers.preferences.list({\n  subscriberId: \"subscriber-123\",\n});\n",[1252],{"type":44,"tag":97,"props":1253,"children":1254},{"__ignoreMap":111},[1255,1296,1303,1337,1377,1392,1399,1460,1489],{"type":44,"tag":117,"props":1256,"children":1257},{"class":119,"line":20},[1258,1262,1266,1271,1275,1279,1283,1288,1292],{"type":44,"tag":117,"props":1259,"children":1260},{"style":123},[1261],{"type":50,"value":126},{"type":44,"tag":117,"props":1263,"children":1264},{"style":129},[1265],{"type":50,"value":132},{"type":44,"tag":117,"props":1267,"children":1268},{"style":135},[1269],{"type":50,"value":1270}," Novu",{"type":44,"tag":117,"props":1272,"children":1273},{"style":129},[1274],{"type":50,"value":143},{"type":44,"tag":117,"props":1276,"children":1277},{"style":123},[1278],{"type":50,"value":148},{"type":44,"tag":117,"props":1280,"children":1281},{"style":129},[1282],{"type":50,"value":153},{"type":44,"tag":117,"props":1284,"children":1285},{"style":156},[1286],{"type":50,"value":1287},"@novu\u002Fapi",{"type":44,"tag":117,"props":1289,"children":1290},{"style":129},[1291],{"type":50,"value":163},{"type":44,"tag":117,"props":1293,"children":1294},{"style":129},[1295],{"type":50,"value":168},{"type":44,"tag":117,"props":1297,"children":1298},{"class":119,"line":24},[1299],{"type":44,"tag":117,"props":1300,"children":1301},{"emptyLinePlaceholder":38},[1302],{"type":50,"value":176},{"type":44,"tag":117,"props":1304,"children":1305},{"class":119,"line":179},[1306,1310,1315,1319,1324,1328,1332],{"type":44,"tag":117,"props":1307,"children":1308},{"style":183},[1309],{"type":50,"value":186},{"type":44,"tag":117,"props":1311,"children":1312},{"style":135},[1313],{"type":50,"value":1314}," novu ",{"type":44,"tag":117,"props":1316,"children":1317},{"style":129},[1318],{"type":50,"value":196},{"type":44,"tag":117,"props":1320,"children":1321},{"style":129},[1322],{"type":50,"value":1323}," new",{"type":44,"tag":117,"props":1325,"children":1326},{"style":199},[1327],{"type":50,"value":1270},{"type":44,"tag":117,"props":1329,"children":1330},{"style":135},[1331],{"type":50,"value":206},{"type":44,"tag":117,"props":1333,"children":1334},{"style":129},[1335],{"type":50,"value":1336},"{\n",{"type":44,"tag":117,"props":1338,"children":1339},{"class":119,"line":241},[1340,1345,1349,1354,1359,1364,1368,1372],{"type":44,"tag":117,"props":1341,"children":1342},{"style":245},[1343],{"type":50,"value":1344},"  secretKey",{"type":44,"tag":117,"props":1346,"children":1347},{"style":129},[1348],{"type":50,"value":104},{"type":44,"tag":117,"props":1350,"children":1351},{"style":135},[1352],{"type":50,"value":1353}," process",{"type":44,"tag":117,"props":1355,"children":1356},{"style":129},[1357],{"type":50,"value":1358},".",{"type":44,"tag":117,"props":1360,"children":1361},{"style":135},[1362],{"type":50,"value":1363},"env",{"type":44,"tag":117,"props":1365,"children":1366},{"style":129},[1367],{"type":50,"value":1358},{"type":44,"tag":117,"props":1369,"children":1370},{"style":135},[1371],{"type":50,"value":36},{"type":44,"tag":117,"props":1373,"children":1374},{"style":129},[1375],{"type":50,"value":1376},",\n",{"type":44,"tag":117,"props":1378,"children":1379},{"class":119,"line":259},[1380,1384,1388],{"type":44,"tag":117,"props":1381,"children":1382},{"style":129},[1383],{"type":50,"value":520},{"type":44,"tag":117,"props":1385,"children":1386},{"style":135},[1387],{"type":50,"value":525},{"type":44,"tag":117,"props":1389,"children":1390},{"style":129},[1391],{"type":50,"value":168},{"type":44,"tag":117,"props":1393,"children":1394},{"class":119,"line":314},[1395],{"type":44,"tag":117,"props":1396,"children":1397},{"emptyLinePlaceholder":38},[1398],{"type":50,"value":176},{"type":44,"tag":117,"props":1400,"children":1401},{"class":119,"line":331},[1402,1406,1411,1415,1420,1425,1429,1434,1438,1443,1447,1452,1456],{"type":44,"tag":117,"props":1403,"children":1404},{"style":183},[1405],{"type":50,"value":186},{"type":44,"tag":117,"props":1407,"children":1408},{"style":135},[1409],{"type":50,"value":1410}," preferences ",{"type":44,"tag":117,"props":1412,"children":1413},{"style":129},[1414],{"type":50,"value":196},{"type":44,"tag":117,"props":1416,"children":1417},{"style":123},[1418],{"type":50,"value":1419}," await",{"type":44,"tag":117,"props":1421,"children":1422},{"style":135},[1423],{"type":50,"value":1424}," novu",{"type":44,"tag":117,"props":1426,"children":1427},{"style":129},[1428],{"type":50,"value":1358},{"type":44,"tag":117,"props":1430,"children":1431},{"style":135},[1432],{"type":50,"value":1433},"subscribers",{"type":44,"tag":117,"props":1435,"children":1436},{"style":129},[1437],{"type":50,"value":1358},{"type":44,"tag":117,"props":1439,"children":1440},{"style":135},[1441],{"type":50,"value":1442},"preferences",{"type":44,"tag":117,"props":1444,"children":1445},{"style":129},[1446],{"type":50,"value":1358},{"type":44,"tag":117,"props":1448,"children":1449},{"style":199},[1450],{"type":50,"value":1451},"list",{"type":44,"tag":117,"props":1453,"children":1454},{"style":135},[1455],{"type":50,"value":206},{"type":44,"tag":117,"props":1457,"children":1458},{"style":129},[1459],{"type":50,"value":1336},{"type":44,"tag":117,"props":1461,"children":1462},{"class":119,"line":364},[1463,1468,1472,1476,1481,1485],{"type":44,"tag":117,"props":1464,"children":1465},{"style":245},[1466],{"type":50,"value":1467},"  subscriberId",{"type":44,"tag":117,"props":1469,"children":1470},{"style":129},[1471],{"type":50,"value":104},{"type":44,"tag":117,"props":1473,"children":1474},{"style":129},[1475],{"type":50,"value":153},{"type":44,"tag":117,"props":1477,"children":1478},{"style":156},[1479],{"type":50,"value":1480},"subscriber-123",{"type":44,"tag":117,"props":1482,"children":1483},{"style":129},[1484],{"type":50,"value":163},{"type":44,"tag":117,"props":1486,"children":1487},{"style":129},[1488],{"type":50,"value":1376},{"type":44,"tag":117,"props":1490,"children":1491},{"class":119,"line":397},[1492,1496,1500],{"type":44,"tag":117,"props":1493,"children":1494},{"style":129},[1495],{"type":50,"value":520},{"type":44,"tag":117,"props":1497,"children":1498},{"style":135},[1499],{"type":50,"value":525},{"type":44,"tag":117,"props":1501,"children":1502},{"style":129},[1503],{"type":50,"value":168},{"type":44,"tag":553,"props":1505,"children":1507},{"id":1506},"update-subscriber-preferences",[1508],{"type":50,"value":1509},"Update Subscriber Preferences",{"type":44,"tag":106,"props":1511,"children":1513},{"className":108,"code":1512,"language":110,"meta":111,"style":111},"await novu.subscribers.preferences.update(\n  {\n    workflowId: \"weekly-newsletter\",\n    channels: {\n      email: false,   \u002F\u002F opt out of email\n      inApp: true,    \u002F\u002F keep in-app\n    },\n  },\n  \"subscriber-123\"\n);\n",[1514],{"type":44,"tag":97,"props":1515,"children":1516},{"__ignoreMap":111},[1517,1559,1567,1595,1610,1634,1658,1665,1672,1689],{"type":44,"tag":117,"props":1518,"children":1519},{"class":119,"line":20},[1520,1525,1529,1533,1537,1541,1545,1549,1554],{"type":44,"tag":117,"props":1521,"children":1522},{"style":123},[1523],{"type":50,"value":1524},"await",{"type":44,"tag":117,"props":1526,"children":1527},{"style":135},[1528],{"type":50,"value":1424},{"type":44,"tag":117,"props":1530,"children":1531},{"style":129},[1532],{"type":50,"value":1358},{"type":44,"tag":117,"props":1534,"children":1535},{"style":135},[1536],{"type":50,"value":1433},{"type":44,"tag":117,"props":1538,"children":1539},{"style":129},[1540],{"type":50,"value":1358},{"type":44,"tag":117,"props":1542,"children":1543},{"style":135},[1544],{"type":50,"value":1442},{"type":44,"tag":117,"props":1546,"children":1547},{"style":129},[1548],{"type":50,"value":1358},{"type":44,"tag":117,"props":1550,"children":1551},{"style":199},[1552],{"type":50,"value":1553},"update",{"type":44,"tag":117,"props":1555,"children":1556},{"style":135},[1557],{"type":50,"value":1558},"(\n",{"type":44,"tag":117,"props":1560,"children":1561},{"class":119,"line":24},[1562],{"type":44,"tag":117,"props":1563,"children":1564},{"style":129},[1565],{"type":50,"value":1566},"  {\n",{"type":44,"tag":117,"props":1568,"children":1569},{"class":119,"line":179},[1570,1575,1579,1583,1587,1591],{"type":44,"tag":117,"props":1571,"children":1572},{"style":245},[1573],{"type":50,"value":1574},"    workflowId",{"type":44,"tag":117,"props":1576,"children":1577},{"style":129},[1578],{"type":50,"value":104},{"type":44,"tag":117,"props":1580,"children":1581},{"style":129},[1582],{"type":50,"value":153},{"type":44,"tag":117,"props":1584,"children":1585},{"style":156},[1586],{"type":50,"value":1025},{"type":44,"tag":117,"props":1588,"children":1589},{"style":129},[1590],{"type":50,"value":163},{"type":44,"tag":117,"props":1592,"children":1593},{"style":129},[1594],{"type":50,"value":1376},{"type":44,"tag":117,"props":1596,"children":1597},{"class":119,"line":241},[1598,1602,1606],{"type":44,"tag":117,"props":1599,"children":1600},{"style":245},[1601],{"type":50,"value":320},{"type":44,"tag":117,"props":1603,"children":1604},{"style":129},[1605],{"type":50,"value":104},{"type":44,"tag":117,"props":1607,"children":1608},{"style":129},[1609],{"type":50,"value":238},{"type":44,"tag":117,"props":1611,"children":1612},{"class":119,"line":259},[1613,1617,1621,1625,1629],{"type":44,"tag":117,"props":1614,"children":1615},{"style":245},[1616],{"type":50,"value":337},{"type":44,"tag":117,"props":1618,"children":1619},{"style":129},[1620],{"type":50,"value":104},{"type":44,"tag":117,"props":1622,"children":1623},{"style":285},[1624],{"type":50,"value":306},{"type":44,"tag":117,"props":1626,"children":1627},{"style":129},[1628],{"type":50,"value":224},{"type":44,"tag":117,"props":1630,"children":1631},{"style":823},[1632],{"type":50,"value":1633},"   \u002F\u002F opt out of email\n",{"type":44,"tag":117,"props":1635,"children":1636},{"class":119,"line":314},[1637,1641,1645,1649,1653],{"type":44,"tag":117,"props":1638,"children":1639},{"style":245},[1640],{"type":50,"value":469},{"type":44,"tag":117,"props":1642,"children":1643},{"style":129},[1644],{"type":50,"value":104},{"type":44,"tag":117,"props":1646,"children":1647},{"style":285},[1648],{"type":50,"value":288},{"type":44,"tag":117,"props":1650,"children":1651},{"style":129},[1652],{"type":50,"value":224},{"type":44,"tag":117,"props":1654,"children":1655},{"style":823},[1656],{"type":50,"value":1657},"    \u002F\u002F keep in-app\n",{"type":44,"tag":117,"props":1659,"children":1660},{"class":119,"line":331},[1661],{"type":44,"tag":117,"props":1662,"children":1663},{"style":129},[1664],{"type":50,"value":502},{"type":44,"tag":117,"props":1666,"children":1667},{"class":119,"line":364},[1668],{"type":44,"tag":117,"props":1669,"children":1670},{"style":129},[1671],{"type":50,"value":511},{"type":44,"tag":117,"props":1673,"children":1674},{"class":119,"line":397},[1675,1680,1684],{"type":44,"tag":117,"props":1676,"children":1677},{"style":129},[1678],{"type":50,"value":1679},"  \"",{"type":44,"tag":117,"props":1681,"children":1682},{"style":156},[1683],{"type":50,"value":1480},{"type":44,"tag":117,"props":1685,"children":1686},{"style":129},[1687],{"type":50,"value":1688},"\"\n",{"type":44,"tag":117,"props":1690,"children":1691},{"class":119,"line":430},[1692,1696],{"type":44,"tag":117,"props":1693,"children":1694},{"style":135},[1695],{"type":50,"value":525},{"type":44,"tag":117,"props":1697,"children":1698},{"style":129},[1699],{"type":50,"value":168},{"type":44,"tag":553,"props":1701,"children":1703},{"id":1702},"global-preferences",[1704],{"type":50,"value":1705},"Global Preferences",{"type":44,"tag":53,"props":1707,"children":1708},{},[1709,1711,1717],{"type":50,"value":1710},"Update preferences across all workflows by omitting ",{"type":44,"tag":97,"props":1712,"children":1714},{"className":1713},[],[1715],{"type":50,"value":1716},"workflowId",{"type":50,"value":104},{"type":44,"tag":106,"props":1719,"children":1721},{"className":108,"code":1720,"language":110,"meta":111,"style":111},"await novu.subscribers.preferences.update(\n  {\n    channels: {\n      sms: false,  \u002F\u002F disable SMS for all workflows\n    },\n  },\n  \"subscriber-123\"\n);\n",[1722],{"type":44,"tag":97,"props":1723,"children":1724},{"__ignoreMap":111},[1725,1764,1771,1786,1810,1817,1824,1839],{"type":44,"tag":117,"props":1726,"children":1727},{"class":119,"line":20},[1728,1732,1736,1740,1744,1748,1752,1756,1760],{"type":44,"tag":117,"props":1729,"children":1730},{"style":123},[1731],{"type":50,"value":1524},{"type":44,"tag":117,"props":1733,"children":1734},{"style":135},[1735],{"type":50,"value":1424},{"type":44,"tag":117,"props":1737,"children":1738},{"style":129},[1739],{"type":50,"value":1358},{"type":44,"tag":117,"props":1741,"children":1742},{"style":135},[1743],{"type":50,"value":1433},{"type":44,"tag":117,"props":1745,"children":1746},{"style":129},[1747],{"type":50,"value":1358},{"type":44,"tag":117,"props":1749,"children":1750},{"style":135},[1751],{"type":50,"value":1442},{"type":44,"tag":117,"props":1753,"children":1754},{"style":129},[1755],{"type":50,"value":1358},{"type":44,"tag":117,"props":1757,"children":1758},{"style":199},[1759],{"type":50,"value":1553},{"type":44,"tag":117,"props":1761,"children":1762},{"style":135},[1763],{"type":50,"value":1558},{"type":44,"tag":117,"props":1765,"children":1766},{"class":119,"line":24},[1767],{"type":44,"tag":117,"props":1768,"children":1769},{"style":129},[1770],{"type":50,"value":1566},{"type":44,"tag":117,"props":1772,"children":1773},{"class":119,"line":179},[1774,1778,1782],{"type":44,"tag":117,"props":1775,"children":1776},{"style":245},[1777],{"type":50,"value":320},{"type":44,"tag":117,"props":1779,"children":1780},{"style":129},[1781],{"type":50,"value":104},{"type":44,"tag":117,"props":1783,"children":1784},{"style":129},[1785],{"type":50,"value":238},{"type":44,"tag":117,"props":1787,"children":1788},{"class":119,"line":241},[1789,1793,1797,1801,1805],{"type":44,"tag":117,"props":1790,"children":1791},{"style":245},[1792],{"type":50,"value":370},{"type":44,"tag":117,"props":1794,"children":1795},{"style":129},[1796],{"type":50,"value":104},{"type":44,"tag":117,"props":1798,"children":1799},{"style":285},[1800],{"type":50,"value":306},{"type":44,"tag":117,"props":1802,"children":1803},{"style":129},[1804],{"type":50,"value":224},{"type":44,"tag":117,"props":1806,"children":1807},{"style":823},[1808],{"type":50,"value":1809},"  \u002F\u002F disable SMS for all workflows\n",{"type":44,"tag":117,"props":1811,"children":1812},{"class":119,"line":259},[1813],{"type":44,"tag":117,"props":1814,"children":1815},{"style":129},[1816],{"type":50,"value":502},{"type":44,"tag":117,"props":1818,"children":1819},{"class":119,"line":314},[1820],{"type":44,"tag":117,"props":1821,"children":1822},{"style":129},[1823],{"type":50,"value":511},{"type":44,"tag":117,"props":1825,"children":1826},{"class":119,"line":331},[1827,1831,1835],{"type":44,"tag":117,"props":1828,"children":1829},{"style":129},[1830],{"type":50,"value":1679},{"type":44,"tag":117,"props":1832,"children":1833},{"style":156},[1834],{"type":50,"value":1480},{"type":44,"tag":117,"props":1836,"children":1837},{"style":129},[1838],{"type":50,"value":1688},{"type":44,"tag":117,"props":1840,"children":1841},{"class":119,"line":364},[1842,1846],{"type":44,"tag":117,"props":1843,"children":1844},{"style":135},[1845],{"type":50,"value":525},{"type":44,"tag":117,"props":1847,"children":1848},{"style":129},[1849],{"type":50,"value":168},{"type":44,"tag":85,"props":1851,"children":1853},{"id":1852},"preference-resolution-order",[1854],{"type":50,"value":1855},"Preference Resolution Order",{"type":44,"tag":53,"props":1857,"children":1858},{},[1859],{"type":50,"value":1860},"When Novu determines whether to deliver a notification:",{"type":44,"tag":59,"props":1862,"children":1863},{},[1864,1874,1884,1894],{"type":44,"tag":63,"props":1865,"children":1866},{},[1867,1872],{"type":44,"tag":67,"props":1868,"children":1869},{},[1870],{"type":50,"value":1871},"Subscriber workflow preference",{"type":50,"value":1873}," (most specific) — subscriber's override for this specific workflow",{"type":44,"tag":63,"props":1875,"children":1876},{},[1877,1882],{"type":44,"tag":67,"props":1878,"children":1879},{},[1880],{"type":50,"value":1881},"Subscriber global preference",{"type":50,"value":1883}," — subscriber's default across all workflows",{"type":44,"tag":63,"props":1885,"children":1886},{},[1887,1892],{"type":44,"tag":67,"props":1888,"children":1889},{},[1890],{"type":50,"value":1891},"Workflow default",{"type":50,"value":1893}," — developer-defined default in code",{"type":44,"tag":63,"props":1895,"children":1896},{},[1897,1902],{"type":44,"tag":67,"props":1898,"children":1899},{},[1900],{"type":50,"value":1901},"System default",{"type":50,"value":1903}," — all channels enabled",{"type":44,"tag":53,"props":1905,"children":1906},{},[1907],{"type":50,"value":1908},"The most specific preference wins. If a subscriber disables email for a specific workflow, that takes precedence even if their global email preference is enabled.",{"type":44,"tag":85,"props":1910,"children":1912},{"id":1911},"preferences-ui-component",[1913],{"type":50,"value":1914},"Preferences UI Component",{"type":44,"tag":553,"props":1916,"children":1918},{"id":1917},"react",[1919],{"type":50,"value":1920},"React",{"type":44,"tag":106,"props":1922,"children":1926},{"className":1923,"code":1924,"language":1925,"meta":111,"style":111},"language-tsx shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { Inbox } from \"@novu\u002Freact\";\n\nfunction App() {\n  return (\n    \u003CInbox\n      applicationIdentifier=\"YOUR_NOVU_APP_ID\"\n      subscriberId=\"subscriber-123\"\n      subscriberHash=\"HMAC_HASH\"\n    >\n      {\u002F* The Preferences panel is built into the Inbox *\u002F}\n    \u003C\u002FInbox>\n  );\n}\n","tsx",[1927],{"type":44,"tag":97,"props":1928,"children":1929},{"__ignoreMap":111},[1930,1971,1978,2000,2013,2027,2052,2076,2101,2109,2127,2145,2157],{"type":44,"tag":117,"props":1931,"children":1932},{"class":119,"line":20},[1933,1937,1941,1946,1950,1954,1958,1963,1967],{"type":44,"tag":117,"props":1934,"children":1935},{"style":123},[1936],{"type":50,"value":126},{"type":44,"tag":117,"props":1938,"children":1939},{"style":129},[1940],{"type":50,"value":132},{"type":44,"tag":117,"props":1942,"children":1943},{"style":135},[1944],{"type":50,"value":1945}," Inbox",{"type":44,"tag":117,"props":1947,"children":1948},{"style":129},[1949],{"type":50,"value":143},{"type":44,"tag":117,"props":1951,"children":1952},{"style":123},[1953],{"type":50,"value":148},{"type":44,"tag":117,"props":1955,"children":1956},{"style":129},[1957],{"type":50,"value":153},{"type":44,"tag":117,"props":1959,"children":1960},{"style":156},[1961],{"type":50,"value":1962},"@novu\u002Freact",{"type":44,"tag":117,"props":1964,"children":1965},{"style":129},[1966],{"type":50,"value":163},{"type":44,"tag":117,"props":1968,"children":1969},{"style":129},[1970],{"type":50,"value":168},{"type":44,"tag":117,"props":1972,"children":1973},{"class":119,"line":24},[1974],{"type":44,"tag":117,"props":1975,"children":1976},{"emptyLinePlaceholder":38},[1977],{"type":50,"value":176},{"type":44,"tag":117,"props":1979,"children":1980},{"class":119,"line":179},[1981,1986,1991,1996],{"type":44,"tag":117,"props":1982,"children":1983},{"style":183},[1984],{"type":50,"value":1985},"function",{"type":44,"tag":117,"props":1987,"children":1988},{"style":199},[1989],{"type":50,"value":1990}," App",{"type":44,"tag":117,"props":1992,"children":1993},{"style":129},[1994],{"type":50,"value":1995},"()",{"type":44,"tag":117,"props":1997,"children":1998},{"style":129},[1999],{"type":50,"value":238},{"type":44,"tag":117,"props":2001,"children":2002},{"class":119,"line":241},[2003,2008],{"type":44,"tag":117,"props":2004,"children":2005},{"style":123},[2006],{"type":50,"value":2007},"  return",{"type":44,"tag":117,"props":2009,"children":2010},{"style":245},[2011],{"type":50,"value":2012}," (\n",{"type":44,"tag":117,"props":2014,"children":2015},{"class":119,"line":259},[2016,2021],{"type":44,"tag":117,"props":2017,"children":2018},{"style":129},[2019],{"type":50,"value":2020},"    \u003C",{"type":44,"tag":117,"props":2022,"children":2024},{"style":2023},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[2025],{"type":50,"value":2026},"Inbox\n",{"type":44,"tag":117,"props":2028,"children":2029},{"class":119,"line":314},[2030,2035,2039,2043,2048],{"type":44,"tag":117,"props":2031,"children":2032},{"style":183},[2033],{"type":50,"value":2034},"      applicationIdentifier",{"type":44,"tag":117,"props":2036,"children":2037},{"style":129},[2038],{"type":50,"value":196},{"type":44,"tag":117,"props":2040,"children":2041},{"style":129},[2042],{"type":50,"value":163},{"type":44,"tag":117,"props":2044,"children":2045},{"style":156},[2046],{"type":50,"value":2047},"YOUR_NOVU_APP_ID",{"type":44,"tag":117,"props":2049,"children":2050},{"style":129},[2051],{"type":50,"value":1688},{"type":44,"tag":117,"props":2053,"children":2054},{"class":119,"line":331},[2055,2060,2064,2068,2072],{"type":44,"tag":117,"props":2056,"children":2057},{"style":183},[2058],{"type":50,"value":2059},"      subscriberId",{"type":44,"tag":117,"props":2061,"children":2062},{"style":129},[2063],{"type":50,"value":196},{"type":44,"tag":117,"props":2065,"children":2066},{"style":129},[2067],{"type":50,"value":163},{"type":44,"tag":117,"props":2069,"children":2070},{"style":156},[2071],{"type":50,"value":1480},{"type":44,"tag":117,"props":2073,"children":2074},{"style":129},[2075],{"type":50,"value":1688},{"type":44,"tag":117,"props":2077,"children":2078},{"class":119,"line":364},[2079,2084,2088,2092,2097],{"type":44,"tag":117,"props":2080,"children":2081},{"style":183},[2082],{"type":50,"value":2083},"      subscriberHash",{"type":44,"tag":117,"props":2085,"children":2086},{"style":129},[2087],{"type":50,"value":196},{"type":44,"tag":117,"props":2089,"children":2090},{"style":129},[2091],{"type":50,"value":163},{"type":44,"tag":117,"props":2093,"children":2094},{"style":156},[2095],{"type":50,"value":2096},"HMAC_HASH",{"type":44,"tag":117,"props":2098,"children":2099},{"style":129},[2100],{"type":50,"value":1688},{"type":44,"tag":117,"props":2102,"children":2103},{"class":119,"line":397},[2104],{"type":44,"tag":117,"props":2105,"children":2106},{"style":129},[2107],{"type":50,"value":2108},"    >\n",{"type":44,"tag":117,"props":2110,"children":2111},{"class":119,"line":430},[2112,2117,2122],{"type":44,"tag":117,"props":2113,"children":2114},{"style":129},[2115],{"type":50,"value":2116},"      {",{"type":44,"tag":117,"props":2118,"children":2119},{"style":823},[2120],{"type":50,"value":2121},"\u002F* The Preferences panel is built into the Inbox *\u002F",{"type":44,"tag":117,"props":2123,"children":2124},{"style":129},[2125],{"type":50,"value":2126},"}\n",{"type":44,"tag":117,"props":2128,"children":2129},{"class":119,"line":463},[2130,2135,2140],{"type":44,"tag":117,"props":2131,"children":2132},{"style":129},[2133],{"type":50,"value":2134},"    \u003C\u002F",{"type":44,"tag":117,"props":2136,"children":2137},{"style":2023},[2138],{"type":50,"value":2139},"Inbox",{"type":44,"tag":117,"props":2141,"children":2142},{"style":129},[2143],{"type":50,"value":2144},">\n",{"type":44,"tag":117,"props":2146,"children":2147},{"class":119,"line":496},[2148,2153],{"type":44,"tag":117,"props":2149,"children":2150},{"style":245},[2151],{"type":50,"value":2152},"  )",{"type":44,"tag":117,"props":2154,"children":2155},{"style":129},[2156],{"type":50,"value":168},{"type":44,"tag":117,"props":2158,"children":2159},{"class":119,"line":505},[2160],{"type":44,"tag":117,"props":2161,"children":2162},{"style":129},[2163],{"type":50,"value":2126},{"type":44,"tag":53,"props":2165,"children":2166},{},[2167,2169,2175],{"type":50,"value":2168},"The ",{"type":44,"tag":97,"props":2170,"children":2172},{"className":2171},[],[2173],{"type":50,"value":2174},"\u003CInbox \u002F>",{"type":50,"value":2176}," component includes a built-in Preferences panel accessible via the settings icon.",{"type":44,"tag":553,"props":2178,"children":2180},{"id":2179},"standalone-preferences",[2181],{"type":50,"value":2182},"Standalone Preferences",{"type":44,"tag":53,"props":2184,"children":2185},{},[2186,2188,2194],{"type":50,"value":2187},"Use the ",{"type":44,"tag":97,"props":2189,"children":2191},{"className":2190},[],[2192],{"type":50,"value":2193},"\u003CPreferences \u002F>",{"type":50,"value":2195}," component independently:",{"type":44,"tag":106,"props":2197,"children":2199},{"className":1923,"code":2198,"language":1925,"meta":111,"style":111},"import { Inbox, Preferences } from \"@novu\u002Freact\";\n\nfunction PreferencesPage() {\n  return (\n    \u003CInbox\n      applicationIdentifier=\"YOUR_NOVU_APP_ID\"\n      subscriberId=\"subscriber-123\"\n    >\n      \u003CPreferences \u002F>\n    \u003C\u002FInbox>\n  );\n}\n",[2200],{"type":44,"tag":97,"props":2201,"children":2202},{"__ignoreMap":111},[2203,2251,2258,2278,2289,2300,2323,2346,2353,2371,2386,2397],{"type":44,"tag":117,"props":2204,"children":2205},{"class":119,"line":20},[2206,2210,2214,2218,2222,2227,2231,2235,2239,2243,2247],{"type":44,"tag":117,"props":2207,"children":2208},{"style":123},[2209],{"type":50,"value":126},{"type":44,"tag":117,"props":2211,"children":2212},{"style":129},[2213],{"type":50,"value":132},{"type":44,"tag":117,"props":2215,"children":2216},{"style":135},[2217],{"type":50,"value":1945},{"type":44,"tag":117,"props":2219,"children":2220},{"style":129},[2221],{"type":50,"value":224},{"type":44,"tag":117,"props":2223,"children":2224},{"style":135},[2225],{"type":50,"value":2226}," Preferences",{"type":44,"tag":117,"props":2228,"children":2229},{"style":129},[2230],{"type":50,"value":143},{"type":44,"tag":117,"props":2232,"children":2233},{"style":123},[2234],{"type":50,"value":148},{"type":44,"tag":117,"props":2236,"children":2237},{"style":129},[2238],{"type":50,"value":153},{"type":44,"tag":117,"props":2240,"children":2241},{"style":156},[2242],{"type":50,"value":1962},{"type":44,"tag":117,"props":2244,"children":2245},{"style":129},[2246],{"type":50,"value":163},{"type":44,"tag":117,"props":2248,"children":2249},{"style":129},[2250],{"type":50,"value":168},{"type":44,"tag":117,"props":2252,"children":2253},{"class":119,"line":24},[2254],{"type":44,"tag":117,"props":2255,"children":2256},{"emptyLinePlaceholder":38},[2257],{"type":50,"value":176},{"type":44,"tag":117,"props":2259,"children":2260},{"class":119,"line":179},[2261,2265,2270,2274],{"type":44,"tag":117,"props":2262,"children":2263},{"style":183},[2264],{"type":50,"value":1985},{"type":44,"tag":117,"props":2266,"children":2267},{"style":199},[2268],{"type":50,"value":2269}," PreferencesPage",{"type":44,"tag":117,"props":2271,"children":2272},{"style":129},[2273],{"type":50,"value":1995},{"type":44,"tag":117,"props":2275,"children":2276},{"style":129},[2277],{"type":50,"value":238},{"type":44,"tag":117,"props":2279,"children":2280},{"class":119,"line":241},[2281,2285],{"type":44,"tag":117,"props":2282,"children":2283},{"style":123},[2284],{"type":50,"value":2007},{"type":44,"tag":117,"props":2286,"children":2287},{"style":245},[2288],{"type":50,"value":2012},{"type":44,"tag":117,"props":2290,"children":2291},{"class":119,"line":259},[2292,2296],{"type":44,"tag":117,"props":2293,"children":2294},{"style":129},[2295],{"type":50,"value":2020},{"type":44,"tag":117,"props":2297,"children":2298},{"style":2023},[2299],{"type":50,"value":2026},{"type":44,"tag":117,"props":2301,"children":2302},{"class":119,"line":314},[2303,2307,2311,2315,2319],{"type":44,"tag":117,"props":2304,"children":2305},{"style":183},[2306],{"type":50,"value":2034},{"type":44,"tag":117,"props":2308,"children":2309},{"style":129},[2310],{"type":50,"value":196},{"type":44,"tag":117,"props":2312,"children":2313},{"style":129},[2314],{"type":50,"value":163},{"type":44,"tag":117,"props":2316,"children":2317},{"style":156},[2318],{"type":50,"value":2047},{"type":44,"tag":117,"props":2320,"children":2321},{"style":129},[2322],{"type":50,"value":1688},{"type":44,"tag":117,"props":2324,"children":2325},{"class":119,"line":331},[2326,2330,2334,2338,2342],{"type":44,"tag":117,"props":2327,"children":2328},{"style":183},[2329],{"type":50,"value":2059},{"type":44,"tag":117,"props":2331,"children":2332},{"style":129},[2333],{"type":50,"value":196},{"type":44,"tag":117,"props":2335,"children":2336},{"style":129},[2337],{"type":50,"value":163},{"type":44,"tag":117,"props":2339,"children":2340},{"style":156},[2341],{"type":50,"value":1480},{"type":44,"tag":117,"props":2343,"children":2344},{"style":129},[2345],{"type":50,"value":1688},{"type":44,"tag":117,"props":2347,"children":2348},{"class":119,"line":364},[2349],{"type":44,"tag":117,"props":2350,"children":2351},{"style":129},[2352],{"type":50,"value":2108},{"type":44,"tag":117,"props":2354,"children":2355},{"class":119,"line":397},[2356,2361,2366],{"type":44,"tag":117,"props":2357,"children":2358},{"style":129},[2359],{"type":50,"value":2360},"      \u003C",{"type":44,"tag":117,"props":2362,"children":2363},{"style":2023},[2364],{"type":50,"value":2365},"Preferences",{"type":44,"tag":117,"props":2367,"children":2368},{"style":129},[2369],{"type":50,"value":2370}," \u002F>\n",{"type":44,"tag":117,"props":2372,"children":2373},{"class":119,"line":430},[2374,2378,2382],{"type":44,"tag":117,"props":2375,"children":2376},{"style":129},[2377],{"type":50,"value":2134},{"type":44,"tag":117,"props":2379,"children":2380},{"style":2023},[2381],{"type":50,"value":2139},{"type":44,"tag":117,"props":2383,"children":2384},{"style":129},[2385],{"type":50,"value":2144},{"type":44,"tag":117,"props":2387,"children":2388},{"class":119,"line":463},[2389,2393],{"type":44,"tag":117,"props":2390,"children":2391},{"style":245},[2392],{"type":50,"value":2152},{"type":44,"tag":117,"props":2394,"children":2395},{"style":129},[2396],{"type":50,"value":168},{"type":44,"tag":117,"props":2398,"children":2399},{"class":119,"line":496},[2400],{"type":44,"tag":117,"props":2401,"children":2402},{"style":129},[2403],{"type":50,"value":2126},{"type":44,"tag":85,"props":2405,"children":2407},{"id":2406},"common-patterns",[2408],{"type":50,"value":2409},"Common Patterns",{"type":44,"tag":553,"props":2411,"children":2413},{"id":2412},"critical-alerts-always-on",[2414],{"type":50,"value":2415},"Critical Alerts (Always On)",{"type":44,"tag":106,"props":2417,"children":2419},{"className":108,"code":2418,"language":110,"meta":111,"style":111},"preferences: {\n  all: { enabled: true, readOnly: true },\n}\n",[2420],{"type":44,"tag":97,"props":2421,"children":2422},{"__ignoreMap":111},[2423,2438,2486],{"type":44,"tag":117,"props":2424,"children":2425},{"class":119,"line":20},[2426,2430,2434],{"type":44,"tag":117,"props":2427,"children":2428},{"style":2023},[2429],{"type":50,"value":1442},{"type":44,"tag":117,"props":2431,"children":2432},{"style":129},[2433],{"type":50,"value":104},{"type":44,"tag":117,"props":2435,"children":2436},{"style":129},[2437],{"type":50,"value":238},{"type":44,"tag":117,"props":2439,"children":2440},{"class":119,"line":24},[2441,2446,2450,2454,2458,2462,2466,2470,2474,2478,2482],{"type":44,"tag":117,"props":2442,"children":2443},{"style":2023},[2444],{"type":50,"value":2445},"  all",{"type":44,"tag":117,"props":2447,"children":2448},{"style":129},[2449],{"type":50,"value":104},{"type":44,"tag":117,"props":2451,"children":2452},{"style":129},[2453],{"type":50,"value":132},{"type":44,"tag":117,"props":2455,"children":2456},{"style":2023},[2457],{"type":50,"value":278},{"type":44,"tag":117,"props":2459,"children":2460},{"style":129},[2461],{"type":50,"value":104},{"type":44,"tag":117,"props":2463,"children":2464},{"style":285},[2465],{"type":50,"value":288},{"type":44,"tag":117,"props":2467,"children":2468},{"style":129},[2469],{"type":50,"value":224},{"type":44,"tag":117,"props":2471,"children":2472},{"style":2023},[2473],{"type":50,"value":297},{"type":44,"tag":117,"props":2475,"children":2476},{"style":129},[2477],{"type":50,"value":104},{"type":44,"tag":117,"props":2479,"children":2480},{"style":285},[2481],{"type":50,"value":288},{"type":44,"tag":117,"props":2483,"children":2484},{"style":129},[2485],{"type":50,"value":311},{"type":44,"tag":117,"props":2487,"children":2488},{"class":119,"line":179},[2489],{"type":44,"tag":117,"props":2490,"children":2491},{"style":129},[2492],{"type":50,"value":2126},{"type":44,"tag":53,"props":2494,"children":2495},{},[2496],{"type":50,"value":2497},"Subscribers cannot opt out. Use for security alerts, payment notifications, legal notices.",{"type":44,"tag":553,"props":2499,"children":2501},{"id":2500},"marketing-opt-out-friendly",[2502],{"type":50,"value":2503},"Marketing (Opt-Out Friendly)",{"type":44,"tag":106,"props":2505,"children":2507},{"className":108,"code":2506,"language":110,"meta":111,"style":111},"preferences: {\n  all: { enabled: true, readOnly: false },\n  channels: {\n    email: { enabled: true },\n    sms: { enabled: false },\n  },\n}\n",[2508],{"type":44,"tag":97,"props":2509,"children":2510},{"__ignoreMap":111},[2511,2526,2573,2589,2621,2653,2660],{"type":44,"tag":117,"props":2512,"children":2513},{"class":119,"line":20},[2514,2518,2522],{"type":44,"tag":117,"props":2515,"children":2516},{"style":2023},[2517],{"type":50,"value":1442},{"type":44,"tag":117,"props":2519,"children":2520},{"style":129},[2521],{"type":50,"value":104},{"type":44,"tag":117,"props":2523,"children":2524},{"style":129},[2525],{"type":50,"value":238},{"type":44,"tag":117,"props":2527,"children":2528},{"class":119,"line":24},[2529,2533,2537,2541,2545,2549,2553,2557,2561,2565,2569],{"type":44,"tag":117,"props":2530,"children":2531},{"style":2023},[2532],{"type":50,"value":2445},{"type":44,"tag":117,"props":2534,"children":2535},{"style":129},[2536],{"type":50,"value":104},{"type":44,"tag":117,"props":2538,"children":2539},{"style":129},[2540],{"type":50,"value":132},{"type":44,"tag":117,"props":2542,"children":2543},{"style":2023},[2544],{"type":50,"value":278},{"type":44,"tag":117,"props":2546,"children":2547},{"style":129},[2548],{"type":50,"value":104},{"type":44,"tag":117,"props":2550,"children":2551},{"style":285},[2552],{"type":50,"value":288},{"type":44,"tag":117,"props":2554,"children":2555},{"style":129},[2556],{"type":50,"value":224},{"type":44,"tag":117,"props":2558,"children":2559},{"style":2023},[2560],{"type":50,"value":297},{"type":44,"tag":117,"props":2562,"children":2563},{"style":129},[2564],{"type":50,"value":104},{"type":44,"tag":117,"props":2566,"children":2567},{"style":285},[2568],{"type":50,"value":306},{"type":44,"tag":117,"props":2570,"children":2571},{"style":129},[2572],{"type":50,"value":311},{"type":44,"tag":117,"props":2574,"children":2575},{"class":119,"line":179},[2576,2581,2585],{"type":44,"tag":117,"props":2577,"children":2578},{"style":2023},[2579],{"type":50,"value":2580},"  channels",{"type":44,"tag":117,"props":2582,"children":2583},{"style":129},[2584],{"type":50,"value":104},{"type":44,"tag":117,"props":2586,"children":2587},{"style":129},[2588],{"type":50,"value":238},{"type":44,"tag":117,"props":2590,"children":2591},{"class":119,"line":241},[2592,2597,2601,2605,2609,2613,2617],{"type":44,"tag":117,"props":2593,"children":2594},{"style":2023},[2595],{"type":50,"value":2596},"    email",{"type":44,"tag":117,"props":2598,"children":2599},{"style":129},[2600],{"type":50,"value":104},{"type":44,"tag":117,"props":2602,"children":2603},{"style":129},[2604],{"type":50,"value":132},{"type":44,"tag":117,"props":2606,"children":2607},{"style":2023},[2608],{"type":50,"value":278},{"type":44,"tag":117,"props":2610,"children":2611},{"style":129},[2612],{"type":50,"value":104},{"type":44,"tag":117,"props":2614,"children":2615},{"style":285},[2616],{"type":50,"value":288},{"type":44,"tag":117,"props":2618,"children":2619},{"style":129},[2620],{"type":50,"value":311},{"type":44,"tag":117,"props":2622,"children":2623},{"class":119,"line":259},[2624,2629,2633,2637,2641,2645,2649],{"type":44,"tag":117,"props":2625,"children":2626},{"style":2023},[2627],{"type":50,"value":2628},"    sms",{"type":44,"tag":117,"props":2630,"children":2631},{"style":129},[2632],{"type":50,"value":104},{"type":44,"tag":117,"props":2634,"children":2635},{"style":129},[2636],{"type":50,"value":132},{"type":44,"tag":117,"props":2638,"children":2639},{"style":2023},[2640],{"type":50,"value":278},{"type":44,"tag":117,"props":2642,"children":2643},{"style":129},[2644],{"type":50,"value":104},{"type":44,"tag":117,"props":2646,"children":2647},{"style":285},[2648],{"type":50,"value":306},{"type":44,"tag":117,"props":2650,"children":2651},{"style":129},[2652],{"type":50,"value":311},{"type":44,"tag":117,"props":2654,"children":2655},{"class":119,"line":314},[2656],{"type":44,"tag":117,"props":2657,"children":2658},{"style":129},[2659],{"type":50,"value":511},{"type":44,"tag":117,"props":2661,"children":2662},{"class":119,"line":331},[2663],{"type":44,"tag":117,"props":2664,"children":2665},{"style":129},[2666],{"type":50,"value":2126},{"type":44,"tag":53,"props":2668,"children":2669},{},[2670],{"type":50,"value":2671},"Subscribers can toggle channels. SMS is off by default.",{"type":44,"tag":553,"props":2673,"children":2675},{"id":2674},"in-app-only-by-default",[2676],{"type":50,"value":2677},"In-App Only by Default",{"type":44,"tag":106,"props":2679,"children":2681},{"className":108,"code":2680,"language":110,"meta":111,"style":111},"preferences: {\n  all: { enabled: false },\n  channels: {\n    inApp: { enabled: true },\n  },\n}\n",[2682],{"type":44,"tag":97,"props":2683,"children":2684},{"__ignoreMap":111},[2685,2700,2731,2746,2778,2785],{"type":44,"tag":117,"props":2686,"children":2687},{"class":119,"line":20},[2688,2692,2696],{"type":44,"tag":117,"props":2689,"children":2690},{"style":2023},[2691],{"type":50,"value":1442},{"type":44,"tag":117,"props":2693,"children":2694},{"style":129},[2695],{"type":50,"value":104},{"type":44,"tag":117,"props":2697,"children":2698},{"style":129},[2699],{"type":50,"value":238},{"type":44,"tag":117,"props":2701,"children":2702},{"class":119,"line":24},[2703,2707,2711,2715,2719,2723,2727],{"type":44,"tag":117,"props":2704,"children":2705},{"style":2023},[2706],{"type":50,"value":2445},{"type":44,"tag":117,"props":2708,"children":2709},{"style":129},[2710],{"type":50,"value":104},{"type":44,"tag":117,"props":2712,"children":2713},{"style":129},[2714],{"type":50,"value":132},{"type":44,"tag":117,"props":2716,"children":2717},{"style":2023},[2718],{"type":50,"value":278},{"type":44,"tag":117,"props":2720,"children":2721},{"style":129},[2722],{"type":50,"value":104},{"type":44,"tag":117,"props":2724,"children":2725},{"style":285},[2726],{"type":50,"value":306},{"type":44,"tag":117,"props":2728,"children":2729},{"style":129},[2730],{"type":50,"value":311},{"type":44,"tag":117,"props":2732,"children":2733},{"class":119,"line":179},[2734,2738,2742],{"type":44,"tag":117,"props":2735,"children":2736},{"style":2023},[2737],{"type":50,"value":2580},{"type":44,"tag":117,"props":2739,"children":2740},{"style":129},[2741],{"type":50,"value":104},{"type":44,"tag":117,"props":2743,"children":2744},{"style":129},[2745],{"type":50,"value":238},{"type":44,"tag":117,"props":2747,"children":2748},{"class":119,"line":241},[2749,2754,2758,2762,2766,2770,2774],{"type":44,"tag":117,"props":2750,"children":2751},{"style":2023},[2752],{"type":50,"value":2753},"    inApp",{"type":44,"tag":117,"props":2755,"children":2756},{"style":129},[2757],{"type":50,"value":104},{"type":44,"tag":117,"props":2759,"children":2760},{"style":129},[2761],{"type":50,"value":132},{"type":44,"tag":117,"props":2763,"children":2764},{"style":2023},[2765],{"type":50,"value":278},{"type":44,"tag":117,"props":2767,"children":2768},{"style":129},[2769],{"type":50,"value":104},{"type":44,"tag":117,"props":2771,"children":2772},{"style":285},[2773],{"type":50,"value":288},{"type":44,"tag":117,"props":2775,"children":2776},{"style":129},[2777],{"type":50,"value":311},{"type":44,"tag":117,"props":2779,"children":2780},{"class":119,"line":259},[2781],{"type":44,"tag":117,"props":2782,"children":2783},{"style":129},[2784],{"type":50,"value":511},{"type":44,"tag":117,"props":2786,"children":2787},{"class":119,"line":314},[2788],{"type":44,"tag":117,"props":2789,"children":2790},{"style":129},[2791],{"type":50,"value":2126},{"type":44,"tag":53,"props":2793,"children":2794},{},[2795],{"type":50,"value":2796},"Only in-app is on. Subscribers can enable other channels if desired.",{"type":44,"tag":85,"props":2798,"children":2800},{"id":2799},"common-pitfalls",[2801],{"type":50,"value":2802},"Common Pitfalls",{"type":44,"tag":59,"props":2804,"children":2805},{},[2806,2836,2853,2875,2885],{"type":44,"tag":63,"props":2807,"children":2808},{},[2809,2819,2821,2826,2828,2834],{"type":44,"tag":67,"props":2810,"children":2811},{},[2812,2817],{"type":44,"tag":97,"props":2813,"children":2815},{"className":2814},[],[2816],{"type":50,"value":688},{"type":50,"value":2818}," is per-workflow, not per-channel",{"type":50,"value":2820}," — you set ",{"type":44,"tag":97,"props":2822,"children":2824},{"className":2823},[],[2825],{"type":50,"value":858},{"type":50,"value":2827}," on the ",{"type":44,"tag":97,"props":2829,"children":2831},{"className":2830},[],[2832],{"type":50,"value":2833},"all",{"type":50,"value":2835}," level. Individual channels inherit it.",{"type":44,"tag":63,"props":2837,"children":2838},{},[2839,2851],{"type":44,"tag":67,"props":2840,"children":2841},{},[2842,2844,2849],{"type":50,"value":2843},"Subscriber overrides don't apply to ",{"type":44,"tag":97,"props":2845,"children":2847},{"className":2846},[],[2848],{"type":50,"value":858},{"type":50,"value":2850}," workflows",{"type":50,"value":2852}," — if the workflow is read-only, subscriber preferences are ignored.",{"type":44,"tag":63,"props":2854,"children":2855},{},[2856,2867,2869,2874],{"type":44,"tag":67,"props":2857,"children":2858},{},[2859,2865],{"type":44,"tag":97,"props":2860,"children":2862},{"className":2861},[],[2863],{"type":50,"value":2864},"enabled: false",{"type":50,"value":2866}," in the workflow default means the channel is off",{"type":50,"value":2868}," — subscribers can still enable it (unless ",{"type":44,"tag":97,"props":2870,"children":2872},{"className":2871},[],[2873],{"type":50,"value":688},{"type":50,"value":1241},{"type":44,"tag":63,"props":2876,"children":2877},{},[2878,2883],{"type":44,"tag":67,"props":2879,"children":2880},{},[2881],{"type":50,"value":2882},"The Preferences UI only shows non-readOnly workflows",{"type":50,"value":2884}," — read-only workflows are hidden from the subscriber's preference panel.",{"type":44,"tag":63,"props":2886,"children":2887},{},[2888,2893],{"type":44,"tag":67,"props":2889,"children":2890},{},[2891],{"type":50,"value":2892},"Global preferences apply across all non-readOnly workflows",{"type":50,"value":2894}," — they're a convenient \"disable all email\" setting, but workflow-specific preferences take precedence.",{"type":44,"tag":85,"props":2896,"children":2898},{"id":2897},"references",[2899],{"type":50,"value":2900},"References",{"type":44,"tag":2902,"props":2903,"children":2904},"ul",{},[2905,2914,2923],{"type":44,"tag":63,"props":2906,"children":2907},{},[2908],{"type":44,"tag":540,"props":2909,"children":2911},{"href":2910},".\u002Freferences\u002Fworkflow-preferences-examples.md",[2912],{"type":50,"value":2913},"Workflow Preferences Examples",{"type":44,"tag":63,"props":2915,"children":2916},{},[2917],{"type":44,"tag":540,"props":2918,"children":2920},{"href":2919},".\u002Freferences\u002Fsubscriber-preferences-examples.md",[2921],{"type":50,"value":2922},"Subscriber Preferences Examples",{"type":44,"tag":63,"props":2924,"children":2925},{},[2926],{"type":44,"tag":540,"props":2927,"children":2929},{"href":2928},".\u002Freferences\u002Fpreferences-ui-examples.md",[2930],{"type":50,"value":2931},"Preferences UI Examples",{"type":44,"tag":2933,"props":2934,"children":2935},"style",{},[2936],{"type":50,"value":2937},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":2939,"total":364},[2940,2956,2970,2982,2995,3013,3018,3030],{"slug":2941,"name":2941,"fn":2942,"description":2943,"org":2944,"tags":2945,"stars":2953,"repoUrl":2954,"updatedAt":2955},"env-setup","configure Novu environment variables","Create or update Novu environment variables in the user's project safely (never expose the secret key to the client). Complements the official Novu skills by covering project-level env configuration.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2946,2949,2952],{"name":2947,"slug":2948,"type":16},"Configuration","configuration",{"name":2950,"slug":2951,"type":16},"Environment Variables","environment-variables",{"name":18,"slug":19,"type":16},39301,"https:\u002F\u002Fgithub.com\u002Fnovuhq\u002Fnovu","2026-07-13T06:21:58.740401",{"slug":2957,"name":2957,"fn":2958,"description":2959,"org":2960,"tags":2961,"stars":20,"repoUrl":21,"updatedAt":2969},"novu-dashboard-workflows","author Novu workflow step content","Author step content for Novu workflows defined in the Dashboard or generated\u002Fedited via the Novu MCP. Use when filling in step controls (subject, body, editorType, headers, body, conditions) for email, in-app, sms, push, chat, delay, digest, throttle, or HTTP Request steps.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2962,2965,2966],{"name":2963,"slug":2964,"type":16},"MCP","mcp",{"name":18,"slug":19,"type":16},{"name":2967,"slug":2968,"type":16},"Workflow Automation","workflow-automation","2026-07-13T06:21:22.380822",{"slug":2971,"name":2971,"fn":2972,"description":2973,"org":2974,"tags":2975,"stars":20,"repoUrl":21,"updatedAt":2981},"novu-design-workflow","design Novu notification workflows","Design notification workflows the Novu way — choose channels, set severity, decide when a workflow is critical, configure digests, and route based on subscriber state. Applies to BOTH dashboard-authored and code-first (`@novu\u002Fframework`) workflows. Use when planning a new workflow, deciding which channels to include, picking severity, configuring digest behavior, or matching a use case (order confirmation, payment failed, account suspended, comment, trial expiring, password reset, webhook fan-out, fetch-then-notify) to a proven template.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2976,2979,2980],{"name":2977,"slug":2978,"type":16},"Messaging","messaging",{"name":18,"slug":19,"type":16},{"name":2967,"slug":2968,"type":16},"2026-07-16T06:02:17.656187",{"slug":2983,"name":2983,"fn":2984,"description":2985,"org":2986,"tags":2987,"stars":20,"repoUrl":21,"updatedAt":2994},"novu-framework-integration","build code-first notification workflows","Build code-first notification workflows with @novu\u002Fframework. Use when defining workflows in TypeScript (Zod \u002F JSON Schema \u002F Class Validator), composing channel steps (email, SMS, push, chat, in-app) with action steps (delay, digest, custom), exposing Step Controls for non-technical teammates, rendering React\u002FVue\u002FSvelte Email templates, hosting the Bridge Endpoint inside Next.js, Express, NestJS, Remix, Nuxt, SvelteKit, H3, or AWS Lambda, syncing to Novu Cloud via CLI \u002F GitHub Actions, securing production with HMAC, or implementing translations, hydration, multi-channel orchestration, and LLM-powered notification logic in code.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2988,2991,2992],{"name":2989,"slug":2990,"type":16},"Backend","backend",{"name":18,"slug":19,"type":16},{"name":2993,"slug":110,"type":16},"TypeScript","2026-07-13T06:21:20.83585",{"slug":2996,"name":2996,"fn":2997,"description":2998,"org":2999,"tags":3000,"stars":20,"repoUrl":21,"updatedAt":3012},"novu-inbox-integration","integrate Novu in-app notification inbox","Integrate Novu's in-app notification inbox into web applications. Supports React, Next.js, and vanilla JavaScript. Includes the Inbox component (bell icon + notification feed), composable components (Bell, Notifications, InboxContent, Preferences), headless hooks, branded theming, custom render props, multi-tenancy via contexts, tabs, localization, and HMAC security. Use when adding an in-app notification center, bell icon, notification feed, real-time notification updates, or building a personalized and branded notification experience.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[3001,3004,3007,3010,3011],{"name":3002,"slug":3003,"type":16},"Frontend","frontend",{"name":3005,"slug":3006,"type":16},"JavaScript","javascript",{"name":3008,"slug":3009,"type":16},"Next.js","next-js",{"name":18,"slug":19,"type":16},{"name":1920,"slug":1917,"type":16},"2026-07-13T06:21:11.359078",{"slug":4,"name":4,"fn":5,"description":6,"org":3014,"tags":3015,"stars":20,"repoUrl":21,"updatedAt":22},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[3016,3017],{"name":18,"slug":19,"type":16},{"name":14,"slug":15,"type":16},{"slug":3019,"name":3019,"fn":3020,"description":3021,"org":3022,"tags":3023,"stars":20,"repoUrl":21,"updatedAt":3029},"novu-manage-subscribers","manage Novu notification subscribers and topics","Create, update, search, and delete subscribers in Novu. Manage topics for group-based notification targeting. Set subscriber credentials for push and chat channels. Use when managing notification recipients, creating subscriber records, organizing subscribers into topics, or configuring channel-specific credentials.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[3024,3027,3028],{"name":3025,"slug":3026,"type":16},"API Development","api-development",{"name":2977,"slug":2978,"type":16},{"name":18,"slug":19,"type":16},"2026-07-16T06:00:28.792114",{"slug":3031,"name":3031,"fn":3032,"description":3033,"org":3034,"tags":3035,"stars":20,"repoUrl":21,"updatedAt":3040},"novu-trigger-notification","trigger Novu notification workflows","Trigger Novu notification workflows to send messages across email, SMS, push, chat, and in-app channels. Supports single triggers, bulk triggers, broadcast to all subscribers, topic-based targeting, and cancellation. Use when sending transactional notifications, alerts, or any event-driven messages.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[3036,3039],{"name":3037,"slug":3038,"type":16},"Automation","automation",{"name":18,"slug":19,"type":16},"2026-07-13T06:21:23.63132",{"items":3042,"total":331},[3043,3049,3055,3061,3069,3074,3080],{"slug":2957,"name":2957,"fn":2958,"description":2959,"org":3044,"tags":3045,"stars":20,"repoUrl":21,"updatedAt":2969},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[3046,3047,3048],{"name":2963,"slug":2964,"type":16},{"name":18,"slug":19,"type":16},{"name":2967,"slug":2968,"type":16},{"slug":2971,"name":2971,"fn":2972,"description":2973,"org":3050,"tags":3051,"stars":20,"repoUrl":21,"updatedAt":2981},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[3052,3053,3054],{"name":2977,"slug":2978,"type":16},{"name":18,"slug":19,"type":16},{"name":2967,"slug":2968,"type":16},{"slug":2983,"name":2983,"fn":2984,"description":2985,"org":3056,"tags":3057,"stars":20,"repoUrl":21,"updatedAt":2994},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[3058,3059,3060],{"name":2989,"slug":2990,"type":16},{"name":18,"slug":19,"type":16},{"name":2993,"slug":110,"type":16},{"slug":2996,"name":2996,"fn":2997,"description":2998,"org":3062,"tags":3063,"stars":20,"repoUrl":21,"updatedAt":3012},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[3064,3065,3066,3067,3068],{"name":3002,"slug":3003,"type":16},{"name":3005,"slug":3006,"type":16},{"name":3008,"slug":3009,"type":16},{"name":18,"slug":19,"type":16},{"name":1920,"slug":1917,"type":16},{"slug":4,"name":4,"fn":5,"description":6,"org":3070,"tags":3071,"stars":20,"repoUrl":21,"updatedAt":22},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[3072,3073],{"name":18,"slug":19,"type":16},{"name":14,"slug":15,"type":16},{"slug":3019,"name":3019,"fn":3020,"description":3021,"org":3075,"tags":3076,"stars":20,"repoUrl":21,"updatedAt":3029},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[3077,3078,3079],{"name":3025,"slug":3026,"type":16},{"name":2977,"slug":2978,"type":16},{"name":18,"slug":19,"type":16},{"slug":3031,"name":3031,"fn":3032,"description":3033,"org":3081,"tags":3082,"stars":20,"repoUrl":21,"updatedAt":3040},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[3083,3084],{"name":3037,"slug":3038,"type":16},{"name":18,"slug":19,"type":16}]