Appearance
Are you an LLM? You can read better optimized documentation at /docs/automation/magic-tags.md for this page in Markdown format
Magic Tags
Magic tags are placeholders that fill in real details when your content is used. Write an email once with {guest_first_name} in it, and every guest gets a message addressed to them personally.
A tag is a name in single curly braces, lowercase with underscores: {guest_first_name}, {episode_title}, {recording_date}. When an automation runs or a template is applied, each tag is replaced with the real value from that run.
Where magic tags work
- Email templates: in the subject line and the body
- Webhook payloads: anywhere in the JSON body of a webhook step
- Show notes templates: in the section title and content, filled in when an episode's notes are created
- Update-field values: in the new value of an update-field step
- Email addressing:
{guest_email}and{guests_emails}resolve to addresses, so they work in a send-email step's Send to and CC emails fields
How to insert a tag
You never have to memorize tag names:
- Insert tag picker: in the template editor, the webhook payload editor, and the update-field editor, click Insert tag to open the picker. Search every tag by name, label, description or example value, browse All tags grouped by category, or pick one category at a time. Each row shows the tag's name, its braced form, and a lock or person marker when it isn't for everyone. Focus a row to see what it renders and who can see it.
- Recently used: the picker opens on the tags you inserted last, so a repeat insert is one click away.
- Type a brace: in a template's rich text body, type
{and keep typing. A short list of matching tags appears at your cursor. Press Enter or tap one to insert it, or press Esc to keep a literal brace. - Email tags chips: the send-email step in the flow builder shows clickable chips for the email-address tags. Click to copy, then paste into Send to or CC emails.
- Type it by hand: any valid tag name in single braces works anywhere tags are supported.
On a laptop the picker is keyboard-first: ↑ and ↓ move through the list, ← and → switch category while the search box is empty, Enter inserts at the cursor and Esc closes. On a phone it opens as a sheet: tap a category button to switch category or audience, tap a tag to read what it renders, then tap Insert.
Preview before you send
In the template editor, click Preview to see your subject and body with sample values filled in.
Who can see a tag's value
Not every tag belongs in every message. The picker labels each tag with an audience, and its Audience filter narrows whatever you are looking at. The first option names that list, such as All Guest tags, and only reads All tags when the list really is every tag:
| Audience | What it means | Tags |
|---|---|---|
| Public | Safe anywhere: emails, show notes, public feed. | Every tag not listed below |
| Team only | Only hosts, producers and co-hosts should see this. Keep it out of guest emails and public content. | {episode_url}, {episode_status}, {guest_notes}, {guests_emails} |
| Team-oriented | Built for internal use. You can share it deliberately, so think before putting it in guest or public content. | {guest_email}, {guest_phone}, {additional_guests_first_names}, {additional_guests_full_names}, {download_count}, {download_milestone}, {download_day} |
| Guest only | A personal link for one guest. Keep it out of team and public content. | {guest_portal_link} |
Team-only tags carry a closed lock and an amber name in the picker; team-oriented tags an open lock; the guest-only link a person marker. Choose Public-safe to hide the team-only tags while you write to a guest, or Team only to see just the internal ones.
Tag categories
Tags are grouped into six categories. A few examples from each:
| Category | Examples |
|---|---|
| Guest | {guest_first_name}, {guest_email}, {guests_full_names} (every attendee on the booking) |
| Episode | {episode_title}, {episode_number}, {episode_description} |
| Podcast | {podcast_name}, {podcast_host_name}, {podcast_website} |
| Booking | {booking_link_name}, {guest_notes} |
| Dates & Times | {recording_date}, {recording_time}, {days_until_recording}, {publish_date} |
| Links | {meeting_url}, {meeting_platform}, {guest_portal_link}, {episode_url}, {podcast_listen_link} |
The full catalog, with what every tag resolves to, lives in the Magic Tags List.
When a tag has no value
Tags resolve from the context of the run that uses them:
- Podcast tags always have values.
- Guest, booking, and episode tags need that record connected to the run. A booking-triggered automation has all three; an episode-triggered one has no booking, so
{meeting_url}would come up empty there. - Directory link tags like
{podcast_apple_url}and{podcast_spotify_url}stay empty until your show is confirmed live on that directory.{podcast_listen_link}always resolves. - Episode tags are always empty on a general booking. A General booking link creates no episode, so
{episode_title}and its siblings render as nothing, and{guest_portal_link}stays empty too because those guests get no portal. Guest, booking and roster tags work normally.
The starter templates mention the episode
Two of the email templates show.fm creates with your podcast include an "Episode: {episode_title}" line. On a general booking that line renders with nothing after the label. If you use those templates with a general booking link, edit the copy or duplicate the template first.
In show notes created from a template, an unresolved tag stays visible as the literal tag text, so you can spot it and fill it in while editing. Show Notes lists the tags that fill in there and which guests they name.
What's Next?
- Browse the complete Magic Tags List
- Use tags in your templates
- Build an automation that puts them to work