Use the push step in Novu Framework to send mobile and web push notifications through providers like FCM, APNs, OneSignal, and Expo.
The push step allows you to send notifications to mobile and web applications through various push notification providers.
Example Usage
await step.push('new-message', async () => { return { title: 'New Message', body: 'You have received a new message from John', data: { messageId: '123', senderId: '456', }, };});
Push Step Output
Property
Type
Required
Description
title
string
Yes
The notification title that appears in the push notification
body
string
Yes
The main content of the push notification
data
object
No
Additional data to be sent with the notification
image
string
No
URL of an image to display in the notification
icon
string
No
URL of an icon to display in the notification
Push Step Result
The push step does not return any result object.
Provider Configuration
To send push notifications, you need to configure the appropriate push provider credentials. See our Push Provider Documentation for detailed setup instructions.
{"docsConfig":{"theme":"luma","$schema":"https://mintlify.com/docs.json","name":"Novu","description":"The open-source notification infrastructure for agents and products. Send, receive, and track notifications across channels.","colors":{"primary":"#0e121b","light":"#FFFFFF","dark":"#FFFFFF"},"logo":{"light":"https://mintcdn.com/novu-c5de82d9/2Q_L4HxwUfLmJjB8/logo/light.svg?fit=max\u0026auto=format\u0026n=2Q_L4HxwUfLmJjB8\u0026q=85\u0026s=23e7050191303b6a0ac4a671dfed8df4","dark":"https://mintcdn.com/novu-c5de82d9/2Q_L4HxwUfLmJjB8/logo/dark.svg?fit=max\u0026auto=format\u0026n=2Q_L4HxwUfLmJjB8\u0026q=85\u0026s=bd7c54f6b7a7b5002ea7b525af3e169c","href":"https://docs.novu.co"},"favicon":"https://mintcdn.com/novu-c5de82d9/ZUl3xXp-4AASlrcI/favicon.svg?fit=max\u0026auto=format\u0026n=ZUl3xXp-4AASlrcI\u0026q=85\u0026s=b53c3afb6a8eaf11aff9db2c5d3f05a1","api":{"openapi":"https://spec.speakeasy.com/novu/novu/json-development-with-code-samples","examples":{"prefill":true}},"background":{},"navbar":{"links":[{"href":"https://novu.co/contact-us","label":"Contact Us"}],"primary":{"type":"button","label":"Get Started","href":"https://dashboard.novu.co/auth/sign-up"}},"footer":{"socials":{"x":"https://x.com/novuhq","github":"https://github.com/novuhq/novu","linkedin":"https://www.linkedin.com/company/novuco"},"links":[{"header":"Comparison","items":[{"label":"Novu vs Courier","href":"https://novu.co/comparison/courier"},{"label":"Novu vs Knock","href":"https://novu.co/comparison/knock"},{"label":"Novu vs MagicBell","href":"https://novu.co/comparison/magicbell"},{"label":"Novu vs SuprSend","href":"https://novu.co/comparison/suprsend"},{"label":"Novu vs In-house","href":"https://novu.co/comparison/building-in-house"}]},{"header":"Resources","items":[{"label":"Contact Support","href":"mailto:support@novu.co"},{"label":"Changelog","href":"https://go.novu.co/changelog?utm_source=docs_footer"},{"label":"Roadmap","href":"https://roadmap.novu.co/roadmap"},{"label":"Contact Sales","href":"https://novu.co/contact-us"},{"label":"Read llms.txt","href":"/llms.txt"}]}]},"seo":{"metatags":{"og:type":"website","twitter:card":"summary_large_image"},"indexing":"all"},"icons":{"library":"lucide"},"integrations":{"gtm":{"tagId":"GTM-KXMC4XP2"},"plausible":{"domain":"docs.novu.co"}},"contextual":{"options":["copy","view","cursor","claude","chatgpt","mcp","add-mcp"],"display":"header"},"thumbnails":{"appearance":"dark","background":"https://mintcdn.com/novu-c5de82d9/vncv7ET97M5-dM6d/images/og/og-image-docs-v2.jpg?fit=max\u0026auto=format\u0026n=vncv7ET97M5-dM6d\u0026q=85\u0026s=26b59f5c597b5b1bea44cbc57cad5e3a","fonts":{"family":"Inter"}},"interaction":{"drilldown":true},"styling":{"latex":false},"navigation":{"global":{"anchors":[]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"novu-c5de82d9","hasAudioNarration":false,"actualSubdomain":"novu-c5de82d9","customDomains":["docs.novu.co"],"gitSource":{"type":"github","owner":"novuhq","repo":"novu","deployBranch":"next","contentDirectory":"docs","isPrivate":false,"mountPath":"","label":""},"feedback":{"thumbs":true,"edits":true,"issues":true,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"}},"buildId":"6af459d3c3ee4c182d9136bb","clientVersion":"0.0.4142","searchFilterCounts":[{"language":"default","tag":"Notify","count":217},{"language":"default","tag":"API Reference","count":160},{"language":"default","tag":"Resources","count":107},{"language":"default","tag":"Integrate Channels Providers","count":93},{"language":"default","tag":"Guides","count":86},{"language":"default","tag":"Data","count":63},{"language":"default","tag":"Getting Started","count":62},{"language":"default","tag":"Framework","count":52},{"language":"default","tag":"Agent Connect","count":41},{"language":"default","tag":"Sms","count":38}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":true,"enableContextualStarterQuestions":true,"enableAskAiSearchBar":true,"deflection":{"enabled":true,"email":"support@novu.co","showHelpButton":true}},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"@media (min-width: 1024px){#sidebar-content{width:16rem;min-width:16rem;max-width:16rem}}body:has(#home-content) nav[aria-label=\"Main\"] a[aria-current=\"location\"]{background:transparent!important;color:rgb(75 85 99)}html.dark body:has(#home-content) nav[aria-label=\"Main\"] a[aria-current=\"location\"]{color:rgb(156 163 175)}body:has(#home-content) nav[aria-label=\"Main\"] a[aria-current=\"location\"]:hover{background:rgb(3 7 18 / 0.03)!important;color:rgb(17 24 39)}html.dark body:has(#home-content) nav[aria-label=\"Main\"] a[aria-current=\"location\"]:hover{background:rgb(255 255 255 / 0.03)!important;color:rgb(229 231 235)}#home-content .hero-cards{margin-top:1.5rem}#home-content .card [data-component-part=\"card-image\"]{width:107.5%;max-width:none;margin:-3.75% -3.75% 0}"}],"page":{"pagePath":"framework/typescript/steps/push","slug":"/framework/typescript/steps/push","pageMetadata":{"title":"Push","description":"Use the push step in Novu Framework to send mobile and web push notifications through providers like FCM, APNs, OneSignal, and Expo.","href":"/framework/typescript/steps/push"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Use the push step in Novu Framework to send mobile and web push notifications through providers like FCM, APNs, OneSignal, and Expo.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,p:`p`,pre:`pre`,span:`span`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{CodeBlock,Heading,Table}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`The `,_jsx(_components.code,{children:`push`}),` step allows you to send notifications to mobile and web applications through various push notification providers.`]}),`\n`,_jsx(Heading,{level:`2`,id:`example-usage`,children:`Example Usage`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`10`,language:`tsx`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`tsx`,children:_jsxs(_components.code,{language:`tsx`,numberOfLines:`10`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` step`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`push`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'new-message'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`async`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` () `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`=>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` return`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` title:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'New Message'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` body:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'You have received a new message from John'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` data:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` messageId:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '123'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` senderId:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '456'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` };`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`push-step-output`,children:`Push Step Output`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Property`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Required`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`title`}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`The notification title that appears in the push notification`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`body`}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`The main content of the push notification`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`data`}),_jsx(_components.td,{children:`object`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Additional data to be sent with the notification`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`image`}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`URL of an image to display in the notification`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`icon`}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`URL of an icon to display in the notification`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`push-step-result`,children:`Push Step Result`}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(_components.code,{children:`push`}),` step does not return any result object.`]}),`\n`,_jsx(Heading,{level:`2`,id:`provider-configuration`,children:`Provider Configuration`}),`\n`,_jsxs(_components.p,{children:[`To send push notifications, you need to configure the appropriate push provider credentials. See our `,_jsx(_components.a,{href:`/platform/integrations/push`,children:`Push Provider Documentation`}),` for detailed setup instructions.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Push","description":"Use the push step in Novu Framework to send mobile and web push notifications through providers like FCM, APNs, OneSignal, and Expo.","href":"/framework/typescript/steps/push"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Example Usage","slug":"example-usage","depth":2,"children":[]},{"title":"Push Step Output","slug":"push-step-output","depth":2,"children":[]},{"title":"Push Step Result","slug":"push-step-result","depth":2,"children":[]},{"title":"Provider Configuration","slug":"provider-configuration","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"novu-c5de82d9","siteName":"Novu","title":"Push - Novu","contextualStarterQuestions":[{"_id":"6a54a075002f3d1917a08c62","deploymentId":"6a3b890b89d2acbacf3fa68a","questionText":"How do I send a push notification?","status":"active","generatedBy":"contextual","path":"framework/typescript/steps/push","createdAt":"2026-07-13T08:23:17.660Z","updatedAt":"2026-07-13T08:23:17.660Z","__v":0},{"_id":"6a54a075002f3d1917a08c63","deploymentId":"6a3b890b89d2acbacf3fa68a","questionText":"What data can I include in push?","status":"active","generatedBy":"contextual","path":"framework/typescript/steps/push","createdAt":"2026-07-13T08:23:17.660Z","updatedAt":"2026-07-13T08:23:17.660Z","__v":0},{"_id":"6a54a075002f3d1917a08c64","deploymentId":"6a3b890b89d2acbacf3fa68a","questionText":"Which providers does push support?","status":"active","generatedBy":"contextual","path":"framework/typescript/steps/push","createdAt":"2026-07-13T08:23:17.660Z","updatedAt":"2026-07-13T08:23:17.660Z","__v":0}],"navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-07-13T08:22:58.709Z","originalFileLocation":"framework/typescript/steps/push.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Use the push step in Novu Framework to send mobile and web push notifications through providers like FCM, APNs, OneSignal, and Expo.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Novu\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/novu-c5de82d9/hif-BqO_gbG8zfWr/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/novu-c5de82d9/hif-BqO_gbG8zfWr/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/novu-c5de82d9/hif-BqO_gbG8zfWr/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/novu-c5de82d9/hif-BqO_gbG8zfWr/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/novu-c5de82d9/hif-BqO_gbG8zfWr/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/novu-c5de82d9/hif-BqO_gbG8zfWr/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/novu-c5de82d9/hif-BqO_gbG8zfWr/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/novu-c5de82d9/hif-BqO_gbG8zfWr/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/novu-c5de82d9/hif-BqO_gbG8zfWr/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Push - Novu\">\u003cmeta data-mint-head property=\"og:description\" content=\"Use the push step in Novu Framework to send mobile and web push notifications through providers like FCM, APNs, OneSignal, and Expo.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Novu\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.novu.co/framework/typescript/steps/push\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://novu-c5de82d9.mintlify.site/_mintlify/api/og/v2?division=Steps\u0026amp;title=Push\u0026amp;description=Use+the+push+step+in+Novu+Framework+to+send+mobile+and+web+push+notifications+through+providers+like+FCM%2C+APNs%2C+OneSignal%2C+and+Expo.\u0026amp;theme=d2bb66915d5b6d08117e9075\u0026amp;signature=dbc3c6a8fca865b0c4c74d189bf4b1e07645473bc7d96098c35d2a4bdafc2495\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Push - Novu\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Use the push step in Novu Framework to send mobile and web push notifications through providers like FCM, APNs, OneSignal, and Expo.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://novu-c5de82d9.mintlify.site/_mintlify/api/og/v2?division=Steps\u0026amp;title=Push\u0026amp;description=Use+the+push+step+in+Novu+Framework+to+send+mobile+and+web+push+notifications+through+providers+like+FCM%2C+APNs%2C+OneSignal%2C+and+Expo.\u0026amp;theme=d2bb66915d5b6d08117e9075\u0026amp;signature=dbc3c6a8fca865b0c4c74d189bf4b1e07645473bc7d96098c35d2a4bdafc2495\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/novu-c5de82d9/hif-BqO_gbG8zfWr/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Novu\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0e121b\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.novu.co/framework/typescript/steps/push\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/framework/typescript/steps/push.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.novu.co/#organization\",\"name\":\"Novu\",\"url\":\"https://docs.novu.co\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/novu-c5de82d9/2Q_L4HxwUfLmJjB8/logo/light.svg?fit=max\u0026auto=format\u0026n=2Q_L4HxwUfLmJjB8\u0026q=85\u0026s=23e7050191303b6a0ac4a671dfed8df4\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.novu.co#website\",\"name\":\"Novu\",\"url\":\"https://docs.novu.co\",\"publisher\":{\"@id\":\"https://docs.novu.co/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.novu.co/framework/typescript/steps/push#webpage\",\"url\":\"https://docs.novu.co/framework/typescript/steps/push\",\"name\":\"Push\",\"description\":\"Use the push step in Novu Framework to send mobile and web push notifications through providers like FCM, APNs, OneSignal, and Expo.\",\"dateModified\":\"2026-07-13T08:22:58.709Z\",\"isPartOf\":{\"@id\":\"https://docs.novu.co#website\"},\"breadcrumb\":{\"@id\":\"https://docs.novu.co/framework/typescript/steps/push#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.novu.co/framework/typescript/steps/push#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"API Reference\",\"item\":\"https://docs.novu.co/framework/typescript/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Steps\",\"item\":\"https://docs.novu.co/framework/typescript/steps\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Push\",\"item\":\"https://docs.novu.co/framework/typescript/steps/push\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.novu.co/framework/typescript/steps/push#article\",\"headline\":\"Push\",\"name\":\"Push\",\"description\":\"Use the push step in Novu Framework to send mobile and web push notifications through providers like FCM, APNs, OneSignal, and Expo.\",\"url\":\"https://docs.novu.co/framework/typescript/steps/push\",\"mainEntityOfPage\":{\"@id\":\"https://docs.novu.co/framework/typescript/steps/push#webpage\"},\"dateModified\":\"2026-07-13T08:22:58.709Z\",\"publisher\":{\"@id\":\"https://docs.novu.co/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.novu.co#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Novu\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Novu\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/framework/typescript/steps/push.md","siteName":"Novu","nav":{"global":{"anchors":[]},"tabs":[{"tab":"Notify","pages":[{"title":"Notify","href":"/platform"}]},{"tab":"Agent Connect","pages":[{"title":"Agent Connect","href":"/agents"}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/api-reference"}]},{"tab":"Resources","menu":[{"item":"Guides","pages":[{"title":"Guides","href":"/guides"}]},{"item":"Framework","groups":[{"group":"Getting Started","boost":0.1,"pages":[{"title":"Novu Framework - Code-First Notification Workflows","sidebarTitle":"Overview","href":"/framework"},{"title":"Introduction","href":"/framework/introduction"},{"group":"Quickstart","pages":[{"title":"Next.js","href":"/framework/quickstart/nextjs"},{"title":"Express","href":"/framework/quickstart/express"},{"title":"Remix","href":"/framework/quickstart/remix"},{"title":"NestJS","href":"/framework/quickstart/nestjs"},{"title":"SvelteKit","href":"/framework/quickstart/svelte"},{"title":"Nuxt quickstart for Novu Framework","sidebarTitle":"Nuxt","href":"/framework/quickstart/nuxt"},{"title":"H3","href":"/framework/quickstart/h3"},{"title":"Hono","href":"/framework/quickstart/hono"},{"title":"AWS Lambda","href":"/framework/quickstart/lambda"}]}]},{"group":"Core Concepts","boost":0.1,"icon":"blocks","pages":[{"title":"Local development","sidebarTitle":"Local development","href":"/framework/studio"},{"title":"Bridge Endpoint","href":"/framework/endpoint"},{"title":"Bridge request errors","sidebarTitle":"Errors","href":"/framework/errors"},{"title":"Tags","href":"/framework/tags"},{"title":"Payload","href":"/framework/payload"},{"title":"Controls","href":"/framework/controls"}]},{"group":"Channels","boost":0.1,"icon":"radio","pages":[{"title":"Email","href":"/framework/email-channel"},{"title":"In-App","href":"/framework/in-app-channel"},{"title":"Push","href":"/framework/push-channel"},{"title":"SMS","href":"/framework/sms-channel"},{"title":"Chat","href":"/framework/chat-channel"},{"title":"Tool","href":"/framework/tool-channel"}]},{"group":"Content","boost":0.1,"icon":"file-text","pages":[{"title":"React Email","href":"/framework/content/react-email"},{"title":"Remix \u0026 React Email","href":"/framework/content/remix-react-email"},{"title":"Svelte Email","href":"/framework/content/svelte-email"},{"title":"Vue Email","href":"/framework/content/vue-email"}]},{"group":"Advanced Features","boost":0.1,"icon":"sparkles","pages":[{"title":"Digest Action","href":"/framework/digest"},{"title":"Delay Action","href":"/framework/delay"},{"title":"Custom Step","href":"/framework/custom"},{"title":"Skip Function","href":"/framework/skip"}]},{"group":"API Reference","boost":0.1,"icon":"code","pages":[{"title":"Novu Framework TypeScript SDK Overview","sidebarTitle":"Overview","href":"/framework/typescript/overview"},{"title":"Client","href":"/framework/typescript/client"},{"title":"Workflow","href":"/framework/typescript/workflow"},{"group":"Steps","pages":[{"title":"Steps","href":"/framework/typescript/steps"},{"title":"Chat","href":"/framework/typescript/steps/chat"},{"title":"Email","href":"/framework/typescript/steps/email"},{"title":"In-App","description":"Use the in-app step in Novu Framework to send notifications to your web or mobile inbox with rich content, actions, redirects, and per-user data.","href":"/framework/typescript/steps/inApp"},{"title":"Push","href":"/framework/typescript/steps/push"},{"title":"SMS","description":"Use the SMS step in Novu Framework to send text messages through providers like Twilio, Vonage, and MessageBird as part of a workflow.","href":"/framework/typescript/steps/sms"},{"title":"Tool","href":"/framework/typescript/steps/tool"},{"title":"Custom","href":"/framework/typescript/steps/custom"},{"title":"Delay","href":"/framework/typescript/steps/delay"},{"title":"Digest","href":"/framework/typescript/steps/digest"}]},{"title":"Zod","href":"/framework/schema/zod"},{"title":"JSON Schema","href":"/framework/schema/json-schema"},{"title":"Class Validator","href":"/framework/schema/class-validator"}]},{"group":"Deployment","boost":0.1,"icon":"cloud-upload","pages":[{"title":"Production Deployment Guide","href":"/framework/deployment/production"},{"title":"Syncing","href":"/framework/deployment/syncing"},{"title":"Deploy workflows with the Novu CLI","sidebarTitle":"CLI","href":"/framework/deployment/cli"},{"title":"GitHub Actions","href":"/framework/deployment/actions"}]}]},{"item":"Community","pages":[{"title":"Community","href":"/community"}]}]}]},"basePath":"","title":"Push - Novu","buildId":"dpl_G2Qd45vZZ7MkBiGF9yYx8ZsbbKXX","deploymentId":"dpl_G2Qd45vZZ7MkBiGF9yYx8ZsbbKXX","dynamics":[],"chunks":[]}