Skip to content
GuideAPIANT.aiv2

Hosted forms

View .md

How the Forms app hosts form pages for an automation, either starting a run on every submission or pausing a run until one person fills in a form, with the field types and limits.

The Forms app serves form pages from APIANT, with no external form service. A form is a list of fields that Claude or the assistant writes for you; the page is rendered by the platform and every submission is validated on the server before an automation sees it.

Two ways to use a form

ShapeOperationsURLUse it for
Form triggerForm submitted (instant) triggerOne stable URL. Every submission starts a new run.Intake forms, surveys, contact pages
Form sent during a runCreate form, then Await form submission or Await form submission with timeoutOne URL per run. The run pauses until the form is submitted.Sign-off with details, collecting a signature, asking a person for missing data

Describe what you want in plain English, for example: "When someone submits a project intake form with their email, department and a PDF brief, create a task in Asana." Claude builds the form fields, the trigger and the steps, and gives you the form URL when it commits the automation.

Form trigger

The form trigger URL stays the same across submissions. Each valid submission starts a run whose trigger data holds the submitted values, keyed by field name. After submitting, the visitor sees a waiting page. If the automation shows another form later in the run, the waiting page moves the visitor on to it; otherwise it shows a confirmation.

The form page only renders while the automation is on. Visitors to a form whose automation is off see the message "This form's automation is not turned on."

A hosted APIANT form titled Equipment request, with a text block, a required Full name field, a Department dropdown, a Details text area, a file upload and a signature pad above the Submit button.

A hosted form shows its title, each field with its help text, and a Submit button.

Form sent during a run

Create form returns a Form URL. A step you add sends that URL to the person (by email, chat or any other app), and Await form submission pauses the run until they submit.

When the run resumes, the await step outputs:

OutputValue
SubmissionThe submitted values, keyed by field name
SubmittedSet when the person submitted the form
HaltedSet when the person pressed the optional halt button
Timed outSet when the deadline on Await form submission with timeout passed

All four outputs are present on every resume, so a condition step can branch on them. On timeout, Submission is empty.

The Form URL from Create form is a session page. It shows whatever the run is presenting: the pending form, a waiting message while the run works, the next form, and finally the completion message. To ask one person for several forms in a row, chain Create form and Await form submission pairs in one automation and send only the first URL.

While the run works between forms, the page shows the waiting message you set and updates on its own.

Form options

These options apply to Create form. Ask Claude for any of them by name.

OptionEffect
Form titleHeading shown above the fields
Waiting messageText shown while the run processes after a submission. Update form waiting message changes it mid-run.
Halt button textAdds a second button that resumes the run with Halted set and no values
Submit button textCaption of the submit button. Blank shows "Submit".
Submit actionWhat the page does after the submission: an http(s):// URL redirects the visitor; plain text becomes the confirmation message shown when the run finishes; blank shows the default confirmation
Auto submitRenders nothing and submits immediately, for forms whose values are already filled in
Account requiredSends a signed-out visitor to an APIANT sign-in page before showing the form. The run receives the signed-in person's ID and name. Accepts true or false only.

| Theme options | Controls color, Controls color dark, Highlight color (6-digit hex), Corner radius (px), Background image and Background image style (stretched, tiled or unstretched) |

Field types

TypeRendersValue in the run
text, multilineText input, text area. Optional pattern (regular expression).Text
select, radioDropdown, radio group. Requires options.Text
multiselectCheckbox list. Requires options.List of text values
date, time, datetimeBrowser date and time pickersYYYY-MM-DD, HH:MM, YYYY-MM-DDTHH:MM
checkbox, switchCheckbox, toggleTrue or false
number, sliderNumber input, slider (min, max, step; slider defaults to 0 to 100)Number
rating_starsStar rating (max_stars, default 5)Whole number
rating_scaleNumbered buttons (min, max, default 1 to 10)Whole number
colorColor picker#rrggbb
countryCountry dropdownText
signatureDraw-to-sign padPNG image as a data URL
fileFile upload (accept extension list, max_size_bytes, default 10 MB)Public URL of the uploaded file
captcha_math"What is A + B?" checkValidated only, not passed to the run

Display-only elements render but never reach the run: text_block, html (scripts and iframes are removed), image, divider, spacer, download_link and copy_button.

Every field has a name (the key in the submitted data), and can have a label, required and helptext. Field names must be unique, and a form needs at least one input field. The page runs no custom JavaScript, and dropdown options are fixed in the form definition.

Empty optional fields still arrive in the run: as empty text, null for number, slider, rating_stars and rating_scale, false for checkboxes and switches, and an empty list for multiselect.

Limits and security

  • Form trigger submissions count against your plan's monthly form submission limit, not the instant trigger limit. Over the limit, the form page shows a limit message instead of the form. See Plans, usage and billing.
  • Uploaded files are stored in APIANT's temporary file store and removed on a schedule. Copy a file to another app in the same run if you need to keep it.
  • A form trigger URL is public: treat it like a page on your website. A form URL sent during a run works like a password for that run. captcha_math deters bots but does not identify the visitor; use Account required for that.
  • A run cannot pause for a form inside a parallel branch, inside an automation called and waited on by another automation, or in a run started by a polling or collector trigger. Use a webhook or manual trigger for automations that send forms.

Troubleshooting

SymptomCause and fix
The form page says the form's automation is not turned onThe automation is off. Ask Claude to turn it on.
A person lost the form link for a paused runAsk Claude for the pending form link for that run. The link returned resumes that one form only; for a run that shows several forms in a row, keep the first Form URL when the automation is built.
A submission shows an error and the run never startsThe value failed validation (a required field is empty, a pattern did not match, or a file is too large or the wrong type). The page shows the message; nothing is recorded.
The form shows a limit messageThe account reached its monthly form submission limit.
A step reads an empty valueThe step references a field name that does not match the form. Field names are case-sensitive and may contain spaces.

Next steps

Related docs

Last updated September 15, 2026