Skip to the content
FilDocs

Forms on published sites

Add a form to a published Fil site and keep every answer in Fil: read surveys by question, get each answer by email, download a CSV or have an agent read them.

A form on a published Fil site keeps what people send in Fil: a contact form's messages, sign-ups, orders, the answers to a survey made with the Survey workflow. There's nothing to set up and no other service to connect. Read the answers by question or one by one in the site's Forms panel, download them as a CSV, get an email for each one, or have your agent read them.

A form the agent made, sent in a preview: the thank-you shows, and nothing is kept until the site is published

Add a form to a page

Ask for one, and the agent builds it to keep its answers in Fil, with a thank-you that shows once it's sent:

  • On a new page, say it in the prompt: "a page for Hearth's cake orders, with a form for the order".
  • On a page you have, ask the agent in its Design tab: "add a contact form under the hero". See The design agent.
  • For a survey, start the Survey workflow: its page is built on Fil's survey kit, which keeps every answer in Fil the same way.

It works on every kind of site: a Website, a Simple HTML page and a React app.

Write a form in your own code

If you write a page's HTML yourself, mark the form with data-fil-form and its name. Every field with a name is sent:

<form data-fil-form="contact">
  <label>Your name <input name="name"></label>
  <label>Email <input name="email" type="email"></label>
  <label>Message <textarea name="message"></textarea></label>
  <button type="submit">Send</button>
  <p data-fil-sent hidden>Thanks, we'll write back soon.</p>
  <p data-fil-error hidden></p>
</form>
  • [data-fil-sent] shows once the form is sent, and [data-fil-error] shows why it wasn't. While it sends, the form has data-fil-state="sending", then "sent" or "error", to style it by.
  • A form drawn by a page's own script sends with window.FilForms.send("signup", { email }), which returns a promise.
  • The form's name, such as contact, is how the Forms panel lists it: lowercase letters, numbers and hyphens, up to 48 characters. Use the same name on several pages and their answers go together.
  • Groups of radio buttons and checkboxes are counted choice by choice, as a select's options are. Labels name each question.
  • Fields starting with _ aren't kept. A hidden field named _hp that people leave empty catches bots: anything sent with it filled in is answered as if kept, and dropped.
  • Files and passwords aren't sent.

Publish the site to start keeping answers

Answers are kept once the site is live: publish it, or click Update if it's already published. In a preview on the canvas, forms work as they will and send nothing; a survey says "This is a preview: nothing was sent."

Publishing reads every form on the site's pages, so the panel knows their questions. A form you add later shows once you Update the site. See Publish a website.

Read the answers

  1. Open the site in the Design tab and click Published (or Update) at the top right. On the canvas, select the site's node and click Published in its properties.
  2. The Forms row says how many answers there are and when the newest came. Click Open.
The Publish popover for Hearth, a live survey: hearth.fil.design, Visibility Public, Analytics with 214 visitors in 7 days, Forms with 42 answers, newest 53 min ago, and Open
The Forms row, under Analytics

The Forms panel opens on the site's form. With more than one form, pick one at the top right; each shows how many answers it has. Site settings › Forms has the same row and opens the same panel.

Forms, from the popover to every answer

Summary: each question, counted

Summary shows each question with how many answered it, such as "40 of 42":

  • A choice question lists every choice with its count and share, the most picked in colour. "pick any" marks a question where people could pick several.
  • What people wrote under Something else is listed under "In their own words".
  • A question answered in words lists every answer, newest first; Show all shows the rest.
The Forms panel's Summary for What should Hearth bake next?: 42 answers, Email me each answer, then each question's choices counted with their share, and other bakes people would love to see, in their own words
Each question, with every choice counted

Every answer, in a table

Every answer lists them newest first, a row each and a column for each question. Point at a time under Sent to see the page it came from. The table shows 100 at a time; Show more adds the next 100.

Every answer for the Hearth survey: a row per answer with when it was sent, the bake picked, how often they visit and what they usually pick up
One row an answer, newest first

The panel reads new answers every minute while it's open.

Download a CSV

Click CSV for a file of every answer, newest first: when it was sent, the page, then a column for each question. Choices read as their words, not their codes, and a cell that starts with = + - or @ stays text, so a spreadsheet won't run it. The summary and the CSV cover the newest 2,000 answers.

Delete answers

  • One answer: in Every answer, click the bin at the end of its row (Delete this answer).
  • Every answer to a form: click the three dots beside CSV, then Delete every answer…. Fil asks first ("They can't be brought back."): Delete all or Keep them.

Get an email for each answer

Turn on Email me each answer at the top of a form's answers. Fil emails you what each person sends, question by question, at your account's address.

  • It's for you alone, and form by form. The panel says when someone else on the site gets them too.
  • When answers come in fast, they come together: at most one email every 5 minutes, then further apart while they keep coming, up to one an hour.
  • When the form asks for an email address, reply to the answer's email to write to the person who sent it.
  • See every answer in the email opens the Forms panel on that form. Its address, fil.design/#canvas/…/forms/…, opens it straight away, so you can bookmark it.
The email for a new cake order: New answer to Cake order, each question with its answer, Sent from the home page, Reply to this email to write to grace.lee@example.com, and See every answer
One email an answer, or a few together when they come fast

To stop them, turn the switch off in the panel.

Read answers with an agent

An agent connected to Fil reads a site's answers with the get_answers tool: each form's questions with every choice counted and the words people wrote, then its newest 50 answers, or up to 500. Ask it something like "what did people say about the price in the Hearth survey?". See MCP tools.

Who sees the answers

  • Only people who can edit the site see its answers: you, and anyone who can edit its canvas. People who can only view the canvas don't.
  • No address or other technical data is kept with an answer. Fil counts a visitor with the same daily anonymous number as analytics, and turns bots away.
  • On a site with a Password, visitors send its forms once they're in.

Limits

Up to
Answers from one visitor20 an hour
Answers to one site2,000 a day
Answers kept for one site50,000
Questions in one answer80
One typed answer5,000 characters

Past a limit, the form says "Too many sent from here. Try again later." and keeps nothing more until there's room; deleting answers makes room. Forms and answers are free on every plan.

What's next