Create a promo code

Create percentage and fixed-amount discounts, set redemption rules, and manage promo-code lifecycle states.

promo codes discounts marketing quotes invoices

Promo codes let customers apply a local CleanOps discount to eligible quotes and invoices. Use them for seasonal offers, retention discounts, or service-specific promotions without creating a separate Stripe coupon.

Before you start: sign in with an account that can manage marketing promo codes. If you want to limit a code to selected services, make sure the surface types already exist in Settings.

  1. 1

    Open Promo Codes

    In the left navigation, open Marketing and select Promo Codes. The page shows the Active Codes, Total Redemptions, and Revenue Generated cards, then a table with Name, Promo Code, Type, Value, Usage, Revenue, Expires, and Status.

    The Promo Codes list with KPI cards, filters, status tabs, and existing lifecycle states.

    The Promo Codes list with KPI cards, filters, status tabs, and existing lifecycle states.

  2. 2

    Start a new promo code

    Select New Promo Code. The Add New Promo Code modal opens with Basic Information, Discount Settings, Usage Rules, and Validity sections.

    A new promo code starts as a modal over the list.

    A new promo code starts as a modal over the list.

  3. 3

    Create a percentage discount

    Enter a Code Name, Promo Code, and optional Description. Keep % Percentage selected, enter the Discount Value, keep Each customer can only redeem this code once., keep All Services, and leave End Date blank if the code should not expire automatically.

    The demo percentage code uses DEMO10 for 10% off all services with no expiration.

    The demo percentage code uses DEMO10 for 10% off all services with no expiration.

  4. 4

    Save and activate the code

    Select Save Promo Code. CleanOps closes the modal, shows Promo code saved., and activates the code automatically. With a blank or past Start Date, the row shows Active; with a future Start Date, it shows Scheduled until that date.

    The saved percentage code appears in the list as Active.

    The saved percentage code appears in the list as Active.

  5. Read the detail page

    Open a promo code to see Promo Code Info, discount and redemption KPI cards, the Redemptions Over Time chart, and Usage History. A new code shows No redemptions yet. until customers use it on quotes or invoices.

    The detail page summarizes the saved rules and redemption statistics.

    The detail page summarizes the saved rules and redemption statistics.

  6. 5

    Create a fixed-amount service-specific code

    For a fixed discount, choose $ Fixed Amount, enter the dollar Discount Value, and optionally add a Usage Limit and Minimum Order Value. Choose No limits if the same customer can redeem the code more than once. To restrict eligible services, select Selected Services and choose the surface-type chips, then set an End Date if the offer should expire.

    The fixed demo code is limited to SIDING, has a usage cap, allows repeat redemptions, and expires on December 31, 2026.

    The fixed demo code is limited to SIDING, has a usage cap, allows repeat redemptions, and expires on December 31, 2026.

  7. Review fixed-code rules

    The fixed-code detail page shows the fixed Discount Value, Usage Limit, Minimum Order, Limit per customer, and End Date. The service scope is enforced when a customer applies the code, even though the detail summary does not list each selected surface type.

    The fixed demo code saved with a $25 discount, a 50-use cap, a $100 minimum order, no per-customer limit, and an end date.

    The fixed demo code saved with a $25 discount, a 50-use cap, a $100 minimum order, no per-customer limit, and an end date.

  8. Status tabs

    Use All, Active, Draft, Expired, Scheduled, and Disabled to filter the list by lifecycle state. Archived codes are hidden from this active-work list but remain preserved for reporting history.

    The list can show Draft, Active, Expired, Disabled, and Scheduled examples together.

    The list can show Draft, Active, Expired, Disabled, and Scheduled examples together.

  9. 6

    Search by name or code

    Use Search promo code… to find a code by its name or code value. The result list updates in place and the status tabs keep the same search query when you switch tabs.

    Searching DEMO narrows the list to the demo promo codes.

    Searching DEMO narrows the list to the demo promo codes.

  10. 7

    Filter by discount type

    Open Type, choose Percentage or Fixed Amount, and apply the filter. Combine it with search or status tabs when a large account has many offers.

    Filtering by Fixed Amount leaves the fixed demo code in the results.

    Filtering by Fixed Amount leaves the fixed demo code in the results.

  11. More filters

    Value filters by discount amount, Revenue filters by revenue generated from redeemed orders, and Expires offers Active window, Upcoming, Expired, and No end date options.

    The Expires filter options for validity-window searches.

    The Expires filter options for validity-window searches.

  12. Active-code actions

    An active promo code’s Actions menu offers Disable, End Now, Duplicate, and Archive. Delete is disabled outside Draft status; disable or archive active codes instead of deleting them.

    Active codes expose reversible and history-preserving lifecycle actions.

    Active codes expose reversible and history-preserving lifecycle actions.

  13. 8

    Disable or resume a code

    Select Actions -> Disable to stop a code without archiving it. A disabled code’s menu changes to Resume, Duplicate, and Archive; select Resume to make it active again.

    A disabled code can be resumed from the same Actions menu.

    A disabled code can be resumed from the same Actions menu.

  14. 9

    Duplicate a code

    Select Actions -> Duplicate to create a draft copy. CleanOps opens the copied code’s detail page, keeps the discount settings, and generates a fresh promo-code value so the copy can be edited before you save it for customer use.

    The copied promo code opens as a Draft with a generated code.

    The copied promo code opens as a Draft with a generated code.

  15. 10

    End a code

    Select Actions -> End Now when an active code should stop soon. CleanOps sets the end date to today and shows Promo code will end within 15 minutes.; the scheduled status sweeper then moves the code to Expired.

    End Now updates the end date and queues the code to expire shortly.

    End Now updates the end date and queues the code to expire shortly.

  16. Draft-only delete and archive

    Draft codes can be Deleted from Actions because customers have not used them. Archive hides a code from active lists while preserving reporting history; use it when a code should no longer appear in day-to-day management.

    Draft actions include Duplicate, Archive, and Delete.

    Draft actions include Duplicate, Archive, and Delete.

  17. Local-only behavior

    Promo codes are CleanOps records. They discount the quote or invoice amount CleanOps sends to payment collection, but CleanOps does not mirror them as Stripe coupon records.

  18. Your promo code is ready

    Your promo code is saved with its discount type, usage rules, service scope, and validity window. If the start date is blank or already passed, customers can apply it right away; if the start date is in the future, it becomes available on that date.

  19. Tips & related

Need more help? If you can't find what you're looking for in our documentation, create a support ticket and our team will assist you.