# Music integrations
Source: https://docs.aden.space/docs/help/apps-integrations/integrations

Connect Spotify for catalog import and metadata sync, Songstats for streaming analytics, and request a branded fan app. All managed from a team's integrations settings.
{/* Generated by `bun docs:publish` from docs/features/integrations.md: edit the spec, not this file. */}

## What it is [#what-it-is]

Aden connects to the music services your team already uses. There are three
distinct integrations:

* **Spotify**: import your released catalog (tracks and albums) directly from
  Spotify, pulling in metadata like artwork, ISRC, UPC, genre, and release
  dates, so you don't have to enter it by hand.
* **Songstats**: link your team's Spotify artist profile to Songstats so
  streaming statistics flow into Aden's analytics dashboard. You can also link
  individual track URLs across platforms (Apple Music, TikTok, etc.) to widen
  the data.
* **Team app**: request a branded fan app published under your team's name on
  the App Store and Google Play. Aden handles the build, signing, and submission
  pipeline; you just provide a display name and short description.

## Using it [#using-it]

### Importing tracks from Spotify [#importing-tracks-from-spotify]

1. Go to your team's **Settings → Import** (`/app/teams/[teamId]/import`).
2. Paste your Spotify artist URL. Aden fetches your released albums and singles.
3. Pick which releases to import. For each one you can assign collaborators and
   optionally trigger songwriter discovery (enriches the collaborator list from
   ISRC data).
4. Click **Import**. Each track lands in your team's track list with metadata
   already filled in and artwork uploaded to storage. Duplicate detection skips
   tracks that already exist (matched by Spotify ID or ISRC).

You can also sync metadata back onto an *existing* Aden track from a Spotify
single: useful when a track was created manually before it was released.

### Connecting Songstats [#connecting-songstats]

You don't need to leave the analytics page to connect. On the team's
**Streaming** analytics tab, if the team isn't linked yet Aden auto-matches
from the primary streaming account in your team links (Spotify first, then
Apple Music) the moment the tab loads. If auto-match can't find you, paste a
Spotify or Apple Music artist URL right there inline. Only the single primary
account per streaming service feeds analytics.

You can also connect from **Settings → Integrations**
(`/app/teams/[teamId]/integrations`): same auto-resolve, same manual paste
fallback.

Once linked, your streaming stats appear on the Streaming analytics tab. On
individual tracks, you can add or remove platform URLs (Apple Music, TikTok, …)
to include them in the Songstats graph; Songstats merges these asynchronously
on their next ingestion pass.

You can also import your Songstats catalog as Aden tracks. Useful when Spotify
import isn't available or the Songstats catalog is more complete.

### Requesting a team app [#requesting-a-team-app]

Team apps require the **Max** plan and an Admin role on the team.

1. Go to **Settings → Integrations**.
2. Click **Request team app**, optionally customise the display name and short
   description.
3. Aden queues the request. An orchestrator worker walks it through the pipeline:
   provisioning → creating → building → submitting → in review → live.
4. You can cancel a queued or provisioning request, and retry a failed one.

### Inspecting a connected account [#inspecting-a-connected-account]

Connected accounts sit at the top of the **Platforms** list on **Apps &
integrations** (same rows as available platforms, no separate section). Expired
or errored connections show **Reconnect** instead of the active toggle, on
every scope (team, organisation, personal, Aden's own staff mailbox).
Reconnect, Details and Disconnect live under the row's `…` menu. The detail page
(`/integrations/connections/[connectionId]`) still shows account ID, sync
state, token expiry, who connected it, and the MCP tool allowlist for
MCP-backed providers.

### Connecting social accounts [#connecting-social-accounts]

On **Settings → Integrations**, connect Instagram, Facebook, X, TikTok,
LinkedIn, YouTube, Threads, Pinterest, Reddit, Gmail, Outlook, and cloud drives. Each uses
OAuth: you're sent to the platform and back. Rows use the platform's brand
SVG. Reddit publishes too: pick the subreddit under **Publish to** in the post
editor, next to the account, the same place a Pinterest target picks its
board. Bluesky has no redirect: its card opens a form for your handle and an
app password.

### Connecting work apps [#connecting-work-apps]

Notion, Granola, v0, GitHub, Slack and Asana connect the same way and give
Aden's chat their tools: search your Notion pages, open a GitHub issue, post
in a Slack channel, add tasks in Asana, build a site in v0. Vercel, Suno and
Trello are listed as coming soon.

### Staying connected [#staying-connected]

Connections renew themselves. Every night Aden exchanges each connected
account's token before it runs out, which is also what stops the connection
itself from ageing out, so a Gmail or Dropbox account you connected once keeps
working without you touching it again.

Some platforms can't be renewed without you: Instagram, Threads, Facebook and
LinkedIn cap how long a connection lives no matter how it's used. When one of
those is a week from stopping, or a renewal starts failing, everyone who can
fix it (whoever connected the account, plus team or organisation admins) gets a
notification and an email with a link straight to the reconnect button. You can
turn those off per channel under **Connected apps** in notification settings.

### Connecting from a desktop tab [#connecting-from-a-desktop-tab]

In the desktop app, a page you have open under **Custom** already knows who
you are on that platform. When the page belongs to an app Aden connects to,
the toolbar shows **Connect to Aden**:

* **Sign-in apps** (SoundCloud, Instagram, YouTube, Gmail, Dropbox, …): the
  platform's consent page opens in the same tab. You're already signed in
  there, so it's one **Allow**. The tab goes back to where it was.
* **Profile-link partners** (Linktree, DistroKid, …): one click saves the page
  you're on as the team's link.
* **Apps that need a key or token** (Mailchimp, Shopify, Bluesky): the button
  opens Apps & integrations on the Web tab.

Once connected, the button turns into a check. Hover it to see which account
is linked. Tabs opened under your personal logins don't show it, because
connections belong to a team.

### Connecting from your phone [#connecting-from-your-phone]

The Aden app has the same list under **Team → Apps**. Tap a platform, the
provider opens in a browser sheet, you approve, and the connection is there
when you come back. Tap a connected account to disconnect it.

Your phone never holds the token. It asks Aden for the provider's sign-in
link, the provider sends the approval back to Aden's servers, and the
credentials are stored there, encrypted, exactly as they are when you connect
from a laptop.

## Connecting from where the link was added [#connecting-from-where-the-link-was-added]

A connection does not have to start on the integrations page. Wherever a team
adds something that names a service we support, the row offers Connect and the
button starts that provider's real OAuth flow, returning to the page it started
on:

* **Links** (`/app/teams/[teamId]/links`): a platform row with no connection
  yet shows Connect beside it. Once connected the row shows the account name
  and can fill its own URL in.
* **Email addresses** (`/app/teams/[teamId]/settings/email`): a contact or
  booking address on Gmail or Microsoft shows Connect Gmail / Connect Outlook.
  A business domain is classified through its MX records first, so Google
  Workspace and Microsoft 365 addresses connect too. An address already
  connected as an inbox shows a badge instead.