F12 Labs
EN
Contact
← All posts

Who changed this discount? Staff permissions and change history in Shopify

Shopify has one staff permission for discounts, covering viewing, creating and deleting, and its store activity log keeps recent admin actions. What that means when several people run promotions, what a discount's change history should show, and what to look for in a discount app.

Discountly's staff roles table with Priya N. as Admin, Sam T. as Editor and Jordan K. as Customer Support, a draft order card, and a discount's audit trail showing Sam T. changing a tier value from 12 to 15, Priya N. activating it, and a Restore this version button

Monday morning, the hoodie promotion is giving 15% at four items instead of 10%. Nobody remembers changing it. Three people work on promotions, one of them part-time, and a support rep builds draft orders for wholesale customers.

Two questions come up in every store with more than one person in the admin: who can change our discounts, and who did change this one. Here's what Shopify gives you for each, where it stops, and what to look for.

What Shopify does

One permission for discounts. Shopify's staff permissions have a single entry for the Discounts section, View, create, and delete: "This permission allows users to view and create discount codes and automatic discounts." (Store permissions) Someone either has the Discounts page or doesn't.

App access by role. When you create a role under Settings → Users → Roles, you can "select any apps the role can access" (Managing user roles). A staff member can open an app or not. What they can do inside it is up to the app.

The store activity log. Shopify's log "displays the date and time of recent actions that are taken by the store owner or a user", such as deleting a product or changing a store setting (Activity logs). In Shopify's newer version of the log, you can click an entry for details, which include "the fields that changed" when that information is available. The log is view-only, and "the information can't be exported". Viewing it needs the Manage settings permission, or an administrator role for the newer log.

Where it stops

  • No "look but don't touch". With one permission for viewing, creating and deleting, there's no way to let an agency, a finance person or a new hire see your promotions without letting them change or delete them.
  • No "edit but don't delete". The person who adjusts tiers every week can also remove the promotion entirely.
  • No "apply but don't edit". Staff who build draft orders for customers need discounts applied correctly, not the power to change them.
  • History is store-wide and recent. The activity log covers the whole admin, so the discount you care about is one entry among product edits and settings changes. And it doesn't restore anything: once you know what changed, you change it back by hand.
  • App discounts keep their settings in the app. A discount made by an app has its tiers, targeting and gifts stored in that app. Shopify's log records actions in the Shopify admin; changes made inside an app's own screens are the app's to record. Check whether your discount app keeps its own history.

What to look for

  • Roles that split viewing, editing and deleting. At least: look only; create and edit; delete. Deleting a live promotion should be for few people.
  • A role for staff who only apply discounts, such as support or sales staff on draft orders, without access to the discount settings.
  • Access off by default. New staff should start with nothing until someone gives them a role, not with everything.
  • A history on each discount, not only a store-wide log: who did what, when, and each setting from its old value to its new one, such as a tier going from 10% off to 15% off.
  • Restore. One click to put an earlier version back, recorded in the history like any other change.
  • Honesty about gaps. Bulk actions and changes made outside the app may not be in the history. The app should say so.

How Discountly does it

Discountly has its own roles, on every plan, on top of Shopify's app access:

Role Can do
Viewer See every discount and Analytics, and export
Customer Support Apply and skip discounts on draft orders only; can't open the app
Editor Create, edit, import, activate and deactivate, see the audit trail, restore
Admin Everything an Editor can, plus delete
Owner Gives staff their roles. Set automatically for the store owner

Access is invite-only: staff who open Discountly start with No access until the Owner gives them a role. See Staff access and roles.

Every discount has an Audit trail in its sidebar: Created, Edited, Activated, Deactivated, Imported and Restored, each with the staff member's name and each changed setting from → to. Restore this version puts an earlier version back, as a draft, so you check it before it goes live again. See Audit trail and restoring a version.

Discountly's staff roles table, a draft order card, and a discount's audit trail with Edited, Activated, Edited and Created entries and a Restore this version button
Staff roles and the audit trail in Discountly.

Setting it up

  1. In Shopify, give staff access to Discountly in their role's app permissions.
  2. Ask each of them to open Discountly once. They'll see "You don't have access yet". That puts them on Discountly's list.
  3. As the store owner, open Discountly and click Access on the Discounts page.
  4. Pick a role for each person. It saves straight away.

From then on, open any discount and check its Audit trail card to see who changed what.

Before you rely on it

  • Shopify's own Discounts page still counts. Anyone with Shopify's discounts permission can deactivate or delete a Discountly discount from Shopify's Discounts page. Discountly notices and pauses the discount with a banner, but its roles don't apply there. Keep that permission for the people you'd trust with Admin.
  • Bulk actions aren't in the trail. Activating, deactivating or deleting several discounts at once from the list doesn't add history entries. For a record, use the buttons on the discount itself.
  • Deleted is deleted. There's no restore for a deleted discount. Export it first if you might want it back. See Import, export and duplicating.
  • Restoring makes a draft. A live discount you restore stops applying until you activate it again. That's on purpose, but plan for it mid-sale.

Shopify behavior checked on 30 October 2026 against Shopify's help center: Store permissions, Managing user roles and Activity logs. If Shopify adds finer discount permissions, we'll update this post.