Discover it.Let an editor decide.Preserve every failure.
A connected content pipeline that normalizes candidates from multiple sources, stops duplicates, and only creates or publishes items after explicit human approval. Each channel keeps its own result, so failed destinations can be retried without reposting successful ones.
Evidence boundary: this is a technical portfolio built in an isolated lab—not a client deployment. It uses synthetic records and a local state fixture only. No real media data, personal information, credentials, external APIs, or social accounts are connected.
One editorial state becomes the contract between stages
Discovery, editorial work, creation, and publishing remain separate instead of becoming one unmanageable canvas. Every stage carries the same content_id and explicit state. If execution stops, the record still shows what was approved and which destination failed.
DISCOVEREDNORMALIZEDAPPROVEDREADYPUBLISHED- Discovery: poll RSS feeds, catalog APIs, and permitted web sources on a schedule.
- Normalize: map source-specific fields into type, artist, title, date, source URL, and external IDs.
- Deduplicate: compare external IDs, canonical URLs, and content fingerprints in layers.
- Editorial approval: a human accepts, corrects, or rejects each item. Unapproved records cannot reach creation or publishing.
- Creation and review: create editable copy and asset references grounded only in approved source records.
- Publish and reconcile: store each destination's result, post ID, URL, timestamp, and error independently.
Measure how it fails—not just how often it succeeds
Synthetic records were sent through n8n 2.33.7 to test the happy path, duplicate intake, missing approval, partial delivery, safe retry, and invalid input. Channel calls were recorded by a local state fixture on the same isolated network; no external publishing API was contacted.
| Case | Invariant | Measured result |
|---|---|---|
| Happy path | Only approved content reaches creation | All stages complete / per-channel status retained |
| Duplicate | Do not register the same candidate twice | Existing content_id returned / stored count unchanged |
| Unapproved | Do not call a publishing endpoint | blocked / zero publish attempts |
| Partial failure | Do not repost successful destinations | Only the failed destination retried |
| Invalid input | Reject records without a usable source contract | rejected / zero downstream attempts |
API constraints to prove before production
Discovery and publishing are not solved by connecting nodes. Account types, app review, OAuth scopes, media formats, platform rules, and rate limits must be proven with the production owner accounts early.
- Spotify:
GET /browse/new-releaseswas removed in February 2026. Artist-specific release discovery needs a new design using available catalog search, permitted alternative sources, and RSS rather than relying on that endpoint. - Instagram: no private-login automation or anti-bot bypass. A small proof must establish what the API can reliably read from eligible professional accounts.
- TikTok: Direct Post requires a registered app, approval for
video.publish, and user authorization. Posts from unaudited clients remain private. - WordPress: use the REST API with a revocable Application Password; never put the owner's primary password in a workflow.
Recommended first milestone: take one discovery source through normalization, editorial queue, approval, and WordPress draft creation. Add direct social publishing destination by destination after its app ownership and approval path is confirmed.
Workflow and execution evidence
What this lab does not prove
- Client delivery, production SLA, or long-term reliability
- Live Spotify, Apple Music, Instagram, TikTok, YouTube, or WordPress account integration
- Editorial quality of generated copy or brand fit of image and video templates
- Approval of an application or publishing scope by any platform
- Production editor authentication or approval identity—the probe supplies a synthetic approval assertion
Primary sources
- Spotify: February 2026 migration guide
- TikTok: Content Posting API
- WordPress: Application Passwords
- n8n: Error handling
Prove one vertical slice
before pricing every stage.
One source, an editorial queue, deduplication, human approval, and a WordPress draft in a fixed first milestone. Prove API permissions and operating load with representative data before expanding.
Discuss a scoped pilotMeasured: n8n 2.33.7 / synthetic data / no external network / no customer data / 2026-08-13 JST