Sale planned
Asana project created
Automate
Asana · Google Sheet
Get sale details from the Asana parent task
Sale link, bucket links, start and end date/time, phrasing
Tracked
Could do: flag missing details and nudge the store manager in Asana, instead of us chasing
Starting with BFCM, a sale dashboard replaces the tracker sheet: sale details plus live asset, email and ad status, and the buttons for our review steps.
Discount setup
Runs at the same time as marketing
Sitewide or collection-based?
Sitewide
Use the store’s sitewide sale collection (already excludes media, POD, pre-sale)
Collection-based
“Up to __% off.” Store manager fills a sub-collection per 10% bucket
↻ Repeat per bucket
Vendor?GetSale
Name the discount
SALE NAME - __% OFF
Vendor?GetSale
Choose the collection
Vendor?GetSale
Choose the discount depth
Vendor?GetSale
Schedule start and end
Depends: no public API. It lists Shopify Flow support, so ask the developer (506) if Flow can create a sale. If not, our own tool could set sale and compare-at prices directly, the same thing GetSale does.
Save, then duplicate for the next bucket and swap the collection and depth. Discounts are never combined.
Why GetSale: strikethrough pricing sitewide, and real price changes for post-sale analysis. Shopify discounts only apply at cart.
Marketing
Runs at the same time as discounts
Global assigns asset task to?
Sparkart
Kevin assigns to Cade
Asana
Art folder shared
Public Dropbox or G-Drive link
Global
Artist management approves
Tracked
Store banners
AutomateShopify
Duplicate the current theme
Could do: Shopify’s API can copy a theme. Needs theme write access, so test on one store first.
AutomateShopify
Swap desktop and mobile banners
Link to the sale collection. Save, don’t publish.
Could do: pull the Desktop and Mobile files from the art folder (the campaign bot already does this for email heroes) and set the link from the sale details
Vendor?Theme On Time
Schedule publish and revert
Depends: no API. Our own tool could replace it: publish the sale theme at start, the old theme at end.
Paid ads
AutomatePaid Ads Sheet
Request the ad
Copy comes from Global Marketing in Asana
Tracked
Could do: once assets are approved, fill the request row from the Asana Marketing task (store, copy, art link, dates)
Speakeasy · Meta
Speakeasy builds the ad
Sends us a preview link
AutomateSparkart
Preview lands in front of us
Could do: send new preview links to the sale dashboard (with a Slack ping), not to the client
We clear it for the client?
No: edits go back to Speakeasy
AutomateAsana
Post preview link for approval
Could do: once we mark it cleared, post the link in Asana
AutomatePaid Ads Sheet
Mark approved
Speakeasy then schedules the ad
Could do: flip the ads sheet when Asana is approved (the tracker already reads both)
Sale launches
Automate
QA · Incognito
Launch check
- Everything in the sale shows strikethrough pricing
- Banners are live and linked correctly
Could do: check every product in the sale collection for a sale price, and the live theme’s banner link, then flag misses on the dashboard and in Slack
Usual miss: product has the sale tag but isn’t in the sub-collection that drives the discount.
Sale ends
Automate
QA · Incognito
End check
- All discounts have stopped
- Banners have reverted
Could do: same check in reverse