Back to Help Home
Last updated: 2025-10-05Location: Settings > Lead Sources > Forms

Form Lead Sources

Overview

Form lead sources allow you to create customizable web forms that capture leads directly into brayv.ai. When someone submits a form, they're automatically added as a contact (or their existing contact record is updated) and can be enrolled in a journey for automated follow-up.

Forms are perfect for:

  • Website contact forms
  • Service request forms
  • Quote request forms
  • Newsletter signups with lead capture
  • Landing page forms

Creating a Form

Step 1: Go to Settings > Lead Sources

Step 2: In the "Add New Source" section, click "Form"

Step 3: Enter a Name for your form (internal use only, not shown to users)

Step 4: Configure all settings (detailed below)

Step 5: Click "Create Form"

Form Configuration

Basic Settings

Name (Required)

  • Internal name for the form
  • Not visible to form visitors
  • Example: "Website Contact Form", "Pool Quote Request"

Description (Optional)

  • Internal notes about the form's purpose
  • Helps your team understand what this form is for

CTA Text

  • Call-to-action text displayed above the form
  • Example: "Get a Free Quote!", "Request Service", "Contact Us"
  • Leave blank if you don't want a CTA section
  • Make sure if you don't put a CTA on your form, you have one on your website near the form 🙂

Submit Button Text

  • Text shown on the submit button
  • Default: "Submit"
  • Customize: "Get My Quote", "Send Request", "Contact Me", etc.

Success Message

  • Message shown after successful form submission
  • Default: "Thank you for your submission!"
  • Customize: "Thanks! We'll text you shortly.", "Your request has been received!"

Redirect URL (Optional)

  • Redirect user to a specific URL after submission
  • Example: Thank you page, confirmation page
  • If provided, user is redirected to your thank you page instead of seeing success message
  • Enables you to use tracking scripts on your site for form submissions

Active/Inactive Toggle

  • Control whether the form accepts submissions
  • Inactive forms show an error when someone tries to submit
  • Useful for temporarily disabling forms

Form Fields

Forms collect contact information through configurable fields.

Standard Fields Available:

  • first_name - First Name
  • last_name - Last Name
  • full_name - Full Name
  • email - Email
  • phone - Phone Number
  • business_name - Business Name
  • website - Website
  • street_address - Street Address
  • city - City
  • state - State
  • zip_code - ZIP Code
  • country - Country
  • birthday - Birthday
  • timezone - Timezone

Custom Fields: Any custom fields you've created (Settings > Custom Fields) can also be added to forms.

Field Configuration: For each field you can set:

  1. Label - Text shown above/beside the field
  2. Placeholder - Example text shown inside the field
  3. Required - Whether the field must be filled out
  4. Field Order - Drag fields to reorder them

Managing Fields:

To Add a Field:

  1. Click "Add Field" button
  2. Select standard field or custom field
  3. Configure label, placeholder, and required status

To Remove a Field:

  • Click the trash icon next to the field

To Reorder Fields:

  • Drag the handle (six dots) icon to reorder

Recommended Minimum Fields:

  • First Name (required)
  • Phone Number (required) - Essential for contact matching
  • One field describing their request (custom field or standard field like service_description)

Opt-In Settings

Opt-in checkboxes ensure compliance with A2P 10DLC and TCPA messaging regulations and build trust with your visitors.

Opt-In #1 (SMS/Text Messaging)

Enable Opt-In: Toggle to show/hide this opt-in checkbox

Required: Make the checkbox required (recommended for SMS compliance)

Opt-In Text: Default text (recommended):

By submitting my phone number I agree to receive calls and or text messages from (insert your business name). Carrier message and data rates may apply. Calls may include AI or machine generated voices. Message frequency varies. You can reply STOP at any time to opt-out of texting.

Why This Matters:

  • Required for SMS compliance regulations
  • Protects your business
  • Sets proper expectations with leads
  • Highly Recommended - Always use opt-ins for forms that collect phone numbers

Opt-In #2 (Email/Marketing)

Enable Opt-In 2: Toggle to show/hide second opt-in checkbox

Required: Make the checkbox required (optional)

Opt-In 2 Text: Default text:

I agree to receive email newsletters and promotional offers from this business. You can unsubscribe at any time.

Use For:

  • Email newsletter signups
  • Marketing email consent
  • Separate consent for different communication types
  • Not typically legally required (consult legal counsel, we're not your attorney), but still best practice

Bot Protection (Cloudflare Turnstile)

Enable Turnstile

  • Toggle to enable Cloudflare Turnstile bot protection
  • Adds an invisible or minimal challenge to prevent spam submissions
  • Free protection from bots and automated submissions
  • Similar to CAPTCHA but less intrusive and generally more effective

When to Use:

  • Forms on public-facing websites
  • High-traffic forms
  • If you're experiencing spam submissions

When to Skip:

  • Internal forms
  • Forms with very low traffic
  • Forms behind login/authentication

Setup: Enabling Turnstile requires Cloudflare Turnstile to be configured in your account settings (should be automatic). Contact support if you experience trouble with cloudflare turnstyle.

Visual Styling

Border Radius

  • Controls how rounded form corners are
  • Range: 0-20 pixels
  • 0 = square corners, 20 = very rounded

Show Field Borders

  • Toggle to show/hide borders around form fields
  • Recommended: Keep enabled for clarity

Show Field Labels

  • Toggle to show/hide labels above fields
  • Recommended: Keep enabled unless you have very clear placeholders

Show Placeholders

  • Toggle to show/hide placeholder text inside fields
  • Recommended: Keep enabled for better user experience

CTA Color

  • Color for Text in CTA
  • Leave blank to use default
  • Enter hex color code (e.g., #3B82F6) or click on the color to use color picker

Button Color

  • Color of the submit button
  • Leave blank to use default (blue)
  • Enter hex color code (e.g., #10B981) or click on the color to use color picker

Dark Mode

  • Toggle to enable dark mode styling
  • Use if embedding on dark-themed websites
  • Changes text colors and backgrounds appropriately

AI-Powered Styling

Custom CSS

  • Advanced: Add custom CSS to further style your form
  • For developers familiar with CSS

AI Styling Generation

  • Describe how you want your form to look
  • AI generates custom CSS for you
  • Example: "Make the first name and last name field be in the same row"

To Use AI Styling:

  1. Enter a description in the AI Prompt field
  2. Click "Generate Styling"
  3. Review the generated CSS in the Custom CSS field
  4. Test in the preview
  5. Adjust prompt and regenerate if needed

Journey Enrollment Rules

Control which contacts get added to which journeys based on form data.

Basic Enrollment:

Add All Submissions to Journey:

  1. Enable "Add to Journey"
  2. Select the journey in the "Default Journey" dropdown
  3. All form submissions will be added to that journey

Conditional Enrollment (Rules):

  • You must create the form first. After it is created, you can click the "View Details" button for it on the Lead Sources page.
  • Then click the "Edit Form" button
  • Scroll to the Customer Journey Settings section

Set up rules to add different contacts to different journeys based on their form submission data.

Example Use Case: If your form asks "What service are you interested in?", route HVAC requests to your HVAC Journey and Plumbing requests to your Plumbing Journey.

To Set Up Rules:

  1. Click "Add Rule" in the Journey Enrollment section
  2. Select which field to evaluate
  3. Choose the condition (equals, contains, etc.)
  4. Enter the value to match
  5. Select which journey to add matching contacts to
  6. Set rule priority order (rules are evaluated top-to-bottom)
  7. Example: If {contact.service_type} contains "electric" → Add to "Electric Leads Journey"

Rule Configuration:

  • Field - Which contact field to check
  • Condition - equals, not_equals, contains, starts_with, ends_with
  • Value - The value to match against
  • Journey - Which journey to enroll the contact in
  • Order - Rules are evaluated in order, first match wins

Multiple Rules:

  • Add multiple rules for different scenarios
  • Drag to reorder rule priority
  • First matching rule wins (no further rules are evaluated)
  • If a submission comes in that doesn't match any of the rules, the opportunity will be created in the journey you selected as "Default Journey"

Contact Field Settings

Configure default values for contact fields from form submissions.

Friendly Source

  • Human-readable description of where the contact came from
  • Used by AI agents in conversation ("You reached out through {friendly_source}")
  • Example: "our website", "Facebook ad about pool installations"
  • Highly Recommended - Helps AI personalize conversations

Hook Mode Choose how to set the contact's "hook" (what they're interested in):

Don't Set Hook - Leave hook field blank (not recommended)

Static Text - Set the same hook for all submissions

  • Example: "HVAC services", "pool installation"
  • Use when all form submissions are about the same thing

From Field - Pull hook value from a form field

  • Select which field contains the hook value
  • Example: If form has "Service Interested In" field, use that
  • Recommended - Most flexible option

Notification Settings

Get notified when forms are submitted.

Enable Notifications: Toggle to turn on notifications

Notify Users:

  • Select which team members should be notified
  • Can select multiple users

Notification Channels:

  • Email - Send email notification
  • In-App - Show in-app notification

What's Included in Notifications:

  • Contact name
  • Form name
  • Key field values
  • Link to contact record
  • Whether or not they were added to a Journey

Embedding Your Form

After creating a form, you need to embed it on your website.

Embed Options

Option 1: iFrame Embed (Recommended)

Copy the provided embed code and paste it into your website's HTML before the closing </body> tag.

<!-- BRAYV Form -->
<iframe 
  id="brayv-form-[ID]" 
  src="[EMBED_URL]" 
  width="100%" 
  height="400" 
  frameborder="0"
  style="border: none; display: block; max-width: 100%;"
></iframe>
<script>
(function() {
  var iframe = document.getElementById('brayv-form-[ID]');
  window.addEventListener('message', function(e) {
    if (e.data && e.data.type === 'brayvFormResize') {
      iframe.style.height = e.data.height + 'px';
    }
  });
})();
</script>
<!-- End BRAYV Form -->

Benefits:

  • Auto-resizing to fit content
  • No styling conflicts
  • Works on any website platform

Option 2: Direct Link

Share the embed URL directly:

  • As a standalone landing page
  • In emails or social media
  • For QR codes

Testing Your Form

Before Going Live:

  1. Use the Preview tab to see how your form looks
  2. Submit a test entry
  3. Verify:
    • Contact was created/updated correctly
    • Journey enrollment happened if configured
    • Notifications were sent if configured
    • Success message/redirect works correctly
  4. Check the contact record in brayv.ai

How Form Submissions Work

Contact Matching

When a form is submitted:

If phone number matches an existing contact:

  • Existing contact is updated with new information
  • Tags and custom fields are updated/added
  • No duplicate contact is created

If phone number doesn't match:

  • New contact is created
  • All form fields are saved to contact record

Note: Matching is by phone number only. Email addresses are not used for matching.

Data Flow

  1. User submits form
  2. Bot protection verification (if enabled)
  3. Opt-in validation (if required opt-ins exist)
  4. Contact created or updated
  5. Custom fields saved
  6. Friendly source and hook applied
  7. Journey enrollment rules evaluated
  8. Contact added to journey (if applicable)
  9. Notifications sent (if enabled)
  10. Success message shown or redirect happens

Best Practices

Always Use Opt-Ins

For Forms Collecting Phone Numbers:

  • Enable SMS opt-in
  • Make it required
  • Use the default compliant text
  • This protects your business and ensures compliance

Configure Friendly Source and Hook

These fields significantly improve AI conversation quality:

  • Friendly Source: "our website", "Facebook ad about kitchen remodeling"
  • Hook: Use form field to capture what they're interested in

Start with Essential Fields Only

Recommended Minimum:

  • First Name (required)
  • Phone (required)
  • Service/interest field (if form will be on a page where leads may be interested in various services)

Why Less is More:

  • Higher conversion rates
  • Less friction
  • AI can ask follow-up questions

Use Journey Enrollment Rules

If your form can capture different types of leads:

  • Set up conditional rules
  • Route leads to appropriate journeys
  • Ensure right AI agent handles each lead type

Test Bot Protection

If you enable Cloudflare Turnstile:

  • Test the form yourself
  • Make sure it doesn't create too much friction
  • Monitor spam submission rates

Style for Your Brand

Minimum Styling:

  • Set button color to match your brand
  • Enable/disable dark mode based on your site
  • Adjust border radius to match your site's style

Advanced Styling:

  • Use AI styling generation
  • Add custom CSS if needed
  • Preview before publishing (put it on a test page on your website first)

Monitor Form Performance

In Lead Sources:

  • Check submission count
  • Review recent submissions
  • Monitor for spam or issues

In Contacts:

  • Track conversion rates
  • Monitor journey enrollment success
  • Review AI engagement with form leads

Troubleshooting

Problem: Form not submitting

Solution:

  • Check that form is set to "Active"
  • Verify required fields are filled out
  • If using Turnstile, ensure Cloudflare is configured correctly
  • Check browser console for errors

Problem: Contacts not being created

Solution:

  • Verify account has contact creation permissions
  • Check that phone number is properly formatted (10 digits, US/Canada)
  • Review form submission history for errors
  • Check for validation errors in form configuration

Problem: Contacts not being added to journey

Solution:

  • Verify journey enrollment is enabled
  • Check that journey rules are configured correctly
  • Ensure selected journey exists and is active
  • Review rule conditions and order
  • Check contact record to see if they're already in the journey
  • Ensure you have a default journey selected

Problem: Form looks wrong on my website

Solution:

  • Adjust iframe width/height in embed code
  • Enable/disable dark mode to match your site
  • Adjust styling options (border radius, colors)
  • Use custom CSS for advanced adjustments
  • Ensure embed code is placed correctly in HTML

Problem: Getting spam submissions

Solution:

  • Enable Cloudflare Turnstile bot protection
  • Make opt-ins required (adds friction that bots often fail)
  • Monitor submission patterns

Problem: Opt-in checkbox not showing

Solution:

  • Ensure "Enable Opt-In" is toggled on
  • Save form after enabling
  • Clear browser cache and reload
  • Check form preview to verify

Problem: Notifications not being sent

Solution:

  • Verify notifications are enabled
  • Check that users are selected
  • Ensure desired notification channels (email/in-app) are selected
  • Verify team members have valid email addresses
  • Check spam folder for email notifications (if lands in spam, explicitly mark as NOT SPAM, so your email provider knows you want to receive these emails)

Related Features