Skip to main content
When a label acquires another label’s catalog, the back-office team needs to reconcile the newly ingested recordings against their existing data in an external system (e.g. Dynamo, a custom CRM, or a data warehouse). This example uses two automations inside a single composer: the first imports the external roster into an automation database, and the second matches Royaltyport recordings against that local copy.

Trigger

Manual — run on demand after an acquisition closes, or when a new batch of catalog data is ready to reconcile.

Composer Structure

This workflow uses a Composer with two automations in sequence:
  1. Import External Roster — fetches the external system’s data and stores it locally
  2. Match & Sync — matches Royaltyport catalog against the imported data and syncs results back

Automation 1: Import External Roster

1

Fetch external data

An API Request step calls the external system’s API (e.g. Dynamo, a custom CRM, or a data warehouse endpoint) to pull the current artist and track roster — names, ISRCs, UPCs, and any internal IDs.
2

Loop and store

A Loop step iterates over the response. Inside each iteration, a Database step upserts each record into an automation database table (e.g. external_roster) with columns for external ID, artist name, track title, ISRC, and UPC.
By storing the external roster in an automation database first, the matching automation can query it directly without making repeated API calls per recording. This also gives you a browsable snapshot of the external data in the database editor.

Automation 2: Match & Sync

1

Pull Royaltyport catalog

An API Request step with the Royaltyport API preset pulls the newly ingested catalog — recordings, ISRCs, artist names, and metadata.
2

Loop over recordings

A Loop step iterates over each Royaltyport recording. Inside the loop, a three-tier matching cascade runs against the external_roster table:
  1. Absolute match — a Code step queries the automation database for an exact ISRC or UPC match.
  2. Embedding search — if no exact match is found, a Transformer step performs a semantic similarity search against the artist names and track titles in the external_roster table.
  3. Confidence scoring — for candidates found via embedding, a Validator step evaluates the match and outputs match: true/false with a confidence score.
3

Human review for low confidence

Branch on the confidence score. Scores below 0.9 route to a Review step (wait mode), where the catalog team can inspect the candidate and approve or reject the match.
4

Sync to external system

Branch on the final match result:
  • Match found — an API Request step updates the existing record in the external system with all Royaltyport values (metadata, rights, identifiers), using the external ID from the matched external_roster row.
  • No match — an API Request step creates a new record in the external system from the Royaltyport data.

Key Features Used

  • Composer with two sequenced automations (import, then match)
  • Automation database as a local cache of external data
  • Branching to route by confidence score and match result
  • Review step with wait mode for human-in-the-loop approval
  • Royaltyport API preset for authenticated catalog queries
  • Three-tier matching: exact → semantic → validated

Databases

Create and manage the automation database for external roster data.

Branching

Route workflows based on step output values.

Review

Pause workflows for human approval.

More Examples

Browse all example workflows.