Skip to main content

    Restaurants & Hospitality · project showcase · menu and channel content

    Project ShowcaseReal client work that shipped. No performance figures are published, because none have been verified and approved for release.

    One menu record, five surfaces, and a rule for what happens when the kitchen changes an item

    A restaurant's menu now lives on the website, in first-party ordering, on two or three marketplace apps and on the Google Business Profile — each truncating, sorting and displaying it differently. This is the content system that keeps one item the same item everywhere, including on the Tuesday the kitchen changes it.

    At a glance

    The engagement in brief

    Services

    • Content Systems
    • Google Business Profile
    • Local SEO
    • Web Development
    • Design
    • Organic Social

    Stack

    • Menu data record
    • Website menu
    • First-party ordering
    • Marketplace listings
    • Google Business Profile menu
    • Photography standard
    • Change log

    The situation

    What we walked into

    Most of the traffic in this category now leaves the building, and each of the channels carrying it holds its own copy of the menu. The item that changes is almost never the item that gets updated everywhere: it is corrected on the website, where the owner can see it, and stays wrong on the two surfaces that actually take the orders. Nobody notices until a guest orders something that no longer exists, which is a kitchen problem by the time anybody hears about it.

    The item that changes is corrected on the website, where the owner can see it, and stays wrong on the two channels that take the orders.

    What we found

    The diagnosis

    1. 01

      A menu is a data problem before it is a design problem

      Name, short name, description, long description, price per channel, modifier group, allergen set, photograph and availability window are fields. Held once, they can be published anywhere. Held as five separately edited menus, they drift within a fortnight and there is no way to tell which one is right.

    2. 02

      Each channel truncates differently, so the copy has to survive being cut

      One surface shows forty characters of a name, another wraps a description at two lines, a third strips line breaks entirely. Writing a single elegant description and letting each platform mangle it produces a menu that reads well in exactly one place. Every item carries a short form written deliberately, not a truncation.

    3. 03

      Photography is a channel requirement, not a brand luxury

      Marketplace surfaces rank, group and display by image. An item without a photograph is an item that is visible in theory. The standard covers angle, crop ratio and background so a photograph taken in the kitchen in March still sits correctly next to one taken in September.

    4. 04

      Allergen and modifier data is the field that carries real risk

      A modifier list that differs between the in-house system and a marketplace listing is a safety problem, not a marketing one, and it is the most common place for the two to diverge because modifiers are edited by whoever is closest to the ordering tablet.

    The number behind it

    What this is built around

    **~75% of restaurant traffic is now off-premises** (National Restaurant Association *2025 Off-Premises Trends*) — the menu on those digital surfaces *is* the restaurant for most orders, so consistency across them is a revenue system, not housekeeping.

    What we built

    The system

    One record per item, with every field a channel might need, published outward rather than maintained inward. The website menu, first-party ordering, the marketplace listings and the Google Business Profile menu all derive from it. Photography follows a written standard so images taken months apart sit together. A change log records what changed, who changed it, and when each surface was confirmed updated, with a same-day rule for anything affecting price, availability or allergens. Nothing is edited directly on a channel; edits that happen there are treated as incidents and reconciled back to the record.

    One menu record, five surfaces, and a rule for what happens when the kitchen changes an item — stackA stack of 10 connected layers, from "Single item record" through to "Change log", each feeding the one below it.Single item recordShort name and description variantsPrice per channelModifier and allergen setPhotography standardWebsite menuFirst-party orderingMarketplace listingsGoogle Business Profile menuChange log

    The sequence

    How it was delivered

    1. Week 1

      Record design

      Field schema agreed, existing menus reconciled into one record, conflicts resolved with the kitchen

      Owner: OmniFlow

    2. Weeks 1–2

      Channel mapping

      Per-surface character limits, image ratios and modifier rules documented

      Owner: OmniFlow

    3. Weeks 2–3

      Photography standard

      Angle, crop and background standard written, backlog shot against it

      Owner: OmniFlow + client

    4. Weeks 3–4

      Publishing and change log

      All five surfaces published from the record, change log live with a same-day rule

      Owner: OmniFlow + client ops

    Outcome

    What shipped

    This entry makes no performance claim. It documents a content system and the operating rule that keeps it true: the record is the menu, and a channel is a rendering of it. The test applied throughout was whether a line cook changing an ingredient on a Tuesday results in every ordering surface being correct by service that evening, without anyone having to remember which apps exist.

    Reporting

    What you would actually see

    These are the surfaces this engagement is run and measured from, shown with representative figures built around the benchmarks cited on this page. Every account we run reports into views like these, and you keep ownership of all of them.

    These are demo dashboards. They show the reporting surfaces this engagement is run and measured from, with representative figures generated around the published benchmarks cited on this page — not a client account and not a client result. Live reporting for your own account replaces every number here.

    Google Business Profile

    Restaurants & Hospitality · all locations

    Demo
    Business Profile performance
    Last 12 months

    Calls

    119

    +66.8%

    Direction requests

    210

    +53.4%

    Website clicks

    339

    +60.1%

    Searches shown

    4,591

    +73.5%

    Calls from the profile, by month

    AprJunAugOctDecFeb

    Dashed line marks the month the engagement started.

    How customers searchSearchesShare
    Discovery — category, product or service3,22870.3%
    Direct — business name or address1,05923.1%
    Branded — related brand2756.0%

    Google Analytics 4

    Restaurants & Hospitality · all web data

    Demo
    Acquisition overview
    Last 12 months vs. preceding period

    Sessions

    4,363

    +66.6%

    Key events

    186

    +83.2%

    Session key event rate

    4.3%

    +1.2%

    Engagement rate

    55.9%

    +4.0%

    Sessions by month

    AprJunAugOctDecFeb

    Dashed line marks the month the engagement started.

    Session default channel groupSessionsKey eventsRate
    Organic Search1,771945.3%
    Paid Search1,120544.8%
    Direct742375.0%
    Referral397205.0%
    Organic Social334206.0%

    Honestly

    What we would do differently

    We built the publishing side before the change log, so for the first month updates were still being made channel by channel and then reconciled backwards, which is the exact habit the system was meant to replace. The log and the same-day rule should have shipped in week one, when the team was still forming the habit, rather than in week four when they had already formed a different one.

    Next

    Start the same conversation

    Start the same conversation

    Tell us what you are working on and we will say plainly whether this is the right shape of engagement for it.

    We use your details only to respond to this request. No lists, no resale.