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 to the CleanOps mobile app 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

    From More, open Marketing, then select Promo Codes. The mobile list shows Active Codes, Total Redemptions, and Revenue Generated, followed by quick tabs, search, and promo-code cards with Name, Type / Value, Usage, Revenue, Expires, and status.

    The mobile Promo Codes list with KPI cards, quick tabs, search, and lifecycle states.

    The mobile Promo Codes list with KPI cards, quick tabs, search, and lifecycle states.

  2. 2

    Start a new promo code

    Select the + button in the top-right corner of the Promo Codes screen. The New Promo Code sheet opens with Basic Information, Discount Settings, Usage Rules, and Validity sections.

    A new mobile promo code starts in a bottom sheet.

    A new mobile promo code starts in a bottom sheet.

  3. 3

    Create a percentage discount

    Enter a Code Name and Promo Code. Keep % Percentage selected, enter Discount Value, keep Once each, keep All Services, and leave Start Date and End Date blank when the code should be available immediately with no automatic expiration.

    The percentage demo code uses a 10% discount for all services with no expiration.

    The percentage demo code uses a 10% discount for all services with no expiration.

  4. 4

    Save and activate the code

    Select Create Promo Code. CleanOps closes the sheet and activates the code automatically when Start Date is blank or in the past. A future Start Date creates a scheduled code instead.

    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 code to see Promo Code Info, Overview, and Usage History. Promo Code Info shows the saved description, code, discount, usage limit, minimum order value, per-customer rule, and start/end dates.

    The mobile detail page summarizes the saved rules.

    The mobile detail page summarizes the saved rules.

  6. Review stats and usage

    Overview shows discount, total uses, revenue generated, average order value, and Redemptions Over Time. Usage History lists redeemed orders; a new code shows No redemptions yet. until customers apply it to quotes or invoices.

    Overview and Usage History show performance once customers redeem the code.

    Overview and Usage History show performance once customers redeem the code.

  7. Empty usage history

    A newly created promo code has no usage rows until a quote or invoice redemption is recorded. This is expected for fresh demo codes.

    A new promo code starts with an empty usage history.

    A new promo code starts with an empty usage history.

  8. 5

    Create a fixed-amount service-specific code

    For a fixed discount, choose $ Fixed Amount, enter Discount Value, optionally add Usage Limit and Minimum Order Value, choose No limit when the same customer can redeem the code more than once, then select Selected Services and choose the service chips that qualify.

    A fixed code can be capped, restricted to selected services, and allowed for repeat redemptions.

    A fixed code can be capped, restricted to selected services, and allowed for repeat redemptions.

  9. Quick status tabs

    Use All, Active, Draft, and Expired to move between the common list states. Scheduled and disabled codes appear in All with their status badges, and archived codes are hidden from the active work list while staying preserved for reporting history.

    The mobile list shows active, draft, expired, scheduled, and disabled states in the active-work view.

    The mobile list shows active, draft, expired, scheduled, and disabled states in the active-work view.

  10. 6

    Search by name or code

    Use Search promo codes… to find a code by its name or code value. The result list updates in place and keeps the current tab and filter context.

    Searching narrows the mobile list to matching promo codes.

    Searching narrows the mobile list to matching promo codes.

  11. 7

    Open Filter & Sort

    Select the filter icon. The Filter & Sort sheet includes Sort by, Type & Value, Revenue, and Expires sections, then Apply Filters.

    The mobile Filter & Sort sheet groups sort, type, revenue, and expiration filters.

    The mobile Filter & Sort sheet groups sort, type, revenue, and expiration filters.

  12. Type, value, and expires filters

    Type & Value can filter All, Percentage, or Fixed Amount codes and narrow by discount value. Revenue filters by generated revenue. Expires filters validity windows such as active, upcoming, expired, and no-end-date codes.

    Expanded filter sections show type/value and expiration options.

    Expanded filter sections show type/value and expiration options.

  13. Active-code actions

    Open the overflow menu on an active code. Mobile actions include Edit, Disable, End Now, Duplicate, and Archive. Delete is disabled outside Draft status.

    Active codes expose edit, disable, end-now, duplicate, archive, and disabled delete actions.

    Active codes expose edit, disable, end-now, duplicate, archive, and disabled delete actions.

  14. 8

    Disable or resume a code

    Select Disable to stop a code without archiving it. A disabled code’s overflow menu replaces Disable and End Now with Resume (Edit, Duplicate, and Archive stay); select Resume when the code should be usable again.

    A disabled promo code can be resumed from the same overflow menu.

    A disabled promo code can be resumed from the same overflow menu.

  15. 9

    Duplicate a code

    Select Duplicate to create a draft copy. CleanOps opens the copied code as Draft, keeps the discount settings, and generates a fresh promo-code value so you can edit the copy before making it available.

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

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

  16. 10

    End or archive a code

    Use End Now when an active code should stop soon; CleanOps sets the end date to today and the status sweeper expires it shortly. Use Archive to hide a code from active management while keeping reporting history, then confirm Archive Promo Code.

    Archive uses an in-app confirmation before hiding the code from active lists.

    Archive uses an in-app confirmation before hiding the code from active lists.

  17. Draft-only delete

    Draft codes can be Deleted because customers have not used them yet. Once a code is active, disabled, scheduled, or expired, use Archive instead of deleting so reporting and redemption history stay intact.

  18. 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.

  19. 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.

  20. 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.