Guides

Documentation

Set up Formsig once, then drop a normal HTML form on any site. This page walks you through creating a form, wiring your HTML, optional email and webhooks, Hosted Pages (/p/), and plan limits, for a fuller product rundown see Features.

Quick start (2 minutes)

  1. Create a form in the dashboard and copy its endpoint (/f/{form_id}).
  2. Set your HTML form method to post and action to that full URL.
  3. Submit once and confirm the entry appears in Submissions.

Copy/paste starter:

<form action="https://formsig.com/f/{form_id}" method="post">
  <input name="email" type="email" required />
  <textarea name="message"></textarea>
  <button type="submit">Send</button>
</form>

Want to test first? Open the Playground and submit a sample demo with your endpoint.

Overview

New here? You need a Formsig account and one form in the dashboard. Each form gets its own POST URL. Your page submits to that URL; we store the submission and can email you or call a webhook you configure.

No JavaScript is required for a basic setup: plain <form method="post"> with named fields is enough. File fields work when you use multipart/form-data on the form.

Create a form

  1. Sign in and open Forms in the dashboard.
  2. Create a form and note the form ID (you will see it in the UI).
  3. Your endpoint path is /f/<your-form-id>. The full URL is your Formsig host plus that path, for example https://your-domain.com/f/a1b2c3d4.

Keep the ID private the same way you would an API key: anyone who can POST to it can create submissions.

Connect your HTML form

Point the browser at your endpoint: set method="POST" and action to your full Formsig URL. Add a name on every field you want stored (for example email, message).

For uploads (resumes, attachments, portfolios), set enctype="multipart/form-data" on the <form> and use <input type="file"> fields as needed.

Submissions and email

Every successful POST is saved to your account. Open Submissions on the form to read, search, and export.

Under Account, add and verify the addresses that may receive mail. On each form’s Settings tab, choose notification behavior: instant, off, or digest, depending on what your account supports.

Webhooks

What they do. After a submission is stored, Formsig can send an HTTP POST with JSON to a URL you provide. Useful for Zapier, Make, your own API, or internal tools, no polling from the browser.

Setup. In the dashboard, open the form → SettingsSubmission webhook. Enter an https:// URL reachable from the public internet (localhost URLs are not accepted). Save.

Signing. Optionally set a signing secret. Your endpoint can verify deliveries using the X-Formsig-Signature header (HMAC-SHA256 over the timestamp and raw JSON body). When editing, leave the secret field blank to keep the existing key.

Payload. Requests use Content-Type: application/json. The body includes version, event (for example submission.created), webhook_id, form_id, submission_id, created_at, and data (field values as stored; files appear as metadata, not raw bytes).

Reliability. The visitor’s submit response is not blocked on your webhook. Delivery runs in the background with a timeout and one automatic retry on common transient failures. Return 2xx when you accept the payload.

Email notifications are separate; you can use webhooks even when email is off or on digest.

Verification examples. Verify signatures in your webhook receiver (Node, Python, etc.) before processing. Keep handlers idempotent using submission_id or webhook_id.

AI Chat (Beta)

AI Chat adds a chat bubble (chat widget) to your own website or to a Formsig Hosted Page. Visitors ask questions; answers come from pages crawled from your assistant Site URL plus custom knowledge (AI training notes) you add in the dashboard. Each AI reply counts toward your plan quota (Free includes a one-time trial; paid tiers reset monthly — see Pricing).

Quick terms: AI Chat = the product. Assistant = your bot. Custom knowledge = AI training notes that extend the site crawl. Chat widget = the bubble visitors see.

On your own website

Add one script tag before </body> on any page (or in your site template). The assistant ID comes from Dashboard → Chat:

<script src="https://formsig.com/c/{assistant_id}/widget.js" async defer></script>
  1. Create an assistant in Dashboard → Chat (AI Chat).
  2. Set Site URL to the website you want answers to reflect (your marketing site or docs — not the widget script URL).
  3. Run Crawl site and add custom knowledge for FAQs, policies, or pricing the crawl may miss.
  4. Copy the embed script from the assistant page: one line loads /c/{assistant_id}/widget.js.
  5. Paste the script before on every page where you want the bubble (or in your site-wide layout).
  6. Embed domains: leave empty while testing on any URL; for production, list allowed hostnames (e.g. yoursite.com).

On Formsig Hosted Pages (/p/{slug})

You do not need to paste HTML on Hosted Pages. Edit the page in the dashboard and choose an assistant under AI Chat (optional). When published, the chat bubble appears on that page automatically — same widget as on external sites.

  1. Create and enable an assistant in Dashboard → Chat (same as for external sites).
  2. Open Dashboard → Pages → Edit your Hosted Page.
  3. Under AI Chat (optional), choose an assistant from the dropdown (or paste the assistant ID). Save the page.
  4. Publish the page. The chat widget loads automatically on https://formsig.com/p/{your-slug} (or your Formsig host).
  5. In assistant settings, leave Embed domains empty or add your Formsig hostname (e.g. formsig.com) so the widget is allowed on Hosted Pages.
  6. Hosted Pages can also connect a form: visitors can chat for questions and submit the form for structured leads — both use the same dashboard.

Site URL vs embed domains: Site URL is what Formsig crawls for answers. Embed domains control where the widget script may run. Leave embed domains empty to test anywhere; add formsig.com (or your Formsig host) when using Hosted Pages, and your own domain when embedding on your site.

Email leads

In the widget, visitors can open Get a reply by email, enter their address and message, and send to your team. Leads show in AI Chat → Leads with the page path they were on. The tab badge shows unread leads until you view each one.

Plans and testing

AI Chat is available on Free (one-time reply trial) and on all paid tiers with higher monthly quotas. Check Pricing for assistant count, indexed pages, and reply limits — do not assume a single plan name.

Test embeds in the Playground (AI Chat mode). Guides: Getting started · AI Chat on Hosted Pages.

Webhook templates

Need copy-ready setups for common tools? Open Webhook Templates for Slack, Discord, Zapier, Make, Google Sheets, and custom API endpoints.

Open webhook templates

Common mistakes

  • Wrong endpoint format: use /f/{form_id} exactly (no extra path segments).
  • Missing field names: inputs without name are not stored.
  • Wrong upload encoding: file forms must use multipart/form-data.
  • Localhost webhook URL: webhook destination must be publicly reachable https://.
  • No anti-spam controls on public forms: enable Turnstile and limits where needed.

Troubleshooting

Submit returns error: verify action URL and required field names first.

No webhook delivery: check your receiver returns 2xx and accepts JSON body sizes you send.

Files missing: confirm multipart/form-data and correct file input names.

No emails: confirm recipient addresses are verified and form notification mode is enabled.

Need a fast sanity check? Use Playground to submit known-good samples to your endpoint.

Production checklist

  • Use the correct form endpoint path and keep form IDs private.
  • Enable Turnstile and abuse limits for public traffic.
  • Verify webhook signatures and implement idempotent handlers.
  • Return 2xx quickly; offload heavy work to background jobs.
  • Set up monitoring/alerts for webhook failures and unusual submission spikes.
  • Document who owns each form and response SLA internally.

Need implementation examples? Explore Guides for use-case walkthroughs and comparison articles.

Dashboard

Per form, use Overview and Submissions for traffic and records. Settings covers notifications, webhooks, and related options. When a Guide tab is available, it includes copy-paste snippets for your endpoint.

Next step: after setup, keep one test form in your account so onboarding and regression checks stay fast.

Framework guides

Using React, Next.js, Vue, or SvelteKit? Start with these stack-specific guides: