Lynton connected five restaurant systems to one HubSpot guest record for True Food Kitchen

By Lynton
Lynton connected five restaurant systems to one HubSpot guest record for True Food Kitchen

The Customer

True Food Kitchen is a restaurant brand with many locations. In 2022 its guest data sat in several systems. OpenTable held reservations. Aloha POS and OneDine held in-restaurant transactions. OLO handled online ordering, Sparkfly ran offers, Spendgo ran a rewards program the brand was retiring, and Snowflake was the data warehouse.

The brand was adopting HubSpot’s marketing, sales and operations hubs. It wanted guest, reservation, transaction and offer data in one place so marketing could segment guests, email them and text them. Lynton came on in mid-2022 for discovery, integration development and Marketing Hub onboarding at the same time. A second agency built the guest-facing account pages on top of the data we delivered.

The Challenge

Each system knew one slice of a guest. Marketing needed a single record per guest with reservations, restaurant visits, offers and transactions attached to it, and a way to send text messages with opt-in and opt-out handled properly.

The volume shaped the design. About 500,000 OpenTable guest records met the agreed sync criteria, which were guests opted in to email and marketing, from 2019 onward. Record capacity in the CRM’s custom objects was a design constraint, so what synced, how often, and how each record was keyed all had to be decided up front.

Spendgo was being shut down on a fixed date. Guests with active rewards had to keep them.

The Solution

Discovery ran from May to July 2022 and reviewed the Sparkfly, Twilio, OpenTable and Snowflake APIs before any development.

The OpenTable integration moves guests and reservations from OpenTable through Snowflake into HubSpot, with Snowflake refreshed every 60 minutes and the CRM every 5 minutes. We created custom objects for Sparkfly campaigns, OpenTable reservations and restaurant patronage. A patronage record is keyed on email plus restaurant, so a guest who has visited five restaurants carries five records, and there were about 470,000 of them. The integration went from the sandbox to the production portal on October 3, 2022, with marketing-contact enrollment workflows and an opt-in status property set up the same day.

The Sparkfly integration pulls campaigns from Sparkfly into a contact property, lets marketing enroll contacts in a campaign from a workflow, creates one record per offer holding its unique code, and updates that record when the offer is redeemed. Redemptions become deals. We load-tested enrollment at 5,000 to 50,000 contacts per batch, packaged the integration as a solution installer and moved it to production on November 8, 2022.

The Spendgo migration moved contacts and their active rewards into Sparkfly and the CRM after a full dress rehearsal, with the cutover on October 31, 2022.

The Snowflake work copied production CRM data into the warehouse and synced the point-of-sale menu items into the product library, with major and minor categories and the item ID as the SKU.

The OneDine integration receives receipt and transaction data by webhook, delivers receipts to guests, and creates each transaction as a deal associated to a contact matched by email and then by phone, creating the contact if none exists. It went live on February 10, 2023. We also handed OneDine an API path to look up a contact by phone and retrieve their redemption codes.

The Twilio integration sends SMS as a custom workflow action. Opt-in and opt-out replies update the contact, and staff can message a guest one to one. It went live on February 16, 2023.

Around all of it we added phone-number de-duplication through a custom code action, DataDog alerts with automatic support tickets on integration downtime, and written documentation plus a demo video for each of the six integrations. The program moved to support on April 3 to 5, 2023.

What They Got

Marketing now works from one record per guest. Reservations, offers, redemptions and in-restaurant transactions are attached to it, so a segment can be built on any of them. A workflow can enroll a guest in an offer campaign, text them, and record their reply. Receipts reach guests by text or email. The team has documentation and a demo video for every integration, monitoring that opens a ticket when something stops, and a support handoff behind it.

Wrapping Up

The standard on this job was to keep the restaurant stack the brand already ran and connect it, deciding the sync rules, the record keys and the volumes with the client before writing code, and rehearsing every cutover. Lynton now builds AI-native websites on open infrastructure; see our current work at /case-studies.