Forms that turn submissions into contacts
Drag-and-drop builder with every field type you'd expect.
Embed anywhere with one <script> tag.
Every submission auto-creates a tagged contact ready for your drip campaigns.
How it works
From blank canvas to first submission in five minutes.
Drag fields onto the canvas
Text, email, dropdowns, ratings, NPS, sliders, matrix, image picker. Twelve element types out of the box.
Pick a short code
Your form is hosted at flnk.it/form/{your-code}. Permanent, shareable, custom.
Embed or share
One <script> tag for iframe embed. Or share the URL. Or POST submissions via REST.
Watch contacts fill in
Every submission becomes a tagged contact, fires your drip, and pings the form.submitted webhook.
Submissions become contacts. Tagged. Automatically.
Every form submission is upserted into your contact list under a
source:form:{shortcode} tag — the same source-tag convention used by bookings,
shop purchases, and the public subscribe widget.
Existing contacts (matched by email) get empty fields filled in — never overwritten. New contacts are created and surface in your contact list immediately.
Wire a drip sequence to the tag_added trigger
with that source tag and you've got an end-to-end "form fills in → welcome series fires"
pipeline with zero code.
Embed anywhere — three ways
Pick the path that fits your stack.
Hosted URL
Share flnk.it/form/{shortcode} on social, in email, anywhere. Works everywhere, no embed required.
Iframe widget
One <script> tag. Mounts an iframe with full Survey rendering — every field type, real validation.
<script src="https://flnk.it/js/forms-widget.js"
data-form="contact-us"
data-height="600"></script>REST submit
POST answers from a backend, Zapier flow, or custom integration. Anonymous + CORS-friendly.
POST /api/forms/contact-us/submit
Content-Type: text/plain
{"email":"alice@example.com",
"comment":"hi"}Built for integrations
Webhooks
Subscribe to form.submitted at
/payments/webhooks — the same HMAC-signed bus that handles
payment, contact, and mailing events. Every submission fires a POST with the full answers JSON.
Auto-disabled after 10 consecutive failures so a broken receiver doesn't back up the queue. Re-enable manually at any time.
REST API
List forms, read submissions, query schemas, delete forms — all via the
REST API with a scoped forms API key.
Public submit is anonymous (CORS-friendly) so the widget and any third-party flow can post without exposing credentials. Per-IP-per-form 5-second rate limit catches accidental double-clicks.
Ship a form in five minutes
Available on Professional and Unlimited. Submissions, drips, webhooks, REST API — all included.
Frequently asked questions
What kind of forms can I build?
Contact forms, lead capture, surveys, NPS, feedback, event signups, RSVP, support intake — anything with text fields, dropdowns, checkboxes, ratings, NPS, sliders, matrix questions, image picker, and signature fields. The drag-and-drop designer covers the same field types as paid form-builder SaaS.
How do submissions become contacts?
Every submission auto-upserts a contact under a source:form:{shortcode} tag.
Existing contacts get empty fields filled in — never overwritten. New contacts are created.
Wire a drip sequence to the tag_added trigger with that source tag for an automatic
welcome series.
Where do I embed the form?
Three options. (1) Share the hosted URL flnk.it/form/{shortcode}. (2) Embed the iframe
widget with one <script> tag. (3) POST programmatically via the public REST endpoint.
Do I get notifications?
Yes — in-app bell, optional email, optional browser push. The submitter can also receive a branded confirmation email back. Both are toggleable per form.
Can external systems react to submissions?
Yes. Register a webhook with form.submitted in the event list. Every submission fires
an HMAC-signed POST with the full answers JSON to your endpoint — perfect for CRM sync,
Slack notifications, or any custom workflow.
What plan do I need?
Forms are available on Professional and Unlimited plans. Free / Starter / Basic users see an
upgrade prompt on /forms.