Campaigns
Send, schedule, and track promotional emails, SMS messages, and listen-and-rate promos to contacts from a team, organisation, or the admin panel.
What it is
Campaigns let you reach your audience directly. Write a promotional email or a short text message, pick which contacts to send it to, and send it now or schedule it for a specific date and time.
Email campaigns support a rich editor with content blocks. You can embed a track preview with streaming links, add custom buttons, and personalize each message with the contact's name. SMS campaigns are plain text with the same template variables.
You don't have to start from a blank page. The composer's Choose template picker comes stocked with ready-made starting points for the campaigns artists send most: releasing an album, dropping a single, pitching a song to curators or press, rewarding superfans with an exclusive first listen, driving pre-saves before release day, and announcing live dates. Pick one and it fills in the subject and body with editable copy and the right personalization variables; your own saved templates live under My templates in the same picker.
Both channel types track delivery: opens and clicks per recipient for email, delivered/failed status per recipient for SMS. Email campaigns also collect what people write back: a sent campaign's detail page lists the replies it caused, so an answer doesn't vanish into one person's inbox. See campaign replies.
Promos are the third channel: send a track or album to DJs, tastemakers
and press, where each recipient gets a personal listen-and-rate link
(1–10 rating + comment) instead of a broadcast email. The campaigns sidebar
filters by channel (All / Email / SMS / Promos), sent promos show their
response count and average rating, and a promo's recipients can be saved as
a contact group so email/SMS campaigns can target the same audience. The
full promo loop (tables, public token page, feedback actions) is documented
in docs/features/organisations.md → "Label ops surfaces".
All three channels compose the same way. Promos open a full-page composer at
/promos/create inside the campaigns detail pane (the same layout as the email
and SMS composers, not a dialog), and every composer carries a channel switcher
at the top (Email / SMS / Promo) so you can flip between channels in one click.
The switcher is hidden on the admin cross-team flow, which has no promo channel.
Aden promo network. A promo's audience is either an external email list or
the Aden promo network: teams that opted in to receive demos from other artists.
A team opts in with the "Receive demo promos" toggle in team settings
(teams.receive_demo_promos); once on, it appears in the network's member
picker, tagged with its teams.genres for genre targeting. In the composer's
"Send to" switch, "Aden network" lists opted-in teams (searchable, genre-filter
chips, select-all): the sender picks artists but never sees their emails. On
submit the composer sends networkTeamIds; createPromo re-checks each team's
opt-in and resolves a deliverable address server-side
(promo_fallback_email → email → first contact_emails entry), then runs the
normal per-recipient personal-link/invite pipeline. Combined recipients (emails +
network) are capped at 200 per promo.
Using it
Sending an email campaign
- Open your team's Emails page and click New campaign.
- Give the campaign a subject line and write your content in the editor. Use
{{contact.firstName}}or{{contact.fullName}}to personalize. You can also insert{{track.title}},{{track.url}}, and other track variables if the campaign is about a specific track. - Type
/in the body to add music. Track, Album, Playlist and Merch sit at the top of the menu, open a picker, and drop a card where you typed the/: cover, title, a link to the public page and the streaming icons. The public link goes to the artist's own domain when they have one (a domain pointed at that track or album first, then the domain serving their profile), otherwise to their Aden page. - Optionally click Signature in the action bar to insert one of your saved email signatures (see the email signatures feature) into the body. In the rich editor it lands at the cursor; in plain-HTML mode it is appended to the source.
- Choose recipients: individual contact emails or an entire contact group.
- Optionally set a pace next to the recipient count ("All at once" by default): at most N recipients a day. The first batch goes out when you send or at the scheduled time, and each next batch 24 hours later, so a big list can run over days or weeks. The Send button then reads "Send over N days".
- Click Send now to deliver immediately, or Schedule to pick a future date and time.
After sending, open the campaign from the list to see per-recipient open and click counts.
Sending from your own Gmail or Outlook
The From field lists two kinds of sender. Aden mail addresses are signed and delivered by Aden's infrastructure and track opens and clicks. Below them are the Gmail and Outlook inboxes connected to your team, organisation, or your own account (Settings → Inboxes). Pick one and the campaign leaves from that mailbox, lands in its Sent folder, and replies come straight back to it. No domain setup needed.
Two things to know about sending from your own inbox:
- Recipients are blind-copied. Each message goes to up to 50 people as
BCC, so nobody sees anyone else's address. Copy that uses
{{contact.*}}variables, or AI-personalized versions, is sent one message per person. - Providers cap daily sending. Gmail allows about 500 emails a day for a personal account and 2,000 for Google Workspace; Outlook.com allows 300. Aden keeps 10% back for your own mail and spreads the rest over as many days as the audience needs. The From row tells you how many days a send will take and when it finishes, and the Send button reads "Send over N days". Progress is visible on the campaign while it runs, including "Paused until …" when a day's cap is spent.
Opens and clicks are not tracked for mail sent from a connected inbox. Use an Aden mail address when you need them, or for very large audiences.
Sending an SMS campaign
- Go to Emails → SMS and click New SMS.
- Write a short message. Use
{{contact.firstName}}and{{team.name}}just like in email. - Pick recipients (E.164 phone numbers from your contacts).
- Send immediately or schedule for later.
Delivery status (delivered, failed, segments used) appears in the campaign detail view after the send completes.
Saving a draft
On either the email or SMS composer, save your work at any time without sending. Drafts appear in the campaign list and can be picked up and sent later by any team member.
Collaborating on a draft
Draft email campaigns have a status (pending → in_progress → ready) that
team members can update to signal where the campaign is in the review process.
Set it from the campaign detail view.
Personalizing a campaign with AI
The panel uses the chat's model picker (ChatAiModelSelect): the same catalog,
with API-priced models gated on the team's own key or usage billing
(hasApiPricingChatModels on the emails context, false for org and admin
shells). personalizeEmail resolves the model through
resolveChatLanguageModel exactly like /api/chat and meters
subscription-billed usage with reportBilledAiUsage. The composer hands the
panel the email as plain text (resolveEmailContent().text) when it opens,
never the rendered HTML document, and a failed generation shows the server's
reason next to "Failed".
In the email composer, Personalize with AI rewrites your template into a unique email per recipient, using everything the workspace knows: your bio, recent tracks and albums, plus shows, tours, interviews, posts, and achieved milestones from the last 12 months (each is a toggle, so you control what the AI can draw from). Every generated email is editable before sending, and recipients you've emailed before are recognized so the tone reads like a follow-up instead of a cold intro.
You can also start from the AI assistant (in-app chat or any connected MCP client like Claude): ask for something like "send a personalized yearly update to all my bookers with what I released and where I played". The assistant finds the matching contacts (a contact group, a tag, a company, or criteria like "only engaged contacts"), writes a personal version for each one from your real releases, shows, and press, and saves everything as a draft campaign. Nothing is ever sent by the assistant. You review the draft in the composer and press send yourself. The Yearly update template gives you a ready-made structure for the classic January "here's my year" email to bookers and promoters.
Shop & Shopify integration
Lets a team connect a Polar or Shopify store and surface a product catalog on their public profile, with checkout handed off to the provider.
Campaign replies
Replies to an email campaign come back into Aden, sorted by campaign and by what kind of answer they are, so a "yes, send it over" never dies in somebody's inbox.