Help Center
Contacts & leads13 min read

Capture leads with Forms

Build a form with the drag-and-drop editor, drop it on your website, and every submission becomes a contact in Exabloom — ready for your team to follow up or for a workflow to act on instantly. Here’s the whole feature, from laying out and styling a form to logic and automation.

How forms work

A form lives in Forms in the sidebar. You build it by dragging elements onto a canvas, then you put it in front of customers by embedding it on your website. When someone fills it in, Exabloom turns that submission into a contact and stores the answers — so nothing lands in an inbox you forget to check.

Here’s the key idea: a useful form is tiny. Ask for a name, a way to reach them, add a Submit button, and embed it. Everything past that — logic, styling, automation — is opt-in.

Simplest useful form
  1. 1Name + Email or Phone
  2. 2A Submit button
  3. 3Embed it on your site

That’s a working lead capture. Every submission lands as a contact you can reply to — no logic, no workflow needed.

Advanced · only if you need it

Want more? Add conditional logic to show fields on demand, custom styling to match your brand, and a workflow that fires the moment someone submits.

Covered from “Conditional logic” onward — skip until you need it.

Start with the simplest form that works. Add logic and workflows only when you outgrow it.
Forms make contacts, not “leads” directly
A submission creates or updates a contact. To turn that contact into a tracked opportunity in a pipeline, let a workflow do it on submit — see “Trigger a workflow” below.
Step 1

Create a form

Open Forms and click New form. You land straight in the editor with three tabs along the top — Editor, Submissions, and Settings. A new form opens blank with an editable title in the toolbar — click it to name your form (this is the name you’ll see in the Forms list and pick from a workflow trigger).

Book a trial class
EditorSubmissionsSettings Save
Contact fields
Full Name
Email
Phone
Input fields
Single Select
Text Area
Book a trial class
Full name *
Email *
Programme
Select option
Submit
The form editor: a draggable palette on the left, your live canvas on the right.

Flip the Preview toggle any time to see the form exactly as a customer would — it drops you onto the Editor tab and shows the live result. Editing resumes the moment you toggle it back off.

The editor doesn’t autosave
Your work lives in Save in the top toolbar — and only there. Changes aren’t live until you press it, and nothing stops you leaving the editor with unsaved edits, so save as you go. Saving also runs the completeness check below before it’ll let the form through.
Step 2

The element palette

Open Add Element and drag pieces onto the canvas. They’re grouped exactly as the panel groups them:

Contact fields
Full NameFirst NameLast NameEmailPhoneCustom fields· your contact custom fields
Input fields
TextText AreaNumberSingle SelectMulti Select
Date & time
DateTimeDate & Time
Content & layout
TextImageDividerCollapsible SectionButton
Everything you can drag in, grouped the way the Add Element panel groups it.
  • Input fields — Text, Text Area, Number, Single Select, Multi Select. Each can be marked required.
  • Date & time — Date, Time, or a combined Date & Time picker.
  • Content & layout — a Text block, Image, Divider, a Collapsible Section to group questions, and the Button.
The Submit button can do two things
A Button either shows a thank-you message after submit (the default — “Thank you for taking the time to complete this form…”) or redirects to a URL you choose. Pick whichever fits your follow-up.
Step 3

Fields that fill a contact

This is the part that makes a form a lead capture tool, not just a survey. The top group in the palette is Contact Fields: standard fields (Full Name, First Name, Last Name, Email, Phone) and your contact Custom Fields. Answers to these are written straight onto the contact Exabloom creates.

Contact field

Dragged from Contact Fields — a Standard field (Full Name, Email, Phone…) or one of your Custom Fields. The answer is written onto the contact’s record.

Plain input

A loose Text, Select, or Date field that isn’t mapped to a contact property. It’s captured in the submission and available to workflows — but it doesn’t change the contact on its own.

A contact field updates the contact’s record. A plain input is only stored in the submission.
Standard fields can’t be added twice
Each standard contact field (Email, Phone, Full Name…) can only be dropped onto a form once — once it’s on the canvas, the palette greys it out. A field you only want for your records — “How did you hear about us?” — can be a plain input or a custom field instead.
Step 4

Lay out the canvas

The canvas is built from rows. Every element you add sits in its own row by default, stacked top to bottom. Drop a second element beside an existing one and they share a row as columns, splitting the width evenly — that’s how you put First Name and Last Name side by side.

Drag Delete row
One row · two columns
First Name
Last Name
More about you section
How did you hear about us?
Two fields sharing one row become even columns. Hover any row for its drag handle and Delete; a Collapsible Section folds a group of fields away.
  • Reorder by dragging — grab a row’s handle and move it up or down the form.
  • Delete an element by hovering its row and clicking the trash — there’s no delete button inside the edit panel, so removal lives on the row itself.
  • Group with a Collapsible Section — drag fields into one to fold a chunk of the form (say, optional extra questions) behind a heading. The section has its own heading and its own Delete.
Keep it to one column on mobile
Most forms read best as a single column — people fill them on phones. Reach for two columns only for naturally paired fields like first/last name, and preview the result before you ship it.
Step 5

Edit a field

Click any element on the canvas to open its edit panel on the right. Whatever the field type, the panel is organised the same way, in three collapsible groups:

Single Select
General
Is initially hidden
Is initially disabled
Is required
Label & Content
Advanced
Query key
programme
Click a field to edit it. General controls its state, Label & Content its wording, and Advanced holds the all-important Query key.
  • General Is required, plus Is initially hidden and Is initially disabled (start a field tucked away or greyed out, then reveal or enable it with conditional logic — see below).
  • Label & Content — toggle Show label, set the Display text (the question), and the Placeholder. Single and Multi Select fields add an Options list where you add, rename, reorder, and delete each choice; date fields add range options like disabling past dates.
  • Advanced — the field’s Query key (covered next).
The Query key is the field’s real name
Every field has a Query key — a short id like programme that must be unique on the form and use only lowercase letters, numbers, and underscores. It’s not cosmetic: it’s the name the answer travels under into a workflow (form_submission.data.programme) and into your export columns. Rename a key with care once a form is live — workflows that reference the old key won’t find the new one.
Full Name is two fields in one
The Full Name field splits into a First Name and a Last Name input. First Name is always required; Last Name is optional until you switch on its own Is required. Toggle Show labels to print both labels above the boxes.
Step 6

Style it to your brand

Hit Styling at the bottom of the canvas to open the Form Styling drawer. Styling here is form-wide — set it once and every field follows — across four tabs:

Form Styling
BackgroundForm ContainerInput FieldsCustom CSS
Form Container
Width600
Border Shadow Color#000000
Input Outline Color#d1d5db
Form Styling sets the look once, for the whole form: background, container, and every input.
  • Background — the colour and opacity behind the form.
  • Form Container — the form’s Width and its drop shadow (colour, opacity, blur).
  • Input Fields — label, text, outline, and background colours applied to every input at once.
  • Custom CSS — drop in your own rules when you need pixel control the tabs don’t cover.
Two things style themselves
The Button and Text block carry their own Appearance settings in their edit panels (font size, weight, colours, alignment), so they override the form-wide look. Match the button’s background to your brand colour and you’re done.
Step 7

What every form needs

Before a form will save, Exabloom checks it has the basics to actually reach a person. If something’s missing you’ll see a Complete Your Form prompt listing what to add:

Complete Your Form

Your form doesn’t meet the minimum requirements for publication. Please ensure the form contains the following:

User Identification
First Name field OR Full Name field
Contact Information
Email field OR Phone field is required
Submit button
Submit button is required
The minimum: a way to identify someone, a way to contact them, and a Submit button.
What actually blocks the save
The prompt lists three requirements, but the save only blocks on identification and contact — it lets through a form with First Name or Full Name, or Email or Phone. In practice you want both plus a Submit button, since a form with no Submit button can’t be filled in and one with no contact field can’t reach anyone. Treat all three as needed.

Submission → contact

When someone hits Submit, Exabloom reads the contact fields off the form and decides whether this is a new person or one you already know — by phone number:

Submission · data
Full NameMei Ling Tancontact
Phone+65 8123 4567contact
ProgrammeWeekend intensivedata only
A contact with this phone already exists?
Yes
Reuse that contact
No
Create a new contact
Matching is by phone. With a matching phone the existing contact is reused; otherwise a new one is created.
De-duplication is by phone only
If the submission has a phone number that matches an existing contact, Exabloom reuses that contact. With no phone — say an email-only form — every submission creates a brand-new contact, even if that email already exists. If clean, de-duplicated contacts matter to you, ask for a phone number on the form.
Custom fields only set on a new contact
Custom-field answers are written when the contact is first created. When a submission matches an existing contact by phone, the raw answers are still kept in the submission, but they don’t overwrite that contact’s existing custom fields. To update an existing contact from a form, do it in a workflow.
Step 8

Embed & share it

A form goes live by being embedded. Click Embed in the toolbar and pick a method:

Embed Form
Add this code to your website
JavaScript Embed
Recommended
iFrame Embed
Isolated
<script src="…/forms/form.js"></script>
<script>
ExabloomForm.init({ configId: "…" });
</script>
Two ways to embed. The JavaScript embed blends with your site; the iFrame stays isolated from it.
  • JavaScript Embed (recommended) — a small <script> that calls ExabloomForm.init. It inherits your site’s responsive layout and styling for the most seamless fit.
  • iFrame Embed — drops the form in an isolated frame. Fully shielded from your page’s CSS and dead simple to paste anywhere.
Copy, paste, done
Hit Copy Code and paste the snippet into your site’s HTML. The same form can be embedded in as many places as you like — they all feed one submissions list.

Read your submissions

Every submission shows up under the Submissions tab as a row — submitted time plus a column for each input field. Page through them and Export the lot for a spreadsheet whenever you need it.

Form SubmissionsExport
Submitted atFull namePhoneProgramme
27 May, 9:14 AMMei Ling Tan+65 8123 4567Weekend intensive
27 May, 8:02 AMArjun Rao+65 9001 2233Weekday evening
26 May, 6:41 PMSiti Noor+65 8777 5511Weekend intensive
The Submissions tab: one row per submission, one column per field, with Export.
Advanced

Conditional logic

Everything so far is the common case. From here on is the advanced tier — skip it unless a plain form isn’t enough. In the Settings tab, Conditional Actions let the form react to what people type. Each rule is when this condition is true, do these actions:

Conditional Actions

Make your form respond dynamically to user input.

New condition 1
WhenProgrammeis“Other”
Show element“Tell us more”
A rule reveals a follow-up field only when it’s relevant — keeping the form short for everyone else.

The actions you can take on a field or section are:

Show elementHide elementEnable elementDisable elementClear field

Conditions can be combined with and / or groups, and each field type brings its own operators (text contains, number greater than, date before, and so on). Add as many rules as you need.

Advanced

Trigger a workflow

A form on its own just stores submissions. To act on a lead the instant they submit — auto-reply, tag, route, start a nurture — pair it with a workflow. Add a Form Submitted trigger, choose this form, and the workflow runs on every submission:

Form Submitted · “Book a trial class”
Programme is “Weekend intensive”?
If
Send the weekend booking link
Else
Route to a rep to call
A Form Submitted trigger branches on a form answer to send the right next step automatically.

Inside the workflow, the submission shows up as a Form Submission entity — every field you collected is available as a placeholder (e.g. form_submission.data.programme) to drop into messages, use in If/Else branches, or filter the trigger on. The new or matched contact is available too.

No phone or email = no workflow
The Form Submitted trigger only fires when the submission resolved to a contact. Since a contact is built from the form’s contact fields, a submission with no name/phone/email won’t start your workflow. Always include a contact field if a workflow depends on the form.
Facebook lead forms are separate
The Form Submitted trigger is for forms you build here. Lead ads from Facebook use their own Facebook lead form submitted trigger — different source, same idea.

Forms to copy

Four common forms, each built from the pieces above. Adapt, don’t copy exactly.

1 · Website enquiry

The bread-and-butter lead capture: name, contact, a short message, embedded on your contact page.

Name + PhoneMessage (Text Area)JavaScript embed
2 · Booking / trial intake

Capture a name and phone plus what they want, then auto-route by their choice.

Programme (Single Select)Form SubmittedBranch on choice
3 · Qualifying form

Ask follow-up questions only when they matter, so the form stays short for everyone else.

Needs (Multi Select)Conditional show
4 · Instant-reply lead magnet

Trade a guide or quote for contact details, then reply the second they submit.

Name + EmailForm SubmittedAuto-reply + tag

Good to know & pitfalls

  • A form makes a contact, not a lead. Use a workflow on submit if you want it tracked in a pipeline.
  • Only contact fields touch the contact. Plain inputs live in the submission (and are visible to workflows) but don’t change the contact record by themselves.
  • De-duplication is by phone. Email-only forms create a fresh contact every time — add a phone field if you care about merging.
  • Custom fields are set on create only. A phone-matched repeat submission won’t overwrite existing custom fields — update those in a workflow.
  • Embed to go live. Saving a form doesn’t publish it — it’s live once the JavaScript or iFrame snippet is on your site.
  • No contact field = no workflow. The Form Submitted trigger only fires when a contact could be identified.
  • Nothing autosaves. Press Save often — leaving the editor with unsaved edits loses them, and only a saved form is the one your site serves.
  • Query keys are the contract. Keep them unique and stable — renaming a key after a form is live breaks workflows and export columns that point at the old name.

Need a hand?

Our Singapore-based team is one message away — happy to help you get set up.