First steps
User Data
- Responsive Email Editor Review
- Designing your email
- Creating Synchronized Modules
- Setting Up Responsive Email Design
- Setting Up Smart Containers
- Creating a Gmail Promotions Annotation
- Adding The Rollover Effect
- Adding Anchor Links
- Module Library
- Adding a Table to an Email
- Adding Custom Fonts
- Creating CTA Button
- Working with Images
- Creating Timer
- Using AI in the Email Editor
- Messenger Protocol Support in Email Clients and Platforms
Omnichannel
- Setting Up Widgets for Your Site
- Widgets Gamification
- Widget Calling
- Setting Up Locations for the Widget Calling Rules
- Storing data from widgets to contact fields
- Using Annoyance Safeguard
- Actions After Form Submission
- Replacing Double Opt-In System Workflow
- Creating Pop-ups via Google Tag Manager or WordPress
- Sending Yespo Widget Events to Google Analytics
- Using A/B Tests for Widgets
- Collecting Contact Information Using Request Forms
Automation
- Building and Editing Workflows
- Configuring Workflow Start/Stop Conditions
- Start Block
- Popular Blocks
- Message Blocks
- Using One from Many Message Block
- Contact Blocks
- Conditions Blocks
- Other Blocks
- Message to Segment Blocks
- Time Blocks
- Advanced Workflow Block Parameters
- Setting Up Allowed Send Time
- Using Workflow Launch History
- Webhook Workflows
- Workflow Troubleshooting
- Double Opt-In
- Welcome Сampaign
- Welcome Series Segmented by Category
- Launching a Workflow After a Contact Import
- Regular Workflow for a Segment
- Birthday Campaign
- Linking Workflow to the Button
- Using Variables from Order in Workflow
- Collecting Order Feedback
- Customer Reactivation
- Sending Extra Campaigns
- Sending Reminders at the Time Specified by the User
- Sending Campaign to Those Who Did Not Open the Previous One
- Using A/B Tests In Workflows
Personalization
Analytics
- Email Campaign Report
- Web Push Campaign Report
- Viber Campaign Report
- Mobile Push Campaign Report
- App Inbox Campaign Report
- Telegram Campaign Report
- In-App Report
- Widget Report
- Triggered Campaign Report
- AMP Campaign Report
- SMS Campaign Report
- Multilingual Campaign Report
- Setting up UTM Tags
- Revenue from Campaigns
- Tracking Campaign Performance in Google Analytics 4
- Message Analytics
Multilanguage Campaigns
Events and Behaviour Tracking
Recommendations
API
Security and Compliance
Service Worker. Troubleshooting
The Yespo web push script is loaded via a Service Worker file called sw.js and placed in the site's root. The problem can occur if the site code already uses files with the same name or uses a different Service Worker.
1. Changing the name of Service Worker sw.js
Some builders (GoDaddy, Wix, etc.) place the sw.js file in the site root by default. Since the Yespo file has the same name, errors may occur.
To avoid problems, you can rename the file and, if necessary, specify the path to it in the Yespo script.
To do this, find the initialization function in the Yespo script code
es("pushOn");
and add parameters to this entry in the following format:
es("pushOn", {'service-worker': {'relUrl': '/push-worker.js'} });
where the 'relUrl' parameter is the path to the file and its arbitrary name.
2. Merging Service Workers from Yespo and PWA
Sites with PWA (progressive web app) already use Service Worker, i.e., they contain a JavaScript file with a specific set of functions. To enable the ability to subscribe and send web pushes via Yespo to your site, you need to add the line at the end of the JavaScript code of your Service Worker
importScripts('https://push.yespo.io/service-worker.js');
Note
The names of functions, variables or handlers in your Service Worker and Service Worker from Yespo may be the same. In this case, conflicts leading to failures in your PWA and the Yespo script are possible.
Below is a list of methods’ (functions’) names in the Yespo file:
- onPushNotification
- getNotificationContent
- showNotification
- getNotificationData
- determineClickedLink
- collectActionLinks
- trackNewServiceWorkerActivation
If the names in your Service Worker and the Yespo's Service Worker match, the function located last in the code will be called. For example, if the code according to this instruction ends with the line
importScripts('https://push.yespo.io/service-worker.js');
then the functionality related to web pushes will work correctly.