CLI & MCP

Waymaker forms

Manage forms in Commander. Create forms, collect submissions, and integrate with tables and automations.

FormsData Collection
Last updated: January 21, 2026

Overview

Manage forms in Commander. Create forms, collect submissions, and integrate with tables and automations.

Usage

waymaker forms <subcommand> [options]

Subcommands

SubcommandDescription
listList forms
getGet form details
createCreate a new form
updateUpdate form settings
submissionsView form submissions
publishPublish/unpublish form

List Forms

waymaker forms list --workspace <workspace-id>

Output:

Forms (5)

id           name                  submissions   status      created
--------------------------------------------------------------------
form_abc123  Contact Form          1,250         published   Jan 2026
form_def456  Newsletter Signup     890           published   Jan 2026
form_ghi789  Support Request       340           published   Jan 2026
form_jkl012  Event Registration    0             draft       Jan 2026

Filter by Status

waymaker forms list --workspace ws_xxx --status published

JSON Output

waymaker forms list --workspace ws_xxx --json
[
  {
    "id": "form_abc123",
    "name": "Contact Form",
    "submission_count": 1250,
    "status": "published",
    "workspace_id": "ws_xxx",
    "created_at": "2026-01-01T00:00:00Z"
  }
]

Get Form Details

waymaker forms get <form-id>

Output:

Contact Form

ID: form_abc123
Workspace: ws_xxx
Status: published
URL: https://forms.waymakerone.com/f/abc123
Created: January 1, 2026

Submissions: 1,250
Last Submission: 2 hours ago

Fields: (6)
  1. name (text) - required
  2. email (email) - required
  3. phone (phone)
  4. company (text)
  5. message (textarea) - required
  6. how_heard (select) - [Google, Referral, Social Media, Other]

Settings:
  Table: Contacts (tbl_xxx)
  Notification: sales@company.com
  Redirect: /thank-you

JSON Output

waymaker forms get form_abc123 --json

Create Form

waymaker forms create \
  --workspace <workspace-id> \
  --name "New Form"

Output:

✓ Form created (draft)
ID: form_new123
Name: New Form
Status: draft

Add fields with:
  waymaker forms add-field form_new123 --name "email" --type email --required

Publish with:
  waymaker forms publish form_new123

Create with Fields

waymaker forms create \
  --workspace ws_xxx \
  --name "Contact Form" \
  --fields '[
    {"name": "name", "type": "text", "label": "Full Name", "required": true},
    {"name": "email", "type": "email", "label": "Email Address", "required": true},
    {"name": "message", "type": "textarea", "label": "Your Message", "required": true}
  ]'

Create Linked to Table

waymaker forms create \
  --workspace ws_xxx \
  --name "Lead Capture" \
  --table tbl_contacts \
  --fields '[
    {"name": "name", "type": "text", "required": true},
    {"name": "email", "type": "email", "required": true}
  ]'

Add Field to Form

waymaker forms add-field <form-id> \
  --name "field_name" \
  --type text \
  --label "Field Label"

Field Types

TypeDescription
textSingle line text
textareaMulti-line text
emailEmail input
phonePhone number
numberNumeric input
selectDropdown select
radioRadio buttons
checkboxCheckboxes
dateDate picker
fileFile upload
hiddenHidden field

Add Select Field

waymaker forms add-field form_abc123 \
  --name "category" \
  --type select \
  --label "Category" \
  --options "Sales,Support,Partnership,Other"

Add Required Field

waymaker forms add-field form_abc123 \
  --name "email" \
  --type email \
  --label "Email Address" \
  --required \
  --placeholder "you@example.com"

Update Form

waymaker forms update <form-id> \
  --name "Updated Form Name"

Update Settings

waymaker forms update form_abc123 \
  --redirect-url "https://company.com/thank-you" \
  --notification-email "team@company.com"

Update Field

waymaker forms update-field <form-id> <field-name> \
  --label "New Label" \
  --required

Remove Field

waymaker forms remove-field <form-id> <field-name>

View Submissions

waymaker forms submissions <form-id>

Output:

Submissions: Contact Form (1,250)

id           name           email                    submitted
--------------------------------------------------------------
sub_001      John Smith     john@company.com         2 hours ago
sub_002      Jane Doe       jane@example.com         4 hours ago
sub_003      Bob Wilson     bob@startup.io           Yesterday

Filter by Date

waymaker forms submissions form_abc123 \
  --from "2026-01-01" \
  --to "2026-01-21"

Get Single Submission

waymaker forms submissions form_abc123 --submission sub_001

Submissions as JSON

waymaker forms submissions form_abc123 --json

Export Submissions

waymaker forms submissions form_abc123 \
  --export csv \
  --output ./submissions.csv

Publish/Unpublish Form

Publish

waymaker forms publish <form-id>

Output:

✓ Form published
ID: form_abc123
Name: Contact Form
URL: https://forms.waymakerone.com/f/abc123

Embed code:
<iframe src="https://forms.waymakerone.com/f/abc123" width="100%" height="600"></iframe>

Unpublish

waymaker forms unpublish <form-id>

Options Reference

list

OptionTypeDescription
--workspacestringRequired. Workspace ID
--statusenumFilter by status (published, draft)
--jsonflagOutput as JSON

get

OptionTypeDescription
--jsonflagOutput as JSON

create

OptionTypeDescription
--workspacestringRequired. Workspace ID
--namestringRequired. Form name
--fieldsstringFields as JSON array
--tablestringLink to table for submissions

add-field

OptionTypeDescription
--namestringRequired. Field name
--typestringRequired. Field type
--labelstringDisplay label
--requiredflagMake field required
--optionsstringOptions for select/radio
--placeholderstringPlaceholder text
--positionnumberField position

update

OptionTypeDescription
--namestringForm name
--redirect-urlstringPost-submission redirect
--notification-emailstringNotification recipient
--success-messagestringSuccess message

submissions

OptionTypeDescription
--fromstringStart date (YYYY-MM-DD)
--tostringEnd date (YYYY-MM-DD)
--submissionstringGet specific submission
--exportenumExport format (csv, json)
--outputstringExport file path
--limitnumberMaximum results
--jsonflagOutput as JSON

AI Agent Workflow

# List all forms
FORMS=$(waymaker forms list --workspace ws_xxx --json)

# Get recent submissions
SUBMISSIONS=$(waymaker forms submissions form_abc123 --json)

# Count submissions by source
echo $SUBMISSIONS | jq 'group_by(.how_heard) | map({source: .[0].how_heard, count: length})'

# Create form dynamically
waymaker forms create \
  --workspace ws_xxx \
  --name "$AI_FORM_NAME" \
  --table $TARGET_TABLE \
  --fields "$AI_GENERATED_FIELDS"

# Export for analysis
waymaker forms submissions form_abc123 \
  --from "$(date -v-30d +%Y-%m-%d)" \
  --export json \
  --output /tmp/recent_submissions.json

# Auto-publish validated form
waymaker forms publish form_new123