Skip to main content
Version: 1.28 (Current)

Create Page

Audience: Low-code Engineers

Skill Prerequisites: Actions, Tokens

Creates a new DNN page in the current portal from a page template, and can save the new page's URL and ID in tokens. You set the name, title, parent page, menu visibility, meta data, dates, permissions and custom settings. The page's layout and modules come from the template.

The page is published when the action finishes.

note

This action is part of the Portal Management add-on, which is installed and licensed separately (feature package PORTAL). If it isn't licensed, the action fails with a not-licensed error.

Typical Use Cases​

  • Create a page for each new customer, project or event from a form or workflow
  • Build a site structure (parent and child pages) from data
  • Create a page from a standard layout, then redirect the user to it with Redirect to URL

Don't use it to​

  • Create a page without a template. The Template or Dynamic Template parameter is required.
  • Create a page in another portal. The page is always created in the portal the action runs in.
  • Change an existing page. Use Update Page instead.
  • Set the page's theme (skin) or container. Other Settings only writes custom page settings. The theme and container come from the template.
Action NameDescription
Export PageExports an existing page as XML.
Load PageReads a page's details into tokens.
Update PageChanges the name, title, parent, permissions or settings of a page.
Delete Page (Soft)Moves a page to the Recycle Bin.
Delete Page (Hard)Deletes a page permanently.
Add ModuleAdds a new module to the page.
Add Existing ModuleAdds an existing module to the page.
Create PortalCreates a new portal.

Input Parameter Reference​

ParameterDescriptionSupports TokensDefaultRequired
Page NameThe name of the page, for example [ProjectName]. It's used in the menu and in the page's URL. If it's empty, the action fails with Missing page name.Yesempty stringYes
Page TitleThe page title shown in the browser tab. It always replaces the title from the template, so an empty value clears it.Yesempty stringNo
Show In MenuWhether the page appears in the menu. Use true/false or 1/0. If it's empty, the page is hidden from the menu.YesfalseNo
TemplateA page template file in the portal, selected from the list. Only .page.template files are listed. These are the files DNN's own Export Page feature creates, usually in the portal's Templates folder.Noempty stringYes, unless Dynamic Template is set
Dynamic TemplateThe path of the template file, relative to the portal's home folder, for example Templates/[TemplateName].page.template. When it's set, it's used instead of Template.Yesempty stringNo
Parent PageThe page to create the new page under, selected from the list. Leave it empty to create a root page.Noempty stringNo
Parent Page TokenThe ID of the parent page, for example [Tab:TabId] to create the page under the current page. It's used instead of Parent Page when it's a number. A value that isn't a number, such as a page name, is ignored and Parent Page is used.Yesempty stringNo
Page DescriptionThe page's meta description. Keep it short, with no HTML. If it's empty, the template's description is kept.Yesempty stringNo
Page KeywordsThe page's meta keywords. If it's empty, the template's keywords are kept.Yesempty stringNo
Start DateThe date from which the page is visible, for example [DateStart]. Leave it empty to show the page right away. A value that isn't a valid date is ignored.Yesempty stringNo
End DateThe date after which the page is no longer visible. Leave it empty for no end date. A value that isn't a valid date is ignored.Yesempty stringNo
PermissionsA list of page permissions. In the first column, enter a permission key (for example VIEW or EDIT) or name (for example View Tab or Edit Tab). In the second, enter role IDs or role names separated by commas or semicolons, for example Registered Users;Editors. Each permission you list replaces that permission from the template. Unknown permissions are skipped. The second column supports tokens, including [PermissionGrid:PermissionName] from a Permission Grid field.Yes (role list)emptyNo
Other SettingsA list of custom page settings, as name and value pairs. The value supports tokens. The settings can be read later with [Tab:SettingName] tokens or with Load Page.Yes (value)emptyNo

Output Parameters Reference​

ParameterDescription
Store URL in TokenThe name of the token that receives the full URL of the new page, for example NewPageUrl. Square brackets are optional. Leave it empty if you don't need the URL.
Store ID in TokenThe name of the token that receives the ID (tab ID) of the new page, for example NewPageId. Square brackets are optional. Use it to add modules to the page or to change it later.

How the page is built​

  1. The template file is loaded. If it can't be loaded, the action fails with Could not create page. Could not load the page template. and no page is created.
  2. The page is added under the parent page, and the template's <tab> content is applied to it.
  3. The name, title, menu visibility, description, keywords and dates from the action are applied.
  4. The portal's Administrators role gets all page permissions, unless the template already gives it permissions. Then the permissions you listed are applied.
  5. The custom settings are saved, and the page is published.

Considerations​

  • There's no permission check in the action. Anyone who can run it creates pages. Only put it on pages, forms, workflows or APIs that trusted users can reach, and add a condition as a second guard.
  • Be careful with user input in Dynamic Template. The path is read from the portal's home folder. Don't build it from values users can change freely.
  • Include Administrators in the permissions you list. A listed permission replaces every grant of that permission, including the one given to the Administrators role in step 4.
  • Page names aren't checked. The action doesn't check whether a page with the same name already exists under the same parent.
  • A page name that's a number can later be mistaken for a page ID by the other page actions, because they try the identifier as an ID first. Avoid page names that are only digits.
  • Menu visibility defaults to hidden. Set Show In Menu to true if the page should appear in the menu.
  • Dates are parsed in the server's culture. Use an unambiguous format, for example 2026-10-01.
  • Make your own template with DNN's Export Page feature, or build the XML with Export Page and save it as a file with Save File. The action uses the first <tab> element in the file.

Examples​

tip

To understand how to use the below examples, please see Running Examples.

1. Create a project page under the current page​

This action creates a page named after the project, under the current page, from a template in the portal's Templates folder. Only registered users can view it. The new page's URL and ID are saved in [NewPageUrl] and [NewPageId].

{
"Title": "Create Page",
"ActionType": "CreatePage",
"Description": "Create a page for the new project",
"Condition": "[ProjectName] != \"\"",
"Parameters": {
"PageName": "[ProjectName]",
"PageTitle": "[ProjectName] - Project Workspace",
"ShowInMenu": "true",
"Template": "Templates/Project.page.template",
"ParentPageToken": "[Tab:TabId]",
"PageDesc": "Workspace for project [ProjectName]",
"Permissions": [
{
"name": "VIEW",
"value": "Registered Users"
}
],
"OtherSettings": [
{
"name": "ProjectId",
"value": "[ProjectId]"
}
],
"TokenNameForUrl": "NewPageUrl",
"TokenNameForId": "NewPageId"
}
}

Revised 09/27/2026