Skip to main content

Public Lead Forms

Required Permission
Marketing - You must have the Marketing permission to access this setting.

Create embeddable lead capture forms for your website with a visual form builder, built-in spam protection, and automatic lead creation in Readybuild.

Overview

Public Lead Forms provide a no-code solution for capturing leads from your website. Unlike the External Leads API, which requires developer implementation, Public Lead Forms offer:

  • Visual form builder - Drag-and-drop interface for configuring fields
  • Built-in security - Cloudflare Turnstile CAPTCHA and multi-tier rate limiting
  • Customizable styling - Match your website's branding
  • Two conversion modes - External leads for review or direct contact creation
  • Email lookup - Detect returning customers automatically

Access & Permissions

Navigate to Settings > Marketing > Public Lead Forms

Required permission: marketing

Creating a Form

Step 1: Basic Settings

  1. Go to Settings > Marketing > Public Lead Forms
  2. Click Create New Form
  3. Enter a Form Name - This is internal only, visitors won't see it
  4. Choose the Conversion Mode:

External Lead Mode

Creates an external lead record for manual review.

When to use:

  • You want to qualify leads before adding them as contacts
  • Leads require follow-up before becoming customers
  • You need a review process before data enters your main database

What happens on submission:

  • Creates External Lead record
  • Lead appears in Contacts > External Leads list
  • You manually convert qualified leads to contacts

Direct Conversion Mode

Automatically creates a Contact (and optionally a Project) immediately upon submission.

When to use:

  • All submissions should become contacts
  • You want immediate follow-up capability
  • Form is for existing customer inquiries

What happens on submission:

  • Creates Contact record immediately
  • Optionally creates associated Project
  • Creates Activity for follow-up (with form data in description)
  • Contact is ready for immediate follow-up

See Activity Creation for details on the activity that gets created.

Step 2: Configure Fields

The form builder displays available fields you can add to your form.

Default Fields

Every form includes:

  • First Name (required)
  • Last Name (required)
  • Email (required)

Adding Fields

  1. Click Add Field or drag fields from the available list
  2. Choose from:
    • Contact Fields - Phone, company name, custom contact fields
    • Address Fields - Street, city, state, ZIP (virtual fields that map to contact address)
    • Project Fields - Project name, description, custom project fields
    • Message - Free-form text area for notes or questions
Project Type and Client Appointment Scheduling

If this lead intake form will be used with a Scheduling Group for Client Appointment Scheduling, do not add the Project Type field to your form.

Scheduling groups have their own Require Project Type setting that handles project type selection during the booking process. Adding Project Type to the lead intake form would create a duplicate or conflicting selection step.

Field Configuration

For each field, you can configure:

SettingDescription
LabelText displayed above the field (what visitors see)
RequiredWhether the field must be filled to submit
PlaceholderHint text shown inside empty field

Reordering Fields

Drag and drop fields to change their order. The order in the builder is the order visitors see.

Virtual Fields

Some fields are "virtual" - they combine multiple database fields into logical groups:

  • Phone - Maps to contact phone number field
  • Address - Includes street, city, state, ZIP as a grouped section

Step 3: Styling (Optional)

Customize how the form looks on your website.

Enable/Disable Styling

Toggle Apply Custom Styles to control styling:

  • Enabled - Form uses your custom styling settings
  • Disabled - Form inherits styles from your website's CSS (recommended for websites with existing form styles)

Style Options

When styling is enabled:

SettingDescription
Primary ColorButton color and accent elements
Background ColorForm background
Text ColorLabel and input text
Font FamilyFont for all form text
Font SizeBase text size

Custom CSS

For advanced customization, add custom CSS in the Custom CSS field. The form uses these CSS classes:

.rb-form-widget { }          /* Form container */
.rb-form-field { } /* Individual field wrapper */
.rb-form-label { } /* Field labels */
.rb-form-input { } /* Text inputs */
.rb-form-textarea { } /* Textarea fields */
.rb-form-button { } /* Submit button */
.rb-form-error { } /* Error messages */
.rb-form-success { } /* Success message */

Step 4: Completion Action

Choose what happens after a visitor successfully submits the form.

Thank You Message

Display a custom message on the page:

  1. Select Show Message
  2. Enter your thank you text
  3. Message replaces the form after submission

Example:

Thank you for your interest! We'll be in touch within 24 hours.

Redirect URL

Send visitors to another page:

  1. Select Redirect to URL
  2. Enter the full URL (must start with https://)
  3. Visitor is redirected after successful submission

Use cases:

  • Dedicated thank you page with next steps
  • Scheduling page to book a consultation
  • Resource download page
URL Requirements

Redirect URLs must:

  • Start with https:// (secure URLs only)
  • Be a valid, reachable URL
  • Not contain tracking parameters that could be blocked

Step 5: Save and Activate

  1. Click Save Form
  2. Toggle Active to enable the form
  3. Copy the embed code for your website

Embedding on Your Website

Getting the Embed Code

  1. Open your form in Settings > Marketing > Public Lead Forms
  2. Click Get Embed Code or copy from the form details panel
  3. The code looks like:
<div id="rb-form-widget"></div>
<script src="https://project.readybuild.com/embed/widget.js"
data-widget-type="form"
data-form-hash="abc123xyz">
</script>

Installation

  1. Paste the code into your website HTML where you want the form to appear
  2. The form loads automatically when the page loads
  3. Test by submitting a test entry

Data Attributes

The embed code uses these attributes:

AttributeDescription
data-widget-typeAlways form for lead forms
data-form-hashUnique identifier for your form (auto-generated)

Testing the Embedded Form

After embedding:

  1. Visit your website page with the form
  2. Fill out and submit a test entry
  3. Verify the lead/contact appears in Readybuild
  4. Check the form's submission history for the entry
Testing Rate Limits

Rate limiting allows only 1 successful submission per IP every 5 minutes. When testing, wait 5 minutes between submissions or test from different devices/networks.

Security Features

Cloudflare Turnstile CAPTCHA

Every form includes automatic bot protection via Cloudflare Turnstile.

How it works:

  • Invisible challenge runs in the background
  • No user interaction required (no "click all the traffic lights")
  • Blocks automated spam submissions
  • Legitimate users aren't interrupted

No configuration required - Turnstile protection is automatic on all forms.

Rate Limiting

A three-tier rate limiting system prevents spam and abuse:

TierLimitWhat It Prevents
API Rate Limit60 requests/min per IPGeneral endpoint abuse
Submission Attempt Limit5 attempts/min per IPRapid-fire spam attempts
Successful Submission Limit1 per 5 minutes per IPDuplicate lead creation

IP Detection:

  • Real client IP detected through Cloudflare proxy
  • IPs validated to prevent spoofing
  • Each visitor tracked separately
Failed Submissions Don't Lock You Out

Validation errors (like missing required fields) count toward the attempt limit but NOT the successful submission limit. Users who make mistakes can correct and resubmit.

Domain Whitelisting

Control which websites can use your form.

Why this matters:

  • Prevents your form from being embedded on unauthorized sites
  • Protects against form hijacking
  • Ensures leads come from legitimate sources

Configuration:

  1. Go to Settings > Company Settings
  2. Find Allowed Domains
  3. Add domains that can embed your forms (e.g., example.com, www.example.com)
  4. Save changes
Domain Format

Add domains without https:// - just the domain name:

  • yourcompany.com
  • www.yourcompany.com
  • https://yourcompany.com

Managing Forms

Viewing All Forms

Settings > Marketing > Public Lead Forms shows all forms with:

  • Form name
  • Active/inactive status
  • Conversion mode
  • Submission count
  • Created date

Activating/Deactivating Forms

Toggle the Active switch to enable or disable a form:

  • Active - Form accepts submissions
  • Inactive - Form displays "Form unavailable" message

Deactivating a form doesn't delete submission history.

Duplicating Forms

Create a copy of an existing form:

  1. Open the form
  2. Click Duplicate
  3. New form created with "(Copy)" suffix
  4. Edit the copy as needed

Deleting Forms

Remove forms you no longer need:

  1. Open the form
  2. Click Delete
  3. Confirm deletion
Permanent Deletion

Deleting a form also deletes all submission history. Export submission data first if needed.

Viewing Submissions

Submission History

Each form tracks all submission attempts:

  1. Open a form in Settings > Marketing > Public Lead Forms
  2. Click View Submissions or expand the submissions panel
  3. View all attempts with status

Submission Statuses

StatusMeaning
completedSuccessfully created lead/contact
spam_blockedBlocked by Turnstile or rate limiting
validation_errorRequired fields missing or invalid
api_errorSystem error during processing

Submission Details

Each submission records:

  • Timestamp
  • IP address (for rate limiting, not stored long-term)
  • User agent (browser information)
  • All submitted field values
  • Result status
  • Created record ID (if successful)

Finding Created Records

After a successful submission:

  • External Lead mode - Go to Contacts > External Leads
  • Direct Conversion mode - Go to Contacts and filter by recent creation date

Email Lookup Feature

Public Lead Forms can detect returning customers and pre-fill information.

How It Works

  1. Visitor enters their email address
  2. System checks if email exists in your contacts
  3. If found, address fields auto-populate from the existing contact
  4. Visitor can modify pre-filled data before submitting

Benefits

  • Faster form completion for returning customers
  • Consistent contact data
  • Better customer experience

Privacy Note

Email lookup only returns address information, not other contact details. Visitors still provide their name and other fields.

Conversion Modes Deep Dive

External Lead Mode

Process:

  1. Visitor submits form
  2. External Lead created in Readybuild
  3. Lead appears in Contacts > External Leads
  4. Team member reviews and qualifies lead
  5. Qualified leads manually converted to contacts

Data mapping:

  • All form fields stored on External Lead record
  • Source and campaign attribution preserved
  • Notes include form name and submission timestamp

Best for:

  • High-volume lead generation
  • When qualification is required
  • Marketing campaigns with mixed quality leads

Direct Conversion Mode

Process:

  1. Visitor submits form
  2. Contact created immediately
  3. Project created (if configured)
  4. Activity created automatically for follow-up
  5. Contact ready in Readybuild

Data mapping:

  • Contact fields map directly to Contact record
  • Project fields create associated Project (optional)
  • Activity created with submission details

Activity Creation

When a form submission succeeds in Direct Conversion mode, an activity is automatically created to ensure timely follow-up:

Activity FieldValue
TypeWeb Form (or configured activity type)
Subject"Web Form Submission: [Form Name]"
DescriptionContains all submitted form data
ContactLinked to the newly created contact
ProjectLinked to the project (if one was created)
StatusOpen (ready for follow-up)
Assigned ToBased on form's assignment rules or company default

Finding the activity:

  • View the contact's activity history in the Contact Details page
  • Check the Calendar or My Work for assigned activities
  • Filter Activities by type "Web Form" to see all form submissions

Best for:

  • Existing customer forms (contact us, support requests)
  • High-quality lead sources
  • When immediate follow-up is needed

Troubleshooting

Form Not Appearing

Problem: Embed code added but form doesn't display

Solutions:

  1. Verify form hash - Check the data-form-hash matches your form
  2. Check domain whitelist - Your website domain must be in Allowed Domains
  3. Verify form is active - Inactive forms show "unavailable" message
  4. Check browser console - Look for JavaScript errors (F12 > Console)
  5. Test script loading - Ensure widget.js loads (check Network tab)

Submissions Not Creating Leads

Problem: Users submit but no lead/contact appears

Solutions:

  1. Check submission history - Look for error statuses
  2. Verify required fields - All required fields must be filled
  3. Check rate limits - IP may be temporarily blocked
  4. Review domain whitelist - Submission origin must be allowed
  5. Test in incognito - Rule out browser caching issues

Rate Limit Errors

Problem: "Too many requests" error appears

Solutions:

  1. Wait 5 minutes - Successful submission limit resets after 5 minutes
  2. Check for duplicates - Multiple forms on same page can trigger limits
  3. Use different network - Test from different IP if blocked
  4. Contact support - If legitimate traffic is blocked

Styling Issues

Problem: Form looks wrong or doesn't match website

Solutions:

  1. Disable custom styling - Let website CSS control appearance
  2. Check CSS conflicts - Your site's CSS may override form styles
  3. Use custom CSS - Add specific overrides in the Custom CSS field
  4. Inspect elements - Use browser dev tools to identify conflicting styles

Redirect Not Working

Problem: Form submits but doesn't redirect

Solutions:

  1. Verify URL format - Must start with https://
  2. Test URL directly - Ensure the destination is reachable
  3. Check for blockers - Ad blockers may prevent redirects
  4. Try different browser - Test in incognito mode