Recover lost sales with abandoned cart notifications using OneSignal by tracking cart activity, building targeted segments, and sending timely reminders with Journeys.
Abandoned carts are one of the highest-impact opportunities to recover lost revenue. Most users who abandon a cart still intend to purchase — they just need a timely reminder.This guide shows you how to build an automated abandoned cart Journey in OneSignal that:
Detects cart activity
Waits for a short period of inactivity
Sends a personalized reminder
Stops messaging immediately after purchase or cart removal
You can implement this using either:
Custom Events (recommended for most implementations)
Tags (simpler, limited to track 1 item instead of multiple)
The right choice depends on the data you want to show in the message and where that data comes from.What you will buildBy the end of this guide, you will have:
Cart activity sent to OneSignal (via Tags or Custom Events)
A clear, code-defined abandonment signal
Message templates that personalize cart data
A Journey that:
Starts when an abandonment signal is received
Waits before sending
Sends abandoned cart messages
Exits immediately when the cart is emptied or purchased
Re-enters the Journey if the user still has items in their cart within a specific time period
Analytics to measure message and revenue performance
How abandoned carts are modeledThis guide assumes you are tracking “cart updated” actions, meaning each time a user adds or removes items from their cart. This could be a single item like a subscription to your content or multiple items like a shopping cart.Once OneSignal receives a cart_updated event or tag:
The user becomes eligible to enter the Journey
A wait period gives them time to return naturally
Messages are sent only if they do not exit
The user exits immediately when the cart is emptied
When the cart state changes, send the updated cart data to OneSignal so the activity can be tracked.This guide uses the event or tag cart_updated to track cart activity and at least one property.Select the method you chose in Step 1:
Custom Events
Tags
Send a cart_updated Custom Event each time the cart changes. Include product properties when items are in the cart and omit them when the cart is emptied.
Set tags when items are in the cart and remove them when the cart is emptied.
These examples set the cart_updated tag to a Unix timestamp (in seconds) representing when the cart was last updated. You can also use a boolean value (true/false), but a timestamp provides more flexibility with Time Operators.
Cart activity is now being sent to OneSignal. Each time the cart changes, OneSignal receives the updated data needed to trigger and personalize messages.
The image will not display if product_image is not a direct, publicly accessible image URL.If your product_image is the name of an image file available online, you can reference the image using the following format:
https://yourdomain.com/images/{{journey.event.cart_updated.properties.product_image | default: "stock_image"}}.png
Abandoned cart template example with Custom Events
Reference tag properties using liquid syntax format:
Liquid
{{tag_key | default: "fallback_value"}}
Message:
Liquid
You left {{product_name | default: "items"}} in your cart.
The image will not display if product_image is not a direct, publicly accessible image URL.If your product_image is the name of an image file available online, you can reference the image using the following format:
https://yourdomain.com/images/{{product_image | default: "stock_image"}}.png
Abandoned cart template example with Tags
Need email examples, help, or more inspiration?
Personalize messages with Custom Events
Complete guide to using Custom Events in Journeys. Includes event storage, Journey configuration, abandoned cart example, best practices, and troubleshooting.
Personalize messages with Properties
Complete guide to using Properties and Tags in Journeys. Includes event storage, Journey configuration, abandoned cart example, best practices, and troubleshooting.
This step is only required if you are using Tags to track cart activity. If you are using Custom Events, you can skip this step.
The Segment will determine who can enter the Journey. See Segments for more details.Add two filters to the Segment:
User Tag — cart_updatedexists
Last Session — less than7days ago - Adjust the time period as desired
Abandoned Cart Segment with Tag Filter where the cart_updated tag exists and the last session is less than 7 days ago
You can now track users that update their cart and have visited the app or website in the last 7 days.Users are automatically removed from the segment when either of the following conditions are met:
After 7 days have passed since they last visited the app/website
Review the Journey Settings guide for more details on Entry, Exit, and Re-entry rules.Entry Rules:
Custom Event: Entry Rules
Tag: Entry Rules
Select Custom Event
Custom Event Name: cart_updated
Filter by property: With all of the following properties: product_nameexists
Using Custom Events allows individual users to enter Journeys multiple times.Use properties to filter users so they only enter when a specific property exists.
Abandoned Cart Journey Custom Event Entry Rules
Select Audience Segment
Include Segment: Abandoned Cart - cart_updated
Abandoned Cart Journey Entry Rules
Exit Rules:
Custom Event: Exit Rules
Tag: Exit Rules
Users should exit the Journey when they empty their cart or complete the Journey.
Select Meet a certain condition
Check Exit when custom event condition occurs
Custom Event Name: cart_updated
Abandoned Cart Journey Custom Event Exit Rules
This configuration uses the same Custom Event name (cart_updated) for both entry and exit rules.This allows the user to only be in the Journey once at a time. Each time they update their cart, that instance of the user will exit and a new instance of the same user will enter the Journey. This is why it is important to use properties to filter users within the Entry Rules.
Select Meet a certain condition
Check Exit when a user no longer matches the audience conditions
Abandoned Cart Journey Tag Exit Rules
Users will exit the Journey when either:
They leave the segment.
They complete the Journey.
Re-entry Rules (Tags only):
Select Yes, after a certain amount of time
Set the re-entry time to 3Days - Adjust the time period as desired
Abandoned Cart Journey Re-entry Rules
If you have followed this guide completely so far, then users will:
Enter the Journey when they abandon/update their cart
Exit the Journey when they empty their cart or complete the Journey.
Be eligible to re-enter the Journey:
Custom Events: Each time the cart_updated event is performed
Tags: After 3 days have passed since they last exited the Journey and are in the segment.
Users will enter the Journey based on your Entry Rules. This typically happens within a few minutes after the event/tag is received.Users will flow through the Journey step-by-step until they reach the end or an Exit Rule is met.A basic abandoned cart Journey does two things:
Gives the user enough time to empty their cart (make a purchase or remove items manually)
If they do not, sends a message reminding them about the items in their cart
Achieve this by first adding a Wait step to the Journey.
Set the wait time to be as long as you want. We recommend setting it to 1 or 2hours so you can message them while they still have the intent to purchase.
Add a Message step.
Select the Abandoned Cart Push Notification template you created in Step 3.
Basic Abandoned Cart Journey Steps
Basic Abandoned Cart Journey is now configured.When a user enters the Journey, they will wait for 1 hour. If they do not exit the Journey, they will receive the abandoned cart push notification.
Depending on which channels you set up with OneSignal, you will achieve better results using an omnichannel approach.
This guide shows how to send a push notification message after the first hour. This is used as a helpful reminder to try capturing the sale while the user may still be online.
Consider using both a push and email for your 2nd message. Use this second message to highlight benefits and social proof with light urgency to encourage them to purchase.
For the final message of the sequence, use an email or maybe an SMS (depending on the use case) as a “last call”. Consider using a discount code or other incentive to encourage them to purchase.
OneSignal’s Journeys provide Wait Until branching logic that you can use to check if a message was confirmed delivered, clicked or opened and if not performed within a certain time period, send a fallback message.This is extremely helpful for users who may have unsubscribed from a specific message channel. More details on how to setup fallback messages can be found in our Fallback Messages guide.
To track revenue from this Journey, you can use Custom Outcomes.When a purchase is made, you can send the event as a “Custom Outcome” to track the revenue associated with the specific message sent.Custom Outcomes can be sent via the Mobile SDK or Web SDK.
Should I use Custom Events or Tags for cart tracking?
Custom Events are recommended for most implementations. They support richer data, allow property-based filtering in Journey entry rules, and automatically handle re-entry when the same event fires again. Tags work for simpler use cases where you only need to track whether a cart exists, but require manual segment creation and re-entry configuration.
How long should I wait before sending the first reminder?
One to two hours is a common starting point. This gives the user enough time to return on their own while the purchase intent is still fresh. Test different wait times and use Journey analytics to find what works best for your audience.
What happens if a user updates their cart while in the Journey?
With Custom Events, the user exits the current Journey instance (because cart_updated fires as an exit condition) and immediately re-enters with the updated event data. With Tags, the user stays in the same Journey instance because the tag still exists — they only re-enter after exiting and waiting for the re-entry period.
Need help?Chat with our Support team or email support@onesignal.comPlease include:
Details of the issue you’re experiencing and steps to reproduce if available
Your OneSignal App ID
The External ID or Subscription ID if applicable
The URL to the message you tested in the OneSignal Dashboard if applicable
{"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":"6ae3d00a4118439d6da5189b","collectionId":"37a047d9-e384-4e25-bf8c-197c222c8528","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae3d00a4118439d6da5189b"},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae3d00a4118439d6da5189b","clientVersion":"0.0.4021","searchFilterCounts":[{"language":"en","tag":"User Guides","count":201},{"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":"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":"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":"byok-sep-25","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":"billing-updated-9-15","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":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[],"page":{"pagePath":"docs/en/abandoned-cart","slug":"/docs/en/abandoned-cart","pageMetadata":{"title":"Abandoned cart tutorial","description":"Recover lost sales with abandoned cart notifications using OneSignal by tracking cart activity, building targeted segments, and sending timely reminders with Journeys.","keywords":["event triggered messages","cart recovery","ecommerce","custom events","tags"],"href":"/docs/en/abandoned-cart"},"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: \"Recover lost sales with abandoned cart notifications using OneSignal by tracking cart activity, building targeted segments, and sending timely reminders with Journeys.\"\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`,hr:`hr`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Card,Check,CodeBlock,CodeGroup,Columns,Frame,Heading,Info,Note,OptimizedImage,Tab,Table,Tabs,Warning}=_components;if(!Card)_missingMdxReference(`Card`,true);if(!Check)_missingMdxReference(`Check`,true);if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!CodeGroup)_missingMdxReference(`CodeGroup`,true);if(!Columns)_missingMdxReference(`Columns`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Info)_missingMdxReference(`Info`,true);if(!Note)_missingMdxReference(`Note`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Tab)_missingMdxReference(`Tab`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tabs)_missingMdxReference(`Tabs`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`overview`,children:`Overview`}),`\n`,_jsx(_components.p,{children:`Abandoned carts are one of the highest-impact opportunities to recover lost revenue. Most users who abandon a cart still intend to purchase — they just need a timely reminder.`}),`\n`,_jsxs(_components.p,{children:[`This guide shows you how to build an `,_jsx(_components.strong,{children:`automated abandoned cart Journey`}),` in OneSignal that:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Detects cart activity`}),`\n`,_jsx(_components.li,{children:`Waits for a short period of inactivity`}),`\n`,_jsx(_components.li,{children:`Sends a personalized reminder`}),`\n`,_jsx(_components.li,{children:`Stops messaging immediately after purchase or cart removal`}),`\n`]}),`\n`,_jsx(_components.p,{children:`You can implement this using either:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Custom Events (recommended for most implementations)`}),`\n`,_jsx(_components.li,{children:`Tags (simpler, limited to track 1 item instead of multiple)`}),`\n`]}),`\n`,_jsx(_components.p,{children:`The right choice depends on the data you want to show in the message and where that data comes from.`}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`What you will build`})}),`\n`,_jsx(_components.p,{children:`By the end of this guide, you will have:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Cart activity sent to OneSignal (via Tags or Custom Events)`}),`\n`,_jsxs(_components.li,{children:[`A clear, `,_jsx(_components.strong,{children:`code-defined`}),` abandonment signal`]}),`\n`,_jsx(_components.li,{children:`Message templates that personalize cart data`}),`\n`,_jsxs(_components.li,{children:[`A Journey that:`,`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Starts when an abandonment signal is received`}),`\n`,_jsx(_components.li,{children:`Waits before sending`}),`\n`,_jsx(_components.li,{children:`Sends abandoned cart messages`}),`\n`,_jsx(_components.li,{children:`Exits immediately when the cart is emptied or purchased`}),`\n`,_jsx(_components.li,{children:`Re-enters the Journey if the user still has items in their cart within a specific time period`}),`\n`]}),`\n`]}),`\n`,_jsx(_components.li,{children:`Analytics to measure message and revenue performance`}),`\n`]}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`How abandoned carts are modeled`})}),`\n`,_jsx(_components.p,{children:`This guide assumes you are tracking “cart updated” actions, meaning each time a user adds or removes items from their cart. This could be a single item like a subscription to your content or multiple items like a shopping cart.`}),`\n`,_jsxs(_components.p,{children:[`Once OneSignal receives a `,_jsx(_components.code,{children:`cart_updated`}),` event or tag:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`The user becomes eligible to enter the Journey`}),`\n`,_jsx(_components.li,{children:`A wait period gives them time to return naturally`}),`\n`,_jsx(_components.li,{children:`Messages are sent only if they do not exit`}),`\n`,_jsx(_components.li,{children:`The user exits immediately when the cart is emptied`}),`\n`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`setup`,children:`Setup`}),`\n`,_jsx(Heading,{level:`3`,id:`step-1-plan-your-cart-data-and-source`,children:`Step 1: Plan your cart data and source`}),`\n`,_jsxs(_components.p,{children:[`Decide `,_jsx(_components.strong,{children:`what cart information you want to show`}),` and `,_jsx(_components.strong,{children:`where that data comes from`}),`.`]}),`\n`,_jsx(_components.p,{children:`Common cart data includes:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Product name, image, price, and quantity`}),`\n`,_jsx(_components.li,{children:`Number of items in the cart`}),`\n`,_jsx(_components.li,{children:`A deep link back to the cart`}),`\n`]}),`\n`,_jsx(_components.p,{children:`Your data source determines how you send events:`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Data source`}),_jsx(_components.th,{children:`Recommended method`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`App or website`}),_jsx(_components.td,{children:`OneSignal Frontend SDK`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Backend or database`}),_jsx(_components.td,{children:`OneSignal REST API`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Third-party platform`}),_jsx(_components.td,{children:`Integration-based Custom Events`})]})]})]}),`\n`,_jsx(Check,{children:_jsxs(_components.p,{children:[`By the end of this step, you know `,_jsx(_components.strong,{children:`what data you will send`}),` and `,_jsx(_components.strong,{children:`how you will send it`}),`.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`step-2-send-cart-activity-to-onesignal`,children:`Step 2: Send cart activity to OneSignal`}),`\n`,_jsx(_components.p,{children:`When the cart state changes, send the updated cart data to OneSignal so the activity can be tracked.`}),`\n`,_jsxs(_components.p,{children:[`This guide uses the event or tag `,_jsx(_components.code,{children:`cart_updated`}),` to track cart activity and at least one property.`]}),`\n`,_jsx(_components.p,{children:`Select the method you chose in Step 1:`}),`\n`,_jsxs(Tabs,{children:[_jsxs(Tab,{title:`Custom Events`,id:`custom-events`,children:[_jsxs(_components.p,{children:[`Send a `,_jsx(_components.code,{children:`cart_updated`}),` Custom Event each time the cart changes. Include product properties when items are in the cart and omit them when the cart is emptied.`]}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Reference`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.code,{children:`trackEvent`}),` method`]}),_jsxs(_components.td,{children:[`Send via Frontend SDK (`,_jsx(_components.a,{href:`/docs/en/mobile-sdk-reference#custom-events`,children:`Mobile SDK`}),`, `,_jsx(_components.a,{href:`/docs/en/web-sdk-reference#custom-events`,children:`Web SDK`}),`)`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.a,{href:`/reference/create-custom-events`,children:`Custom Events API`})}),_jsx(_components.td,{children:`Send via REST API`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.a,{href:`/docs/en/integrations`,children:`Integrations`})}),_jsx(_components.td,{children:`Send via integration`})]})]})]}),_jsx(_components.p,{children:_jsxs(_components.strong,{children:[`Frontend SDK `,_jsx(_components.code,{children:`trackEvent`}),` method example`]})}),_jsxs(CodeGroup,{children:[_jsx(CodeBlock,{filename:`Cart Updated`,numberOfLines:`7`,language:`javascript`,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:`javascript`,children:_jsxs(_components.code,{language:`javascript`,numberOfLines:`7`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`OneSignal`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`User`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`trackEvent`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"cart_updated\"`}),_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:` product_name:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"24 Pack of Acorns\"`}),_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:` product_image:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"https://i.imgur.com/ssPCfbC.png\"`}),_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:` product_price:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 12.99`}),_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:` product_quantity:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 1`}),_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:` cart_url:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"https://yourdomain.com/cart\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`]})})}),_jsx(CodeBlock,{filename:`Cart Emptied`,numberOfLines:`1`,language:`javascript`,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:`javascript`,children:_jsxs(_components.code,{language:`javascript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`OneSignal`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`User`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`trackEvent`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"cart_updated\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`]})})})]}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Custom Events API example`})}),_jsxs(CodeGroup,{children:[_jsx(CodeBlock,{filename:`Cart Updated`,numberOfLines:`15`,language:`json`,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:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`15`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"events\"`}),_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`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"cart_updated\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"properties\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"product_name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"24 Pack of Acorns\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"product_image\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://i.imgur.com/ssPCfbC.png\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"product_price\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"$12.99\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"product_quantity\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"1\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"cart_url\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://yourdomain.com/username/cart\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"external_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"ID_OF_THE_USER\"`})]}),`\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`]})})}),_jsx(CodeBlock,{filename:`Cart Emptied`,numberOfLines:`8`,language:`json`,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:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`8`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"events\"`}),_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`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"cart_updated\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"external_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"ID_OF_THE_USER\"`})]}),`\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`]})})})]})]}),_jsxs(Tab,{title:`Tags`,id:`tags`,children:[_jsx(_components.p,{children:`Set tags when items are in the cart and remove them when the cart is emptied.`}),_jsx(Info,{children:_jsxs(_components.p,{children:[`These examples set the `,_jsx(_components.code,{children:`cart_updated`}),` tag to a Unix timestamp (in seconds) representing when the cart was last updated. You can also use a boolean value (true/false), but a timestamp provides more flexibility with `,_jsx(_components.a,{href:`/docs/en/time-operators`,children:`Time Operators`}),`.`]})}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Reference`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.code,{children:`addTags`}),` / `,_jsx(_components.code,{children:`removeTags`})]}),_jsxs(_components.td,{children:[`Send via Frontend SDK (`,_jsx(_components.a,{href:`/docs/en/mobile-sdk-reference#data-tags`,children:`Mobile SDK`}),`, `,_jsx(_components.a,{href:`/docs/en/web-sdk-reference#data-tags`,children:`Web SDK`}),`)`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.a,{href:`/reference/update-user`,children:`Update User API`})}),_jsx(_components.td,{children:`Send via REST API`})]})]})]}),_jsx(_components.p,{children:_jsxs(_components.strong,{children:[`Frontend SDK `,_jsx(_components.code,{children:`addTags`}),` / `,_jsx(_components.code,{children:`removeTags`}),` methods example`]})}),_jsxs(CodeGroup,{children:[_jsx(CodeBlock,{filename:`Cart Updated`,numberOfLines:`8`,language:`javascript`,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:`javascript`,children:_jsxs(_components.code,{language:`javascript`,numberOfLines:`8`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`OneSignal`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`User`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`addTags`}),_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:` cart_updated:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` unix_timestamp_seconds`}),_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:` product_name:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"24 Pack of Acorns\"`}),_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:` product_image:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"https://i.imgur.com/ssPCfbC.png\"`}),_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:` product_price:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"$12.99\"`}),_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:` product_quantity:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"1\"`}),_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:` cart_url:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"https://yourdomain.com/username/cart\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`})`})}),`\n`]})})}),_jsx(CodeBlock,{filename:`Cart Emptied (remove tags)`,numberOfLines:`3`,language:`javascript`,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:`javascript`,children:_jsxs(_components.code,{language:`javascript`,numberOfLines:`3`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`OneSignal`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`User`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`removeTags`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`([`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"cart_updated\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"product_name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"product_image\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"product_price\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"product_quantity\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"cart_url\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`])`})}),`\n`]})})})]}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Update User API example`})}),_jsxs(CodeGroup,{children:[_jsx(CodeBlock,{filename:`Cart Updated`,numberOfLines:`12`,language:`json`,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:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`12`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"properties\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"tags\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"cart_updated\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1779305030`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Unix timestamp in seconds`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"product_name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"24 Pack of Acorns\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"product_image\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://i.imgur.com/ssPCfbC.png\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"product_price\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"$12.99\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"product_quantity\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"1\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"cart_url\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://yourdomain.com/username/cart\"`})]}),`\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`]})})}),_jsx(CodeBlock,{filename:`Cart Emptied (remove tags)`,numberOfLines:`12`,language:`json`,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:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`12`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"properties\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"tags\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"cart_updated\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"product_name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"product_image\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"product_price\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"product_quantity\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"cart_url\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},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(Check,{children:_jsx(_components.p,{children:`Cart activity is now being sent to OneSignal. Each time the cart changes, OneSignal receives the updated data needed to trigger and personalize messages.`})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`3`,id:`step-3-create-abandoned-cart-message-templates`,children:`Step 3: Create abandoned cart message templates`}),`\n`,_jsx(_components.p,{children:`Create message templates that reference cart data dynamically.`}),`\n`,_jsx(_components.p,{children:`For more details on the concepts used in this section, see:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/docs/en/using-liquid-syntax`,children:`Liquid syntax`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/docs/en/message-personalization`,children:`Message Personalization`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/docs/en/templates`,children:`Templates`})}),`\n`]}),`\n`,_jsxs(Tabs,{children:[_jsxs(Tab,{title:`Custom Event Push Template`,id:`custom-event-push-template`,children:[_jsx(_components.p,{children:`Reference event properties using liquid syntax format:`}),_jsx(CodeBlock,{filename:`Liquid`,numberOfLines:`1`,language:`liquid`,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:`liquid`,children:_jsxs(_components.code,{language:`liquid`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`{{`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`journey`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`event`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`properties`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`property_name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` | `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`default:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"fallback_value\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`}}`})]}),`\n`]})})}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Message`}),`:`]}),_jsx(CodeBlock,{filename:`Liquid`,numberOfLines:`1`,language:`liquid`,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:`liquid`,children:_jsxs(_components.code,{language:`liquid`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`You left `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`{{`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`journey`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`event`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`cart_updated`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`properties`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`product_name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` | `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`default:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"items\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`}}`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` in your cart.`})]}),`\n`]})})}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Image`}),`:`]}),_jsx(CodeBlock,{filename:`Liquid`,numberOfLines:`1`,language:`liquid`,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:`liquid`,children:_jsxs(_components.code,{language:`liquid`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`{{`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`journey`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`event`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`cart_updated`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`properties`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`product_image`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` | `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`default:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"https://i.imgur.com/ssPCfbC.png\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`}}`})]}),`\n`]})})}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Launch URL`}),`:`]}),_jsx(CodeBlock,{filename:`Liquid`,numberOfLines:`1`,language:`liquid`,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:`liquid`,children:_jsxs(_components.code,{language:`liquid`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`{{`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`journey`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`event`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`cart_updated`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`properties`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`cart_url`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` | `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`default:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"https://yourdomain.com/cart\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`}}`})]}),`\n`]})})}),_jsxs(Warning,{children:[_jsxs(_components.p,{children:[`The image will not display if `,_jsx(_components.code,{children:`product_image`}),` is not a `,_jsx(_components.strong,{children:`direct`}),`, `,_jsx(_components.strong,{children:`publicly accessible`}),` image URL.`]}),_jsxs(_components.p,{children:[`If your `,_jsx(_components.code,{children:`product_image`}),` is the name of an image file available online, you can reference the image using the following format:\n`,_jsx(_components.code,{children:`https://yourdomain.com/images/{{journey.event.cart_updated.properties.product_image | default: \"stock_image\"}}.png`})]})]}),_jsx(Frame,{caption:`Abandoned cart template example with Custom Events`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/onesignal/i980ujIG34-OaGfp/images/abandoned-cart/abandoned_cart_custom_event.png?fit=max\u0026auto=format\u0026n=i980ujIG34-OaGfp\u0026q=85\u0026s=30545021f3e1b12cdc741b3112540234`,alt:`Abandoned cart template example with Custom Events`,\"data-og-width\":`2526`,width:`2526`,\"data-og-height\":`2104`,height:`2104`,\"data-path\":`images/abandoned-cart/abandoned_cart_custom_event.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/onesignal/i980ujIG34-OaGfp/images/abandoned-cart/abandoned_cart_custom_event.png?w=280\u0026fit=max\u0026auto=format\u0026n=i980ujIG34-OaGfp\u0026q=85\u0026s=290f341792eec9e0fbe7237828e62d63 280w, https://mintcdn.com/onesignal/i980ujIG34-OaGfp/images/abandoned-cart/abandoned_cart_custom_event.png?w=560\u0026fit=max\u0026auto=format\u0026n=i980ujIG34-OaGfp\u0026q=85\u0026s=3761b8777ac9ea78682df69004dbd865 560w, https://mintcdn.com/onesignal/i980ujIG34-OaGfp/images/abandoned-cart/abandoned_cart_custom_event.png?w=840\u0026fit=max\u0026auto=format\u0026n=i980ujIG34-OaGfp\u0026q=85\u0026s=f580e8496756470b9ad4b3eafc743c13 840w, https://mintcdn.com/onesignal/i980ujIG34-OaGfp/images/abandoned-cart/abandoned_cart_custom_event.png?w=1100\u0026fit=max\u0026auto=format\u0026n=i980ujIG34-OaGfp\u0026q=85\u0026s=84cf7a34dda4fc1b977f5f86d7f77a53 1100w, https://mintcdn.com/onesignal/i980ujIG34-OaGfp/images/abandoned-cart/abandoned_cart_custom_event.png?w=1650\u0026fit=max\u0026auto=format\u0026n=i980ujIG34-OaGfp\u0026q=85\u0026s=296a19db3fe1c5e11d1ea4a1ec44a0ad 1650w, https://mintcdn.com/onesignal/i980ujIG34-OaGfp/images/abandoned-cart/abandoned_cart_custom_event.png?w=2500\u0026fit=max\u0026auto=format\u0026n=i980ujIG34-OaGfp\u0026q=85\u0026s=98882a258eb3dccbb26105a62ee6c107 2500w`})})]}),_jsxs(Tab,{title:`Tag Push Template`,id:`tag-push-template`,children:[_jsx(_components.p,{children:`Reference tag properties using liquid syntax format:`}),_jsx(CodeBlock,{filename:`Liquid`,numberOfLines:`1`,language:`liquid`,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:`liquid`,children:_jsxs(_components.code,{language:`liquid`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`{{`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`tag_key`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` | `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`default:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"fallback_value\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`}}`})]}),`\n`]})})}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Message`}),`:`]}),_jsx(CodeBlock,{filename:`Liquid`,numberOfLines:`1`,language:`liquid`,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:`liquid`,children:_jsxs(_components.code,{language:`liquid`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`You left `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`{{`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`product_name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` | `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`default:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"items\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`}}`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` in your cart.`})]}),`\n`]})})}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Image`}),`:`]}),_jsx(CodeBlock,{filename:`Liquid`,numberOfLines:`1`,language:`liquid`,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:`liquid`,children:_jsxs(_components.code,{language:`liquid`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`{{`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`product_image`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` | `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`default:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"https://i.imgur.com/ssPCfbC.png\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`}}`})]}),`\n`]})})}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Launch URL`}),`:`]}),_jsx(CodeBlock,{filename:`Liquid`,numberOfLines:`1`,language:`liquid`,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:`liquid`,children:_jsxs(_components.code,{language:`liquid`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`{{`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`cart_url`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` | `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`default:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"https://yourdomain.com/cart\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`}}`})]}),`\n`]})})}),_jsxs(Warning,{children:[_jsxs(_components.p,{children:[`The image will not display if `,_jsx(_components.code,{children:`product_image`}),` is not a `,_jsx(_components.strong,{children:`direct`}),`, `,_jsx(_components.strong,{children:`publicly accessible`}),` image URL.`]}),_jsxs(_components.p,{children:[`If your `,_jsx(_components.code,{children:`product_image`}),` is the name of an image file available online, you can reference the image using the following format:\n`,_jsx(_components.code,{children:`https://yourdomain.com/images/{{product_image | default: \"stock_image\"}}.png`})]})]}),_jsx(Frame,{caption:`Abandoned cart template example with Tags`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/onesignal/i980ujIG34-OaGfp/images/abandoned-cart/abandoned_cart_tags.png?fit=max\u0026auto=format\u0026n=i980ujIG34-OaGfp\u0026q=85\u0026s=00ed42a9890a824c8c201415b8260bba`,alt:`Abandoned cart template example with Tags`,\"data-og-width\":`2526`,width:`2526`,\"data-og-height\":`2104`,height:`2104`,\"data-path\":`images/abandoned-cart/abandoned_cart_tags.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/onesignal/i980ujIG34-OaGfp/images/abandoned-cart/abandoned_cart_tags.png?w=280\u0026fit=max\u0026auto=format\u0026n=i980ujIG34-OaGfp\u0026q=85\u0026s=a08ed3da9f9d215414de8f353afe9373 280w, https://mintcdn.com/onesignal/i980ujIG34-OaGfp/images/abandoned-cart/abandoned_cart_tags.png?w=560\u0026fit=max\u0026auto=format\u0026n=i980ujIG34-OaGfp\u0026q=85\u0026s=07d6515b4d138d429da48a1b4fd6c77a 560w, https://mintcdn.com/onesignal/i980ujIG34-OaGfp/images/abandoned-cart/abandoned_cart_tags.png?w=840\u0026fit=max\u0026auto=format\u0026n=i980ujIG34-OaGfp\u0026q=85\u0026s=63891c8afbb585215847770b50b5802a 840w, https://mintcdn.com/onesignal/i980ujIG34-OaGfp/images/abandoned-cart/abandoned_cart_tags.png?w=1100\u0026fit=max\u0026auto=format\u0026n=i980ujIG34-OaGfp\u0026q=85\u0026s=cf864445839672937f3b8d88f3c0649c 1100w, https://mintcdn.com/onesignal/i980ujIG34-OaGfp/images/abandoned-cart/abandoned_cart_tags.png?w=1650\u0026fit=max\u0026auto=format\u0026n=i980ujIG34-OaGfp\u0026q=85\u0026s=ea525192b5a3d116ab312cb958781262 1650w, https://mintcdn.com/onesignal/i980ujIG34-OaGfp/images/abandoned-cart/abandoned_cart_tags.png?w=2500\u0026fit=max\u0026auto=format\u0026n=i980ujIG34-OaGfp\u0026q=85\u0026s=7bb7816fc50a69eac3f1e5bd5678cfb7 2500w`})})]})]}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Need email examples, help, or more inspiration?`})}),`\n`,_jsxs(Columns,{cols:2,children:[_jsx(Card,{title:`Personalize messages with Custom Events`,icon:`bolt`,href:`/docs/en/personalization-custom-event`,children:_jsx(_components.p,{children:`Complete guide to using Custom Events in Journeys. Includes event storage, Journey configuration, abandoned cart example, best practices, and troubleshooting.`})}),_jsx(Card,{title:`Personalize messages with Properties`,icon:`tags`,href:`/docs/en/personalization-properties-and-tags`,children:_jsx(_components.p,{children:`Complete guide to using Properties and Tags in Journeys. Includes event storage, Journey configuration, abandoned cart example, best practices, and troubleshooting.`})})]}),`\n`,_jsx(Heading,{level:`3`,id:`step-4-create-abandoned-cart-segment-tags-only`,children:`Step 4: Create abandoned cart Segment (Tags only)`}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`This step is only required if you are using Tags to track cart activity. If you are using Custom Events, you can skip this step.`})}),`\n`,_jsxs(_components.p,{children:[`The Segment will determine who can enter the Journey. See `,_jsx(_components.a,{href:`/docs/en/segmentation`,children:`Segments`}),` for more details.`]}),`\n`,_jsx(_components.p,{children:`Add two filters to the Segment:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`User Tag`}),` — `,_jsx(_components.code,{children:`cart_updated`}),` `,_jsx(_components.code,{children:`exists`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Last Session`}),` — `,_jsx(_components.code,{children:`less than`}),` `,_jsx(_components.code,{children:`7`}),` `,_jsx(_components.code,{children:`days ago`}),` - Adjust the time period as desired`]}),`\n`]}),`\n`,_jsx(Frame,{caption:`Abandoned Cart Segment with Tag Filter where the cart_updated tag exists and the last session is less than 7 days ago`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/onesignal/BIUS_wdfwITxcuxQ/images/segments/tag-filter-cart-updated.png?fit=max\u0026auto=format\u0026n=BIUS_wdfwITxcuxQ\u0026q=85\u0026s=e77eb5ae599ff365cc908524648342b5`,alt:`Abandoned Cart Segment with Tag Filter where the cart_updated tag exists and the last session is less than 7 days ago`,\"data-og-width\":`1300`,width:`1300`,\"data-og-height\":`656`,height:`656`,\"data-path\":`images/segments/tag-filter-cart-updated.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/onesignal/BIUS_wdfwITxcuxQ/images/segments/tag-filter-cart-updated.png?w=280\u0026fit=max\u0026auto=format\u0026n=BIUS_wdfwITxcuxQ\u0026q=85\u0026s=3b1f85dbb6e9aa4988487d4b2bc99992 280w, https://mintcdn.com/onesignal/BIUS_wdfwITxcuxQ/images/segments/tag-filter-cart-updated.png?w=560\u0026fit=max\u0026auto=format\u0026n=BIUS_wdfwITxcuxQ\u0026q=85\u0026s=0aa227acda1cfcb72cf35411b5794d92 560w, https://mintcdn.com/onesignal/BIUS_wdfwITxcuxQ/images/segments/tag-filter-cart-updated.png?w=840\u0026fit=max\u0026auto=format\u0026n=BIUS_wdfwITxcuxQ\u0026q=85\u0026s=19da7d248abe817c86808c3921f656de 840w, https://mintcdn.com/onesignal/BIUS_wdfwITxcuxQ/images/segments/tag-filter-cart-updated.png?w=1100\u0026fit=max\u0026auto=format\u0026n=BIUS_wdfwITxcuxQ\u0026q=85\u0026s=fdb6daa11cd89ac6b8908f9015e523b6 1100w, https://mintcdn.com/onesignal/BIUS_wdfwITxcuxQ/images/segments/tag-filter-cart-updated.png?w=1650\u0026fit=max\u0026auto=format\u0026n=BIUS_wdfwITxcuxQ\u0026q=85\u0026s=89d666f1a9e32e0983713b1f48f2906f 1650w, https://mintcdn.com/onesignal/BIUS_wdfwITxcuxQ/images/segments/tag-filter-cart-updated.png?w=2500\u0026fit=max\u0026auto=format\u0026n=BIUS_wdfwITxcuxQ\u0026q=85\u0026s=7e8eb14627f70589aafb896a93c0210e 2500w`})}),`\n`,_jsxs(Check,{children:[_jsx(_components.p,{children:`You can now track users that update their cart and have visited the app or website in the last 7 days.`}),_jsx(_components.p,{children:`Users are automatically removed from the segment when either of the following conditions are met:`}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`After 7 days have passed since they last visited the app/website`}),`\n`,_jsxs(_components.li,{children:[`When the `,_jsx(_components.code,{children:`cart_updated`}),` tag is removed`]}),`\n`]})]}),`\n`,_jsx(Heading,{level:`3`,id:`step-5-create-the-abandoned-cart-journey`,children:`Step 5: Create the abandoned cart Journey`}),`\n`,_jsxs(_components.p,{children:[`Create a Journey that reacts to cart activity. See `,_jsx(_components.a,{href:`/docs/en/journeys-overview`,children:`Journeys`}),` for more details.`]}),`\n`,_jsx(Frame,{caption:`New Abandoned Cart Journey create screen`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/onesignal/nGF0iEnzRCJ61U4u/images/journeys/new-journey-screen.png?fit=max\u0026auto=format\u0026n=nGF0iEnzRCJ61U4u\u0026q=85\u0026s=373c8bea9b7f399af4623fe18eb50f9b`,alt:`New Abandoned Cart Journey create screen`,\"data-og-width\":`2234`,width:`2234`,\"data-og-height\":`930`,height:`930`,\"data-path\":`images/journeys/new-journey-screen.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/onesignal/nGF0iEnzRCJ61U4u/images/journeys/new-journey-screen.png?w=280\u0026fit=max\u0026auto=format\u0026n=nGF0iEnzRCJ61U4u\u0026q=85\u0026s=42543b8cc34e49bbdf306db145be440f 280w, https://mintcdn.com/onesignal/nGF0iEnzRCJ61U4u/images/journeys/new-journey-screen.png?w=560\u0026fit=max\u0026auto=format\u0026n=nGF0iEnzRCJ61U4u\u0026q=85\u0026s=65a6af51e13b0c8cabe06f523d4a93d7 560w, https://mintcdn.com/onesignal/nGF0iEnzRCJ61U4u/images/journeys/new-journey-screen.png?w=840\u0026fit=max\u0026auto=format\u0026n=nGF0iEnzRCJ61U4u\u0026q=85\u0026s=e6d3e6a185be840db3c2a63feadcca8a 840w, https://mintcdn.com/onesignal/nGF0iEnzRCJ61U4u/images/journeys/new-journey-screen.png?w=1100\u0026fit=max\u0026auto=format\u0026n=nGF0iEnzRCJ61U4u\u0026q=85\u0026s=3eeceed95db38120ad6fa54f0eecb096 1100w, https://mintcdn.com/onesignal/nGF0iEnzRCJ61U4u/images/journeys/new-journey-screen.png?w=1650\u0026fit=max\u0026auto=format\u0026n=nGF0iEnzRCJ61U4u\u0026q=85\u0026s=08b8a83b1fa4052a84ff7e7c645b8ad3 1650w, https://mintcdn.com/onesignal/nGF0iEnzRCJ61U4u/images/journeys/new-journey-screen.png?w=2500\u0026fit=max\u0026auto=format\u0026n=nGF0iEnzRCJ61U4u\u0026q=85\u0026s=f124c0de3a2c3d20359c910315d88755 2500w`})}),`\n`,_jsx(Heading,{level:`4`,id:`journey-settings`,children:`Journey settings`}),`\n`,_jsxs(_components.p,{children:[`Review the `,_jsx(_components.a,{href:`/docs/en/journeys-settings`,children:`Journey Settings`}),` guide for more details on Entry, Exit, and Re-entry rules.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Entry Rules`}),`:`]}),`\n`,_jsxs(Tabs,{children:[_jsxs(Tab,{title:`Custom Event: Entry Rules`,id:`custom-event%3A-entry-rules`,children:[_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Select `,_jsx(_components.strong,{children:`Custom Event`})]}),`\n`,_jsxs(_components.li,{children:[`Custom Event Name: `,_jsx(_components.code,{children:`cart_updated`})]}),`\n`,_jsxs(_components.li,{children:[`Filter by property: With `,_jsx(_components.strong,{children:`all`}),` of the following properties: `,_jsx(_components.code,{children:`product_name`}),` `,_jsx(_components.strong,{children:`exists`})]}),`\n`]}),_jsxs(Warning,{children:[_jsx(_components.p,{children:`Using Custom Events allows individual users to enter Journeys multiple times.`}),_jsx(_components.p,{children:`Use properties to filter users so they only enter when a specific property exists.`})]}),_jsx(Frame,{caption:`Abandoned Cart Journey Custom Event Entry Rules`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/onesignal/QYQXG0jQYRHKKzOd/images/journeys/journey-entry-rules-custom-event.png?fit=max\u0026auto=format\u0026n=QYQXG0jQYRHKKzOd\u0026q=85\u0026s=6b36bbedce35c4286ecd9d154ab4c9db`,alt:`Abandoned Cart Journey Custom Event Entry Rules`,\"data-og-width\":`2478`,width:`2478`,\"data-og-height\":`1772`,height:`1772`,\"data-path\":`images/journeys/journey-entry-rules-custom-event.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/onesignal/QYQXG0jQYRHKKzOd/images/journeys/journey-entry-rules-custom-event.png?w=280\u0026fit=max\u0026auto=format\u0026n=QYQXG0jQYRHKKzOd\u0026q=85\u0026s=c7dc3bcd5db82d005138e4e2017d4909 280w, https://mintcdn.com/onesignal/QYQXG0jQYRHKKzOd/images/journeys/journey-entry-rules-custom-event.png?w=560\u0026fit=max\u0026auto=format\u0026n=QYQXG0jQYRHKKzOd\u0026q=85\u0026s=5bbdd5da845125d9d59d173d97170cdf 560w, https://mintcdn.com/onesignal/QYQXG0jQYRHKKzOd/images/journeys/journey-entry-rules-custom-event.png?w=840\u0026fit=max\u0026auto=format\u0026n=QYQXG0jQYRHKKzOd\u0026q=85\u0026s=b91220c0187c73ec10a3fff34459d1de 840w, https://mintcdn.com/onesignal/QYQXG0jQYRHKKzOd/images/journeys/journey-entry-rules-custom-event.png?w=1100\u0026fit=max\u0026auto=format\u0026n=QYQXG0jQYRHKKzOd\u0026q=85\u0026s=8cd4689c3909af118183060d837d1076 1100w, https://mintcdn.com/onesignal/QYQXG0jQYRHKKzOd/images/journeys/journey-entry-rules-custom-event.png?w=1650\u0026fit=max\u0026auto=format\u0026n=QYQXG0jQYRHKKzOd\u0026q=85\u0026s=39fa5db971768b6ec90600bf5aa05f37 1650w, https://mintcdn.com/onesignal/QYQXG0jQYRHKKzOd/images/journeys/journey-entry-rules-custom-event.png?w=2500\u0026fit=max\u0026auto=format\u0026n=QYQXG0jQYRHKKzOd\u0026q=85\u0026s=06fad3a9b5d96f6923d3dccae098cbde 2500w`})})]}),_jsxs(Tab,{title:`Tag: Entry Rules`,id:`tag%3A-entry-rules`,children:[_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Select `,_jsx(_components.strong,{children:`Audience Segment`})]}),`\n`,_jsxs(_components.li,{children:[`Include Segment: `,_jsx(_components.strong,{children:`Abandoned Cart - cart_updated`})]}),`\n`]}),_jsx(Frame,{caption:`Abandoned Cart Journey Entry Rules`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/onesignal/nGF0iEnzRCJ61U4u/images/journeys/journey-entry-rules-audience-segment.png?fit=max\u0026auto=format\u0026n=nGF0iEnzRCJ61U4u\u0026q=85\u0026s=d3f3cbd94f91fa80aaa293c5beb44ade`,alt:`Abandoned Cart Journey entry rules`,\"data-og-width\":`2672`,width:`2672`,\"data-og-height\":`1586`,height:`1586`,\"data-path\":`images/journeys/journey-entry-rules-audience-segment.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/onesignal/nGF0iEnzRCJ61U4u/images/journeys/journey-entry-rules-audience-segment.png?w=280\u0026fit=max\u0026auto=format\u0026n=nGF0iEnzRCJ61U4u\u0026q=85\u0026s=f494f8f970d44ca94e089c70fbbc44f3 280w, https://mintcdn.com/onesignal/nGF0iEnzRCJ61U4u/images/journeys/journey-entry-rules-audience-segment.png?w=560\u0026fit=max\u0026auto=format\u0026n=nGF0iEnzRCJ61U4u\u0026q=85\u0026s=e0764f8b5a2272d526924d2d069e57f8 560w, https://mintcdn.com/onesignal/nGF0iEnzRCJ61U4u/images/journeys/journey-entry-rules-audience-segment.png?w=840\u0026fit=max\u0026auto=format\u0026n=nGF0iEnzRCJ61U4u\u0026q=85\u0026s=da98a6049172cf6c60d077ad2923c484 840w, https://mintcdn.com/onesignal/nGF0iEnzRCJ61U4u/images/journeys/journey-entry-rules-audience-segment.png?w=1100\u0026fit=max\u0026auto=format\u0026n=nGF0iEnzRCJ61U4u\u0026q=85\u0026s=1d1448c2a9cbc83b1498d55f208b9605 1100w, https://mintcdn.com/onesignal/nGF0iEnzRCJ61U4u/images/journeys/journey-entry-rules-audience-segment.png?w=1650\u0026fit=max\u0026auto=format\u0026n=nGF0iEnzRCJ61U4u\u0026q=85\u0026s=3c4fee9995fafcd239996a97c4a85653 1650w, https://mintcdn.com/onesignal/nGF0iEnzRCJ61U4u/images/journeys/journey-entry-rules-audience-segment.png?w=2500\u0026fit=max\u0026auto=format\u0026n=nGF0iEnzRCJ61U4u\u0026q=85\u0026s=d7f93c2ac7df30213f530747eab20218 2500w`})})]})]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Exit Rules`}),`:`]}),`\n`,_jsxs(Tabs,{children:[_jsxs(Tab,{title:`Custom Event: Exit Rules`,id:`custom-event%3A-exit-rules`,children:[_jsx(_components.p,{children:`Users should exit the Journey when they empty their cart or complete the Journey.`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Select `,_jsx(_components.strong,{children:`Meet a certain condition`})]}),`\n`,_jsxs(_components.li,{children:[`Check `,_jsx(_components.strong,{children:`Exit when custom event condition occurs`})]}),`\n`,_jsxs(_components.li,{children:[`Custom Event Name: `,_jsx(_components.code,{children:`cart_updated`})]}),`\n`]}),_jsx(Frame,{caption:`Abandoned Cart Journey Custom Event Exit Rules`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/onesignal/QYQXG0jQYRHKKzOd/images/journeys/journey-exit-rules-meet-certain-condition-custom-event.png?fit=max\u0026auto=format\u0026n=QYQXG0jQYRHKKzOd\u0026q=85\u0026s=f2e5cff1e3f76307e8ac9f30e5fa189f`,alt:`Abandoned Cart Journey Custom Event Exit Rules`,\"data-og-width\":`2478`,width:`2478`,\"data-og-height\":`1772`,height:`1772`,\"data-path\":`images/journeys/journey-exit-rules-meet-certain-condition-custom-event.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/onesignal/QYQXG0jQYRHKKzOd/images/journeys/journey-exit-rules-meet-certain-condition-custom-event.png?w=280\u0026fit=max\u0026auto=format\u0026n=QYQXG0jQYRHKKzOd\u0026q=85\u0026s=b30d7d61f013779754d44f69dbd8365f 280w, https://mintcdn.com/onesignal/QYQXG0jQYRHKKzOd/images/journeys/journey-exit-rules-meet-certain-condition-custom-event.png?w=560\u0026fit=max\u0026auto=format\u0026n=QYQXG0jQYRHKKzOd\u0026q=85\u0026s=c22e6a94d27c99dea9924d45776ff53d 560w, https://mintcdn.com/onesignal/QYQXG0jQYRHKKzOd/images/journeys/journey-exit-rules-meet-certain-condition-custom-event.png?w=840\u0026fit=max\u0026auto=format\u0026n=QYQXG0jQYRHKKzOd\u0026q=85\u0026s=daf1de7d29e54a121df228ad43462972 840w, https://mintcdn.com/onesignal/QYQXG0jQYRHKKzOd/images/journeys/journey-exit-rules-meet-certain-condition-custom-event.png?w=1100\u0026fit=max\u0026auto=format\u0026n=QYQXG0jQYRHKKzOd\u0026q=85\u0026s=e4594ff42bea6e8d759800a61da4c920 1100w, https://mintcdn.com/onesignal/QYQXG0jQYRHKKzOd/images/journeys/journey-exit-rules-meet-certain-condition-custom-event.png?w=1650\u0026fit=max\u0026auto=format\u0026n=QYQXG0jQYRHKKzOd\u0026q=85\u0026s=e3d5ddb0809d5e7c543b309e70cce06b 1650w, https://mintcdn.com/onesignal/QYQXG0jQYRHKKzOd/images/journeys/journey-exit-rules-meet-certain-condition-custom-event.png?w=2500\u0026fit=max\u0026auto=format\u0026n=QYQXG0jQYRHKKzOd\u0026q=85\u0026s=719df5f77c707b211da02c1123525a7f 2500w`})}),_jsxs(Note,{children:[_jsxs(_components.p,{children:[`This configuration uses the same Custom Event name (`,_jsx(_components.code,{children:`cart_updated`}),`) for both entry and exit rules.`]}),_jsxs(_components.p,{children:[`This allows the user to only be in the Journey once at a time. Each time they update their cart, that instance of the user will exit and a new instance of the same user will enter the Journey. `,_jsx(_components.strong,{children:`This is why it is important to use properties to filter users within the Entry Rules.`})]})]})]}),_jsxs(Tab,{title:`Tag: Exit Rules`,id:`tag%3A-exit-rules`,children:[_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Select `,_jsx(_components.strong,{children:`Meet a certain condition`})]}),`\n`,_jsxs(_components.li,{children:[`Check `,_jsx(_components.strong,{children:`Exit when a user no longer matches the audience conditions`})]}),`\n`]}),_jsx(Frame,{caption:`Abandoned Cart Journey Tag Exit Rules`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/onesignal/nGF0iEnzRCJ61U4u/images/journeys/journey-exit-rules-meet-certain-condition-tag.png?fit=max\u0026auto=format\u0026n=nGF0iEnzRCJ61U4u\u0026q=85\u0026s=e54a4770bccb5ad096602a2d2f826cc1`,alt:`Abandoned Cart Journey Tag Exit Rules`,\"data-og-width\":`2672`,width:`2672`,\"data-og-height\":`1586`,height:`1586`,\"data-path\":`images/journeys/journey-exit-rules-meet-certain-condition-tag.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/onesignal/nGF0iEnzRCJ61U4u/images/journeys/journey-exit-rules-meet-certain-condition-tag.png?w=280\u0026fit=max\u0026auto=format\u0026n=nGF0iEnzRCJ61U4u\u0026q=85\u0026s=6c69f3dad1b09c8fbcd08bb3a5aff6cb 280w, https://mintcdn.com/onesignal/nGF0iEnzRCJ61U4u/images/journeys/journey-exit-rules-meet-certain-condition-tag.png?w=560\u0026fit=max\u0026auto=format\u0026n=nGF0iEnzRCJ61U4u\u0026q=85\u0026s=6e67d63c0588bab6876660f9ecbe1937 560w, https://mintcdn.com/onesignal/nGF0iEnzRCJ61U4u/images/journeys/journey-exit-rules-meet-certain-condition-tag.png?w=840\u0026fit=max\u0026auto=format\u0026n=nGF0iEnzRCJ61U4u\u0026q=85\u0026s=c54bb94437fdedb3b56555de44ef0d95 840w, https://mintcdn.com/onesignal/nGF0iEnzRCJ61U4u/images/journeys/journey-exit-rules-meet-certain-condition-tag.png?w=1100\u0026fit=max\u0026auto=format\u0026n=nGF0iEnzRCJ61U4u\u0026q=85\u0026s=6d45c41f4ffd624a4da87b607b0bb711 1100w, https://mintcdn.com/onesignal/nGF0iEnzRCJ61U4u/images/journeys/journey-exit-rules-meet-certain-condition-tag.png?w=1650\u0026fit=max\u0026auto=format\u0026n=nGF0iEnzRCJ61U4u\u0026q=85\u0026s=4d6c7654c94d4779953258685e11d2d1 1650w, https://mintcdn.com/onesignal/nGF0iEnzRCJ61U4u/images/journeys/journey-exit-rules-meet-certain-condition-tag.png?w=2500\u0026fit=max\u0026auto=format\u0026n=nGF0iEnzRCJ61U4u\u0026q=85\u0026s=eee4e87169c70d11768be572fc391971 2500w`})}),_jsxs(Info,{children:[_jsx(_components.p,{children:`Users will exit the Journey when either:`}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`They leave the segment.`}),`\n`,_jsx(_components.li,{children:`They complete the Journey.`}),`\n`]})]})]})]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Re-entry Rules`}),` (Tags only):`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Select `,_jsx(_components.strong,{children:`Yes, after a certain amount of time`})]}),`\n`,_jsxs(_components.li,{children:[`Set the re-entry time to `,_jsx(_components.code,{children:`3`}),` `,_jsx(_components.code,{children:`Days`}),` - Adjust the time period as desired`]}),`\n`]}),`\n`,_jsx(Frame,{caption:`Abandoned Cart Journey Re-entry Rules`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/onesignal/Ed71xMP1FaC70n24/images/journeys/journey-re-entry-rules-after-certain-amount-of-time.png?fit=max\u0026auto=format\u0026n=Ed71xMP1FaC70n24\u0026q=85\u0026s=a3333faba5fb02f4f12fca0a3828ebc8`,alt:`Abandoned Cart Journey Re-entry Rules`,\"data-og-width\":`945`,width:`945`,\"data-og-height\":`400`,height:`400`,\"data-path\":`images/journeys/journey-re-entry-rules-after-certain-amount-of-time.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/onesignal/Ed71xMP1FaC70n24/images/journeys/journey-re-entry-rules-after-certain-amount-of-time.png?w=280\u0026fit=max\u0026auto=format\u0026n=Ed71xMP1FaC70n24\u0026q=85\u0026s=4a3d9949a7e86bdc3da2867f4a66ba46 280w, https://mintcdn.com/onesignal/Ed71xMP1FaC70n24/images/journeys/journey-re-entry-rules-after-certain-amount-of-time.png?w=560\u0026fit=max\u0026auto=format\u0026n=Ed71xMP1FaC70n24\u0026q=85\u0026s=51474b32fa8ab90415a500a6bb6b92cf 560w, https://mintcdn.com/onesignal/Ed71xMP1FaC70n24/images/journeys/journey-re-entry-rules-after-certain-amount-of-time.png?w=840\u0026fit=max\u0026auto=format\u0026n=Ed71xMP1FaC70n24\u0026q=85\u0026s=88833c25a7964e065e8f1f3eae8053dd 840w, https://mintcdn.com/onesignal/Ed71xMP1FaC70n24/images/journeys/journey-re-entry-rules-after-certain-amount-of-time.png?w=1100\u0026fit=max\u0026auto=format\u0026n=Ed71xMP1FaC70n24\u0026q=85\u0026s=4d5bc0d0b9167f2d345ed8c616c9c063 1100w, https://mintcdn.com/onesignal/Ed71xMP1FaC70n24/images/journeys/journey-re-entry-rules-after-certain-amount-of-time.png?w=1650\u0026fit=max\u0026auto=format\u0026n=Ed71xMP1FaC70n24\u0026q=85\u0026s=18f0250609413bdd091aaa9afe0a801c 1650w, https://mintcdn.com/onesignal/Ed71xMP1FaC70n24/images/journeys/journey-re-entry-rules-after-certain-amount-of-time.png?w=2500\u0026fit=max\u0026auto=format\u0026n=Ed71xMP1FaC70n24\u0026q=85\u0026s=0a029ed92e5d863cbfb0016e59150582 2500w`})}),`\n`,_jsxs(Check,{children:[_jsx(_components.p,{children:`If you have followed this guide completely so far, then users will:`}),_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Enter the Journey when they abandon/update their cart`}),`\n`,_jsx(_components.li,{children:`Exit the Journey when they empty their cart or complete the Journey.`}),`\n`,_jsxs(_components.li,{children:[`Be eligible to re-enter the Journey:`,`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Custom Events`}),`: Each time the `,_jsx(_components.code,{children:`cart_updated`}),` event is performed`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Tags`}),`: After 3 days have passed since they last exited the Journey and are in the segment.`]}),`\n`]}),`\n`]}),`\n`]})]}),`\n`,_jsx(Heading,{level:`4`,id:`journey-steps`,children:`Journey steps`}),`\n`,_jsx(_components.p,{children:`Users will enter the Journey based on your Entry Rules. This typically happens within a few minutes after the event/tag is received.`}),`\n`,_jsx(_components.p,{children:`Users will flow through the Journey step-by-step until they reach the end or an Exit Rule is met.`}),`\n`,_jsx(_components.p,{children:`A basic abandoned cart Journey does two things:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Gives the user enough time to empty their cart (make a purchase or remove items manually)`}),`\n`,_jsx(_components.li,{children:`If they do not, sends a message reminding them about the items in their cart`}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Achieve this by first adding a `,_jsx(_components.strong,{children:`Wait`}),` step to the Journey.`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Set the wait time to be as long as you want. We recommend setting it to `,_jsx(_components.code,{children:`1`}),` or `,_jsx(_components.code,{children:`2`}),` `,_jsx(_components.code,{children:`hours`}),` so you can message them while they still have the intent to purchase.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Add a `,_jsx(_components.strong,{children:`Message`}),` step.`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Select the `,_jsx(_components.strong,{children:`Abandoned Cart`}),` Push Notification template you created in Step 3.`]}),`\n`]}),`\n`,_jsx(Frame,{caption:`Basic Abandoned Cart Journey Steps`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/onesignal/FtxZDfbFgMsm3lF9/images/journeys/journey-steps-basic-abandoned-cart.png?fit=max\u0026auto=format\u0026n=FtxZDfbFgMsm3lF9\u0026q=85\u0026s=8af2e8a35043af3b053fda36f251c2c4`,alt:`Basic Abandoned Cart Journey Steps`,\"data-og-width\":`2526`,width:`2526`,\"data-og-height\":`2104`,height:`2104`,\"data-path\":`images/journeys/journey-steps-basic-abandoned-cart.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/onesignal/FtxZDfbFgMsm3lF9/images/journeys/journey-steps-basic-abandoned-cart.png?w=280\u0026fit=max\u0026auto=format\u0026n=FtxZDfbFgMsm3lF9\u0026q=85\u0026s=f323d9447a81c92fc8f7c04d23c693bc 280w, https://mintcdn.com/onesignal/FtxZDfbFgMsm3lF9/images/journeys/journey-steps-basic-abandoned-cart.png?w=560\u0026fit=max\u0026auto=format\u0026n=FtxZDfbFgMsm3lF9\u0026q=85\u0026s=610200824a2c697401f34c00afeb2705 560w, https://mintcdn.com/onesignal/FtxZDfbFgMsm3lF9/images/journeys/journey-steps-basic-abandoned-cart.png?w=840\u0026fit=max\u0026auto=format\u0026n=FtxZDfbFgMsm3lF9\u0026q=85\u0026s=1d4c21f8bf9126496637a9007039123d 840w, https://mintcdn.com/onesignal/FtxZDfbFgMsm3lF9/images/journeys/journey-steps-basic-abandoned-cart.png?w=1100\u0026fit=max\u0026auto=format\u0026n=FtxZDfbFgMsm3lF9\u0026q=85\u0026s=ddf52bb89f54f219e3e58df6af92c10b 1100w, https://mintcdn.com/onesignal/FtxZDfbFgMsm3lF9/images/journeys/journey-steps-basic-abandoned-cart.png?w=1650\u0026fit=max\u0026auto=format\u0026n=FtxZDfbFgMsm3lF9\u0026q=85\u0026s=f87d7f83bf8999f9ff7c803f2995866e 1650w, https://mintcdn.com/onesignal/FtxZDfbFgMsm3lF9/images/journeys/journey-steps-basic-abandoned-cart.png?w=2500\u0026fit=max\u0026auto=format\u0026n=FtxZDfbFgMsm3lF9\u0026q=85\u0026s=c23ff3947a1ee209ecee60ebb74745b3 2500w`})}),`\n`,_jsxs(Check,{children:[_jsx(_components.p,{children:`Basic Abandoned Cart Journey is now configured.`}),_jsx(_components.p,{children:`When a user enters the Journey, they will wait for 1 hour. If they do not exit the Journey, they will receive the abandoned cart push notification.`})]}),`\n`,_jsx(Heading,{level:`2`,id:`advanced-journey-setup`,children:`Advanced Journey Setup`}),`\n`,_jsx(_components.p,{children:`Extend the Journey to send more messages over time for higher recovery rates.`}),`\n`,_jsx(Heading,{level:`3`,id:`message-sequence`,children:`Message sequence`}),`\n`,_jsx(_components.p,{children:`A common high-performing cadence is:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Send the first message after 1 hour (completed in this guide).`}),`\n`,_jsxs(_components.li,{children:[`Add another `,_jsx(_components.strong,{children:`Wait`}),` step for 1 day and send a second message (~24 hours since they updated their cart).`]}),`\n`,_jsxs(_components.li,{children:[`Add another `,_jsx(_components.strong,{children:`Wait`}),` step for 2 days and send a third message (~72 hours since they updated their cart).`]}),`\n`]}),`\n`,_jsx(Heading,{level:`4`,id:`message-types-and-content`,children:`Message types and content`}),`\n`,_jsx(_components.p,{children:`Depending on which channels you set up with OneSignal, you will achieve better results using an omnichannel approach.`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`This guide shows how to send a push notification message after the first hour. This is used as a helpful reminder to try capturing the sale while the user may still be online.`}),`\n`,_jsx(_components.li,{children:`Consider using both a push and email for your 2nd message. Use this second message to highlight benefits and social proof with light urgency to encourage them to purchase.`}),`\n`,_jsx(_components.li,{children:`For the final message of the sequence, use an email or maybe an SMS (depending on the use case) as a “last call”. Consider using a discount code or other incentive to encourage them to purchase.`}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`fallback-messages`,children:`Fallback messages`}),`\n`,_jsxs(_components.p,{children:[`OneSignal’s Journeys provide `,_jsx(_components.strong,{children:`Wait Until`}),` branching logic that you can use to check if a message was confirmed delivered, clicked or opened and if not performed within a certain time period, send a fallback message.`]}),`\n`,_jsxs(_components.p,{children:[`This is extremely helpful for users who may have unsubscribed from a specific message channel. More details on how to setup fallback messages can be found in our `,_jsx(_components.a,{href:`/docs/en/push-fallback-method`,children:`Fallback Messages`}),` guide.`]}),`\n`,_jsx(Heading,{level:`3`,id:`track-performance`,children:`Track performance`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.a,{href:`/docs/en/journeys-analytics`,children:`Journey analytics`}),` can be used to track how the Journey as a whole is performing. You can also track each message performance using `,_jsx(_components.a,{href:`/docs/en/template-analytics`,children:`Template analytics`}),`.`]}),`\n`,_jsx(Heading,{level:`4`,id:`track-revenue-with-outcomes`,children:`Track revenue with Outcomes`}),`\n`,_jsxs(_components.p,{children:[`To track revenue from this Journey, you can use `,_jsx(_components.a,{href:`/docs/en/custom-outcomes`,children:`Custom Outcomes`}),`.`]}),`\n`,_jsx(_components.p,{children:`When a purchase is made, you can send the event as a “Custom Outcome” to track the revenue associated with the specific message sent.`}),`\n`,_jsxs(_components.p,{children:[`Custom Outcomes can be sent via the `,_jsx(_components.a,{href:`/docs/en/mobile-sdk-reference#outcomes`,children:`Mobile SDK`}),` or `,_jsx(_components.a,{href:`/docs/en/web-sdk-reference#outcomes`,children:`Web SDK`}),`.`]}),`\n`,_jsx(CodeBlock,{filename:`Example: Send purchase outcome via frontend SDK`,numberOfLines:`20`,language:`javascript`,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:`javascript`,children:_jsxs(_components.code,{language:`javascript`,numberOfLines:`20`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Example: capture total price and item count at checkout`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` checkoutPriceTotal`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` document`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`querySelector`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\".checkout-price-total\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`).`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`innerText`}),_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\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` checkoutItemsTotal`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` document`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`querySelector`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\".checkout-items-total\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`).`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`innerText`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`function`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` updateOSOnCartPurchase`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`checkoutPriceTotal`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`checkoutItemsTotal`}),_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\":`#569CD6`},children:` const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` purchasePriceTotal`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` parseFloat`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`checkoutPriceTotal`}),_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\":`#569CD6`},children:` const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` purchasedItemCount`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` parseInt`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`checkoutItemsTotal`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` OneSignalDeferred`}),_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:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`function`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`OneSignal`}),_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:` OneSignal`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`Session`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`sendOutcome`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Purchase\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`purchasePriceTotal`}),_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:` OneSignal`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`Session`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`sendOutcome`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Purchased Item Count\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`purchasedItemCount`}),_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`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` submitPurchaseButton`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` document`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`querySelector`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\".submit-payment\"`}),_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:`if`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`submitPurchaseButton`}),_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:` submitPurchaseButton`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`addEventListener`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"click\"`}),_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:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` updateOSOnCartPurchase`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`checkoutPriceTotal`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`checkoutItemsTotal`}),_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(Info,{children:_jsx(_components.p,{children:`Outcomes can attribute revenue to messages users clicked or were influenced by within a defined attribution window.`})}),`\n`,_jsx(Check,{children:_jsxs(_components.p,{children:[`You have successfully implemented an abandoned cart Journey. When you are ready to start sending messages, select `,_jsx(_components.strong,{children:`Set Live`}),`.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`faq`,children:`FAQ`}),`\n`,_jsx(Heading,{level:`3`,id:`should-i-use-custom-events-or-tags-for-cart-tracking`,children:`Should I use Custom Events or Tags for cart tracking?`}),`\n`,_jsx(_components.p,{children:`Custom Events are recommended for most implementations. They support richer data, allow property-based filtering in Journey entry rules, and automatically handle re-entry when the same event fires again. Tags work for simpler use cases where you only need to track whether a cart exists, but require manual segment creation and re-entry configuration.`}),`\n`,_jsx(Heading,{level:`3`,id:`how-long-should-i-wait-before-sending-the-first-reminder`,children:`How long should I wait before sending the first reminder?`}),`\n`,_jsxs(_components.p,{children:[`One to two hours is a common starting point. This gives the user enough time to return on their own while the purchase intent is still fresh. Test different wait times and use `,_jsx(_components.a,{href:`/docs/en/journeys-analytics`,children:`Journey analytics`}),` to find what works best for your audience.`]}),`\n`,_jsx(Heading,{level:`3`,id:`what-happens-if-a-user-updates-their-cart-while-in-the-journey`,children:`What happens if a user updates their cart while in the Journey?`}),`\n`,_jsxs(_components.p,{children:[`With Custom Events, the user exits the current Journey instance (because `,_jsx(_components.code,{children:`cart_updated`}),` fires as an exit condition) and immediately re-enters with the updated event data. With Tags, the user stays in the same Journey instance because the tag still exists — they only re-enter after exiting and waiting for the re-entry period.`]}),`\n`,_jsxs(Info,{children:[_jsx(_components.p,{children:`Need help?`}),_jsxs(_components.p,{children:[`Chat with our Support team or email `,_jsx(_components.code,{children:`support@onesignal.com`})]}),_jsx(_components.p,{children:`Please include:`}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Details of the issue you’re experiencing and steps to reproduce if available`}),`\n`,_jsx(_components.li,{children:`Your OneSignal App ID`}),`\n`,_jsx(_components.li,{children:`The External ID or Subscription ID if applicable`}),`\n`,_jsx(_components.li,{children:`The URL to the message you tested in the OneSignal Dashboard if applicable`}),`\n`,_jsxs(_components.li,{children:[`Any relevant `,_jsx(_components.a,{href:`/docs/en/capturing-a-debug-log`,children:`logs or error messages`})]}),`\n`]}),_jsx(_components.p,{children:`We’re happy to help!`})]})]})}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":"Abandoned cart tutorial","description":"Recover lost sales with abandoned cart notifications using OneSignal by tracking cart activity, building targeted segments, and sending timely reminders with Journeys.","keywords":["event triggered messages","cart recovery","ecommerce","custom events","tags"],"href":"/docs/en/abandoned-cart"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Overview","slug":"overview","depth":2,"children":[]},{"title":"Setup","slug":"setup","depth":2,"children":[{"title":"Step 1: Plan your cart data and source","slug":"step-1-plan-your-cart-data-and-source","depth":3,"children":[]},{"title":"Step 2: Send cart activity to OneSignal","slug":"step-2-send-cart-activity-to-onesignal","depth":3,"children":[]},{"title":"Step 3: Create abandoned cart message templates","slug":"step-3-create-abandoned-cart-message-templates","depth":3,"children":[]},{"title":"Step 4: Create abandoned cart Segment (Tags only)","slug":"step-4-create-abandoned-cart-segment-tags-only","depth":3,"children":[]},{"title":"Step 5: Create the abandoned cart Journey","slug":"step-5-create-the-abandoned-cart-journey","depth":3,"children":[]},{"title":"Journey settings","slug":"journey-settings","depth":4,"children":[]},{"title":"Journey steps","slug":"journey-steps","depth":4,"children":[]}]},{"title":"Advanced Journey Setup","slug":"advanced-journey-setup","depth":2,"children":[{"title":"Message sequence","slug":"message-sequence","depth":3,"children":[]},{"title":"Message types and content","slug":"message-types-and-content","depth":4,"children":[]},{"title":"Fallback messages","slug":"fallback-messages","depth":3,"children":[]},{"title":"Track performance","slug":"track-performance","depth":3,"children":[]},{"title":"Track revenue with Outcomes","slug":"track-revenue-with-outcomes","depth":4,"children":[]}]},{"title":"FAQ","slug":"faq","depth":2,"children":[{"title":"Should I use Custom Events or Tags for cart tracking?","slug":"should-i-use-custom-events-or-tags-for-cart-tracking","depth":3,"children":[]},{"title":"How long should I wait before sending the first reminder?","slug":"how-long-should-i-wait-before-sending-the-first-reminder","depth":3,"children":[]},{"title":"What happens if a user updates their cart while in the Journey?","slug":"what-happens-if-a-user-updates-their-cart-while-in-the-journey","depth":3,"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":"Abandoned cart tutorial - OneSignal","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/docs/en/abandoned-cart","matchLevel":0},"cn":{"href":"/docs/cn/abandoned-cart","matchLevel":1},"ko":{"href":"/docs/ko/abandoned-cart","matchLevel":1},"ja":{"href":"/docs/ja/abandoned-cart","matchLevel":1},"tr":{"href":"/docs/tr/abandoned-cart","matchLevel":1},"pt-BR":{"href":"/docs/pt-BR/abandoned-cart","matchLevel":1},"es":{"href":"/docs/es/abandoned-cart","matchLevel":1},"fr":{"href":"/docs/fr/abandoned-cart","matchLevel":1}}},"lastModified":"2026-05-28T21:39:45.993Z","originalFileLocation":"docs/en/abandoned-cart.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=\"Recover lost sales with abandoned cart notifications using OneSignal by tracking cart activity, building targeted segments, and sending timely reminders with Journeys.\">\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=\"Abandoned cart tutorial - OneSignal\">\u003cmeta data-mint-head property=\"og:description\" content=\"Recover lost sales with abandoned cart notifications using OneSignal by tracking cart activity, building targeted segments, and sending timely reminders with Journeys.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"OneSignal\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://documentation.onesignal.com/docs/en/abandoned-cart\">\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=Engage+and+convert\u0026amp;title=Abandoned+cart+tutorial\u0026amp;description=Recover+lost+sales+with+abandoned+cart+notifications+using+OneSignal+by+tracking+cart+activity%2C+building+targeted+segments%2C+and+sending+timely+reminders+with+Jo\u0026amp;theme=8d648f04f85028b307bd669b\u0026amp;signature=f3790d5e0a0623aa3b54f5ba0f99832de6035983dd0207c95e20128086c455fe\">\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=\"Abandoned cart tutorial - OneSignal\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Recover lost sales with abandoned cart notifications using OneSignal by tracking cart activity, building targeted segments, and sending timely reminders with Journeys.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://onesignal.mintlify.app/_mintlify/api/og/v2?division=Engage+and+convert\u0026amp;title=Abandoned+cart+tutorial\u0026amp;description=Recover+lost+sales+with+abandoned+cart+notifications+using+OneSignal+by+tracking+cart+activity%2C+building+targeted+segments%2C+and+sending+timely+reminders+with+Jo\u0026amp;theme=8d648f04f85028b307bd669b\u0026amp;signature=f3790d5e0a0623aa3b54f5ba0f99832de6035983dd0207c95e20128086c455fe\">\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/abandoned-cart\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/en/abandoned-cart.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://documentation.onesignal.com/docs/en/abandoned-cart\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"zh\" href=\"https://documentation.onesignal.com/docs/cn/abandoned-cart\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ko\" href=\"https://documentation.onesignal.com/docs/ko/abandoned-cart\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ja\" href=\"https://documentation.onesignal.com/docs/ja/abandoned-cart\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"tr\" href=\"https://documentation.onesignal.com/docs/tr/abandoned-cart\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"pt-BR\" href=\"https://documentation.onesignal.com/docs/pt-BR/abandoned-cart\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"es\" href=\"https://documentation.onesignal.com/docs/es/abandoned-cart\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"fr\" href=\"https://documentation.onesignal.com/docs/fr/abandoned-cart\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://documentation.onesignal.com/docs/en/abandoned-cart\">\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/abandoned-cart#webpage\",\"url\":\"https://documentation.onesignal.com/docs/en/abandoned-cart\",\"name\":\"Abandoned cart tutorial\",\"description\":\"Recover lost sales with abandoned cart notifications using OneSignal by tracking cart activity, building targeted segments, and sending timely reminders with Journeys.\",\"dateModified\":\"2026-05-28T21:39:45.993Z\",\"isPartOf\":{\"@id\":\"https://documentation.onesignal.com#website\"},\"breadcrumb\":{\"@id\":\"https://documentation.onesignal.com/docs/en/abandoned-cart#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://documentation.onesignal.com/docs/en/abandoned-cart#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Engage and convert\",\"item\":\"https://documentation.onesignal.com/docs/en/event-driven-journeys\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Abandoned cart tutorial\",\"item\":\"https://documentation.onesignal.com/docs/en/abandoned-cart\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://documentation.onesignal.com/docs/en/abandoned-cart#article\",\"headline\":\"Abandoned cart tutorial\",\"name\":\"Abandoned cart tutorial\",\"description\":\"Recover lost sales with abandoned cart notifications using OneSignal by tracking cart activity, building targeted segments, and sending timely reminders with Journeys.\",\"url\":\"https://documentation.onesignal.com/docs/en/abandoned-cart\",\"mainEntityOfPage\":{\"@id\":\"https://documentation.onesignal.com/docs/en/abandoned-cart#webpage\"},\"dateModified\":\"2026-05-28T21:39:45.993Z\",\"keywords\":\"event triggered messages, cart recovery, ecommerce, custom events, tags\",\"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","pages":[{"title":"User Guides","href":"/docs/en/quickstart-guide"}]},{"tab":"Developer Guides","pages":[{"title":"Developer Guides","href":"/docs/en/developers"}]},{"tab":"Tutorials","groups":[{"group":"Tutorials","pages":[{"title":"Tutorials \u0026 use cases","href":"/docs/en/tutorials"}]},{"group":"Industry strategies","pages":[{"title":"Mobile-first strategies","href":"/docs/en/mobile-first"},{"title":"Gaming strategies","href":"/docs/en/gaming-industry"},{"title":"Ecommerce strategies","href":"/docs/en/ecommerce-strategies"},{"title":"News and media strategies","href":"/docs/en/news-and-media-industry"},{"title":"Financial and fintech strategies","href":"/docs/en/financial-fintech-industry"}]},{"group":"Onboard new users","pages":[{"title":"Mobile-first lifecycle Journeys","href":"/docs/en/mobile-first-journeys"},{"title":"Welcome Journey: Mobile gaming","href":"/docs/en/welcome-journey-mobile-gaming"},{"title":"Category onboarding for news and media","href":"/docs/en/welcome-journey-news-media"},{"title":"Build a button-driven onboarding carousel","href":"/docs/en/in-app-onboarding-carousel-tutorial"},{"title":"Request location permissions with in-app messages","href":"/docs/en/location-opt-in-prompt"},{"title":"Onboard users with banner in-app messages","href":"/docs/en/example-create-a-tutorial"}]},{"group":"Engage and convert","pages":[{"title":"Event-driven Journeys","description":"Design Journeys that respond to user behavior using Custom Events as entry rules, Wait Until conditions, exit rules, and message personalization sources.","href":"/docs/en/event-driven-journeys"},{"title":"Abandoned cart tutorial","href":"/docs/en/abandoned-cart"},{"title":"Loyalty Journey","description":"Build automated loyalty messaging that keeps customers informed about their points balance, notifies them when rewards unlock and drives repeat purchases with measurable ROI.","href":"/docs/en/loyalty-journey"},{"title":"Flash sale Journey","href":"/docs/en/flash-sale"},{"title":"Back-in-stock alerts","href":"/docs/en/back-in-stock-alerts"},{"title":"Location-based messages","href":"/docs/en/location-triggered-event"},{"title":"iOS: Image Carousel Push Notifications","href":"/docs/en/ios-image-carousel-push-notifications"},{"title":"Social activity","href":"/docs/en/social-activity"},{"title":"Create activity feed","href":"/docs/en/create-an-activity-feed"},{"title":"Create a survey to ask for feedback","href":"/docs/en/example-create-a-survey"}]},{"group":"Retain and re-engage","pages":[{"title":"Paid plan subscription renewal \u0026 expiry Journey","href":"/docs/en/paid-plan-renewal-expiry"},{"title":"Daily streak journey","href":"/docs/en/daily-streak"},{"title":"Get more app store reviews","href":"/docs/en/example-app-store-review"},{"title":"Target outdated app versions to encourage app updates","sidebarTitle":"App version update prompts","href":"/docs/en/app-version-update"},{"title":"Fallback messages: Ensuring delivery across channels","href":"/docs/en/push-fallback-method"}]},{"group":"Operational","pages":[{"title":"Transactional messages","href":"/docs/en/transactional-messages"},{"title":"Set up confirmed opt-in for email","href":"/docs/en/double-opt-in-email"},{"title":"Preference center","href":"/docs/en/preference-center"},{"title":"Booking confirmations","href":"/docs/en/booking-confirmations"},{"title":"Send verification, magic link, OTP, and double opt-in messages","href":"/docs/en/example-verification-magic-link-otp"},{"title":"Track topic interest for smarter targeting","href":"/docs/en/auto-segment-users-by-page-visit"},{"title":"Target certain Android manufacturers and devices","href":"/docs/en/example-target-certain-android-manufacturers-and-devices"}]}]},{"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/abandoned-cart"}]},{"language":"ko","pages":[{"title":"ko","href":"/docs/ko/abandoned-cart"}]},{"language":"ja","pages":[{"title":"ja","href":"/docs/ja/abandoned-cart"}]},{"language":"tr","pages":[{"title":"tr","href":"/docs/tr/abandoned-cart"}]},{"language":"pt-BR","pages":[{"title":"pt-BR","href":"/docs/pt-BR/abandoned-cart"}]},{"language":"es","pages":[{"title":"es","href":"/docs/es/abandoned-cart"}]},{"language":"fr","pages":[{"title":"fr","href":"/docs/fr/abandoned-cart"}]}]},"title":"Abandoned cart tutorial - OneSignal","buildId":"dpl_EnxDqhjaNc9a8MVa833TGULPd9uJ","deploymentId":"dpl_EnxDqhjaNc9a8MVa833TGULPd9uJ","dynamics":["07c022d89b","a74be98ba7","a9bb46feb3"],"chunks":["Frame-CIbhtp2j.js","DynamicMarkdown-CtpgKJwj.js","zoom-image-lightbox-CVZVK4hN.js","lightbox-handle-r17bVUz3.js","Markdown-3OmurJMP.js","clsx-DMKzROTp.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-1ms6tsT-.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-Ke9xIMFx.js"]}