| Shopify · themes | None. Store apps are read_products only (37 stores). | Duplicate theme, swap banners, scheduled publish and revert, banner QA. Needs theme read/write plus file upload for the banner art. Each store approves the app update. Shopify’s docs say theme writes may also need an exemption, so test on one store first. | Gap |
| Shopify · prices | None | Only if we replace GetSale: product write to set sale and compare-at prices. | Gap |
| GetSale | No API | Creating and scheduling sales. Ask 506 whether its Shopify Flow support can create a sale. | Ask vendor |
| Paid Ads sheet | Read, through the tracker’s Google login | Filling ad request rows and marking ads approved. Check that login has edit rights on the sheet. | Confirm |
| Shopify · products | read_products app on 37 stores | QA: checking every sale product has a sale price | Ready |
| Asana | Bot account with Commenter access on the Marketing 2026 Plan board | Reading sale details and approvals, nudging store managers, posting cleared ad previews | Ready |
| Klaviyo | A key per store | Email status on the dashboard, and moving more stores onto the Campaign Bot (needs Global’s OK, not new keys) | Ready |
| Drive · Dropbox | Google API key, Dropbox app | Pulling desktop and mobile banner art from approved folders | Ready |
| Dashboard login | Server plus emailed-code login for Sparkart and Global emails (campaign bot) | Hosting the sale dashboard | Ready |
| Slack | Webhook and bot | Pings for previews to review and QA misses | Ready |
| Theme On Time | No API | Replaced by our own scheduled theme publish | Not needed |
| Meta Ads | None | Speakeasy still builds and schedules ads | Not needed |