Skip to content

Using web forms to allow only one booking per customer [Classic]

In some cases, you may want to ensure that Customers can only make a single booking. For example, you may offer a free consultation to new prospects, but you don’t want people to exploit this and request multiple bookings. By restricting Customers to a single booking, you can control the time and resources you spend with each of your prospects and prevent accidental duplicate bookings.

In this article, you’ll learn about using web forms to allow only one booking per Customer.

<script id="snippet-prepend">
$(function(){
/*disable in widget*/
if($('.w-documentation-article').length === 0){
var ToC =
"&lt;nav role='navigation' class='table-of-contents toc-top'><h4>In this article:" + "<ul>";
var el, title, link, header;
//Define the heading levels you want to use in ascending order. Can add extra or remove unneeded.
$(".hg-article-body h1, .hg-article-body h2, .hg-article-body h3, .hg-article-body h4").each(function() &#123;
el = $(this);
title = el.text();
if(title != '')&#123;
anchorTitle = el.text().replace(/([~!@#$%^&*()_+=`&#123;&#125;\[\]\|\\:;'&lt;>,.\/\? ])+/g, '-').toLowerCase();
link = "#" + anchorTitle;
//Set all headers to a 0-nesting level.
header = 'header-nesting-0';
//Adjust header-nesting layers so that they point to the correct html tag. header-nesting-1 should match the second .hg-article-body h# listed above; header-nesting-2 should match the third, etc.
if($(this).is('h2'))&#123;
header = 'header-nesting-1';
&#125;else if($(this).is('h3'))&#123;
header = 'header-nesting-2'
&#125;
el.html('<a id="'+anchorTitle+'" class="toc-anchor">' + el.html());
newLine =
"<li class='"+header+"'>" +
"<a class='article-anchor' href='" + link + "'>" +
title +
"" +
"";
ToC += newLine;
&#125;
&#125;);
ToC +=
"" +
"";
$("#snippet-prepend").before(ToC);
&#125;
&#125;);
&lt;/script>
&lt;style>
/* CSS to style the TOC as it displays and the auto-created anchors
.toc-top styles the box for the TOC; adjust styles here to tweak look and feel */
.toc-top &#123;
background-color: #FAFAFA; /* set to #fff or delete entirely for no background */
border: 1px solid #C8C8C8; /* adjust the color hex here to change border color */
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05) inset;
margin-top: 24px;
margin-bottom: 36px;
min-height: 20px;
padding: 13px 20px;
max-width: 75%;
&#125;
.toc-top h4 &#123;
font-size: 18px;
line-height: 26px;
margin: 0 0 8px;
font-weight: 400;
&#125;
.toc-top ul &#123;
padding: 0 0 0 15px !important;
margin-bottom: 0;
&#125;
.toc-top > ul &#123;
margin-bottom: 13px!important;
&#125;
.toc-anchor &#123;
display: block;
height: 90px;
margin-top: -90px;
visibility: hidden;
&#125;
/* Set the indentation for the nesting levels. May need to be edited to match changes above. Increase or decrease the margin-left to get your desired level of indentation. */
.header-nesting-1 &#123;
margin-left: 14px;
&#125;
.header-nesting-1:before &#123;
background-image: url(https://dyzz9obi78pm5.cloudfront.net/app/image/id/5d31bcc88e121c9b25ba22c4/n/bulletv2.svg)!important;
&#125;
.header-nesting-2 &#123;
margin-left: 28px;
&#125;
.header-nesting-2:before &#123;
background-image: url(https://dyzz9obi78pm5.cloudfront.net/app/image/id/5d31be536e121cf22b0cc6ae/n/bulletv3.svg)!important;
&#125;
&lt;/style>

When you place a web form at the beginning of the scheduling process before your Booking page, you can use the form as a gatekeeper. The form will filter out Customers that have already made a booking and prevent them from continuing to OnceHub. Customers who are making their first booking won’t have to provide any details that they have already provided on the form. Learn more about web form integration

Different third-party forms and custom forms provide this logic in different ways. Typically, the form can filter customers based on a duplicate Customer email address, custom field, or an IP address. We’ll look at a typical solution using Wufoo forms.

To integrate your web form with OnceHub, you must ensure that the web form can pass URL parameters to the OnceHub Booking page.

In the examples below, your Wufoo form will act as the gatekeeper to your Booking page. Your web form should include the Customer name and email fields and pass their content to OnceHub using Wufoo’s templating feature.

Restricting bookings based on a Customer email address

Section titled “Restricting bookings based on a Customer email address”
  1. In Wufoo, select the webform that you want to edit.

  2. Select the Field settings tab.

  3. In the preview pane on the right, select the Email field.

  4. In the Field settings pane on the left, check the box marked No Duplicates (Figure 1).

    Figure 1: No Duplicates option

  5. Click Save.

If required, you can also use the No Duplicates option on other fields such as the Phone Number field.

Restrict bookings based on a Customers IP address

Section titled “Restrict bookings based on a Customers IP address”
  1. In Wufoo, select the webform that you want to edit.

  2. Select the Form settings tab.

  3. In the Limit Form Activity section, check the box marked Allow Only One Entry Per IP (Figure 2).

    Figure 2: Allow Only One Entry Per IP option

  4. Click Save.

Your Wufoo form is now configured to allow one booking per Customer. Next, you can use one of the Wufoo sharing options to invite your Customers to schedule. You should not share your OnceHub Booking page link directly with your Customers as this will bypass the Wufoo form step.