Publish, version, and roll back
Track confirmed campaign changes, coordinate discounts and quantity rules, and recover without duplicating uncertain writes.
Publishing records a campaign version and starts an operation that applies the requested Shopify state. A saved draft, an accepted operation, and a confirmed live configuration are different stages.
Before publishing
- Confirm your plan can publish this campaign: any plan for Core segmentation, Pro or higher for External data. Free publishes until the store has used its 20 promotion orders for the month and the 3-day grace period has ended. When the plan can’t publish, the Publish page shows View plans instead of Publish now.
- Save your changes. Publishing uses the campaign and rules as last saved.
- Set at least one rule to Active and run Preview against a representative order.
- Review the readiness check on the Publish page: Errors, Warnings, and Function slot usage.
- For quantity rules, test both sides of the checkout boundary.
You choose the runtime profile when you create the campaign, and it can’t be changed once the campaign has rules. The discount type (owner kind) is fixed after the first publish. If the promotion needs different data, plan a new campaign rather than expecting an edit to change the profile.
Publish and wait for confirmation
- Click Publish on the campaign page.
- Review the readiness check and resolve any errors. Publish now stays disabled until it passes.
- Optionally add a Publish note, then click Publish now.
- Tab Promo returns to the campaign page. While Shopify confirms the change, the status shows Shopify update pending and a Shopify update in progress banner.
- Wait for the status to show Live (or Scheduled if the start date is in the future), then verify a real test cart and checkout.
Publishing is processed asynchronously. An accepted request or a successful intermediate step does not prove the campaign is live. The app confirms the current Shopify discount and its configuration before treating the requested state as complete.
You don’t need to click Publish again during a slow operation: Publish, activate, deactivate, and archive are unavailable until the current operation has a confirmed outcome. When a write’s outcome is unknown, recovery reads Shopify before deciding what happened; it does not blindly resend the change.
A publish can also be refused when:
- The store already has 25 active campaigns, the limit on every plan. Deactivate or archive one first.
- Another live automatic campaign already uses the same checkout label. Give the discount a different checkout label.
- Another publish is already in progress for the campaign.
Campaigns with quantity rules
A campaign can produce a discount, a purchase requirement, or both. Purchase requirements from all campaigns on the same runtime profile are combined into one Shopify validation, rather than one validation per campaign. The readiness check fails if the combined requirements no longer fit.
A mixed campaign confirms its quantity guardrail before enabling the discount. Deactivate, archive, expiry, and rollback remove the discount before removing or replacing the purchase requirement. Follow the whole operation; one completed discount step is not the final campaign outcome.
Discount-code campaigns can’t include purchase requirements, and a campaign with purchase requirements can’t be used in an A/B test.
Read the recovery state
| What you see | What to do |
|---|---|
| Shopify update pending / Shopify update in progress | Wait for the operation to finish; Shopify lifecycle actions are unavailable until it does |
| Shopify update needs attention with Retry confirmation/cleanup | Read the message, correct its cause if needed, then use the retry button |
| Review changed Shopify discount settings | Compare the listed differences, then choose Overwrite with previous settings or Keep current settings |
| Previous settings restored | The requested update was not applied; your previous discount settings and purchase requirements were restored and confirmed on Shopify |
| Current discount settings kept | Your current Shopify discount settings were kept and your previous purchase requirements remain in effect; check the discount status in the banner |
| Review required / Shopify ownership needs review | The existing Shopify discount can’t be safely verified. Local edits still work, but publishing and other Shopify changes are blocked. Review the publish history and resolve the old discount before creating a replacement campaign |
If Shopify changes again while a decision is pending, the stale choice is rejected and you need to review the refreshed differences.
Keeping the current settings does not mean the requested publish succeeded. In a mixed campaign, the previous purchase requirements stay in effect even if the kept discount is inactive; read the explanation on the page.
Deactivate, activate, and archive
These actions live under More actions on the campaign page:
- Deactivate campaign turns off the published discount in Shopify. Serving stops while Shopify confirms it.
- Activate campaign turns a deactivated campaign back on, if your plan can publish it.
- Archive campaign removes it from publishing workflows. The status shows Archiving until Shopify confirms cleanup.
On the Free plan, Tab Promo removes your live promotions from Shopify 3 days after the month’s 20th promotion order. Campaigns and rules stay saved. Publish them again when the month renews (UTC), or upgrade to publish right away. See The Free plan’s monthly orders.
Publish history and rollback
Open More actions → Publish history to see every version with its status, owner, runtime, publish time, and who requested it. Open a version to see its slot usage and diagnostics. Use it to tell the current draft apart from the version that was confirmed in Shopify.
To roll back, open an earlier version with the status Succeeded and click Rollback to this version. Rollback works on any plan that can publish the campaign (Pro or higher for External data versions). When it can’t, such as on a Free store whose monthly orders are used up, the page shows Rollback is paused for this plan.
Rollback publishes a copy of that version’s rules as a new version; the original history remains intact. A few things to know:
- The campaign’s current Combinations and Active dates are applied with the restored rules.
- Rollback does not change the rules in the editor. If you publish again, the editor’s rules are what gets published.
- Rollback is asynchronous like any publish. Wait for Live before treating the previous behavior as restored.
For a mixed campaign, rollback coordinates the discount and the purchase requirement together.
Verify after a change
Test one qualifying and one non-qualifying cart. For quantity rules, include both valid and invalid quantities. If someone edits or deletes the Tab Promo discount directly in Shopify, the campaign status shows it (for example Inactive on Shopify or Deleted on Shopify). Review the differences before overwriting anything.