Create and Configure Forms
Guide to creating forms and configuring unique Bifrost features
Creating a Form
Section titled “Creating a Form”Forms → + button → Fill in:
- Name: Display name (max 200 chars)
- Linked Workflow: Workflow to execute on submit
- Scope: Global or Organization-specific
Form Builder
Section titled “Form Builder”Left Panel: Workflow parameters and field types

Canvas: Drag, drop, and reorder fields

Unique Features
Section titled “Unique Features”Launch Workflows
Section titled “Launch Workflows”Optional workflow that runs when form opens. Results available in context.workflow.* for visibility expressions and HTML templates.
Use cases:
- Pre-populate field options based on user
- Show/hide Dynamic Fields
- Display personalized content
// Example: Show field only for adminscontext.workflow.is_admin === true;Visibility Expressions
Section titled “Visibility Expressions”Show/hide fields with JavaScript expressions:
// Access form fieldscontext.field.country === "USA";
// Access launch workflow resultscontext.workflow.user_role === "manager";
// Access URL parameterscontext.query.department !== null;
Data Providers
Section titled “Data Providers”Dynamically populate dropdowns from workflows.
Select a data provider from the dropdown. Options load when form opens.
If provider needs parameters, configure how to provide them:
| Mode | Description |
|---|---|
| Static | Hard-coded value |
| Field Reference | Value from another field |
| Expression | JavaScript expression |
Example: Managers dropdown updates when user selects department.
HTML Content Fields
Section titled “HTML Content Fields”Display dynamic content with full context access:
<div className="p-4 bg-blue-50 rounded"> <h3>Welcome, {context.workflow.user_email}!</h3> {context.workflow.is_admin && ( <p className="text-red-600">Admin Access Enabled</p> )}</div>Features: React-style className, conditional rendering, full context access.
Query Parameters
Section titled “Query Parameters”Pre-fill form fields from URL:
/execute/form-id?email=user@example.com&dept=ITEnable per-field in configuration → Allow as Query Parameter
Access via context.query.field_name in expressions.
File Uploads
Section titled “File Uploads”Settings: Allowed types (.pdf, image/*), max size, multiple files
Returns to workflow:
[ { "filename": "document.pdf", "content_type": "application/pdf", "size_bytes": 1024000, "sas_uri": "https://..." }]The sas_uri is a secure, time-limited URL.
Best Practices
Section titled “Best Practices”- Drag workflow parameters first: Auto-configures fields correctly
- Keep expressions simple: Easier to maintain and debug
- Use static options when possible: Faster than data providers
- Limit HTML templates: Can impact performance
- Test visibility expressions: Use context viewer to debug
Troubleshooting
Section titled “Troubleshooting”Fields not appearing: Check visibility expression returns true, use context viewer
Data provider empty: Verify provider exists, check required parameters
Launch workflow not running: Verify workflow selected and parameters provided
Next Steps
Section titled “Next Steps”- Data Providers - Dynamic dropdown options
- Visibility Rules - Conditional field display