Review a push notification draft against OneSignal best practices before you send. Check message flags what to improve, and OneSignal AI can apply the fixes for you.
Check message reviewing a push draft. OneSignal AI shows a verdict, findings, and suggested rewrites next to the editor.
Check message is in beta and supports push notifications and push templates only. Support for other channels is coming soon.
Create a new push notification or push template, or open an existing one.
2
Click Check message
Click Check message, next to Review and Send. OneSignal AI opens in a panel on the right and reviews the message, including the title, body, image, buttons, links, and platform settings.
The Check message button next to Review and Send, and Save.
3
Review the recommendations
OneSignal AI starts with a verdict on the message. It then lists findings, with the line, the issue, and why it matters, most important first. Lower-priority items are listed after the findings. For copy issues, OneSignal AI suggests rewrites.
4
Apply the fixes you want
Click a suggested action, such as Apply the rewrites, or ask OneSignal AI for a specific fix. OneSignal AI updates the editor after you confirm. Some fixes, such as adding an image, need you to make the change yourself.
5
Save and send
Review the changes and click Save. OneSignal AI does not save or send the message for you.
You can also ask for a review from the chat. Run the /critique skill in OneSignal AI to run the same checks on a draft, template, or recent notification. See OneSignal AI skills.
Can I stop OneSignal AI from showing a recommendation?
Yes. Tell OneSignal AI that you don’t want to see a specific recommendation again. OneSignal AI stops showing that recommendation to you in that app. Other team members still see it, and so do you in your other apps.
How is Check message different from Refine in the AI message composer?
They do different jobs. Use Refine to iterate on your wording in the direction you choose, such as friendlier or more concise. Use Check message to compare your message to OneSignal best practices and get guidance on what to change to follow them.
Use the assistant built into the dashboard to get answers, analyze performance, and draft content.
OneSignal AI skills
Run /critique and other guided workflows from the chat.
Brand Kit
Set your brand voice so Check message can check that your messages sound like you.
Push notification CTR
Troubleshoot and improve click-through rates on your push notifications.
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"OneSignal","description":"OneSignal is a platform for sending push notifications, emails, in-app messages, and SMS campaigns via a single API, Journey Builder, and a dashboard.","colors":{"primary":"#3A3DB3","light":"#E54B4D","dark":"#3A3DB3"},"logo":{"light":"https://mintcdn.com/onesignal/yJcueeDCO7UpHnnY/logo/OneSignal-Logo.svg?fit=max\u0026auto=format\u0026n=yJcueeDCO7UpHnnY\u0026q=85\u0026s=1fcfb6fef6d820fd9d99c74850711107","dark":"https://mintcdn.com/onesignal/s4WC_KzLxf8ornqq/logo/OneSignal-Logo-White.svg?fit=max\u0026auto=format\u0026n=s4WC_KzLxf8ornqq\u0026q=85\u0026s=2573a53b5aea961e18c82b3af8f31925"},"favicon":"https://mintcdn.com/onesignal/SGduBFHpiRdg5l6h/favicon.ico?fit=max\u0026auto=format\u0026n=SGduBFHpiRdg5l6h\u0026q=85\u0026s=c0a99fadc0553c658a83741c5611cef4","api":{"examples":{"languages":["curl","typescript","python","php","go","ruby","java","csharp","rust"],"autogenerate":true}},"navbar":{"links":[{"href":"mailto:support@onesignal.com","label":"Support"}],"primary":{"type":"button","label":"Dashboard","href":"https://dashboard.onesignal.com"}},"footer":{"socials":{"github":"https://github.com/OneSignal","linkedin":"https://linkedin.com/company/onesignal","youtube":"https://www.youtube.com/@onesignalofficial/playlists"}},"seo":{"metatags":{"apple-mobile-web-app-title":"OneSignal Docs"}},"fonts":{"family":"Nunito Sans"},"styling":{"eyebrows":"breadcrumbs","latex":true},"integrations":{"ga4":{"measurementId":"G-2DGWL0VYP5"},"posthog":{"apiKey":"phc_vZpvE0f5eyzcOt30FHer34yddVmNdo9kmlMVRBzLMtn","apiHost":"https://eu.i.posthog.com","sessionRecording":true}},"contextual":{"options":["copy","view","chatgpt","claude"],"display":"header"},"navigation":{"languages":[{"language":"en","href":"docs/en/home"},{"language":"cn","href":"docs/cn/home"},{"language":"ko","href":"docs/ko/home"},{"language":"ja","href":"docs/ja/home"},{"language":"tr","href":"docs/tr/home"},{"language":"pt-BR","href":"docs/pt-BR/home"},{"language":"es","href":"docs/es/home"},{"language":"fr","href":"docs/fr/home"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"onesignal","hasAudioNarration":false,"actualSubdomain":"onesignal","customDomains":["documentation.onesignal.com"],"gitSource":{"type":"github","owner":"onesignal","repo":"mintlify-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6aeb720656d3256e25f7f5e8","collectionId":"771b8338-c78a-4909-ac00-b1b5dd3eb9cf","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6aeb720656d3256e25f7f5e8"},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6aeb720656d3256e25f7f5e8","clientVersion":"0.0.4054","searchFilterCounts":[{"language":"en","tag":"User Guides","count":202},{"language":"es","tag":"Guías del Usuario","count":178},{"language":"fr","tag":"Guides utilisateur","count":178},{"language":"ja","tag":"ユーザーガイド","count":178},{"language":"ko","tag":"사용자 가이드","count":178},{"language":"pt-BR","tag":"Guia do Usuário","count":178},{"language":"tr","tag":"Kullanıcı Kılavuzları","count":178},{"language":"cn","tag":"用户指南","count":176},{"language":"en","tag":"Message channels","count":90},{"language":"es","tag":"Canales de mensajería","count":84},{"language":"fr","tag":"Canaux de messagerie","count":84},{"language":"ja","tag":"メッセージングチャネル","count":84},{"language":"ko","tag":"메시지 채널","count":84},{"language":"pt-BR","tag":"Canais de mensagem","count":84},{"language":"tr","tag":"Mesaj kanalları","count":84},{"language":"cn","tag":"消息渠道","count":83},{"language":"default","tag":"API Reference","count":68},{"language":"default","tag":"API reference","count":64},{"language":"en","tag":"Analytics \u0026 Integrations","count":53},{"language":"es","tag":"Analítica \u0026 Integraciones","count":52},{"language":"fr","tag":"Analyses et intégrations","count":52},{"language":"ja","tag":"分析 \u0026 統合","count":52},{"language":"ko","tag":"분석 \u0026 통합","count":52},{"language":"pt-BR","tag":"Análises \u0026 Integrações","count":52},{"language":"tr","tag":"Analitik ve Entegrasyonlar","count":52},{"language":"cn","tag":"分析和集成","count":51},{"language":"cn","tag":"开发者指南","count":48},{"language":"es","tag":"Guías del desarrollador","count":48},{"language":"fr","tag":"Guides développeur","count":48},{"language":"ja","tag":"開発者ガイド","count":48},{"language":"ko","tag":"개발자 가이드","count":48},{"language":"tr","tag":"Geliştirici Kılavuzları","count":48},{"language":"en","tag":"Developer Guides","count":47},{"language":"pt-BR","tag":"Guia de desenvolvedor","count":47},{"language":"en","tag":"Integrations","count":37},{"language":"es","tag":"Integraciones","count":37},{"language":"fr","tag":"Intégrations","count":37},{"language":"ja","tag":"統合","count":37},{"language":"ko","tag":"통합","count":37},{"language":"pt-BR","tag":"Integrações","count":37},{"language":"tr","tag":"Entegrasyonlar","count":37},{"language":"cn","tag":"集成","count":36},{"language":"en","tag":"Tutorials","count":35},{"language":"cn","tag":"推送通知","count":31},{"language":"cn","tag":"OneSignal 作为目的地","count":31},{"language":"en","tag":"Push","count":31},{"language":"en","tag":"OneSignal as destination","count":31},{"language":"es","tag":"Push notificaciones","count":31},{"language":"es","tag":"OneSignal como destino","count":31},{"language":"fr","tag":"Push","count":31},{"language":"fr","tag":"OneSignal comme destination","count":31},{"language":"ja","tag":"プッシュ通知","count":31},{"language":"ja","tag":"OneSignal as 宛先","count":31},{"language":"ko","tag":"푸시","count":31},{"language":"ko","tag":"OneSignal을 데이터 목적지로 사용","count":31},{"language":"pt-BR","tag":"Push notificações","count":31},{"language":"pt-BR","tag":"OneSignal como destino","count":31},{"language":"tr","tag":"Anlık bildirimler","count":31},{"language":"tr","tag":"OneSignal hedef","count":31},{"language":"en","tag":"Mobile SDKs","count":26},{"language":"cn","tag":"移动SDK","count":25},{"language":"es","tag":"SDKs móviles","count":25},{"language":"fr","tag":"SDK mobiles","count":25},{"language":"ja","tag":"モバイルSDK","count":25},{"language":"ko","tag":"모바일 SDKs","count":25},{"language":"pt-BR","tag":"SDKs móveis","count":25},{"language":"tr","tag":"Mobil SDK'lar","count":25},{"language":"cn","tag":"教程","count":24},{"language":"es","tag":"Tutoriales","count":24},{"language":"fr","tag":"Tutoriels","count":24},{"language":"ja","tag":"チュートリアル","count":24},{"language":"ko","tag":"튜토리얼","count":24},{"language":"pt-BR","tag":"Tutoriais","count":24},{"language":"tr","tag":"Eğitimler","count":24},{"language":"en","tag":"Mobile SDK setup","count":19},{"language":"cn","tag":"移动SDK设置","count":18},{"language":"es","tag":"Configuración del SDK móvil","count":18},{"language":"fr","tag":"Configuration SDK mobile","count":18},{"language":"ja","tag":"モバイルSDKセットアップ","count":18},{"language":"ko","tag":"모바일 SDK 설정","count":18},{"language":"pt-BR","tag":"Configuração do SDK móvel","count":18},{"language":"tr","tag":"Mobil SDK kurulumu","count":18},{"language":"default","tag":"Messages","count":9},{"language":"default","tag":"Users","count":9},{"language":"default","tag":"Organization","count":9},{"language":"default","tag":"Journeys","count":8},{"language":"default","tag":"Deprecated","count":6},{"language":"default","tag":"Templates","count":6},{"language":"default","tag":"Subscriptions","count":6},{"language":"default","tag":"Segments","count":5}]},"assistantConfig":{"enableStarterQuestions":false,"deflection":{"enabled":true,"email":"support@onesignal.com","showHelpButton":true}},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","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":"llms-txt-v2","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":"vite-origin","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":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[],"page":{"pagePath":"docs/en/check-message","slug":"/docs/en/check-message","pageMetadata":{"title":"Check message","description":"Review a push notification draft against OneSignal best practices before you send. Check message flags what to improve, and OneSignal AI can apply the fixes for you.","keywords":["message recommendations","push best practices","review push before sending","improve push notification","push notification checklist","message quality","push copy review","message linting","pre-send check","/critique","on-brand push","push title length","notification not sent"],"tag":"BETA","href":"/docs/en/check-message"},"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: \"Review a push notification draft against OneSignal best practices before you send. Check message flags what to improve, and OneSignal AI can apply the fixes for you.\"\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`,li:`li`,p:`p`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{Card,Columns,Frame,Heading,Note,OptimizedImage,Step,Steps,Tip}=_components;if(!Card)_missingMdxReference(`Card`,true);if(!Columns)_missingMdxReference(`Columns`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsx(Frame,{caption:`Check message reviewing a push draft. OneSignal AI shows a verdict, findings, and suggested rewrites next to the editor.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/onesignal/xvsa7y1pbuvdchy3/images/check-message/check-message-example.png?fit=max\u0026auto=format\u0026n=xvsa7y1pbuvdchy3\u0026q=85\u0026s=b44aeb7881ad5469808b55645420db32`,alt:`Push editor on the left with a weak draft. The OneSignal AI panel on the right shows a verdict, a findings table with the issue and why it matters for each line, suggested rewrites, and buttons to apply the rewrites, suggest an image, or add an action button.`,\"data-og-width\":`1682`,width:`1682`,\"data-og-height\":`1007`,height:`1007`,\"data-path\":`images/check-message/check-message-example.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/onesignal/xvsa7y1pbuvdchy3/images/check-message/check-message-example.png?w=280\u0026fit=max\u0026auto=format\u0026n=xvsa7y1pbuvdchy3\u0026q=85\u0026s=0bdec4897bfd1acf7ef0c0bf554d1a5c 280w, https://mintcdn.com/onesignal/xvsa7y1pbuvdchy3/images/check-message/check-message-example.png?w=560\u0026fit=max\u0026auto=format\u0026n=xvsa7y1pbuvdchy3\u0026q=85\u0026s=55a0adfb89f90d07ae41d628cd0fb379 560w, https://mintcdn.com/onesignal/xvsa7y1pbuvdchy3/images/check-message/check-message-example.png?w=840\u0026fit=max\u0026auto=format\u0026n=xvsa7y1pbuvdchy3\u0026q=85\u0026s=1c12ba95a69242df09e385bf7aa63e3f 840w, https://mintcdn.com/onesignal/xvsa7y1pbuvdchy3/images/check-message/check-message-example.png?w=1100\u0026fit=max\u0026auto=format\u0026n=xvsa7y1pbuvdchy3\u0026q=85\u0026s=23836ba328b88d2dabd75fb595f23ee5 1100w, https://mintcdn.com/onesignal/xvsa7y1pbuvdchy3/images/check-message/check-message-example.png?w=1650\u0026fit=max\u0026auto=format\u0026n=xvsa7y1pbuvdchy3\u0026q=85\u0026s=7a37813a79829ab72170139542d48212 1650w, https://mintcdn.com/onesignal/xvsa7y1pbuvdchy3/images/check-message/check-message-example.png?w=2500\u0026fit=max\u0026auto=format\u0026n=xvsa7y1pbuvdchy3\u0026q=85\u0026s=b6a5da4f99d90f63adcb692e76958fc8 2500w`})}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Check message`}),` is in beta and supports push notifications and push templates only. Support for other channels is coming soon.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`prerequisites`,children:`Prerequisites`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Access to `,_jsx(_components.a,{href:`/docs/en/onesignal-ai`,children:`OneSignal AI`}),`. AI features must be turned on for your organization. When AI features are off, the `,_jsx(_components.strong,{children:`Check message`}),` button does not appear.`]}),`\n`,_jsx(_components.li,{children:`Permission to create and edit messages in the app.`}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`check-a-message`,children:`Check a message`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Open a push draft or template`,children:_jsx(_components.p,{children:`Create a new push notification or push template, or open an existing one.`})}),_jsxs(Step,{title:`Click Check message`,children:[_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Check message`}),`, next to `,_jsx(_components.strong,{children:`Review and Send`}),`. OneSignal AI opens in a panel on the right and reviews the message, including the title, body, image, buttons, links, and platform settings.`]}),_jsx(Frame,{caption:`The Check message button next to Review and Send, and Save.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/onesignal/xvsa7y1pbuvdchy3/images/check-message/check-message-button.png?fit=max\u0026auto=format\u0026n=xvsa7y1pbuvdchy3\u0026q=85\u0026s=605c3ac107fa04a9d9b3d54f5aa8c5cb`,alt:`Push editor action buttons: Review and Send, Check message, and Save`,\"data-og-width\":`462`,width:`462`,\"data-og-height\":`64`,height:`64`,\"data-path\":`images/check-message/check-message-button.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/onesignal/xvsa7y1pbuvdchy3/images/check-message/check-message-button.png?w=280\u0026fit=max\u0026auto=format\u0026n=xvsa7y1pbuvdchy3\u0026q=85\u0026s=f9bfdaa9c75912a7e5b39ee671b5edf4 280w, https://mintcdn.com/onesignal/xvsa7y1pbuvdchy3/images/check-message/check-message-button.png?w=560\u0026fit=max\u0026auto=format\u0026n=xvsa7y1pbuvdchy3\u0026q=85\u0026s=1c5f0e2ce9fe73bec255af498c849a22 560w, https://mintcdn.com/onesignal/xvsa7y1pbuvdchy3/images/check-message/check-message-button.png?w=840\u0026fit=max\u0026auto=format\u0026n=xvsa7y1pbuvdchy3\u0026q=85\u0026s=88c52b61c1c8a1367054e21334053c48 840w, https://mintcdn.com/onesignal/xvsa7y1pbuvdchy3/images/check-message/check-message-button.png?w=1100\u0026fit=max\u0026auto=format\u0026n=xvsa7y1pbuvdchy3\u0026q=85\u0026s=80fa7b11f8f082bc64c2058c91227987 1100w, https://mintcdn.com/onesignal/xvsa7y1pbuvdchy3/images/check-message/check-message-button.png?w=1650\u0026fit=max\u0026auto=format\u0026n=xvsa7y1pbuvdchy3\u0026q=85\u0026s=ac61c9cbe493e396ba9f6df011df0ae6 1650w, https://mintcdn.com/onesignal/xvsa7y1pbuvdchy3/images/check-message/check-message-button.png?w=2500\u0026fit=max\u0026auto=format\u0026n=xvsa7y1pbuvdchy3\u0026q=85\u0026s=16c74eda35455d8ea81f7be5206237db 2500w`})})]}),_jsx(Step,{title:`Review the recommendations`,children:_jsx(_components.p,{children:`OneSignal AI starts with a verdict on the message. It then lists findings, with the line, the issue, and why it matters, most important first. Lower-priority items are listed after the findings. For copy issues, OneSignal AI suggests rewrites.`})}),_jsx(Step,{title:`Apply the fixes you want`,children:_jsxs(_components.p,{children:[`Click a suggested action, such as `,_jsx(_components.strong,{children:`Apply the rewrites`}),`, or ask OneSignal AI for a specific fix. OneSignal AI updates the editor after you confirm. Some fixes, such as adding an image, need you to make the change yourself.`]})}),_jsx(Step,{title:`Save and send`,children:_jsxs(_components.p,{children:[`Review the changes and click `,_jsx(_components.strong,{children:`Save`}),`. OneSignal AI does not save or send the message for you.`]})})]}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`You can also ask for a review from the chat. Run the `,_jsx(_components.code,{children:`/critique`}),` skill in OneSignal AI to run the same checks on a draft, template, or recent notification. See `,_jsx(_components.a,{href:`/docs/en/onesignal-ai-skills#critique-push-message-review`,children:`OneSignal AI skills`}),`.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`what-check-message-reviews`,children:`What Check message reviews`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Check message`}),` groups its checks into four categories. OneSignal adds and tunes checks over time, so the examples below are not a complete list.`]}),`\n`,_jsx(Heading,{level:`3`,id:`delivery`,children:`Delivery`}),`\n`,_jsx(_components.p,{children:`Delivery checks catch problems that stop a push from sending or displaying correctly. Fix these before you send.`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`No platforms selected.`}),` The push is not set to send to any platform, so no one receives it.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Payload size.`}),` The title, body, and additional data are over the platform size limit. See `,_jsx(_components.a,{href:`/docs/en/push#what-is-the-maximum-push-notification-payload-size`,children:`What is the maximum push notification payload size?`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Invalid links.`}),` A launch URL or link in the message has broken syntax.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Image not served over HTTPS.`}),` iOS does not display images hosted on HTTP.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Invalid Liquid syntax.`}),` A `,_jsx(_components.a,{href:`/docs/en/using-liquid-syntax`,children:`Liquid`}),` expression in the title or body cannot render.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`copy`,children:`Copy`}),`\n`,_jsx(_components.p,{children:`Copy checks help your title and message read clearly on a lock screen.`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Titles that are too long to display in full`}),`\n`,_jsx(_components.li,{children:`Body text that gets cut off before the key information`}),`\n`,_jsx(_components.li,{children:`Vague titles that don’t say what the message is about`}),`\n`,_jsx(_components.li,{children:`Grammar errors and hard-to-read sentences`}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`brand-and-audience`,children:`Brand and audience`}),`\n`,_jsx(_components.p,{children:`Brand and audience checks compare the message to your account data.`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`On-brand.`}),` When you have a `,_jsx(_components.a,{href:`/docs/en/brand-kit`,children:`Brand Kit`}),`, OneSignal AI checks the title and body against your brand voice.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Audience relevance.`}),` OneSignal AI checks whether the content fits the `,_jsx(_components.a,{href:`/docs/en/segmentation`,children:`segments`}),` you are sending to.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`rich-media-and-actions`,children:`Rich media and actions`}),`\n`,_jsx(_components.p,{children:`Rich media and action checks look at what the user sees and taps.`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`No image on a message that would benefit from one`}),`\n`,_jsxs(_components.li,{children:[`Missing or generic `,_jsx(_components.a,{href:`/docs/en/action-buttons`,children:`action buttons`}),`, such as “OK” or “View”`]}),`\n`,_jsxs(_components.li,{children:[`No `,_jsx(_components.a,{href:`/docs/en/deep-linking`,children:`deep link`}),`, so a tap opens the app home screen instead of the relevant page`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`faq`,children:`FAQ`}),`\n`,_jsx(Heading,{level:`3`,id:`do-i-have-to-follow-every-recommendation`,children:`Do I have to follow every recommendation?`}),`\n`,_jsx(_components.p,{children:`No. Recommendations are suggestions. You decide which fixes to apply, and you can send the message without changing anything.`}),`\n`,_jsx(Heading,{level:`3`,id:`can-i-stop-onesignal-ai-from-showing-a-recommendation`,children:`Can I stop OneSignal AI from showing a recommendation?`}),`\n`,_jsx(_components.p,{children:`Yes. Tell OneSignal AI that you don’t want to see a specific recommendation again. OneSignal AI stops showing that recommendation to you in that app. Other team members still see it, and so do you in your other apps.`}),`\n`,_jsx(Heading,{level:`3`,id:`does-check-message-send-or-save-my-message`,children:`Does Check message send or save my message?`}),`\n`,_jsxs(_components.p,{children:[`No. OneSignal AI only changes the editor after you confirm, and you click `,_jsx(_components.strong,{children:`Save`}),` yourself. OneSignal AI never sends messages.`]}),`\n`,_jsx(Heading,{level:`3`,id:`how-is-check-message-different-from-refine-in-the-ai-message-composer`,children:`How is Check message different from Refine in the AI message composer?`}),`\n`,_jsxs(_components.p,{children:[`They do different jobs. Use `,_jsx(_components.a,{href:`/docs/en/ai-message-composer`,children:`Refine`}),` to iterate on your wording in the direction you choose, such as friendlier or more concise. Use `,_jsx(_components.strong,{children:`Check message`}),` to compare your message to OneSignal best practices and get guidance on what to change to follow them.`]}),`\n`,_jsx(Heading,{level:`3`,id:`can-i-check-email-or-sms-messages`,children:`Can I check email or SMS messages?`}),`\n`,_jsxs(_components.p,{children:[`Not yet. `,_jsx(_components.strong,{children:`Check message`}),` supports push notifications and push templates today. Support for other channels is coming soon.`]}),`\n`,_jsx(Heading,{level:`2`,id:`related-pages`,children:`Related pages`}),`\n`,_jsxs(Columns,{cols:2,children:[_jsx(Card,{title:`OneSignal AI`,icon:`sparkles`,href:`/docs/en/onesignal-ai`,children:_jsx(_components.p,{children:`Use the assistant built into the dashboard to get answers, analyze performance, and draft content.`})}),_jsx(Card,{title:`OneSignal AI skills`,icon:`wand-magic-sparkles`,href:`/docs/en/onesignal-ai-skills`,children:_jsx(_components.p,{children:`Run /critique and other guided workflows from the chat.`})}),_jsx(Card,{title:`Brand Kit`,icon:`palette`,href:`/docs/en/brand-kit`,children:_jsxs(_components.p,{children:[`Set your brand voice so `,_jsx(_components.strong,{children:`Check message`}),` can check that your messages sound like you.`]})}),_jsx(Card,{title:`Push notification CTR`,icon:`chart-line`,href:`/docs/en/notification-ctr`,children:_jsx(_components.p,{children:`Troubleshoot and improve click-through rates on your push notifications.`})})]})]})}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":"Check message","description":"Review a push notification draft against OneSignal best practices before you send. Check message flags what to improve, and OneSignal AI can apply the fixes for you.","keywords":["message recommendations","push best practices","review push before sending","improve push notification","push notification checklist","message quality","push copy review","message linting","pre-send check","/critique","on-brand push","push title length","notification not sent"],"tag":"BETA","href":"/docs/en/check-message"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Prerequisites","slug":"prerequisites","depth":2,"children":[]},{"title":"Check a message","slug":"check-a-message","depth":2,"children":[]},{"title":"What Check message reviews","slug":"what-check-message-reviews","depth":2,"children":[{"title":"Delivery","slug":"delivery","depth":3,"children":[]},{"title":"Copy","slug":"copy","depth":3,"children":[]},{"title":"Brand and audience","slug":"brand-and-audience","depth":3,"children":[]},{"title":"Rich media and actions","slug":"rich-media-and-actions","depth":3,"children":[]}]},{"title":"FAQ","slug":"faq","depth":2,"children":[{"title":"Do I have to follow every recommendation?","slug":"do-i-have-to-follow-every-recommendation","depth":3,"children":[]},{"title":"Can I stop OneSignal AI from showing a recommendation?","slug":"can-i-stop-onesignal-ai-from-showing-a-recommendation","depth":3,"children":[]},{"title":"Does Check message send or save my message?","slug":"does-check-message-send-or-save-my-message","depth":3,"children":[]},{"title":"How is Check message different from Refine in the AI message composer?","slug":"how-is-check-message-different-from-refine-in-the-ai-message-composer","depth":3,"children":[]},{"title":"Can I check email or SMS messages?","slug":"can-i-check-email-or-sms-messages","depth":3,"children":[]}]},{"title":"Related pages","slug":"related-pages","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/onesignal/e069c1b9f3157e14/hotjar-koala.js","/_mintlify/custom/onesignal/3e5d03885ab32f49/intercom.js","/_mintlify/custom/onesignal/dbb7af4794d1b586/munchkin-marketo.js"],"subdomain":"onesignal","siteName":"OneSignal","title":"Check message - OneSignal","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/docs/en/check-message","matchLevel":0},"cn":{"href":"/docs/cn/home","matchLevel":4},"ko":{"href":"/docs/ko/home","matchLevel":4},"ja":{"href":"/docs/ja/home","matchLevel":4},"tr":{"href":"/docs/tr/home","matchLevel":4},"pt-BR":{"href":"/docs/pt-BR/home","matchLevel":4},"es":{"href":"/docs/es/home","matchLevel":4},"fr":{"href":"/docs/fr/home","matchLevel":4}}},"lastModified":"2026-11-04T17:56:45.282Z","originalFileLocation":"docs/en/check-message.mdx","locale":"en"},"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=\"Review a push notification draft against OneSignal best practices before you send. Check message flags what to improve, and OneSignal AI can apply the fixes for you.\">\u003cmeta data-mint-head name=\"application-name\" content=\"OneSignal\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/onesignal/eCiRydtW5fLfLRWp/_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/onesignal/eCiRydtW5fLfLRWp/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/onesignal/eCiRydtW5fLfLRWp/_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/onesignal/eCiRydtW5fLfLRWp/_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/onesignal/eCiRydtW5fLfLRWp/_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/onesignal/eCiRydtW5fLfLRWp/_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/onesignal/eCiRydtW5fLfLRWp/_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/onesignal/eCiRydtW5fLfLRWp/_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/onesignal/eCiRydtW5fLfLRWp/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Check message - OneSignal\">\u003cmeta data-mint-head property=\"og:description\" content=\"Review a push notification draft against OneSignal best practices before you send. Check message flags what to improve, and OneSignal AI can apply the fixes for you.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"OneSignal\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://documentation.onesignal.com/docs/en/check-message\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://onesignal.mintlify.app/_mintlify/api/og/v2?division=OneSignal+AI\u0026amp;title=Check+message\u0026amp;description=Review+a+push+notification+draft+against+OneSignal+best+practices+before+you+send.+Check+message+flags+what+to+improve%2C+and+OneSignal+AI+can+apply+the+fixes+for\u0026amp;theme=8d648f04f85028b307bd669b\u0026amp;signature=0adc06ae2e72d04dc695d256396473af0756daf07d7b1ab3ed9d96306ed06571\">\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=\"Check message - OneSignal\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Review a push notification draft against OneSignal best practices before you send. Check message flags what to improve, and OneSignal AI can apply the fixes for you.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://onesignal.mintlify.app/_mintlify/api/og/v2?division=OneSignal+AI\u0026amp;title=Check+message\u0026amp;description=Review+a+push+notification+draft+against+OneSignal+best+practices+before+you+send.+Check+message+flags+what+to+improve%2C+and+OneSignal+AI+can+apply+the+fixes+for\u0026amp;theme=8d648f04f85028b307bd669b\u0026amp;signature=0adc06ae2e72d04dc695d256396473af0756daf07d7b1ab3ed9d96306ed06571\">\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/onesignal/eCiRydtW5fLfLRWp/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"OneSignal Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#3A3DB3\">\u003clink data-mint-head rel=\"canonical\" href=\"https://documentation.onesignal.com/docs/en/check-message\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/en/check-message.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://documentation.onesignal.com/#organization\",\"name\":\"OneSignal\",\"url\":\"https://documentation.onesignal.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/onesignal/yJcueeDCO7UpHnnY/logo/OneSignal-Logo.svg?fit=max\u0026auto=format\u0026n=yJcueeDCO7UpHnnY\u0026q=85\u0026s=1fcfb6fef6d820fd9d99c74850711107\"}},{\"@type\":\"WebSite\",\"@id\":\"https://documentation.onesignal.com#website\",\"name\":\"OneSignal\",\"url\":\"https://documentation.onesignal.com\",\"publisher\":{\"@id\":\"https://documentation.onesignal.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://documentation.onesignal.com/docs/en/check-message#webpage\",\"url\":\"https://documentation.onesignal.com/docs/en/check-message\",\"name\":\"Check message\",\"description\":\"Review a push notification draft against OneSignal best practices before you send. Check message flags what to improve, and OneSignal AI can apply the fixes for you.\",\"dateModified\":\"2026-11-04T17:56:45.282Z\",\"isPartOf\":{\"@id\":\"https://documentation.onesignal.com#website\"},\"breadcrumb\":{\"@id\":\"https://documentation.onesignal.com/docs/en/check-message#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://documentation.onesignal.com/docs/en/check-message#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"OneSignal AI\",\"item\":\"https://documentation.onesignal.com/docs/en/onesignal-ai\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Check message\",\"item\":\"https://documentation.onesignal.com/docs/en/check-message\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://documentation.onesignal.com/docs/en/check-message#article\",\"headline\":\"Check message\",\"name\":\"Check message\",\"description\":\"Review a push notification draft against OneSignal best practices before you send. Check message flags what to improve, and OneSignal AI can apply the fixes for you.\",\"url\":\"https://documentation.onesignal.com/docs/en/check-message\",\"mainEntityOfPage\":{\"@id\":\"https://documentation.onesignal.com/docs/en/check-message#webpage\"},\"dateModified\":\"2026-11-04T17:56:45.282Z\",\"keywords\":\"message recommendations, push best practices, review push before sending, improve push notification, push notification checklist, message quality, push copy review, message linting, pre-send check, /critique, on-brand push, push title length, notification not sent\",\"publisher\":{\"@id\":\"https://documentation.onesignal.com/#organization\"},\"isPartOf\":{\"@id\":\"https://documentation.onesignal.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"OneSignal\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"OneSignal","nav":{"global":null,"languages":[{"language":"en","tabs":[{"tab":"Home","pages":[{"title":"Home","href":"/docs/en/home"}]},{"tab":"User Guides","groups":[{"group":"First steps \u0026 settings","pages":[{"title":"Getting started with OneSignal","href":"/docs/en/quickstart-guide"},{"group":"OneSignal dashboard","pages":[{"title":"Apps, Organizations, \u0026 Accounts","href":"/docs/en/apps-organizations"},{"title":"Team members","href":"/docs/en/manage-team-members"},{"title":"Keys \u0026 IDs","href":"/docs/en/keys-and-ids"},{"title":"Audit logs","href":"/docs/en/audit-logs"},{"title":"Usage \u0026 billing","href":"/docs/en/billing-faq"},{"title":"Disabled apps \u0026 organizations","href":"/docs/en/disabled-apps"}]},{"title":"Migrating to OneSignal","href":"/docs/en/migrating-to-onesignal"}]},{"group":"Message channels","pages":[{"title":"Channel setup","href":"/docs/en/channel-setup"},{"group":"Push","pages":[{"title":"Push overview","href":"/docs/en/push"},{"group":"Mobile push","pages":[{"title":"Mobile push setup","href":"/docs/en/mobile-push-setup"},{"title":"Prompt for push permissions","href":"/docs/en/prompt-for-push-permissions"},{"title":"iOS provisional push notifications","href":"/docs/en/ios-provisional-push-notifications"},{"title":"Android notification categories","href":"/docs/en/android-notification-categories"},{"title":"Data \u0026 background notifications","href":"/docs/en/data-notifications"},{"title":"VoIP push notifications","href":"/docs/en/voip-notifications"}]},{"group":"Web push","pages":[{"title":"Web push setup","href":"/docs/en/web-push-setup"},{"title":"Web permission prompts","href":"/docs/en/permission-requests"},{"title":"Web push FAQ","href":"/docs/en/web-push-setup-faq"},{"title":"Web push browser behavior","href":"/docs/en/browser-behavior-and-unsubscribes"},{"title":"OneSignal WordPress plugin setup for web push","href":"/docs/en/wordpress"},{"title":"WordPress troubleshooting","href":"/docs/en/troubleshooting-wordpress-web-push"},{"title":"Shopify web push integration","href":"/docs/en/shopify"}]},{"group":"Push features","pages":[{"title":"Notification icons","href":"/docs/en/notification-icons"},{"title":"Notification images \u0026 rich media","href":"/docs/en/rich-media"},{"title":"Notification sounds","href":"/docs/en/notification-sounds"},{"title":"Notification badges","href":"/docs/en/badges"},{"title":"Action buttons for push notifications","href":"/docs/en/action-buttons"},{"title":"Push frequency capping","href":"/docs/en/frequency-capping"},{"title":"Push throttling","href":"/docs/en/throttling"},{"title":"iOS: Focus modes and interruption levels","href":"/docs/en/ios-focus-modes-and-interruption-levels"},{"title":"iOS: Relevance score","href":"/docs/en/ios-relevance-score"}]},{"group":"Push analytics \u0026 troubleshooting","pages":[{"title":"Push message reports","href":"/docs/en/push-notification-message-reports"},{"title":"Confirmed receipt","href":"/docs/en/confirmed-delivery"},{"title":"Notification click-through rate (CTR)","href":"/docs/en/notification-ctr"},{"title":"Mobile push: Notifications not shown or delayed","href":"/docs/en/notifications-show-successful-but-are-not-being-shown"},{"title":"Web push: Notifications not shown","href":"/docs/en/notifications-not-shown-web-push"},{"title":"Notification Images Not Showing","href":"/docs/en/notification-images-not-showing"},{"title":"Duplicated notifications","href":"/docs/en/duplicated-notifications"},{"title":"FCM expired token FAQ","href":"/docs/en/fcm-expired-token-faq"}]}]},{"group":"In-app messages","pages":[{"title":"In-app overview","href":"/docs/en/in-app-messages-setup"},{"title":"In-app triggers","href":"/docs/en/iam-triggers"},{"title":"In-app click actions","href":"/docs/en/iam-click-actions"},{"group":"In-app design","pages":[{"title":"Design in-app messages with drag-and-drop","href":"/docs/en/design-your-in-app-message"},{"title":"Design in-app messages with HTML","href":"/docs/en/design-your-in-app-message-with-html"},{"title":"In-app message templates \u0026 quickstarts","href":"/docs/en/in-app-html-templates"},{"title":"In-app message JavaScript API reference","href":"/docs/en/in-app-message-api"}]},{"title":"In-app message reports","href":"/docs/en/in-app-message-reports"},{"title":"In-app troubleshooting","href":"/docs/en/in-app-message-troubleshooting"}]},{"group":"Email","pages":[{"title":"Email overview","href":"/docs/en/email-messaging"},{"group":"Email setup","pages":[{"title":"Email setup","href":"/docs/en/email-setup"},{"title":"Email DNS configuration","href":"/docs/en/email-dns-configuration"},{"title":"Senders","href":"/docs/en/senders"},{"title":"BCC emails","href":"/docs/en/email-bcc"},{"title":"Transactional emails","href":"/docs/en/setup-transactional-emails"},{"title":"Create a custom email unsubscribe page","href":"/docs/en/create-custom-unsubscribe-page"}]},{"group":"Email deliverability \u0026 analytics","pages":[{"title":"Email message reports","href":"/docs/en/email-message-reports"},{"title":"Email deliverability","href":"/docs/en/email-deliverability"},{"title":"Deliverability insights by inbox provider","href":"/docs/en/email-deliverability-insights"},{"title":"Email reputation best practices","href":"/docs/en/email-reputation-best-practices"},{"title":"Email address validation","href":"/docs/en/email-address-validation"},{"title":"Email warm-up","href":"/docs/en/email-warm-up"},{"title":"Google Postmaster Tools","href":"/docs/en/google-postmaster-tools"},{"title":"Suppressions","href":"/docs/en/suppressions"},{"title":"Email troubleshooting","href":"/docs/en/email-troubleshooting"}]},{"group":"Design your emails","pages":[{"title":"Design emails with drag-and-drop","href":"/docs/en/design-emails-with-drag-and-drop"},{"title":"Design emails with HTML","href":"/docs/en/design-emails-with-html"},{"title":"Email unsubscribe links \u0026 headers","href":"/docs/en/unsubscribe-links-email-subscriptions"},{"title":"Email template forwarding","href":"/docs/en/email-template-forwarding"}]}]},{"group":"SMS \u0026 RCS","pages":[{"title":"SMS, MMS, and RCS overview","href":"/docs/en/sms-messaging"},{"title":"Rich Communication Services (RCS)","href":"/docs/en/rcs-messaging"},{"group":"SMS setup","pages":[{"title":"SMS setup","href":"/docs/en/sms-setup"},{"title":"Sender resource applications and country requirements","sidebarTitle":"Sender resource applications","href":"/docs/en/sms-registration-requirements"},{"title":"SMS opt-in and collection","href":"/docs/en/sms-opt-in-and-collection"},{"title":"SMS consent keyword management","href":"/docs/en/sms-consent-keyword-management"},{"title":"SMS keywords","href":"/docs/en/keywords"}]},{"group":"SMS messaging","pages":[{"title":"Promotional messaging","href":"/docs/en/sms-promotional-messaging"},{"title":"Transactional messaging","href":"/docs/en/sms-transactional-messaging"},{"title":"One-time passwords (OTP)","sidebarTitle":"One-time passwords","href":"/docs/en/sms-verify"},{"title":"Composing messages","href":"/docs/en/sms-composing-messages"},{"title":"SMS message reports","href":"/docs/en/sms-message-reports"}]}]},{"group":"Live Activities","pages":[{"title":"Live Activities","href":"/docs/en/live-activities"},{"title":"Live Activities analytics","href":"/docs/en/live-activities-analytics"}]},{"group":"Features","pages":[{"title":"A/B testing","href":"/docs/en/ab-testing"},{"title":"Multi-language messaging","href":"/docs/en/multi-language-messaging"},{"title":"Brand Kit","href":"/docs/en/brand-kit"},{"group":"Personalization","pages":[{"title":"Personalization","href":"/docs/en/message-personalization"},{"title":"Using Liquid syntax","href":"/docs/en/using-liquid-syntax"},{"title":"Data feeds","href":"/docs/en/data-feeds"},{"title":"Personalize with Custom Events","href":"/docs/en/personalization-custom-event"},{"title":"Personalize with properties","href":"/docs/en/personalization-properties-and-tags"},{"title":"Personalize messages with API custom_data","href":"/docs/en/personalization-api-custom-data"},{"title":"Dynamic Content with CSV","href":"/docs/en/dynamic-content"}]},{"group":"URLs, Links, \u0026 Deep Links","pages":[{"title":"URLs, links, \u0026 deep links","href":"/docs/en/links"},{"title":"Deep linking","href":"/docs/en/deep-linking"},{"title":"Email unsubscribe links \u0026 headers","href":"/docs/en/unsubscribe-links-email-subscriptions"}]},{"title":"Retargeting messages","href":"/docs/en/retargeting"},{"title":"Templates","href":"/docs/en/templates"},{"title":"Labels","href":"/docs/en/labels"}]}]},{"group":"Journeys","pages":[{"title":"Journeys overview","href":"/docs/en/journeys-overview"},{"group":"Journey features","pages":[{"title":"Journey settings","href":"/docs/en/journeys-settings"},{"title":"Journey messages","href":"/docs/en/journeys-messages"},{"title":"Journey message A/B testing","sidebarTitle":"A/B testing","tag":"BETA","href":"/docs/en/journeys-ab-testing"},{"title":"Journey actions","href":"/docs/en/journeys-actions"},{"title":"Journey webhooks","href":"/docs/en/journeys-webhook"},{"title":"Send WhatsApp Messages via Journey Webhooks","href":"/docs/en/sending-whatsapp-messages-via-journey-webhooks"},{"title":"Managing journeys","href":"/docs/en/managing-journeys"},{"title":"Journey version history","tag":"NEW","href":"/docs/en/journeys-version-history"},{"title":"Journey analytics","href":"/docs/en/journeys-analytics"}]},{"title":"Journey examples","href":"/docs/en/journeys-examples"},{"title":"Control Journey membership with tags","href":"/docs/en/journeys-membership-tags"}]},{"group":"OneSignal AI","pages":[{"title":"OneSignal AI","tag":"BETA","href":"/docs/en/onesignal-ai"},{"title":"OneSignal AI skills","sidebarTitle":"Skills","description":"Use OneSignal AI skills to run guided workflows from the chat: set up a platform, audit delivery, critique push copy, check push settings, translate messages, and design multi-step campaigns.","tag":"BETA","href":"/docs/en/onesignal-ai-skills"},{"title":"Check message","tag":"BETA","href":"/docs/en/check-message"},{"title":"OneSignal Home","description":"OneSignal Home is the AI-first landing experience in the dashboard. Chat with OneSignal AI, get setup guidance, and explore recommendations from a single page.","href":"/docs/en/onesignal-home"},{"title":"OneSignal MCP Server","href":"/docs/en/model-context-protocol"},{"title":"OneSignal AI data practices","mode":"frame","href":"/docs/en/ai-data-practices"},{"title":"AI message composer","href":"/docs/en/ai-message-composer"},{"title":"OneSignal Slack Agent","hidden":true,"tag":"BETA","href":"/docs/en/slack-agent"}]},{"group":"Audience \u0026 events","pages":[{"title":"Segments","href":"/docs/en/segmentation"},{"title":"User-based segmentation","tag":"BETA","href":"/docs/en/user-based-segmentation"},{"group":"Users \u0026 Subscriptions","pages":[{"title":"Users","href":"/docs/en/users"},{"title":"Subscriptions","href":"/docs/en/subscriptions"},{"title":"Sessions","href":"/docs/en/sessions"},{"title":"User and Subscription Profiles","href":"/docs/en/user-subscription-profiles"},{"title":"Aliases","href":"/docs/en/aliases"},{"title":"Test users","href":"/docs/en/test-users"},{"title":"Delete users","href":"/docs/en/delete-users"}]},{"group":"Events","pages":[{"title":"Message events","href":"/docs/en/message-events"},{"title":"Session events","href":"/docs/en/session-events"},{"group":"Custom events","pages":[{"title":"Custom events","href":"/docs/en/custom-events"},{"title":"Custom event best practices","href":"/docs/en/custom-event-best-practices"},{"title":"Custom event storage and retention","href":"/docs/en/custom-event-storage"}]}]},{"group":"Tags","pages":[{"title":"Tags","href":"/docs/en/add-user-data-tags"},{"title":"Tags: Time Operators","href":"/docs/en/time-operators"}]},{"title":"Import","href":"/docs/en/import"}]},{"group":"Analytics \u0026 Integrations","pages":[{"group":"Analytics","pages":[{"title":"Analytics overview","href":"/docs/en/analytics-overview"},{"title":"Metrics glossary","href":"/docs/en/analytics-metrics-glossary"},{"title":"Goals","sidebarTitle":"Goals","tag":"BETA","href":"/docs/en/goals"},{"title":"Exporting data","href":"/docs/en/exporting-data"},{"title":"Template analytics","href":"/docs/en/template-analytics"},{"title":"Conversion metrics","href":"/docs/en/conversion-metrics"},{"title":"Engagement trends","href":"/docs/en/engagement-analytics"},{"title":"Subscription trends","href":"/docs/en/subscription-trends"},{"title":"Sessions volume","href":"/docs/en/sessions-volume"},{"group":"Retention metrics","pages":[{"title":"Retention metrics","href":"/docs/en/retention-metrics"},{"title":"Interpreting retention curves","href":"/docs/en/interpreting-retention-curves"}]},{"title":"Custom Outcomes","href":"/docs/en/custom-outcomes"}]},{"group":"Event Streams","pages":[{"title":"Event Streams","href":"/docs/en/event-streams"},{"title":"Event Stream data reference","sidebarTitle":"Event Stream data","href":"/docs/en/event-streams-data"},{"title":"In-app message event streams","href":"/docs/en/iam-event-streams"},{"title":"Google Sheets integration with Event Streams","href":"/docs/en/google-sheets-integration-with-event-streams"}]},{"group":"Integrations","pages":[{"title":"Integrations overview","href":"/docs/en/integrations"},{"title":"Data warehouse, DMP, \u0026 CRM integration","href":"/docs/en/database-dmp-crm-integration"},{"group":"OneSignal as data source","pages":[{"title":"Amplitude","href":"/docs/en/amplitude"},{"title":"Databricks","href":"/docs/en/databricks"},{"title":"Google BigQuery","href":"/docs/en/bigquery"},{"title":"Mixpanel","href":"/docs/en/mixpanel"},{"title":"Snowflake","href":"/docs/en/snowflake"},{"title":"Segment (Twilio)","href":"/docs/en/segment-onesignal-integration"}]},{"group":"OneSignal as destination","pages":[{"title":"Adobe Audience Manager","href":"/docs/en/adobe-audience-manager"},{"title":"AlloyDB","href":"/docs/en/alloydb"},{"title":"Amazon Athena","href":"/docs/en/amazon-athena"},{"title":"Amazon S3","href":"/docs/en/s3"},{"title":"Amplitude","href":"/docs/en/amplitude"},{"title":"Apache Kafka","href":"/docs/en/kafka"},{"title":"Amazon Redshift","href":"/docs/en/amazon-redshift"},{"title":"Azure Synapse","href":"/docs/en/azure-synapse"},{"title":"ClickHouse","href":"/docs/en/clickhouse"},{"title":"Confluent Cloud","href":"/docs/en/confluent-cloud"},{"title":"Databricks","href":"/docs/en/databricks"},{"title":"Elasticsearch","href":"/docs/en/elasticsearch"},{"title":"Google BigQuery","href":"/docs/en/bigquery"},{"title":"Google Cloud SQL","href":"/docs/en/google-cloud-sql"},{"title":"Google Sheets","href":"/docs/en/google-sheets"},{"title":"Greenplum","href":"/docs/en/greenplum"},{"title":"HubSpot","href":"/docs/en/hubspot"},{"title":"Materialize","href":"/docs/en/materialize"},{"title":"Microsoft Fabric","href":"/docs/en/microsoft-fabric"},{"title":"Mixpanel","href":"/docs/en/mixpanel"},{"title":"MotherDuck","href":"/docs/en/motherduck"},{"title":"MySQL","href":"/docs/en/mysql"},{"title":"PostgreSQL","href":"/docs/en/postgresql"},{"title":"Pub/Sub","href":"/docs/en/google-pubsub"},{"title":"SingleStore","href":"/docs/en/singlestore"},{"title":"Snowflake","href":"/docs/en/snowflake"},{"title":"SQL Server","href":"/docs/en/sql-server"},{"title":"Starburst Enterprise","href":"/docs/en/starburst-enterprise"},{"title":"Starburst Galaxy","href":"/docs/en/starburst-galaxy"},{"title":"Trino","href":"/docs/en/trino"},{"title":"Segment (Twilio)","href":"/docs/en/segment-onesignal-integration"}]},{"group":"Attribution","pages":[{"title":"RevenueCat","href":"/docs/en/revenuecat"},{"title":"Adjust","href":"/docs/en/adjust"},{"title":"BlueConic","href":"/docs/en/blueconic"}]},{"title":"Building an integration with OneSignal: partner guide","href":"/docs/en/building-an-integration-with-onesignal-partner-guide"}]}]},{"group":"Privacy \u0026 Security","pages":[{"group":"Security credentials","pages":[{"title":"SOC 2 Type II","href":"/docs/en/soc-2-type-ii"},{"title":"ISO 27001","href":"/docs/en/iso27001"},{"title":"HIPAA","href":"/docs/en/hipaa"}]},{"group":"Data privacy \u0026 regulatory compliance","pages":[{"title":"GDPR \u0026 Individual Rights","href":"/docs/en/gdpr-compliance"},{"title":"EU-US Data Privacy Framework","href":"/docs/en/eu-us-data-privacy-framework"},{"title":"Email regulatory compliance","href":"/docs/en/email-compliance"},{"title":"SMS regulatory compliance","href":"/docs/en/sms-regulatory-compliance"},{"title":"Apple App Privacy Requirements","href":"/docs/en/apple-app-privacy-requirements"},{"title":"Google Play Data Safety Requirements","href":"/docs/en/google-play-data-safety-requirements"},{"title":"Data collection \u0026 security FAQs","href":"/docs/en/data-questions"},{"title":"Data collected by the OneSignal SDK","href":"/docs/en/data-collected-by-the-onesignal-sdk"},{"title":"Handling personal data","href":"/docs/en/handling-personal-data"},{"title":"Data taxonomy","href":"/docs/en/data-taxonomy"},{"title":"OneSignal AI data practices","mode":"frame","href":"/docs/en/ai-data-practices"}]},{"group":"Authentication","pages":[{"title":"2-step authentication","href":"/docs/en/2-step-authentication"},{"title":"Single Sign-On (SSO)","href":"/docs/en/sso"}]}]}]},{"tab":"Developer Guides","pages":[{"title":"Developer Guides","href":"/docs/en/developers"}]},{"tab":"Tutorials","pages":[{"title":"Tutorials","href":"/docs/en/tutorials"}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/reference/rest-api-overview"}]},{"tab":"Release Notes","pages":[{"title":"Release Notes","href":"/release-notes/changelog"}]},{"tab":"Customer Success Hub","pages":[{"title":"Customer Success Hub","href":"/docs/en/customer-success-hub"}]}],"global":{"anchors":[{"anchor":"Blog","icon":"newspaper","href":"https://onesignal.com/blog"},{"anchor":"GitHub","icon":"github","href":"https://github.com/OneSignal"},{"anchor":"YouTube","icon":"youtube","href":"https://www.youtube.com/@onesignalofficial/playlists"}]}},{"language":"cn","pages":[{"title":"cn","href":"/docs/cn/home"}]},{"language":"ko","pages":[{"title":"ko","href":"/docs/ko/home"}]},{"language":"ja","pages":[{"title":"ja","href":"/docs/ja/home"}]},{"language":"tr","pages":[{"title":"tr","href":"/docs/tr/home"}]},{"language":"pt-BR","pages":[{"title":"pt-BR","href":"/docs/pt-BR/home"}]},{"language":"es","pages":[{"title":"es","href":"/docs/es/home"}]},{"language":"fr","pages":[{"title":"fr","href":"/docs/fr/home"}]}]},"basePath":"","title":"Check message - OneSignal","buildId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","deploymentId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-PS-3COT9.js","DynamicMarkdown-BcnBltEQ.js","zoom-image-lightbox-B4-wUcHm.js","lightbox-handle-r17bVUz3.js"]}