Black Friday playbook
Build the campaign landing page, the coupon, the email cadence, and the analytics watchpoints in one pass
Black Friday is a short window and a hard test. The site has to handle a traffic spike, the coupon has to work on every order, the email cadence has to land at the right hour, and the analytics have to show what is working before the window closes — not after.
This recipe wires the four parts so they go live together: a campaign landing page that converts on first scroll, a coupon that applies cleanly at checkout, an email cadence that builds and finishes on schedule, and the four analytics signals to watch in the first hour.
What is this for?
Use this recipe for any short-window campaign — Black Friday, Cyber Monday, year-end sale, anniversary sale. The shape is the same. The end state on campaign launch day:
- A campaign landing page at
/black-friday/(or your campaign slug) with the offer, the proof, the timer, and the CTA. - A working coupon at the discount you committed to, scoped to the products in the campaign.
- An email cadence with at least four sends: teaser, launch, mid-window reminder, last-call.
- Analytics watchpoints set up to catch broken paths in the first hour.
Good use cases
Annual Black Friday or Cyber Monday push. A planned, dated sale. Landing page and email cadence get reused (with refreshed copy) year over year.
Year-end or anniversary sale. Same shape, different theme. The coupon and the email cadence reuse most of the campaign infrastructure.
Surprise flash sale. A four-hour or 24-hour window. The landing page is a one-pager; the email cadence is two sends instead of four.
What NOT to use this for
- Permanent discount on a single product. A standing discount is not a campaign. It belongs in product pricing, not a landing page.
- Multi-month campaigns. Anything longer than two weeks loses the urgency that makes a campaign work. Break it into shorter pushes.
- Loyalty rewards. Members-only discounts run through a different flow — gated by login, not a public coupon code.
How this connects to other features
- Pages + SG-Builder — the campaign landing page is a SG-Builder page. Use the brand's existing campaign template if there is one.
- Coupons — the discount code lives in the ecommerce coupon panel. Scope it to the campaign products and the campaign window.
- Forms — the launch email and reminder emails go out through the brand's existing form-and-campaign automation.
- Custom Codes — the countdown timer script and any campaign-specific tracking pixels live in Custom Codes.
- Tracking Consent — any new pixel needs a row in the cookie policy. Don't skip this.
Before you start
You are signed in as an Administrator. The offer is locked: discount percentage, eligible products, start and end timestamps, expected order volume.
You have approval from whoever signs off on pricing. You have legal sign-off on the offer terms — exclusions, refund policy adjustments, and any region-specific language.
You have the campaign assets: hero image, open-graph image (1200 × 630), email header image, and the offer copy. Have these in hand before opening the SG-Builder editor.
Where to find it
| Surface | Admin path | Used for |
|---|---|---|
| Pages | Sidebar → Pages → SG-Builder | Build the campaign landing page |
| Coupons | Sidebar → Ecommerce → Coupons | Create the discount code |
| Forms / Campaign automation | Sidebar → Forms → Campaigns | Build the email cadence |
| Custom Codes | Sidebar → Settings → Custom Codes | Countdown script and tracking pixels |
| Analytics dashboard | External (provider) | Watch the four signals during the window |
Pre-launch checklist — complete before the landing page goes live:
| Item | Status |
|---|---|
| Offer locked (percentage, eligible products, dates) | — |
| Pricing sign-off received | — |
| Hero image ready (1200 × 630 for OG, higher res for page) | — |
| Email header image ready | — |
| Coupon code decided and not reused from a prior year | — |
| Cookie policy updated if adding a new tracking pixel | — |
| Four analytics watchpoints configured in provider | — |
| Four emails drafted and reviewed | — |
| Countdown timer script tested in a staging session | — |
Missing any one item on this list on launch day means a rushed fix while the window is live. Complete the checklist the week before.
Steps
1. Build the campaign landing page
Navigate to Pages → + Add New. Slug is /black-friday/ or the campaign's short slug. Title carries the offer — Black Friday — 30% off everything works fine.
Open SG-Builder. The structure for a campaign landing page is tighter than a normal launch page:
- Hero — the offer, in one line. The discount and the deadline.
- Countdown — visible above the fold. The timer carries the urgency.
- Proof — one or two specifics. A customer quote or a stat.
- Featured products — a row or grid of the items in the campaign.
- Repeated CTA — at the top, the middle, and the bottom of the page.
The CTA leads to the products with the discount auto-applied. Save and set the status to Draft until launch.
2. Create the coupon
Navigate to Ecommerce → Coupons → + Add New.
Set the coupon fields:
| Field | Value |
|---|---|
| Code | BLACKFRIDAY30 or similar |
| Discount type | Percentage |
| Discount value | 30 |
| Eligible products | Select the campaign products (or "All products" if the offer is site-wide) |
| Start date | Campaign start timestamp |
| End date | Campaign end timestamp |
| Usage limit per customer | 1 (or higher if intended) |
| Total usage limit | Leave blank or set a cap if budget is constrained |
Save the coupon as Active. The coupon does not work outside the start-end window — that is the schedule guard, not a deploy guard.
3. Auto-apply the coupon from the landing-page CTA
The landing-page CTA links to the product or cart with the coupon already applied. Two ways to do this in SGEN:
- Append the coupon code as a URL parameter —
/cart/?coupon=BLACKFRIDAY30. The cart reads the parameter and applies the discount. - Drop visitors at the campaign-specific cart page that pre-loads the coupon via Custom Codes.
The URL parameter path is simpler. Use it unless the brand has a reason to handle the apply server-side.
4. Build the email cadence
Navigate to Forms → Campaigns. Create a new campaign sequence. Four sends, scheduled across the window:
| Send | Timing | Purpose |
|---|---|---|
| Teaser | 3-5 days before launch | "Something is coming. Save the date." |
| Launch | Hour 0 of the window | "It's live. Here's the offer. Here's the link." |
| Mid-window | Midpoint of the window | "Two days left." |
| Last call | 6-12 hours before end | "Ends tonight." |
Each email is short — 80 to 150 words. Subject line names the offer. Preheader sharpens, not repeats. The CTA links to the landing page (not directly to the cart — the landing page carries the open-graph preview if the email gets forwarded).
5. Wire the countdown timer
The countdown is the urgency anchor on the landing page. SGEN does not ship a built-in timer; drop one in via Custom Codes.
Navigate to Settings → Custom Codes. Add a small client-side timer that reads the campaign end timestamp and renders the countdown in a known div on the landing page. The script body lives in Custom Codes; the div lives in the SG-Builder page.
Keep the script under 50 lines. A heavy timer library on every page slows the rest of the site for no return.
6. Set the four analytics watchpoints
Open the analytics dashboard (the brand's provider — Plausible, GA4, or similar). Set up four watchpoints to check in the first hour after the launch email lands:
| Signal | Watch for | Action if off |
|---|---|---|
| Landing-page traffic | Spike at launch hour | If flat, the email did not send or the link is wrong |
| Coupon usage count | Climbs steadily | If stuck at zero, the coupon code is misconfigured |
| Cart abandonment rate | At or below baseline | If spiking, the checkout has a step that the campaign broke |
| Order completion count | Climbs steadily | If flat with traffic up, the discount is not applying |
Each watchpoint has one person watching it in the first hour. If a signal is off, the fix path is short — pause the campaign send, fix the broken step, resume.
After the window closes, the Coupons panel shows usage counts and total uses attributed to the code — the post-campaign report pulls from this view:
7. Launch and monitor
On launch day, publish in order:
- Publish the landing page (Draft → Published).
- Confirm the coupon is Active and within its window.
- Send the launch email.
- Post on the social channels the brand uses.
- Watch the four analytics signals for the first hour.
After hour one, the campaign runs itself until the mid-window send. Plan the mid-window check at the midpoint, plus the last-call check a few hours before close.
What success looks like
After the campaign window closes:
- The landing page held up under the traffic spike with no broken paths.
- The coupon applied cleanly on every eligible order; usage count matches order count.
- The four emails sent on schedule; the open and click rates match the brand's baseline.
- Cart abandonment held at or below baseline. Orders per visit hit the campaign target.
- The post-campaign report lists what worked, what did not, and what to repeat next time.
What to do if it does not work
The coupon code returns "invalid" at checkout. The coupon is outside its start-end window, scoped to products not in the cart, or the customer already used their per-customer allowance. Open the coupon and check all three. Adjust and retest with a clean cart.
The landing page loads slowly during the spike. A heavy script or an unoptimised hero image is the most common cause. Check Custom Codes for any script that fires on page load and is not strictly required for the campaign. Re-export the hero image at a lower file size.
The countdown timer shows the wrong time. The end timestamp in the script does not match the coupon end timestamp. Open Custom Codes, confirm the timestamp matches the coupon end, and reload the page in a fresh session.
Launch email landed in spam. The sending domain is not authenticated or the subject line tripped a filter. Check the SPF / DKIM records. Avoid all-caps subject lines and aggressive punctuation. If the brand sends only during campaigns, the domain may have low sender reputation — warm it up with regular sends ahead of the campaign.
Orders climb but coupon usage stays at zero. The discount is not applying. The auto-apply URL parameter is wrong, or the coupon is not eligible on the products in the cart. Test the path with a fresh cart and confirm the discount shows on the cart page before checkout.
Variations
Teaser-page approach. Launch the campaign landing page 48 hours before the window opens, but gate the offer behind a coming-soon screen. Early visitors see the countdown and the teaser copy; the full offer unlocks at the exact launch timestamp. This builds a registered-interest list — visitors who bookmark the page or click through from the teaser email convert at a higher rate than cold traffic on day one.
Coupon-free launch. Skip the coupon and apply the discount at the product or cart level instead. The product pages show crossed-out prices and the sale price during the campaign window. No code, no mistyping, no "invalid code" support tickets. Trade-off: no post-campaign coupon analytics — the Coupons panel shows nothing because no code was used.
Loyalty tier — members-only pricing. Existing customers receive a steeper discount than first-time buyers. Two coupons: BF-NEW30 (30% for first-time buyers) and BF-VIP40 (40% for returning customers). The launch email branches — first-time buyers receive one version, returning customers receive another. The landing page shows the standard offer; the members-specific code arrives only in the members email.
Co-marketing campaign. Partner brand promotes the campaign to their list in exchange for a co-branded landing page and a shared revenue arrangement. The partner's emails reference the landing page at the brand's domain. The coupon is the same code — no tracking separate to coupon usage is needed. Post-campaign, compare orders from the partner's list against the main list to size the channel value.
Anti-patterns
Launching the coupon before the landing page is live. If the email or social post goes out while the landing page is still Draft, the link 404s for the first wave of traffic — the most engaged readers. Publish the landing page and confirm it loads before sending anything. The order in step 7 is not arbitrary.
Using the same coupon code year over year. BLACKFRIDAY30 from last year may still be indexed in coupon databases and browser autofill. Create a new code each year (append the year — BF2026-30). Retire the old code immediately after the window closes.
Running a campaign without a post-campaign review. The campaign produces four data points worth capturing: landing-page conversion rate, coupon usage count, cart abandonment rate during the window, and order value vs. baseline. Capture these in a brief before the data ages. The next year's campaign plan starts from this year's numbers.
Adding a new tracking pixel without updating the cookie policy. Any new script added for the campaign — retargeting pixel, conversion tracker — needs a row in the cookie policy and a category gate in Custom Codes before launch. Skipping this step is a compliance gap. See Cookie compliance playbook for the full wiring.
Examples
SGEN's own Black Friday push — site-wide 30% off, four-day window. One coupon covering all products in the campaign. Four-email cadence. Landing page at /black-friday/. Countdown timer above the fold. Site-wide header banner points to the landing page.
Tiered discount by spend. 20% off orders over $100, 30% off over $250. Two coupons, each with its own minimum-spend rule. Landing page shows both tiers. Emails name the higher tier — most customers shop up to the next threshold once they see it.
Flash sale, 24-hour window. Two emails instead of four — launch and a 2-hour-to-go reminder. Landing page is a one-pager. Countdown timer is the dominant visual. Coupon end timestamp is exact to the minute. Analytics watchpoints are checked twice — at hour 1 and hour 18.
The post-campaign coupon panel shows the full usage record once the window closes:
Related recipes
- Cookie compliance playbook — required reading before adding any new tracking pixel to the campaign landing page
- Lead-magnet funnel — if the campaign includes a gated asset (gift guide, product comparison), the capture form wires to this flow
- Product launch playbook — if the Black Friday window also coincides with a new product launch, coordinate both playbooks in sequence
Related reading
Last updated: 2026-05-25
