Table of Contents
Form Builder is a powerful tool that allows you to create custom forms for collecting information from users. Forms can be configured to create content items (such as articles, blogs, wiki pages, ideas, and cases) when submitted, send email notifications, and include conditional logic that shows or hides questions based on user responses.
The Form Builder interface consists of two main components:
Form Builder - The administrative interface where you design and configure your forms
Form Viewer - The end-user interface where respondents fill out and submit the form
With Form Builder, you can create forms ranging from simple feedback surveys to complex intake forms with branching logic, file uploads, and automated content creation.
To begin creating a form, navigate to Form Builder (e.g., https://siteurl.com/formbuilder) and select Create New Form.
You will see the main editing interface with a left panel for questions and a right panel for form configuration.
The right panel contains all the form configuration options including settings, content destination, templates, tags, email notifications, and advanced settings.
Configure the basic settings for your form:
Form Title - Enter a descriptive title for your form. This title will be displayed to users at the top of the form.
Description - Add optional description text that explains the purpose of the form or provides instructions to respondents.
Configure where form submissions will be saved:
Select a Space from the dropdown to choose where content will be created
Once a space is selected, choose a Content Type:
Select a Category to organize the created content (available for Article, Blog, and Wiki types)
For Case content type, select a Project to associate the case with
For Idea content type, select an Idea Stage for the submission
Use templates to dynamically set the title and summary of created content using tokens:
Content Title Template - Defines the title of the created content. If left empty, defaults to: New Form Submission - {form.name} - {user.displayName} - {date.submitted}
New Form Submission - {form.name} - {user.displayName} - {date.submitted}
Content Summary Template - Defines the summary/excerpt of the created content (available for Article, Blog, and Wiki types). If left empty, the Content Title will be used as the summary.
Available Tokens:
{form.name}
{user.displayName}
{date.submitted}
{question1.answer}
{question2.answer}
Example: Support Request from {user.displayName} - {question1.answer}
Support Request from {user.displayName} - {question1.answer}
Add tags that will be automatically applied to content created from form submissions:
Type a tag name in the Tags field
Press Enter or Space to add the tag
Search for existing tags or create new ones
Dynamic Tags: You can use tokens to create dynamic tags that include form data:
Example: Adding {question1.answer} as a tag will automatically tag the content with whatever the user entered for the first question.
Configure email notifications to be sent when the form is submitted:
Click + Add email notification in the Email Notifications section
Enter a Subject for the email
Compose the Body of the email using the rich text editor
Add Recipients by searching for and selecting users
Optionally configure Conditions to send the email only when certain form responses meet criteria (uses the same condition logic as Conditional Visibility)
Click Save to add the notification
Available Tokens for Email Subject and Body:
{form.submission}
{form.submissionJson}
{user.email}
To edit or delete an existing email notification, click on it in the list and use the modal that appears.
Case content type only: Add users who will receive notifications when a case is created from the form submission. Search for users by name and click to add them to the recipients list.
Click Advanced Settings to expand additional configuration options for power users. These settings allow you to add custom JavaScript code that runs when the form is viewed or submitted.
The Custom Viewer Script runs when the form loads in the Form Viewer. Use this to customize form behavior, dynamically show/hide questions, or modify the form based on user context.
Available Variables:
formData
questions
config
formElement
CF_USERID
CF_USER_DISPLAY_NAME
CF_SPACEID
Example 1: Hide a question based on user role
// Check if user has admin role and hide question if not fetch('/api/users/' + CF_USERID + '/roles') .then(function(response) { return response.json(); }) .then(function(data) { var isAdmin = data.ResponseData.some(function(role) { return role.RoleName === 'Administrators'; }); if (!isAdmin) { var adminQuestion = document.querySelector('[data-question-id="question3"]'); if (adminQuestion) { adminQuestion.style.display = 'none'; } } });
Example 2: Filter dropdown options based on user roles
Show only the role options that match the current user's assigned roles:
fetch('/api/users/' + CF_USERID + '/roles') .then(function(response) { return response.json(); }) .then(function(data) { var userRoles = (data.ResponseData || []).map(function(role) { return role.RoleName.toLowerCase(); }); var select = document.getElementById('question1'); if (!select) return; Array.from(select.options).forEach(function(option) { if (option.value === '') return; var hasRole = userRoles.indexOf(option.value.toLowerCase()) !== -1; if (!hasRole) { option.remove(); } }); });
The Custom Submission Script runs when the form is submitted, before the content is created. Use this to modify form data, format the submission HTML, or perform additional processing.
formData.question1
generateSubmissionHtml()
formData._submissionHtml
Example 1: Center and Style All Content
Makes questions italic and 20px, answers 16px, all centered:
formData._submissionHtml = '<div style="text-align: center;">'; questions.forEach(function(q) { if (formData[q.id]) { formData._submissionHtml += '<p style="font-size: 20px; font-style: italic; margin: 0 0 5px 0;">' + q.label + '</p>'; formData._submissionHtml += '<p style="font-size: 16px; margin: 0 0 20px 0;">' + formData[q.id] + '</p>'; } }); formData._submissionHtml += '</div>';
Example 2: Modify Default Formatting
Takes the default HTML and makes simple style changes:
var html = generateSubmissionHtml(); // Make questions larger and italic html = html.replace(/font-size: 14px/g, 'font-size: 18px'); html = html.replace(/font-weight: 600/g, 'font-weight: 600; font-style: italic'); // Center the content html = html.replace(/line-height: 1.6;/g, 'line-height: 1.6; text-align: center;'); formData._submissionHtml = html;
Example 3: Custom Table Layout
Displays questions and answers in a clean table format:
formData._submissionHtml = '<table style="width: 100%; border-collapse: collapse; font-family: Arial, sans-serif;">'; formData._submissionHtml += '<thead><tr style="background: #f3f4f6;"><th style="padding: 12px; text-align: left; border-bottom: 2px solid #e5e7eb;">Question</th><th style="padding: 12px; text-align: left; border-bottom: 2px solid #e5e7eb;">Answer</th></tr></thead>'; formData._submissionHtml += '<tbody>'; questions.forEach(function(q) { if (formData[q.id]) { formData._submissionHtml += '<tr>'; formData._submissionHtml += '<td style="padding: 10px; border-bottom: 1px solid #e5e7eb; font-weight: 600;">' + q.label + '</td>'; formData._submissionHtml += '<td style="padding: 10px; border-bottom: 1px solid #e5e7eb;">' + formData[q.id] + '</td>'; formData._submissionHtml += '</tr>'; } }); formData._submissionHtml += '</tbody></table>';
Example 4: Populate Values via API
Populate an answer to a question based on an API call (e.g., dynamically fill a user's roles):
// Fetch user roles and populate question1 with comma-separated role names var userId = CF_USERID; // Make synchronous-style async call using Promise var rolesPromise = fetch('/api/users/' + userId + '/roles') .then(function(response) { return response.json(); }) .then(function(data) { if (!data.IsError && data.ResponseData && data.ResponseData.length > 0) { // Extract role names and join with commas var roleNames = data.ResponseData.map(function(role) { return role.RoleName; }).join(', '); // Set question1 value in formData formData.question1 = roleNames; } else { formData.question1 = ''; } return formData; }) .catch(function(error) { console.error('Error fetching user roles:', error); formData.question1 = ''; return formData; }); // Return the promise so the form waits for it rolesPromise;
The Questions panel on the left side of the interface allows you to add and manage form questions.
Click the + Add Question button to add a new question
Enter the question label in the text field
Optionally add help text that will appear as a tooltip next to the question
Select the question type from the dropdown menu
Configure question-specific settings as needed
Use the arrow buttons next to each question to reorder them, or click the X button to delete a question.
Form Builder supports the following question types:
Each question has the following settings:
Required - Toggle on to make the question mandatory. Users must answer required questions before submitting the form.
Show Conditionally - Toggle on to show this question only when certain conditions are met (see Conditional Visibility)
Help Text - Optional instructional text that appears as a question mark icon next to the label. Users can hover over it to see the help text.
Additional settings for specific question types:
File Upload:
.pdf,.doc,.docx
Checkbox Group:
Number Scale:
For Dropdown, Radio, and Checkbox Group question types, you need to define the available options:
Click Show details or select the question to view the options editor
For each option, enter:
Click + Add option to add more options
Use the arrow buttons to reorder options or the X button to remove an option
Conditional visibility allows you to show or hide questions based on how users answer previous questions. This creates dynamic forms that adapt to user responses.
Select the question you want to conditionally show
Toggle on Show conditionally
The condition editor will appear below the question
Select a Prior question - Only questions that appear before the current question can be used as conditions
Select an Operator to define how the condition is evaluated
Enter or select a Value to compare against
Optionally, click + Add condition to add additional conditions. When using multiple conditions, choose whether All conditions must be met (AND logic) or if Any condition being met is sufficient (OR logic). See Multiple Conditions for more details.
Different operators are available depending on the question type being evaluated:
For Text, Long Text, and Email questions:
For Number and Number Scale questions:
For Dropdown and Radio questions:
For Checkbox Group questions:
For Date questions:
For File Upload questions:
You can add multiple conditions to control when a question is shown:
Click + Add condition to add another condition
Configure the new condition with question, operator, and value
Use the Match toggle to choose the logic:
Click Remove next to a condition to delete it
After configuring your form:
Review your form configuration
Click Save Form to save the form and remain in the Form Builder interface
Alternatively, click the dropdown arrow next to Save Form and select Save and View to save the form and immediately navigate to preview it as users will see it
From the Form Builder home screen, you can manage your existing forms using the actions menu (three dots) next to each form:
View responses - Opens a view showing all submissions for the form. This option is available when the form is configured to create content.
Copy form - Creates a duplicate of the form with all its questions and settings. The copy will be named with "Copy of" prefix.
Delete form - Permanently removes the form. You will be prompted to confirm before deletion. This action cannot be undone.
The Form Viewer is the interface that end users interact with when filling out forms. Creating or cloning a form creates a page builder page in the designated Space where end users will access the form.
When users access a page with a form:
The form title and description are displayed at the top
Required questions are marked with a red asterisk (*)
Questions with help text display a question mark icon that shows additional information on hover
Conditional questions appear automatically when their conditions are met
Field interactions:
Fill out all required fields (marked with *)
Review your responses
Click the Submit button at the bottom of the form
If any required fields are missing or validation fails:
On successful submission:
Form Builder includes an AI-powered assistant that can automatically generate questions based on your description, saving you time when creating forms.
To generate questions using AI:
Click the AI Form Assistant card when starting a new form, or click the ✨ Generate with AI button below the questions list
In the modal that appears, describe the questions you need in plain language. For example:
Click Generate and wait for the AI to create your questions
Review the generated questions. Each question shows its label and type (text, email, dropdown, etc.)
Select which questions to add by clicking on them, or click Select all to choose all generated questions
Click Add Selected to add the chosen questions to your form
Once you have questions in your form, you can use AI to modify them:
Click the ✏️ Modify with AI button below the questions list (this button appears after you have at least one question)
Describe the changes you want to make. For example:
Click Modify and review the proposed changes
Select which modified questions to apply and click Add Selected
Combine logic, templates, and notifications to build sophisticated automation. Here are two high-impact implementations:
Capture technical details dynamically while ensuring clean case organization.
[Asset Request] - {question1.answer} - {user.displayName}
Proactively identify unsatisfied users with automatic escalation.
Use this quick reference for all dynamic tokens and script variables available in Form Builder.
{question[id].answer}
is requesting access to a wiki that you have locked: https://my.axerosolutions.com/spaces/5/axero-documentation/wiki/view/110987/form-builder
Your session has expired. You are being logged out.