Advanced · Lesson 17 of 22

Building Forms & Intake Workflows

A Coda form is just another view of your table — but one that anyone can fill out. Submissions create rows directly, with no export, no transfer, and no manual entry. Chain it with automations to build complete intake pipelines.

⏱ ~24 min 📋 Forms & Automation ✅ Prerequisite: Lesson 16
01 — Forms Are Table Views 02 — Creating a Form 03 — Field Types 04 — Publishing & Sharing 05 — Automations on Submit 06 — Conditional Fields & Pre-fill Practice
01 — The Model

A form is just another view.

In Coda, a form is not a separate product or integration — it's a view type attached to a table, exactly like Board or Calendar. Every submission creates a new row in the underlying table. That row is immediately available for formulas, views, automations, and filtering — no sync delay, no export pipeline, no manual entry step.

🔗

Submissions = rows

Each form submission creates one new row in the table the form is attached to. Every column in the table becomes a potential form field.

🌐

No account required

External users submit via a published URL. They don't need a Coda account. Data lands in your table the moment they hit Submit.

Immediately queryable

New rows are live instantly. Formula columns populate, views filter, and automations fire the moment the submission arrives — no waiting.

Replace the Google Form + Sheets + manual copy workflow A common pain point: a Google Form posts to a Sheet, someone manually copies rows to a project tracker, formulas break, things get missed. Coda forms eliminate the middle steps — form submissions go directly into your working table with all formulas live from the first row.
02 — Creating & Configuring

Two paths to a form.

You can create a form from scratch on a canvas, or add a form view to an existing table. Both produce the same result — a form view linked to a specific table.

Two ways to create a form
A
From a canvas: Type /form on any blank line → select the table you want submissions to go into. A form view is created and embedded on the canvas page.
B
From a table: Open any table → click "Add view" in the view bar → select Form. A new form view appears as a tab alongside Grid, Board, and Calendar views.

Form editor controls

Field configuration

  • Toggle fields on/off — hide columns not relevant to submitters
  • Mark required — ☆ → ★ on any field (submitter must fill it)
  • Drag to reorder — put the most important fields first
  • Add helper text — per-field placeholder or description

Live preview

The form preview on the right side of the editor updates live as you configure fields. Toggle a field off and it disappears from the preview instantly — no need to save and reload.

03 — Field Types

Column types become form inputs.

Each column type in your table maps to a specific input control in the form. Coda handles the rendering automatically — you don't configure input types manually. Some column types are hidden from forms by design because they aren't relevant to external submitters.

Column type → Form input mapping
Column Type Form Input Notes
Text Single-line or multi-line text box Multi-line shown for long-text columns
Number Number input with increment arrows Validates numeric input only
Date Date picker calendar popup Mobile-friendly date selector
Select Dropdown — choose one option Options from column's defined choices
Select List Multi-select checkboxes Submitter can pick multiple options
Checkbox Single on/off toggle Defaults to unchecked
URL Text input with URL format validation Flags invalid URLs before submit
Auto-hidden column types: Person, Formula, Canvas, and Button columns are automatically excluded from forms — they require context that external submitters can't provide.
04 — Publishing & Sharing

One URL, no login needed.

A form is only accessible to submitters after you publish it. Unpublished forms can be configured and previewed but not submitted by external users. Publishing generates a shareable URL — anyone with the link can submit, no Coda account required.

🔗

Publish & share

Click "Publish form" in the form editor → copy the shareable URL. Share via email, Slack, a website, or QR code. Submissions appear as new rows in real time.

🔢

Submission limits

Default: unlimited submissions from anyone. Optional: single submission per person — requires submitters to log in with a Coda account, useful for internal surveys.

Embed on any website Coda provides an iframe snippet alongside the shareable URL. Paste it into any HTML page, a Notion embed, a Webflow section, or a WordPress page. The form renders and submits exactly as it does standalone — no additional configuration needed.
Submissions are live You don't need to manually refresh or sync to see new submissions. New rows appear in the table the moment a submitter clicks Submit. Formula columns calculate immediately, automations fire, and filtered views update in real time.
05 — Automations on Submit

Process submissions without watching the table.

The most powerful aspect of Coda forms isn't the form itself — it's what happens after. Any automation attached to the underlying table can use a "Form submitted" trigger, firing the moment a new row arrives. You can stack multiple automations on the same trigger — each fires independently.

Automation 1 — Slack notification on new support request
When:   Form submitted → Support Requests table
If:     (no condition — fire for every submission)
Then:   Slack.PostMessage(
          "#support",
          "New request from " & [Name] & ": " & [Issue]
        )
Automation 2 — stamp metadata and assign on submission
When:   Form submitted → Support Requests table
If:     (no condition)
Then:   ModifyRow(thisRow,
          [Status], "New",
          [Received At], Now(),
          [Assigned To], "support@company.com"
        )

"Form submitted" trigger

Add this trigger in the Automations panel for the table. It fires the moment any submission creates a row — before a human has seen the new entry.

📬

Chain automations

Multiple automations on the same trigger fire simultaneously. One stamps metadata, one Slack-notifies the team, one emails the submitter — all from a single form submission.

06 — Conditional Fields & Pre-fill

Show fields contextually. Pre-fill from URLs.

Two advanced form features reduce friction and improve data quality: conditional display hides irrelevant fields based on previous answers; pre-fill via URL parameters populates fields automatically before the submitter even arrives.

Conditional field display

Set a display condition on any field in the form editor. The field appears only when the condition is met. Example: show "Company Name" only when "Contact Type" = Business. The same form adapts to consumer vs. business context — no duplicate forms to maintain.

Conditional display — Contact Type drives field visibility
Contact Type = Consumer
✅ Full Name
✅ Email
✅ Contact Type
Company Name (hidden)
Contact Type = Business
✅ Full Name
✅ Email
✅ Contact Type
Company Name (shown)

Pre-fill via URL parameters

Append field values to the form URL using ?[Column Name]=value (URL-encoded). The form loads with those fields pre-populated — submitters see context, not a blank form. Useful for campaign links, bot-triggered forms, or workflows that open a form with known data pre-set.

Pre-fill URL examples
// Pre-fill Department and Priority from a campaign link
https://coda.io/form/abc123?[Department]=Engineering&[Priority]=High

// From a Slack bot — open form with submitter's name pre-filled
https://coda.io/form/abc123?[Name]=Priya%20Mehta
Full intake workflow recap (1) User submits form at published URL. (2) Row created in table with submitted values. (3) "Form submitted" automation fires: stamps Received At = Now(), sets Status = "New". (4) Second automation Slack-notifies the team. (5) Team member updates Status = "In Review". (6) Third automation emails the submitter a confirmation. Zero manual steps from submission to acknowledgment.
Practice

Test your knowledge.

Forms & Intake Workflows

Fill in the Blank
Question 1
Each form submission creates a new ___ in the underlying table.
Question 2
To create a form from an existing table, click __________ in the table's view bar and select Form.
Question 3
The automation trigger type that fires when a form is submitted is: ______________
Question 4
The URL parameter format for pre-filling a form field is: ________________
Question 5
Clicking "Publish form" generates a ____________ that anyone can use to submit without a Coda account.
← Prev Subpages, Detail Views & Canvas Columns Lesson 16