Black Friday / Flash Sale Countdown
A five-scene retail flash-sale announcement built for vertical placements — 1080×1920 (9:16), 20 seconds at 30 fps. It runs the order a shopper needs: the sale is live, then the discount alone at the largest type in the library, then one breath of product, then the deadline, then how to buy. Pure black, pure white and electric yellow grounds hard-cut against each other frame to frame, while a status row and a seven-tick countdown bar that drains from 888 px to 108 px hold across all five cuts so the offer and the expiry are never both off screen. Twelve fields swap per render — eleven text (sale_name, store_name, discount_value, discount_scope, deadline_label, time_remaining, urgency_line, promo_code, cta_label, cta_detail, terms_note) and one image (product_image) — which is enough to send a whole weekend from one template: Friday's offer, Saturday's deadline and Sunday's last chance are the same skin with four values changed and no layout moved. promo_code and terms_note are independently optional.
- Aspect ratio
- 9:16 · Vertical
- Duration
- ~20s
- Category
- Ecommerce
Try it with your own copy
Edit a field and the frame re-renders in your browser. No account, no credits - previews are free because they cost a browser paint, not a render.
What you can customize
This template exposes 12 dynamic fields you can swap per video - edit them in the editor or pass them to the API to batch-render variations at scale. The monospace name is the exact key to send in replacements.
Sale Name
textsale_nameBLACK FRIDAY
~38 characters max · 1 line
Store Name
textstore_nameNorthfield Supply
~41 characters max · 1 line
Deadline Label
textdeadline_labelENDS MIDNIGHT SUNDAY
~47 characters max · 1 line
Discount Value
textdiscount_value40%
~6 characters max · 1 line
Discount Scope
textdiscount_scopeOFF EVERYTHING
~17 characters max · 1 line
Time Remaining
texttime_remaining48 HOURS LEFT
~19 characters max · 1 line
Product Image
urlproduct_imagehttps://images.unsplash.com/photo-1585298723682-7115561c51b7?w=1080&h=1920&fit=crop&q=85
Urgency Line
texturgency_lineWhen it’s gone, it’s gone. No restocks.
~68 characters max · 2 lines
Promo Code
textpromo_codeFLASH40
~11 characters max · 1 line
Cta Detail
textcta_detailnorthfieldsupply.com/bf
~41 characters max · 1 line
Cta Label
textcta_labelSHOP NOW
~13 characters max · 1 line
Terms Note
textterms_noteDiscount applied at checkout. Online and in store. While stocks last.
~110 characters max · 2 lines
Render it from the API
Copy either call below. Both already carry this template's ID and its real variable keys - swap the values for your own.
1. Preview it — free
Same body as a render. Costs no credits, creates no job. Returns a public URL that plays the video in a browser, plus a list of problems with your payload — a mistyped key is otherwise ignored in silence.
curl -X POST https://renderly.video/api/v1/previews \
-H "Authorization: Bearer $RENDERLY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"templateId": "black-friday-flash-sale-countdown",
"replacements": {
"sale_name": "BLACK FRIDAY",
"store_name": "Northfield Supply",
"deadline_label": "ENDS MIDNIGHT SUNDAY",
"discount_value": "40%",
"discount_scope": "OFF EVERYTHING",
"time_remaining": "48 HOURS LEFT"
}
}'2. Render it
Change one word in the URL. Keep templateId — it is what links your call to this template, so later improvements reach you automatically.
curl -X POST https://renderly.video/api/v1/renders \
-H "Authorization: Bearer $RENDERLY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"templateId": "black-friday-flash-sale-countdown",
"replacements": {
"sale_name": "BLACK FRIDAY",
"store_name": "Northfield Supply",
"deadline_label": "ENDS MIDNIGHT SUNDAY",
"discount_value": "40%",
"discount_scope": "OFF EVERYTHING",
"time_remaining": "48 HOURS LEFT"
}
}'The body above shows 6 of 12 variables. Send any subset — every key you leave out renders its authored default. Read the full contract, with character limits, from GET /api/v1/templates/black-friday-flash-sale-countdown/variables. See the previewing guide, the rendering guide, or the OpenAPI spec.
Frequently asked questions
How do I customize the Black Friday / Flash Sale Countdown template?
Open the template in the Renderly editor and replace its 12 customizable fields (such as Sale Name) with your own text, images, or video. Every change previews instantly before you render.
How much does it cost to render this template?
Rendering is credit-based - 1 credit equals 1 minute of 1080p video. You only pay when you export, and credits never expire on the pay-as-you-go plan.
Can I generate this video at scale via the API?
Yes. POST this template's ID and a replacements object to /api/v1/renders - one call per row of data, 12 fields swappable per video. Send the same body to /api/v1/previews first to check it for free. No-code integrations like Zapier work the same way.
More Ecommerce templates

Dealership Sales Event
A 9:16 showroom offer card for auto dealer groups - five hard-cut frames in the order a buyer on the forecourt needs them: the event, the offer, the rate, the deadline, the address. Pure black, pure white and deal red trade grounds frame to frame, and a full-bleed rail at y=1704 carries the dates and kicker on every single frame, so any one frame hands over both the deal and its expiry. 22 seconds at 1080×1920, 30fps, set in Archivo Black, Geist and JetBrains Mono. Thirteen dynamic fields split across two axes: the store axis (dealer_name, dealer_address, dealer_phone) and the campaign axis (event_name, event_kicker, event_dates, event_hook, offer_value, offer_label, finance_rate, finance_terms, disclaimer, hero_image) - a forty-store group on one manufacturer programme is forty renders off one spreadsheet row each, with no layout moving between them.

Price Drop Alert
Price Drop Alert is a square e-commerce lifecycle card that fires off a price-change webhook matched against browse history — the "the thing you were watching just got cheaper" moment, rendered one card per watcher straight off the product feed. 27 seconds, 1:1 (1080×1080), 30fps, four scenes on a bone → ink → bone → forest ground rhythm: the personalised alert, the product on the one dark frame in the piece (price deliberately withheld), the payoff — old price struck in signal red beside the new price at 176px on a single shared baseline, with the saving in a forest band bled to the bottom edge — and a receipt row plus CTA pill. Eleven dynamic fields swap per render: customer_first_name, brand_name, product_image, product_name, product_detail, product_price_was, product_price, message_line, status_note, cta_label and cta_url; the minimum viable set is five (product_image, product_name, product_price, cta_label, cta_url), everything else has a documented fallback. Type is Instrument Serif / Geist / JetBrains Mono, and it is a direct sibling of the Abandoned Cart Nudge template, sharing its palette, 84px measure and ten-field product-feed contract.

Post-Purchase Thank You + Review Request
A 31-second 9:16 (1080x1920) follow-up video for the week after delivery, built as a sibling of the Batch H abandoned-cart template and driven by the same product feed. Its whole argument is the order of the beats: thank the customer by name on bone, mark the elapsed time over a full-bleed product hero on ink, then flood the centre of the video with forest green for the longest scene — a ruled ledger of three genuinely useful care tips — and only after 19 seconds of being useful does the ask arrive, on a bare bone page, in one sentence, with no stars and no incentive. It closes on ink with a bone CTA pill, the item row as a receipt, and an italic sign-off. Thirteen dynamic fields are swapped per render: customer_first_name, brand_name, product_image (one photo at three sizes — 220px card thumb, 1080x970 bleeding hero, 150px item thumb), product_name, product_detail, product_price, message_line, status_note, care_tip_one, care_tip_two, care_tip_three, cta_label and cta_url. Type is Instrument Serif over Geist over JetBrains Mono at fixed sizes, with an 84px measure and a y=96 furniture row on every scene.