Lynton kept American Hole 'n One's online contract portal growing on HubSpot CMS

By Lynton
Lynton kept American Hole 'n One's online contract portal growing on HubSpot CMS

The Customer

American Hole ‘n One runs hole-in-one contests and prize promotions for golf tournaments. A tournament organizer books a contest, picks the prize, adds extra contests and signage, and pays. Behind the website the company runs its own back-office system, which it calls the Dojo, where contracts, pricing and renewals live.

Lynton had already built the company an online contract application on HubSpot CMS before this record begins, so the original build predates it. By mid-2021 the application was in daily use. Customers logged in through the platform’s memberships, priced a contest with a widget on the homepage, walked through a six-screen booking form and paid by card through Authorize.net. An automation layer on Tray.io created the deal in their CRM and synced it to the Dojo.

This story is about the eighteen months that followed. It covers how an application that handles real money kept pace with the business through a series of releases.

The Challenge

A working application creates its own list of next steps. Each one in this record came from the client’s own reasons for change.

Pricing lived in two places. The homepage widget priced contests from the company’s own pricing API, while the application priced them from HubDB tables maintained separately.

Other product lines had no dashboard. Golf customers could see their deals and pay a balance online, but specialty sports, direct mail and signage customers could not.

Then the business asked more of the booking form. Staff were spending time processing signage contracts that customers could have completed themselves. Customers who book on behalf of several companies were breaking reporting in the Dojo. Customers were used to shipping to the golf course, and the form had no way to say so. And the company had no visibility into which contracts had been renewed and from what.

The Solution

The first release in 2021 moved the application’s price calculation onto the company’s pricing API, the same source the homepage widget uses. We tested it in a new HubSpot sandbox portal first, recreating the pages, tables and products there because the sandbox does not copy them. We also connected the widget to the application so a customer’s details carry from the quick quote into the booking.

We then built three new deal dashboards for specialty sports, direct mail and signage. Each pulls closed-won deals with a balance due by contract type, shows an active Pay Now button and greys out Renew with a message to call. A small booking rule went in at the same time, asking customers running competitive tournaments to phone in.

Through early 2022 we handled the smaller changes a live application needs. A shipping line item was added to the floating receipt and carried through to the Dojo as its own property. The pricing call got a 15-second timeout and a plain error message for the rare case when it does not answer. The widget form gained email validation and the platform’s tracking cookie. A renewed-from property began carrying the original contract number into every renewed deal.

The first customer portal release went live in August 2022. It brought a receipt page that shows quantities, a promo code field, a cash-toward-vehicle prize option that switches on the matching billing path for dealers, a flag for contracts that cannot be renewed and separate revenue properties for prize packages, signage and contests, so the company can report on each.

The second release went live in December 2022. Tournaments can now run for up to four days, with a second prize on its own hole. Customers upload their logo for each add-on contest and signage product, and the file travels with the order into the back office. A Ship to golf course option pulls the club’s address from the company’s own club API. Logged-in customers tied to more than one company choose the company they are booking for, and that code goes to the Dojo with the deal. Each renewal gets its own unique link, hole yardage fills in from a table, and the contract and handling fees are built into the prize package price. The pricing widget also gained reCAPTCHA protection.

What They Got

American Hole ‘n One has one price for every contest, wherever a customer sees it, because the website and the application both ask the same API.

Customers in every product line can see their contracts and pay a balance online. Tournament organizers book multi-day events, add a second prize, upload their own logos and ship to the course without a phone call, and the order lands in the back office with the right company attached.

The company can see renewals as renewals. Every renewed contract points at the contract it came from, and revenue reports split cleanly across prize packages, signage and contests.

Wrapping Up

The standard on this account was that a live application changes in the open. The larger releases were built in a sandbox portal, reviewed by the client in acceptance testing and then promoted to production on a stated date, so the people taking orders always knew what had changed.

Lynton now builds AI-native websites on open infrastructure; see our current work at /case-studies.