Publish for multiple audiences
This feature requires the Enterprise capability tier (the Business ). During the beta, every project is on the free Solo tier, so this feature is locked by default: go to Settings ▸ Billing and request Enterprise access to unlock it.
This tutorial walks you through Publish a web site two versions of the same documentation from a single source: one for administrators and one for end users. You will use conditions to filter content and variables to swap values.
Before you begin
Familiarize yourself with Conditions versus variables to understand when to use each
This tutorial combines conditions (Business plan) and variables (Team plan or higher). Both are needed to complete every step
You need a project with at least one Create and organize a map (or be ready to create one during the tutorial)
You will create two Publication target settings, so confirm your Plans and limits supports multiple targets
What you will build
A three-topic guide that shows admin-only content to admins and hides it from regular users. Variables swap out the product name and support URL so each audience sees their own values.
Set up filters
Filters define the axes along which your content varies.
Open Configure and select the Filters tab.
Type "Audience" in the name field and click Add group.
In the group's Add a value field, add two values: "Admin" and "End User."
Each value gets a distinct color. These colors appear in the editor to show which content is conditioned.
Set up variable sets
Variables hold values that differ between Publication target settings, like product names, URLs, or version numbers.
Open Configure and select the Variables tab.
Type "Admin Edition" in the name field and click Add set to create a Create variable sets.
In that set's card, add these key-value pairs:
product_name→ "Acme Pro Admin Console"support_url→ "https://admin-support.acme.com"
Add a second set called "End User Edition" with:
product_name→ "Acme Pro"support_url→ "https://support.acme.com"
The two sets as JSON:
{
"product_name": "Acme Pro Admin Console",
"support_url": "https://admin-support.acme.com"
}Both variable sets must contain the same keys (product_name and support_url). If a key is missing from one set, the raw key name appears in the published output for that target.
Write conditioned content
Go to Topics and create a topic called "Dashboard Overview."
Write a paragraph that applies to everyone: "The dashboard shows your recent activity and important metrics."
Below it, write a paragraph intended only for admins: "The admin panel at the top provides access to user management, audit logs, and system configuration."
Select that admin-only paragraph.
Click the filter icon ("Wrap in condition") in the editor toolbar.
In the Wrap in condition dialog, choose the "Audience" filter group, select "Admin," and click Apply Condition.
The paragraph is now wrapped in a colored conditional block labeled "Audience: Admin." End users will not see it.
Insert variables
In the same topic, type "Welcome to " then place your cursor.
Click the variable icon ("Insert variable") in the editor toolbar and pick
product_namefrom the Insert variable dialog.A styled pill appears showing the variable key. At publish time, it resolves to the value from the selected Create variable sets.
Add another variable reference for
support_urlin a "Need help?" sentence.
Preview conditions in the editor
Click the eye icon in the editor toolbar to open Preview conditioned content.
Select "Audience: Admin" to see the full content including the admin paragraph.
Switch to "Audience: End User." The admin paragraph disappears from the preview.
This lets you verify conditioned content without publishing.
Create two more topics
Create "Account Settings": add general content plus an Admin-conditioned section about managing other users' accounts.
Create "Getting Help": use the
support_urlvariable so each audience sees their own support link.
Build a map and publish two targets
Go to Maps and create a Create and organize a map called "Product Guide."
Add all 3 topics.
Open the map's Manage publishing page and create two publication targets. For each target, set its condition profile and pick its variable set in the target settings:
Admin Docs (Web):
Condition profile: Audience = "Admin"
Variable set: "Admin Edition"
{
"Audience": ["Admin"]
}End User Docs (Web):
Condition profile: Audience = "End User"
Variable set: "End User Edition"
{
"Audience": ["End User"]
}Publish a web site both targets.
Compare the results
Open both published sites. The Admin version shows all content including the admin-only sections, with "Acme Pro Admin Console" as the product name. The End User version hides the admin sections and shows "Acme Pro" with the standard support URL.
Topicary generates both sites from the same source topics. When you edit a topic, clicking Update on a target refreshes that variant.
After editing a conditioned topic, always click Update on all targets that use that topic. If you only update one target, the other targets show stale content until they are updated too.
What you learned
Conditions control which content blocks appear for each audience, platform, or any filter group you define
Variables substitute different values (names, URLs, versions) for each publication target
Preview conditioned content lets you check audience-specific content without publishing
Each publication target selects a condition profile and variable set
One source produces any number of output variants
Next: Collect feedback from reviewers to learn how to get subject matter expert input before publishing.
See also
Writing for multiple audiences: strategies and best practices for multi-audience content
Set up filters: create filter groups and values used in this tutorial
Create variable sets: detailed guide to building variable sets
Publish a web site: full reference for web publishing
Troubleshooting: common issues with conditions, variables, and publishing