How To Add A Booking Form To A Webflow Website

How To Add A Booking Form To A Webflow Website

Adding a booking form to a Webflow site is straightforward and unlocks a conversion-ready path for demos, consultations, classes, interviews, and more. This guide covers the primary ways to embed a scheduler in Webflow, end-to-end setup, responsive and accessibility best practices, analytics and tracking, and how to handle dynamic CMS use cases.


The main ways to add a booking form in Webflow

Most scheduling platforms provide a shareable booking URL and an embeddable code snippet. If you’re using Breely, we provide copy‑paste embed options designed to be responsive and fast for Webflow sites, along with configuration that makes tracking, brand consistency, and accessibility easier.


Prepare your booking experience first

Before embedding, configure your scheduling tool:

If you’re using Breely, we emphasize fast page loads, clean branding control, and a simple embed workflow that works well with Webflow’s Designer and CMS.


Method 1: Inline embed (most common)

Use this when you want the booking form to appear directly within your page content.

  1. In Webflow Designer, open the page where you want the form.
  2. Add a Section or Div Block where the booking form should live.
  3. From the Add panel, drag an Embed element into that container.
  4. Paste your scheduler’s embed code. If you only have a booking URL, you can use a standards-based iframe:
<!-- Replace with your booking page URL -->
<iframe
  src="https://your-booking-url.example.com/your-event"
  title="Book an appointment"
  width="100%"
  height="900"
  style="border: 0; max-width: 100%;"
  loading="lazy"
  referrerpolicy="strict-origin-when-cross-origin"
></iframe>
  1. Set the parent container’s width to 100% and remove extra padding if needed.
  2. Publish and test across desktop and mobile.

Notes:

If you’re using Breely, we provide responsive embeds and configuration that avoids scrollbars by design on most layouts while preserving accessibility, so setup remains simple in Webflow.


Method 2: Popup modal triggered by a button

Use this when you want to keep layouts clean and open the scheduler in a modal when a user clicks “Book now.”

  1. In Webflow, add a Button or Link Block for your trigger (e.g., “Book now”).
  2. Add an Embed element to your page (it can be at the bottom of the section).
  3. Paste an embed snippet that initializes a modal with your booking URL. A generic approach is to build a lightweight modal and load your iframe on click:
<!-- Trigger button uses an ID or class -->
<a id="open-booking" href="#" role="button">Book now</a>

<!-- Modal container -->
<div id="booking-modal" style="display:none; position:fixed; inset:0; background:rgba(0,0,0,0.5); z-index:9999;">
  <div style="position:relative; margin:3vh auto; background:#fff; width:min(1000px, 95%); height:90vh; border-radius:8px; overflow:hidden;">
    <button id="close-booking" aria-label="Close booking" style="position:absolute; top:10px; right:10px; z-index:2;">×</button>
    <iframe
      id="booking-iframe"
      src=""
      title="Book an appointment"
      width="100%"
      height="100%"
      style="border:0;"
      loading="lazy"
    ></iframe>
  </div>
</div>

<script>
  (function () {
    var open = document.getElementById('open-booking');
    var modal = document.getElementById('booking-modal');
    var close = document.getElementById('close-booking');
    var iframe = document.getElementById('booking-iframe');
    var bookingUrl = 'https://your-booking-url.example.com/your-event'; // Replace with your URL

    open.addEventListener('click', function (e) {
      e.preventDefault();
      iframe.src = bookingUrl;
      modal.style.display = 'block';
      document.body.style.overflow = 'hidden';
    });

    close.addEventListener('click', function () {
      modal.style.display = 'none';
      iframe.src = '';
      document.body.style.overflow = '';
    });

    // Optional: close on overlay click
    modal.addEventListener('click', function (e) {
      if (e.target === modal) {
        modal.style.display = 'none';
        iframe.src = '';
        document.body.style.overflow = '';
      }
    });
  })();
</script>
  1. Style the button to match your brand. Publish and test on mobile (focus trap and close behavior).

If you’re using Breely, we make the popup flow simple with a single embed snippet and a clean, accessible modal experience that fits most Webflow designs with minimal CSS.


Method 3: Floating “Book” button

Use a floating call‑to‑action that opens a modal anywhere on the site.

  1. Create a fixed-position Button or Link in Webflow (bottom-right is common).
  2. Implement the same modal snippet as above.
  3. Ensure mobile placement doesn’t overlap chat widgets or cookie banners.

If using Breely, you can keep your floating CTA while we handle the modal and booking form. This keeps your layout clean and consistent across pages.


Method 4: Dedicated booking page

Use this when you want a full-page booking experience or to drive ads/organic traffic to a focused page.

Option A: Full-page embed

Option B: Link-out

With Breely, a full-page embed performs well due to lightweight assets and a fast booking flow. If you prefer linking out, we keep branding consistent and page speed high.


Passing data: Prefill, UTM, and source tracking

Most schedulers support query parameters to prefill fields and track campaigns.

In Webflow, you can use the Embed “Add Field” UI to inject CMS fields or page variables into your iframe src. Example:

<iframe
  src="https://your-booking-url.example.com/your-event?utm_source={{wf {&quot;path&quot;:&quot;source&quot;,&quot;type&quot;:&quot;PlainText&quot;} }}&name={{wf {&quot;path&quot;:&quot;instructor-name&quot;,&quot;type&quot;:&quot;PlainText&quot;} }}"
  title="Book {{wf {&quot;path&quot;:&quot;instructor-name&quot;,&quot;type&quot;:&quot;PlainText&quot;} }}"
  width="100%"
  height="950"
  style="border:0;"
  loading="lazy"
></iframe>

If you’re using Breely, we make it simple to carry UTMs and prefill attendee details via query parameters, so marketing attribution remains intact end‑to‑end.


Webflow CMS: Dynamic booking pages for teams or services

Use Webflow CMS fields to drive different booking experiences from a single template:

This pattern scales easily across dozens or hundreds of services or team members.


Styling and responsiveness best practices

With Breely, our embeds are designed for responsive layouts and respect your typography and color choices, minimizing custom CSS.


Accessibility essentials

We prioritize accessible defaults in Breely so your Webflow site is usable by everyone without heavy customization.


Analytics, conversions, and privacy

We keep tracking lightweight in Breely and make it straightforward to carry UTMs and confirm conversions in your analytics setup while respecting user privacy.


Handling performance and SEO

Our booking forms in Breely are optimized for speed with minimal script weight, helping your Webflow pages stay fast.


Common pitfalls and fixes

We’ve tuned Breely to avoid common embed issues on Webflow by default, including z‑index conflicts and mobile height quirks.


Quick checklists

Inline embed checklist

Popup modal checklist

CMS-driven checklist


Where we stand out for Webflow teams


Summary

If you’re building on Webflow and want a fast, accessible, brand‑consistent booking experience, we make this straightforward at Breely.