Concorbit HelpAll guides →

Overview

Forms

Build public data-capture forms for lead generation, support intake, surveys, feedback, or any other use. Every form has a unique public URL you can share directly or embed on your website.

URL: /forms
Required permission: forms.view

What you can do

  • Capture leads: forms can automatically create a Contact (and link it to a Deal if you like) from each submission.

  • Route support intake: forms can create a Ticket from each submission, pre-filling subject, body, and priority from the submitted values.

  • Track submissions: every form has its own submissions inspector where you can see the full captured payload, the visitor's IP, and the linked record (if any).

  • Trigger automations: any concorbit Automation workflow can be wired to "when a form submission is created" as its trigger.

The form list

From the sidebar, click Forms. The list shows every form on your tenant with:

  • Name: click to open the builder.

  • On submit: what happens when someone submits (none, create contact, create ticket, create deal).

  • Status: Active forms accept submissions; Draft forms 404 publicly.

  • Submissions: running count; click to open the submissions inspector.

  • Public URL: the shareable link; click Copy to put it on your clipboard.

Click New form in the top-right to start a new one.

Building a form

The builder has two sides.

Click New form on the Forms index to start. You'll get a picker:

Start from a template

Eight shipping templates cover the common shapes, pre-configured with fields, mappings, and submit actions so you're 90% done before you start:

TemplateWhat it does
Contact usname + email + message → create Contact + autoreply to sender
Support requestname + email + priority + description → open Ticket + link Contact + autoreply
Quote requestname + email + company + project + budget → create Deal on default pipeline + link Contact + autoreply
Newsletter signupemail-only → create Contact (lifecycle=lead)
NPS survey0-10 rating + comment → saves submission only
Event registrationname + email + dietary → create Contact + confirmation email
Customer feedbackrating + comment + optional email → saves submission only
GDPR data requestname + email + request type + details → open a high-priority Ticket + autoreply

Click any template card and you jump straight into the builder with everything filled in: edit labels, add fields, tune the action pipeline. Your tenant can also save its own templates via Save as template in the builder header; those appear in the picker marked "yours".

Start from scratch

Give your form a name + slug and click Create empty form: the builder opens with no fields and no actions, ready to configure.

Builder: three sections

The builder stacks three cards vertically:

1. Form details

  • Name: internal label; visitors don't see it.

  • Slug: the last bit of the public URL (/f/your-slug). Lowercase letters / numbers / dashes only.

  • Description: appears under the form title on the public page.

  • Submit button label: defaults to "Submit".

  • Thank-you message: shown inline on success (unless a Redirect action is configured).

  • Active: tick to accept submissions. Untick to take the form offline.

  • Honeypot: leave on; defends against bots.

2. Fields

Field types: text, email, textarea, phone, number, select, radio, checkbox, hidden, URL, date, rating, plus three layout-only types: section heading, divider, HTML block. Per-field you set label, key, type, placeholder, help text, options (select/radio), required flag. Use ▲/▼ to reorder.

Field → target-record mapping is not set at the field level. It's configured per-action in the Submit actions section below, which lets the same field feed multiple records (e.g. the visitor's email seeds both the Contact and the autoreply recipient).

Multi-column layouts

Every field has a Width picker: Full / Half / Third / Quarter / Two-thirds / Three-quarters. Fields with the same Row group number render side-by-side at their chosen widths. Example: two fields in row group 10 with Half + Half → they share a row 50/50. Three with Third each → thirds.

Row group is a plain integer: give any two fields the same number and they'll merge onto one row. Different numbers keep them on separate rows.

Conditional logic (show-only-when)

Any field can be made to only show when another field meets a rule:

  • Depends on: pick another field

  • Operator: equals, not equals, contains, does not contain, is empty, is not empty

  • Value: the comparison value (not needed for is-empty / is-not-empty)

A hidden field also skips server-side validation, so you can mark a conditional field required without breaking the paths where it's hidden. Example: "Yes I want to be contacted" select, with a Message textarea that's conditional-required only when the answer is Yes.

Layout-only field types

Some fields exist for structure, not data:

  • Section heading: renders the field label as an H2. No input. Great for grouping.

  • Divider: horizontal line. No input.

  • HTML block: static HTML content (pulled from help_text / default_value). Good for inline instructions / links / disclaimers.

These don't appear in the submission payload and don't have mapping options; they're just visual.

Rating (stars)

A 1-5 star picker. Stored as an integer in the submission. Click a star to select; click it again to clear.

3. Submit actions

The biggest change in v2: a form can now have any number of ordered actions that fire on submit. Add as many as you need:

ActionConfig
Create contactMap fields to first_name / last_name / email / phone
Create ticketMap fields to subject / body / priority + optional contact mapping
Create dealMap fields to title / value_amount + contact mapping; pick a pipeline
Send autoreplyChoose the email field to send to + optional name field + optional custom message
Notify teamAdd one or more internal recipient emails
POST to webhookURL + method; submission payload is sent as JSON (10s timeout)
RedirectURL to send the visitor to on successful submit

Every action has:

  • Label: optional admin-only name (e.g. "Alert ops team")

  • Active: pause without deleting

  • Continue if this action fails: decide whether a failure halts subsequent actions (default: yes)

Actions run in sort order. Use ▲/▼ to reorder.

The public form

Your form lives at the URL shown in the Public URL banner on the builder page. Click Copy to put it on your clipboard, or Open ↗ to preview.

The page renders the form on a clean background with no concorbit navigation; it's a page a visitor can land on directly. On a successful submit it shows your thank-you message; on validation errors each invalid field highlights in red with the specific issue.

Sharing options:

  • Direct link: paste the public URL into emails, social, or chat.

  • Embed on your site: for now, use <a href="..."> or an <iframe src="...">. A first-class embed snippet is planned for a follow-up release.

Viewing submissions

Click the submissions count on a form (or Submissions in the builder header) to open the inspector. The table shows every submission newest-first, with each field as its own column. Click a row to open a single submission:

  • Full payload by field (even if the form has been edited since)

  • Submission timestamp + visitor IP

  • Linked record panel: if the form creates a Contact / Ticket / Deal, a direct link to that record

Wiring an automation

Forms pair cleanly with the Automation module. For example, fire an internal Slack notification whenever a support form is submitted, or send a welcome email to a new lead. Build it in Automation → New workflow:

  1. Trigger type: "When a record is created"

  2. Trigger model: "Form submission"

  3. Add whatever actions you need: send email, send webhook, create ticket, assign to, etc.

Merge-field tokens on the trigger context expose the submission data as {{ form_submission.data.field_key }}, e.g. {{ form_submission.data.email }} for an email field keyed email.

Limits + planned improvements

Today's build covers the common 90%; the rest is on the follow-up list:

  • No drag-and-drop for field + action reorder yet; use the ▲/▼ buttons.

  • No file uploads or signature fields yet.

  • No multi-step / pages yet: one long page. (Conditional logic covers most "hide irrelevant fields" use cases.)

  • No embed snippet generator: use a link or iframe for now; first-class web-builder embed lands with the web builder release.

  • No CAPTCHA option: honeypot defends against most bot traffic.

  • No form-level analytics (views, completion rate).

  • No CSV export of submissions yet.

Tips

  • Keep forms short: one clear ask per form beats a sprawling questionnaire.

  • Use hidden fields for context you want captured invisibly (campaign tag, referrer, utm parameters). Populate them via a query string in the URL.

  • For lead-capture forms, map Email to Contact — Email and Name to Contact — First name at minimum; that's all you need to start building your CRM from the form.

  • The Field key survives rename of the label, so name it something sensible from day one (business_name rather than field_3) so downstream automations read cleanly.