Migma × Spotify — Music Campaign Automator
Migma
Spicetify custom app

Migma × Spotify — Music Campaign Automator

Turn any Spotify surface — playlist, track, show, roster — into a ready-to-send Migma campaign without leaving the client.

Surface — Spicetify custom app + topbar button + playlist context menu Theme — Spotify dark shell, Migma tokens verbatim Three-step rail · five recovery states

Flow

Four steps, one surface. Auto-advances every 4s — hover to pause, click a step to jump.

Entry points — Migma in the Spotify sidebar, topbar and right-click menu Source picker — choose a playlist and read its audience Canvas — the brief on the left, the generated email on the right Deliver — the exported campaign, ready to copy or download
01

Entry points

Three ways in, all landing on the same route.

01 · Client shell — 1180 × 690 · entry points in place
Home
Search
Migma
Your Library
Late Night StaticPlaylist · Listener
Basement ShoegazePlaylist · Listener
Sunday DriftPlaylist · Listener
Release RadarPlaylist · Spotify
Late Night Static Campaign Listener
Public playlist
Late Night Static
Listener · 4,213 followers · 128 songs, 8 hr 12 min
+ ···
Add to queue Edit details Create Migma campaign Copy link to playlist
1Glass Ceiling
Paravel
Blue Hour3:42
2Nightbus
Sorrel Kane
Nightbus EP4:05
3Wash
Hollow Coast
Undertow2:58
NightbusSorrel Kane
02

Step 1 · Connect & source

One-time auth, then a picker that defaults to the playlist on screen.

02 · Connect — 452 × 686 · first run
MigmaNot connected
Settings
Connect Migma

Point the plugin at your Migma proxy. It holds the workspace key and signs every request, so this client never handles one.

https://migma-proxy.sorrelkane.dev
Your own service. It exchanges this client's Spotify session for a scoped one and signs to Migma. Open docs ↗

2 projects found

Sorrel Kane — Artist▾
Generated campaigns are saved as drafts here.

No Migma key is stored here. The plugin presents the Spotify session this client already holds and the proxy returns a short-lived, scoped one, kept in memory only. Only the proxy talks to api.migma.ai.

Step 1 of 3
03 · Source — 452 × 686 · playlist picker
MigmaSorrel Kane — Artist
Connected
Campaign source

Pick the playlist this campaign is built from.

Playlist campaignArtist announcement
Late Night StaticListener · 128 tracks · 4,213 followers
Selected
Search your playlists…
Basement Shoegaze62 tracks · 1,105 followers
Sunday Drift44 tracks · 318 followers
Warehouse Hours91 tracks · 2,740 followers

Collaborative and private playlists work too. Followers are read from the playlist, not from your audience list.

03b · Artist announcement — 452 × 686 · single-track source
MigmaSorrel Kane — Artist
Connected
Campaign source

Announce a release to your fans.

Playlist campaignArtist announcement
Midnight StaticSorrel Kane · Single · 2026
Selected

Paste a Spotify track link, or use the track playing now.

The brief becomes a first-person fan announcement for this release — same generate-and-poll pipeline, different inputs.

03

Steps 1–2 · Digest & ideas

The digest is all Migma is told about the playlist.

04 · Digest — 452 × 686 · derived client-side
Late Night StaticAudience digest
Change
128Tracks
8:12Runtime
47Artists
62Popularity
indie sleaze22%
bedroom pop18%
shoegaze14%
dream pop11%
post-punk9%
2020s2010s 2000s90solder
night listenersdiscovery-forward long-sessionlow-mainstream

Derived from playlist metadata, artist genres and release dates. No audio-features call — that endpoint is deprecated for new clients.

05 · Angles — 452 × 686 · pending Migma API
Choose & refineAngles tab
Connected
AnglesBriefReview
◴
Suggested angles

Migma publishes no endpoint that proposes angles from a playlist yet. The plugin leaves this inert rather than call a route that does not exist — write the brief in the Brief tab, which is live.

04

Step 2 · Choose & refine

Brief on the left, live email on the right.

06 · Canvas — 928 × 686 · streaming
The 2am Playlist DropLate Night Static · night listeners
Back to ideasGenerating…
WarmDirectPlayfulEditorial
ShortStandardLong
Night listeners — 3,180 est.▾
Listen now
https://open.spotify.com/playlist/…
Brand colour
Include tracklist
Include cover art
Write a direct, standard-length campaign email for the playlist “Late Night Static” (128 tracks, 47 artists, 8h 12m). Audience skews night listeners, discovery-forward, low-mainstream. Dominant genres: indie sleaze, bedroom pop, shoegaze. Angle: the 2am playlist drop. CTA “Listen now”.
Live preview DesktopMobileHTML
1,204 chars · ~48s read
05

Step 3 · Review & export

The plugin hands off; Migma owns sending, lists and consent.

07 · Deliver — 452 × 686 · export
Campaign readyExported
Exported
✓ Campaign exported

The HTML is yours to send from Migma or any ESP. Nothing has been sent — the plugin holds no recipient data.

◴ Deliverability scoring — pending Migma API. No number is shown that can't be stood behind.
ProjectSorrel Kane — Artist
SubjectIt's 2am somewhere 🌙
SourceLate Night Static
LanguagesEnglish · Spanish
Tracklist5 of 128 shown

Sending, list management and unsubscribe handling stay in Migma. The plugin never holds recipient data.

Done
06

States

Every network step has all five.

08a — Loading
Reading 128 tracks…
08b — Empty
♪No playlists yet

Create or follow a playlist, then come back to build a campaign from it.

08c — Error
!Migma didn't respond

The idea request failed after two retries. Your digest is cached, so retrying is cheap.

502 · req_8f31c0
08d — Rate limited
⏱Slow down a moment

Migma is rate limiting this workspace. Retrying automatically.

Retrying in 24s
08e — Session refused
⚿Session refused

The proxy would not authorise this session. Check the connection — nothing else is lost.

401 · unauthorized
09

Campaign types

One toggle, five ways to build — each reuses the same generate-and-poll pipeline.

09a · Playlist pitch — 452 × 686 · track → curator
MigmaPitch to a curator
Connected
PlaylistArtistPitchShowLabel
open.spotify.com/track/…
open.spotify.com/playlist/…

The brief references the target playlist's own tracks — a professional pitch, never a fan blast.

09b · Show promo — 452 × 686 · manual dates
MigmaAnnounce shows
Connected
PlaylistArtistPitchShowLabel
Berlin
Berghain
Nov 2
Paris
La Cigale
Nov 5
+ Add date
MOCK Nearest-city ordering would use listener locations — no such API, so dates stay in entry order.

One ticket CTA per date. No ticketing integration is invented.

09c · Label digest — 452 × 686 · last 7 days, real
MigmaWeekly digest
Connected
PlaylistArtistPitchShowLabel
VeilNew This Week · 1 release
HaleNew This Week · 2 releases
+ Add artist

Releases are read per artist and filtered to the last 7 days. A quiet week shows the empty state — never invented releases.

09d · New-release watch — 452 × 686 · while the app is open
MigmaWatching Veil
Connected
New release New release detected: Glass Harbor
open.spotify.com/artist/…
Watching while openOn

Polls at most once every 15 minutes while the app is open — no background daemon, no auto-send. One click drafts an announcement.