Skip to content

Intake Form Builder

Create intake forms visually using the drag-and-drop form builder.

Opening the Form Builder

  1. Navigate to your project
  2. Click Editor in the workspace header
  3. Select an intake form from the sidebar, or open it from Settings → Visual Editors → Intake Form Editor

Building a Form

Adding Fields

Use the Add Field palette on the left: - Input fields: Text, Number, Email, Phone, Date, etc. - Layout elements: Headings, Paragraphs, Dividers - Special fields: File Upload, Rating, Scale

Reordering Fields

  • Drag and drop: Grab a field card and drag it to a new position
  • Arrow buttons: Use the up/down arrows on each field card

Field Properties

Click a field to edit its properties in the right panel: - Label: Display name shown to users - Type: Field input type - Required: Whether the field must be filled - Placeholder: Hint text shown in empty fields - Maps To: Link to issue properties (title, description, priority, etc.)

Publishing

Click Publish to make your form live. The editor validates all fields before publishing.

Sharing Forms

Every published form gets a public URL that anyone can access without logging in:

https://your-domain.com/intake/YOUR_FORM_SLUG

Find the link in Settings → Intake Forms → your form → Share.

If your organization has a custom slug, the URL includes it:

https://your-domain.com/intake/ORG_SLUG/YOUR_FORM_SLUG

Embedding in External Sites

Embed a form on any website using an iframe:

<iframe
  src="https://your-domain.com/intake/YOUR_FORM_SLUG/embed"
  width="100%"
  height="600"
  frameborder="0"
  style="border: none; border-radius: 8px;">
</iframe>

The embed endpoint serves a minimal, standalone version of the form without navigation or headers — designed to look native inside your site.

CORS: The embed endpoint sets permissive CORS headers so the iframe works from any origin.

Requiring Authentication

By default, forms are public. To require users to log in before submitting:

  1. Open the form in the editor
  2. Set require_auth: true in the YAML settings block, or toggle Require authentication in the form settings panel

Authenticated forms show a login prompt to anonymous visitors.

Submission Routing

Field Mapping

Map form fields to issue properties so submissions automatically create issues:

Maps To Effect
title Sets the issue title
description Sets the issue description
priority Sets priority (low, medium, high, critical)
assignee Assigns to a user by email
issue_type Sets the issue type
labels Adds labels (comma-separated)

Notifications

Enable notify_on_submission: true in settings to send notifications when forms are submitted. Notifications go to the project owner and any configured watchers.

YAML Reference

intake_form:
  key: bug_report
  name: Bug Report
settings:
  submit_label: Submit Bug
  require_auth: false
  notify_on_submission: true
  confirmation_message: "Thanks! We'll look into this."
fields:
  - id: title
    type: string
    label: Summary
    required: true
    placeholder: "Brief description of the bug"
    maps_to: title
  - id: severity
    type: select
    label: Severity
    required: true
    options: [low, medium, high, critical]
    maps_to: priority
  - id: description
    type: markdown
    label: Steps to Reproduce
    required: true
    maps_to: description
  - id: screenshot
    type: file
    label: Screenshot (optional)

See the Intake Form JSON Schema for all available field types and options.