A Price-Drop Promo-Graphic Workflow
Flash sales and price-drop promotions live or die by how fast creative assets reach the right channels. When pricing changes, every product image needs an updated promotional graphic with the correct struck-through original price, the bold new price, and a time-sensitive urgency element — and it needs to be live in email, social, and paid ads within minutes, not hours. This guide walks through building a price-drop promo-graphic workflow in Floniks that accepts a pricing change feed, retrieves and enhances the corresponding product images, applies dynamic pricing overlays with urgency messaging, and exports channel-ready creative in every required format before the sale window even opens.
Why Speed and Accuracy Both Matter in Promo Creative
A flash sale announcement that goes live 90 minutes after the pricing change is set has already lost a significant share of potential revenue. Cart abandonment rates fall sharply in the first 30 minutes of a sale because impulse buyers who see the announcement early are the most likely to convert. The creative production bottleneck — waiting for a designer to update pricing graphics, export formats, get approval, and upload to each channel — is a direct conversion cost that compounds across every promotional event.
The accuracy problem is equally serious. A promo graphic showing the wrong original price, an incorrect discount percentage, or a new price that does not match the live storefront pricing is a legal risk in markets with consumer protection regulations covering advertised prices. In the US, several FTC guidelines govern price comparisons in advertising; in the EU, the Omnibus Directive introduced specific rules around strike-through pricing and how long the "original" price must have been valid before it can be used as a comparison. Every manually typed price in a promo graphic is an opportunity for a human error that becomes a compliance liability.
A Floniks price-drop promo workflow addresses both problems by connecting directly to the pricing change feed. The feed, not a human typist, supplies the prices. The workflow, not a designer, applies the overlays. By the time a human reviews the batch, the graphics are already production-ready — the review is a final check, not the production step.
Connecting the Pricing Change Feed
The workflow begins with a Pricing Feed node that accepts a structured data file or webhook payload describing the products included in the promotion. The minimum required fields per product are: SKU or product ID, original price, promotional price, discount percentage, promotion start time, and promotion end time. Optional fields include category label, urgency message text (for example "48 hours only" or "while stocks last"), and a channel flag indicating which formats are required for this specific product.
The Pricing Feed node parses the input and emits one execution token per product. Each token carries the pricing fields as named variables — {sku}, {original_price}, {promo_price}, {discount_pct}, {end_time}, {urgency_msg} — that downstream overlay nodes consume. A validation step embedded in the Pricing Feed node checks that promotional price is less than original price, that discount percentage matches the mathematical relationship between the two prices, and that the promotion end time is in the future. Rows that fail validation are written to a exceptions report and excluded from the production run — no incorrect pricing data can propagate downstream.
After validation, a Product Image Retrieval node fetches the approved catalog tile for each product SKU from the brand's asset library or Cloudflare R2 storage. If a normalized catalog tile is not available for a specific SKU — a new product added to the sale at the last minute — the Retrieval node falls back to the raw product image and routes it through a Quick Normalize chain (background removal, white background synthesis, scale fit) before it joins the standard promo overlay pipeline.
Building the Promo Overlay Layer
The promotional overlay sits on top of the product tile and must communicate four things quickly: what the product is, what it normally costs, what it costs now, and why the viewer should act immediately. A well-designed overlay achieves all four in under two seconds of viewing time, which means the hierarchy of information must be extremely clear.
The Promo Overlay node renders these four elements as configurable layers. The product name is a small caption at the top in the brand sans-serif at 14pt. The original price is rendered in a medium-weight body font with a diagonal strike-through line in red, positioned at mid-height on the overlay. The promotional price is the dominant typographic element — rendered in the brand accent color at 2.5 to 3x the size of the original price, in the heaviest weight available in the brand font family, making it the first thing the eye lands on. The urgency message is a small badge or pill at the bottom of the overlay in a high-contrast background (typically brand red or a warm orange): "Ends [formatted end time]" or the custom urgency_msg value from the data token.
The strike-through line on the original price deserves particular attention. It must be visually unambiguous — a single diagonal red line at approximately 135-degree angle, extending across the full width of the original price text, with a line weight proportional to the font size (approximately 10% of the cap height). A strike-through that is too thin looks like a design artifact; one that is too thick obscures the original price text, which the law in many jurisdictions requires to remain legible in comparison pricing. The Promo Overlay node includes a strike-through weight setting calibrated to the font size to ensure compliance by default.
Channel-Specific Export and Time-Stamp Handling
Each promo graphic is exported in multiple channel-specific formats from a single promo-ready master. The channel routing is driven by the channel flag in the data token — products flagged for all channels get all exports; products flagged for email only skip the paid ad and organic social exports. This selective export prevents the output folder from being cluttered with unused formats and reduces processing time for products with limited channel requirements.
Email export produces a 600x600 pixel image at 2x resolution (1200x1200 pixels saved at display density 72 DPI) because email clients render at the display DPI of the device, and a 1x image will appear blurry on retina displays. Format is JPEG at quality 92. Social export produces a 1080x1080 square for feed, a 1080x1350 portrait for optimal Instagram feed reach, and a 1080x1920 Story/Reel frame with the product tile centered and the price overlay scaled appropriately for vertical viewing. Paid ad export produces the IAB standard sizes most relevant to display advertising: 300x250 medium rectangle, 728x90 leaderboard, and 300x600 half-page.
For time-stamped urgency elements — a countdown format showing the hours and minutes remaining in the sale — the Promo Overlay node has a static mode and a dynamic mode. Static mode renders a fixed string from the urgency_msg field: "Ends Sunday midnight." Dynamic mode calculates the remaining time from the promotion end time and renders a formatted countdown: "Ends in 47h 23m." Static mode is appropriate for channels where the graphic is generated once and distributed; dynamic mode is appropriate when the workflow is scheduled to re-run every hour and re-generate the countdown graphics with updated time values. Save the workflow as "PriceDrop-Promo-[Brand]-v1" and configure it to trigger on pricing feed webhook events for fully automated, zero-delay promotional creative delivery.
Compliance Checks and Audit Trail
Before any promo graphic leaves the workflow, it passes through a Pricing Compliance node that re-reads the rendered price values using OCR and compares them against the original data token values. If the rendered promotional price does not exactly match the {promo_price} field, or if the rendered original price does not exactly match the {original_price} field, the node marks the asset as failed and routes it to a manual review queue. This double-check catches rendering edge cases — currency symbol encoding issues, rounding in floating-point arithmetic, font ligature artifacts that alter digit appearance — before they reach a published channel.
The compliance node also checks the discount percentage display. If the rendered badge shows "-25%" but the mathematical relationship between the original and promotional prices is 23%, the node flags it as a compliance deviation. Minor rounding is acceptable (the workflow allows 0.5 percentage point tolerance), but any larger discrepancy triggers a failure. This check is particularly important for markets where the advertised discount percentage must accurately reflect the price comparison.
Each workflow run produces an audit report: a CSV file containing product SKU, original price, promotional price, discount percentage, compliance check result, and export file paths for every product processed in that run. This report is the compliance documentation for the promotional event. Archive it alongside the exported creative files. If a regulatory question arises about pricing representations in a specific advertisement, the audit report provides a timestamped record of exactly what price values were used and confirms that the automated compliance check passed before the asset was exported.
Related guides
Build it on Floniks
Image, video, digital humans, and reusable workflows on one canvas. Sign up gets you starter credits — no card required.
Explore Floniks