Help center
Go to home
Go to templates
Go to settings
Go to help center

FAQ

Short answers to the questions that come up most: what is free, how the builder behaves, indexing, exports, timezones, ids and the paid features.

The questions people ask about Tinyform most often, answered in a sentence or two each. Where an answer needs more room it links to the page that has it.

Pricing

How many forms can I make for free?

As many as you like. Tinyform does not count forms on any plan, and the number of responses a form collects is not a plan boundary either. What bounds "unlimited" is a small set of fair-use allowances that apply to every account the same way, paid or not. They are listed with their live figures on Fair Use Policy. Only two things cost money: hiding the "Made with" badge and connecting a custom domain. Where no paid plan is sold, both are included.

Form builder

Can respondents stop and resume answering at a later point?

Yes, if you switch it on. Open the form's Settings tab, go to Behavior and turn on Save answers for later. From then on a respondent who closes the tab and comes back in the same browser finds their answers where they left them. The answers are kept in that browser's own storage rather than on the server, so a different browser or device starts fresh. They are discarded the moment the form is submitted, and a draft nobody returns to expires after 30 days.

Do you support radio buttons?

The Multiple choice block is one. It accepts a single answer unless you turn on Multiple selection in its options, so a respondent sees exactly the pick-one control a radio group gives them. If you want tick boxes instead, turn Multiple selection on or use the Multi-select block.

How do I set up one question per page?

There is no switch that splits a form one question per page. Build a multi-page form instead: type /page on an empty line after each question to insert a New page block, and the form steps through them one at a time. If you want respondents to see how far along they are, turn on the progress bar under Settings.

How do I collect a number input starting with zero?

Use a Short answer block. A Number block checks that the answer is a number and, once exported, a spreadsheet will read 007 as 7. A value with a leading zero is an identifier rather than a quantity, and a text field keeps it exactly as typed.

Can I embed a form in an email?

No. Mail clients strip the script and the frame an embed needs, so a form cannot run inside a message. Put a link to the form in the email instead. If you already know who you are writing to, pass what you know in the link as hidden fields and set the matching questions' default answers to mention them, so the form opens filled in. Pre-populate form fields and How to embed a form in an email walk through both.

Do hidden fields also work when I embed my form?

Yes. The embed script forwards the host page's own query string into the frame, so a visitor who lands on yoursite.com/contact?ref=twitter fills a hidden field named ref with twitter without you doing anything. You can also fix a value in the embed itself by appending it to the frame's address, for example /embed/<id>?plan=pro, or, for a popup button, with a data-tinyform-plan="pro" attribute on the element that opens it. Any key that is not one of the widget's own options is read as a hidden field. Embed your form has the snippets.

Can I add UTM parameters to my form?

Yes. Add a Hidden fields block and name a field for each parameter you want to keep, utm_source, utm_medium and so on. When the form is opened through a link carrying those parameters, each one is stored with the submission and shows as its own column in the Submissions tab. See Hidden fields.

How do I set character limits for an answer?

Open the options popover from the handle beside a Short answer or Long answer block and fill in Min characters or Max characters. A respondent who goes outside the range is told how many characters are required and the form does not submit until it is fixed.

Is this product GDPR compliant?

You are the controller of what your respondents type, and the product gives you the controls a compliant form needs: a retention period per form, deletion of individual responses, and a Checkboxes block for consent. Answers are not passed to any third party for the product's own purposes. GDPR explains how the roles fall out, and How to create a GDPR compliant form is the practical checklist.

Are my forms indexed by search engines?

A published form at /r/<id> carries no noindex tag, so a search engine that finds the link can index it. What Tinyform never does is hand out a list: the sitemap deliberately leaves published forms out, so a form is only found if someone posted its address somewhere a crawler reads. Nothing on the form's own Settings tab changes this.

A form on a custom domain has its own control. Open the domain under Domains, find Search engine visibility in its meta section, and switch it off to add a noindex tag to every page served on that domain. You can also add the tag yourself through code injection.

How do I export my form submissions?

Open the form's Submissions tab and use the download control at the top of the table. The CSV carries every column the table shows, opens with the submission id and the submitted time, and follows whichever filter you are on, so the Partial tab exports only partial responses. There is a second download for the file uploads, bundled as a ZIP. Each row also has its own Download PDF. The public REST API and webhooks are the two ways to move responses out automatically; a spreadsheet sync is not available yet, see Google Sheets Integration.

Can I change the timezone in which my form submissions are displayed?

The Submissions tab formats every time in the browser that is looking at it, so what you see is your own clock and a colleague in another country sees theirs. A CSV export and the webhook payload carry the stored time in UTC. The one place a timezone is chosen explicitly is a scheduled close: when you turn on a close date under Settings, the form records the timezone you were in at that moment and reads the date in it, and you can pick a different zone in the same row.

Customization

How can I customize my form?

Open the Customize panel in the editor. It has the theme (light or dark), the font, the background, text, accent and button colours, the corner radius, the layout width and alignment, and the logo and cover. Further down are the geometry of inputs and buttons and a Custom CSS box that applies to that form only. None of it is paid. You can also format text, lay blocks out in columns and embed content between questions. Customize your form goes through the panel control by control, and Custom CSS covers the stylesheet.

Can I change the OG image of my form?

Yes. Open the form's Share tab and Customize Link Preview: the dialog holds the title, the description, the site name, the image and the icon a pasted link unfurls with, and shows the card exactly as a crawler will read it. A form you have not customised unfurls with its name and a default picture. The cover image is not used as the preview image.

Can I use an image as my form background?

Yes, through the Custom CSS box in the Customize panel. Target the form's page wrapper with a background-image rule; the stylesheet is scoped to that form and nothing else on the page. See Custom CSS.

Can I use custom fonts in my form?

The Font picker in Customize offers either the whole Google Fonts catalogue or a shorter built-in list, and every family in either one loads on the published page. A font that is not on Google Fonts can be loaded on a custom domain with code injection: inject the @font-face or the stylesheet link, then name the family in Custom CSS.

What are the ideal image dimensions?

  • Cover: the band changes shape with the window, so there is no one aspect ratio to aim for. Use an image at least 1500 pixels wide and keep the subject near the middle, since the edges are cropped first.
  • Logo: a square, 200 by 200 pixels is enough. It is drawn small, straddling the bottom edge of the cover.
  • Images in the form: an Image block spans the form's column, which is around 700 pixels wide on a desktop. Upload at 1400 pixels wide or more so it stays sharp on a high-density screen.

An upload of any kind is capped at 10 MB.

Data collection

Can I collect passwords with this product?

Do not. A form is not a secure channel for a secret: an answer is stored as plain text, appears in the Submissions table, in exports, in notification emails and in webhook payloads, and everyone in the workspace can read it. The same goes for card numbers, bank details and government id numbers. See Terms and Conditions for the rules that bound what a form may ask for. Collect only what you need, and if you must take a card, use the Payment block rather than a text field: the card box is Stripe's own and the number never reaches this app. See Payment forms.

Integrations and tracking

What is the submission ID?

Every completed response gets a Submission ID when it is stored: a 10-character id from an alphabet with no look-alike characters, so it can be read aloud or typed from a printout. It is the first column of the CSV, it travels in the webhook payload and the API, and you can mention it as @Submission ID in a thank-you page, in an email notification and in the redirect URL. Tinyform does not assign a persistent respondent id across forms; to recognise a returning person, ask for an email or pass an id of your own in a hidden field.

My integration is not working, what can I do?

Webhooks are the one live integration, and every request made to your endpoint is logged. Open the form's Integrations tab and press Events log on the webhook's row: each delivery shows its status, the HTTP status code and the response your endpoint gave, and a failed one is retried on a schedule. The Webhooks page has the payload and the retry schedule.

How do I track conversions?

Tinyform has no built-in pixel or analytics integration yet; the Google Analytics and Meta Pixel pages say what is coming. What works today:

  • Embed the form on a page you already measure and listen for the widget's postMessage events, which report a view of the form and a completed submit. Track form events with Google Tag Manager or Meta Pixel shows the wiring.
  • Redirect on completion to a thank-you page on your own site that carries your pixel, and count that page's hits.
  • Read the form's own Insights tab, which counts views, submissions and unique respondents without any tag at all.

Account settings

How do I change my password?

Open Settings from the left rail. The account page has your photo, name, email and password, two-factor authentication, connected sign-in providers and the danger zone. Press Change password beside the password field; an account that only ever signed in with Google sees Set password instead, since there is no current one to ask for.

Where can I find my billing data?

Settings in the left rail, then the Billing tab. It shows the plan the organization is on, when it renews or ends, this month's usage meters against the fair-use allowances, and a door to the payment portal once the organization pays. Where no paid plan is sold the page says everything is included and nothing more.

The Pro plan

How many custom domains can I connect?

There is no cap. The paid feature is being allowed to connect a custom domain at all; once a workspace has it, the number of domains is not metered. See Custom domains and The Pro plan.

How many users can I invite to my organization?

There is no limit on members, on any plan. Members are not a billing dimension: inviting somebody costs nothing and unlocks nothing. See Invite team members.

Still have questions?

Browse the common guides for worked examples, or the Features section for one page per block and setting. If neither has the answer, contact support.