Skip to main content

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.

  1. Select the Main Treatment from your catalog.
  2. 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.
Protecting Margins

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 a Fixed 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.