Platform Management Entities
MediaMagic CRM includes entities for managing publishing platforms, distribution partners, and tracking distribution records.
Overview
Platform
The Platform entity represents publishing platforms and channels where content is distributed.
Fields
| Field | Type | Description |
|---|---|---|
name | varchar | Platform name (e.g., "YouTube", "Rumble") |
type | enum | Platform type: Video, Audio, Social, Newsletter |
channelUrl | url | Primary channel URL |
apiKey | varchar | API key for integration (encrypted) |
isActive | bool | Platform is currently active |
autoPublish | bool | Enable automatic publishing |
priority | int | Publishing priority order |
description | text | Platform notes |
Platform Types
| Type | Examples | Use Case |
|---|---|---|
| Video | YouTube, Rumble, Brighteon, Odysee | Video hosting platforms |
| Audio | Transistor, Spotify, Apple Podcasts | Podcast hosting |
| Social | X, Facebook, Instagram, LinkedIn | Social media |
| Newsletter | Substack, Email | Written content distribution |
| Live | Boxcast, StreamYard | Live streaming |
Example Platforms
javascript
// YouTube Main Channel
{
name: "YouTube - Main",
type: "Video",
channelUrl: "https://youtube.com/@mainchannel",
isActive: true,
autoPublish: true,
priority: 1
}
// Rumble Channel
{
name: "Rumble - Freedom",
type: "Video",
channelUrl: "https://rumble.com/c/freedomchannel",
isActive: true,
autoPublish: true,
priority: 2
}Partner
The Partner entity tracks media partners, syndication relationships, and content sharing agreements.
Fields
| Field | Type | Description |
|---|---|---|
name | varchar | Partner name/organization |
type | enum | Partner type: Syndication, Affiliate, Media, Guest |
contactName | varchar | Primary contact person |
contactEmail | email | Contact email |
website | url | Partner website |
agreementType | enum | Agreement: Exclusive, Non-Exclusive, Trial |
startDate | date | Partnership start date |
endDate | date | Partnership end date (if applicable) |
revenueShare | int | Revenue share percentage |
isActive | bool | Partnership is active |
notes | text | Partnership notes |
Partner Types
| Type | Description | Example |
|---|---|---|
| Syndication | Content redistributors | News networks, aggregators |
| Affiliate | Promotional partners | Influencers, affiliated channels |
| Media | Media organizations | Other podcasts, news sites |
| Guest | Regular guest contributors | Recurring experts |
| Production | Production partners | Studios, editors |
Relationship Diagram
DistributionRecord
The DistributionRecord entity tracks individual distributions of content to platforms or partners.
Fields
| Field | Type | Description |
|---|---|---|
name | varchar | Distribution name (auto-generated) |
episode | link | Related episode/content |
platform | link | Target platform |
partner | link | Distribution partner (optional) |
status | enum | Distribution status (see below) |
distributionType | enum | Type: Platform, Partner, Syndication |
publishDate | datetime | Scheduled/actual publish date |
platformUrl | url | Published content URL |
viewCount | int | Total views/plays |
revenue | currency | Revenue from distribution |
notes | text | Distribution notes |
Distribution Status
The distribution lifecycle:
| Status | Description |
|---|---|
| Queued | Waiting to be distributed |
| Processing | Currently uploading/publishing |
| Published | Successfully published |
| Failed | Distribution failed |
| Removed | Content was removed |
Kanban Board
Distribution records work well in Kanban view:
┌──────────┬──────────────┬───────────┬──────────┬──────────┐
│ Queued │ Processing │ Published │ Failed │ Removed │
├──────────┼──────────────┼───────────┼──────────┼──────────┤
│ Ep42 → YT│ Ep41 → Rumble│ Ep40 → YT │ Ep39 → FB│ Ep38 → X │
│ Ep42 → FB│ │ Ep40 → RUM│ │ │
│ Ep43 → YT│ │ Ep40 → FB │ │ │
└──────────┴──────────────┴───────────┴──────────┴──────────┘Example Distribution Records
javascript
// YouTube distribution
{
name: "Ep42 → YouTube Main",
episode: "Episode 42",
platform: "YouTube - Main",
distributionType: "Platform",
status: "Published",
publishDate: "2026-02-09 10:00:00",
platformUrl: "https://youtube.com/watch?v=xyz123",
viewCount: 15420
}
// Partner syndication
{
name: "Ep42 → Acme Media",
episode: "Episode 42",
partner: "Acme Media Network",
distributionType: "Partner",
status: "Published",
publishDate: "2026-02-10 14:00:00",
platformUrl: "https://acmemedia.com/episodes/42",
revenue: 250.00
}Automation Workflows
Auto-Distribution on Publish
When an episode is published, automatically create distribution records:
Distribution Tracking
Track distribution progress through the pipeline:
- Queued: Record created, waiting in queue
- Processing: Upload started, progress tracked
- Published: Upload complete, URL saved
- Analytics: View counts synced periodically
Use Cases
1. Multi-Platform Publishing
Track content distribution across all platforms:
- Create episode
- Set status to "Published"
- System creates distribution records for all active platforms
- Monitor each platform's publish status
- Track views and revenue per platform
2. Partner Syndication
Manage content sharing with partners:
- Establish partner relationship
- Define revenue share terms
- Distribute selected episodes to partner
- Track syndication performance
- Calculate partner payouts
3. Distribution Analytics
Analyze content performance by platform:
- View total views across all platforms
- Compare platform performance
- Calculate revenue by distribution channel
- Identify top-performing platforms
- Optimize distribution strategy
Related Entities
- ContentProduction — Core content entity
- PlatformPublish — Platform-specific publishing
- SocialPost — Social media promotion
Views & Layouts
Platform List
- Name, Type, Status columns
- Active/Inactive toggle
- Auto-publish indicator
- Priority ordering
Partner List
- Name, Type, Contact columns
- Active status
- Agreement type
- Revenue share percentage
Distribution Kanban
- Group by Status
- Color-coded by platform type
- Inline URL editing
- Quick status updates