← Workspace

RDX Reference Guide — Campaign Ops


Last updated: March 21, 2026

Environment: rdx-federation-stage.smecloudops.com/playground/

Wiki: wiki.smedigitalapps.com/wiki/spaces/RDX

RCA Finance Label Key: E009 (confirmed via finLabelT3Parents query)




What RDX Is


Sony's Real-Time Data Exchange (RDX) is a GraphQL federation platform that connects all SME backend applications. It's live, it's accessible, and nobody at RCA is using it operationally. Campaign Ops discovered and confirmed access on March 20, 2026.


Core pitch: "Sony built the pipes (RDX). Nobody at the label reads the water. Campaign Ops is the human translation layer."




GraphQL Connection Pattern


Every collection in RDX uses the Connection type pattern. This means every collection field requires a nodes { } wrapper — at every nesting level simultaneously.



# WRONG
mktTimeline(fromDate: "2026-04-01", toDate: "2026-04-30") {
  mktProducts { title }
}

# CORRECT
mktTimeline(fromDate: "2026-04-01", toDate: "2026-04-30") {
  nodes {
    mktProducts {
      nodes {
        title
      }
    }
  }
}

This applies to: mktProducts, kpis, partnerInfo, mktDistChannels, mktPartners, and all other collection fields.




Confirmed Working Queries (STAGE)


1. Release Runway Mega-Query


Returns the full operational picture for any release in a date range.



{
  mktTimeline(fromDate: "2026-04-01", toDate: "2026-04-30") {
    nodes {
      mktProducts {
        nodes {
          title
          artistName
          streetDate
          workability {
            score
            kpis {
              nodes {
                name
                status
                weighting
                isManual
                configType
              }
            }
          }
          partnerInfo {
            nodes {
              partnerName
              leadTime
              pitchDate
              pitchStatus
              pitchCopy
              weekOneStream
            }
          }
          mktDistChannels {
            nodes {
              title
              isActive
            }
          }
          alerts {
            alertType
            daysUntilRelease
          }
        }
      }
    }
  }
}

2. Workability KPI System


9 confirmed KPIs:


KPIAuto/ManualConfig Type
Label CopyAuto-calculatedDigital + Physical
Cover/VSCAuto-calculatedDigital + Physical
MasterAuto-calculatedDigital + Physical
AgreementsManualBoth configs
SAA (Side Artist Agreement)ManualBoth configs
SAMP (Sample Clearance)ManualBoth configs
A&R PaperworkManual/AutoDigital + Physical
Packaging GraphicsManual/AutoPhysical only
Test Press ApprovalManual/AutoPhysical only

Weighting formula: Done/NA/NSI = 2, Waiting/Partial = 1, Required/Unknown = 0

Score calculation: Sum of weightings ÷ (count × 2) × 100


Alert thresholds:

• AT_RISK: ≤10 days from release
• WARNING: 11–14 days from release

3. DSP Partner Catalog (SCUBA APIs)


Full Spotify, Apple Music, and Deezer catalog access.



{
  spotifyArtistById(id: "SPOTIFY_ARTIST_ID") {
    name
    popularity
    genres
    followers
  }
}

Returns: artist search, album/track ISRCs, popularity scores, genres, followers. Could replace manual Spotify data pulls for Artist Insights decks.


4. Finance Label Hierarchy



{
  finLabelT3Parents {
    nodes {
      finLabelParentKey
      finLabelParent {
        finLabelName
      }
    }
  }
}

RCA = E009. Confirmed.


5. Distribution Channels



mktDistChannels {
  nodes {
    title
    isActive
  }
}

6. DSP Partners



mktPartners {
  nodes {
    name
    isActive
  }
}



Confirmed Schema / Needs Production Data


These queries are structurally valid but return limited data in STAGE. Production access (via Brian Lynch's Azure Functions proxy) will unlock them.


1. Clearance (DRA API)



{
  clearancesForIsrc(isrc: "ISRC_HERE") {
    # schema confirmed — returns clearance records
  }
}

Status: Query schema confirmed. STAGE recognized SZA "Kill Bill" ISRC but returned no clearance records. Different from "ISRC not found" — the system knows the track, just doesn't have clearance data in STAGE.


Why it matters: Could fill SAMP "Unknown" gap in Runway. If clearance data exists upstream but shows Unknown in Runway, that's the proof point.


2. RCA-Only Filtering


otherFilterOptions: { parentFinanceLabelIds: ["E009"] } — exists in schema documentation but returns "Unknown argument" error in STAGE. Workaround: use tight date ranges with manual artist identification.


3. Partner Lead Times


Per-DSP pitch dates, pitch statuses, lead times, week-one forecasts. Schema confirmed; STAGE returns null for most partner-specific fields.


Why it matters: Drives Orbit outer ring — when each DSP needs what, derived from real data.


4. D2C Sales Channels (PLAN Schema)


planProdD2CSalesChannels query exists in Product Planning (PLAN) schema. Confirmed via introspection. Not yet queried for live data.


Critical finding: D2C data exists in THREE places:

1. Product Planning (PLAN schema) — structured, in RDX, nobody querying it

2. D2C Airtable — semi-structured, label-level, managed by D2C team

3. Release Runway — NOT tracked at all


5. Repertoire Search (GRPS)


Participant search, recording projects, songs, publishers, split deals. STAGE has limited artist data (smaller artists not found; larger catalog expected in production).


Why it matters: Could pre-populate SAA contributor data from GRPS RecordingProject.




RDX-to-Runway Field Mapping


Runway FieldRDX SourceSchema
SAAGRPS RecordingProjectRepertoire
SAMPSongs + PublishersRepertoire
AgreementsSplitDeals + CARMARepertoire
Cover/VSCAOMA Media LibraryMedia
Label CopyGRPS RepertoireRepertoire
ScheduleGRPS Release SchedulesRepertoire

Per-partner fields:

• leadTime, pitchDate, pitchStatus, pitchCopy, weekOneStream

D2C (NOT in Runway):

• Found in PLAN schema (`planProdD2CSalesChannels`)
• Also in D2C Airtable (16-week vinyl countdown derived from A$AP Rocky / Red Clay Strays / Victoria Monet data)



Playground Tips


• **Ctrl+Space** autocomplete inside parentheses reveals valid arguments
• **DOCS/SCHEMA tabs** (right panel) are fastest for resolving field name errors
• **Introspection pattern:** `{ __type(name: "TypeName") { fields { name type { name } } } }` reliably resolves field name errors
• When a field errors as "must have a selection of subfields" — it's an object type, not a scalar. Add `{ }` with sub-field selection.
• The Playground's autocomplete and schema docs are more reliable than running introspection queries.



What This Unlocks for Campaign Ops


1. Artist Insights automation — SCUBA APIs replace manual Spotify/Apple data pulls for Crawley's decks

2. Pre-meeting workability flags — Pull every release's workability + KPI breakdown before Active Projects

3. Clearance gap detection — Compare clearance API data against Runway's "Unknown" fields (needs production)

4. Orbit data layer — Per-partner lead times and KPI weightings power the outer ring

5. DDEX-to-DISCO shortcut — RDX Catalog Import API (CATI) may shortcut parts of the pipeline

6. Change notifications — RDX can surface when upstream data changes (needs production webhook access)




Next Steps


ActionOwnerTimeline
Azure Functions proxy for RDX + AirtableBrian Lynch (IT)In progress
Production endpoint accessBrian Lynch / Jordan (sponsor)Pending Azure provisioning
Test clearance queries with production dataCampaign OpsAfter production access
Build pre-meeting workability pullCampaign OpsAfter production access
Explore CATI for DDEX pipelineCampaign OpsAfter production access
D2C integration (PLAN schema + Airtable + Runway)Campaign OpsPhase 2



Open Questions


• Does `otherFilterOptions` work in production? Or is the argument name different?
• What ISRCs have populated clearance data in production?
• Can Azure Functions proxy both Airtable API and RDX GraphQL?
• Webhook/subscription support for change notifications?