Skip to content

Creating Your First Campaign

Step-by-step setup for your first scheduled discount on Shopify.

By the end of this doc you’ll have a discount scheduled to start later today (or this weekend, or next month — your call). The whole process takes about three minutes.

1. Open the Campaigns page

From the Campaignly admin sidebar click Campaigns, then click New campaign in the top-right.

2. Name the campaign

Pick something you’ll recognise on the list later — Spring Sale 2026, Memorial Day Clearance, Black Friday Doorbusters. The name only shows up in your admin; customers never see it.

3. Pick the discount type

Two options:

  • Percentage off20% off the original price. Most promotions.
  • Fixed amount off$5 off, regardless of the original. Good for round-number promos.

Campaignly computes the new price from your original price every time. If two campaigns overlap, the most recent one wins — see the Understanding Overlapping Discounts doc for the full mental model.

4. Pick products

Three ways to choose what’s on sale:

  • Specific products — pick from a searchable list. Best for a curated promo.
  • By collection — every product in the chosen Shopify collection. Useful for category-wide sales (“everything in Outdoor 20% off”).
  • By tag — every product carrying a tag like sale-eligible. Good for evergreen workflows where you tag products in bulk.

Plan limits: Free tier caps at 50 products per campaign; Starter goes to 500; Pro is unlimited. See Billing Plans for the full matrix.

5. Set start + end times

Pick a date and time for each. Campaignly converts to your store’s configured timezone (which it reads from Shopify automatically).

Two rules:

  • End must be after start (obvious but the form checks).
  • Minimum 1 hour duration. Anything shorter risks the apply Lambda not finishing before the revert one fires.

Future-dating is fine — schedule something six months out, edit it any time before it fires, and we’ll wake the right Lambda on the right second.

6. Save → confirm → done

Hit Create campaign. Campaignly:

  • Persists the campaign with status scheduled.
  • Books two EventBridge schedules — one to fire apply-campaign at start time, one to fire revert-campaign at end time.
  • Returns you to the Campaigns list with a banner confirming “Campaign scheduled.”

You can edit anything except start/end times while status is scheduled. To change a time, cancel the campaign and create a new one (the cancel flow runs an immediate revert so nothing gets stuck).

What happens at start time

  1. Apply Lambda wakes up at the second you specified.
  2. It reads your current price for every variant in the campaign (the baseline).
  3. It computes the discounted price and pushes the change to Shopify in batches (up to 50 variants per GraphQL call).
  4. The storefront updates within seconds. Customers see the new price.
  5. The campaign row flips to active.

What happens at end time

  1. Revert Lambda wakes up at end time.
  2. It looks up the baseline from the snapshot table and writes it back to Shopify.
  3. If you manually edited a price mid-campaign, Campaignly noticed (via Shopify’s products/update webhook) and respects your edit on revert — your value is what comes back, not the pre-campaign one.
  4. The campaign row flips to completed.

Common follow-ups

  • Cancel a campaign mid-flight — open the campaign and click Cancel campaign. Prices revert within about a minute.
  • See what changed — the Audit log screen lists every variant Campaignly touched, with timestamps and the price values before / after.
  • Re-run the same campaign — open the completed campaign and click Duplicate. Pre-fills everything except the times.

Stuck? Try Troubleshooting first, or email support.