Managing Offers & Promotions
A strategic promotions strategy is vital to filling empty clinic chairs and driving product sales. Zennor provides a system to manage everything from standard holiday discounts to automated 'set-and-forget' birthday rewards.
You can access the Offers module via the Admin Panel under App Builder > Offers.
1. Types of Offers
The current Admin workflow creates One-Time Campaigns. Legacy automated records remain supported by the patient and checkout policies, but cannot be created or edited from this screen.
One-Time Campaigns
These are your traditional, date-bound promotions. They have a specific start date and a set duration (e.g., a "Black Friday Sale" running for exactly 3 days). You control exactly when they go live and when they expire.
Legacy automated offers
The patient and checkout policies recognize birthday, membership-anniversary, and lapsed-patient triggers for existing records. Unsupported trigger names fail closed. Do not promise or configure recurring-yearly/calendar triggers until a dedicated Admin workflow is restored.
2. Linking Offers to Treatments & Variations
To ensure patients use the promo code correctly, you can strictly link an offer to a specific service.
- Select the Main Treatment from your catalog.
- If the chosen treatment has Variations (e.g., Botox 1 Area vs Botox 3 Areas), you can further restrict the offer to only apply to specific variants.
If you are running a deep discount (e.g. 50% Off), always use the Variations selector to exclude your highest-cost or lowest-margin service options from being eligible for the code!
3. Configuring the Discount logic
Zennor gives you granular control over the economics of every offer:
- Discount Type: Choose a
Percentage (%)discount or aFixed Amount (₹)discount. - Maximum Discount Cap: If offering a Percentage, you should set a maximum monetary cap to protect against massive unpredicted usage.
- Minimum Spend: Require the patient's cart to hit a certain threshold (e.g., ₹5000) before the promo code is valid.
- Usage Limits: Limit how many times a single patient can use the promo code (typically set to 1).
4. Visibility & App Banners
How an offer looks in the patient's app is controlled in the Flash Sale & Banners section.
Standard Appearance
By default, offers appear in the dedicated "Offers" tab within the patient app as a standard rectangular card, alongside their Promo Code.
Flash Sale (Hero Banner)
Checking the High-Priority Placement (Flash Sale) toggle changes the offer's visual prominence.
- It elevates the offer to a large, highly visible Hero Banner at the very top of the App's Shopping/Booking screen.
- Use this for your most important campaigns to maximize visibility.
5. Automated Push Notifications
You do not need to manually message your patients to tell them about an offer. Zennor handles this natively.
Enable the Push Notification toggle and write a catchy Notification Title and Message Body. The system handles the delivery sequence:
- For One-Time Campaigns: the system queues one launch notification when the offer first becomes live. Expiry reminders are not sent automatically.
Push notifications will be delivered to patients who have enabled OS-level notification permissions for the app. Tapping the notification routes the patient directly to the offer.
Analytics storage migration
Offer performance is stored in the staff-only promotionAnalytics collection. Legacy promotion documents may still contain usageCount, revenue, views, or clicks; run the authenticated migratePromotionAnalytics callable in batches until it returns nextCursor: null. Deploy the Functions changes first, complete this migration, then deploy the matching Firestore rules and patient/Admin clients. New saves and checkouts also migrate touched offers automatically.