Know which search booked the first massage, and who came back.
Built for a massage therapist or a massage studio, whoever runs the marketing. TruLata reads your Google accounts, your Business Profile reviews, your booking platform where it connects and the new-client requests from your own site's forms, runs the watching and the drafting on a schedule while you are with a client, and shows you which search or request became a first appointment.

Is this built for a massage therapist?
Yes. It is built for a massage therapist in practice on their own, a studio with a few therapists, or a practice with several rooms or locations, and a mobile practice that travels to clients fits the same way. The marketing may belong to the therapist, done between sessions and after the last client of the day, or to a studio owner who also keeps the book full; a studio with a marketer on staff gets the same screen. The search, the ads, the content and the counting run on a schedule whether anyone had time this week, every request is counted from your own site, and one screen shows what happened and what it cost.
A new client chooses a massage therapist carefully, because it is a quiet hour with someone they have not met. They search for a massage near me or the kind they want, deep tissue, Swedish, hot stone, a couples massage, read the reviews for how the first visit felt, look at the menu and the prices, and check the booking platform for an opening that fits their week. Some book online straight from the menu, and some ask first: a couples appointment on a Saturday, a gift card for someone else, a chair massage day for an office, a question about which session to choose.
The first appointment is where the relationship starts, and the return visits that follow it are recorded in your booking platform. So the screen reads the bookings from your platform where it connects, puts each request from your own site's form in front of you the day it lands, with the page it came from one click away, and asks one question when you are done with each request: what did it become. Won is the first appointment on the book.
Two ways onto the book
Booked online
- Searches for a massage near me or the kind they want
- Reads the reviews, the menu and the prices
- Books an opening on your booking platform
Asked first
- A couples appointment on a Saturday
- A gift card for someone else
- A chair massage day for an office
- Written to your lead sheet the moment it lands

A new client chooses a massage therapist carefully.
What does the screen read for a massage practice?
It starts with your booking platform. Where your practice books online, the platform connects during setup like any other source with an API, and the Jobs view reads its bookings live, with a coming-soon card rather than a number until the data is trustworthy. Beside it, your website's forms feed a lead sheet: the form handler appends each request server-side as it lands and emails you, and the Leads view reads that sheet newest first, with the time, the name, the contact, the session asked about, the location and the full message. A couples appointment, a gift card question and a request for chair massage at an office each land as their own row. Mark each one from the screen, contacted, quoted, won or lost, or not a lead with the reason, and the mark stays on the row.
Google Business Profile gives reviews, rating and listing performance through a manager invitation you can revoke, and the reviews card sits on the search view, because a new client reads those reviews before trusting a stranger with an hour. Search Console gives the queries you appeared for, impressions, clicks and average position, two to three days behind; for a practice those queries are the kind of massage and the place, massage near me, deep tissue massage, couples massage, hot stone massage, and the positions are Search Console's own averages, not a rank tracker. Google Analytics 4 gives sessions, sources, the menu and pricing pages people read and the key events you count, such as a tap on the book-now link or a gift card purchase, hours behind during the day.
Google Ads gives spend, conversions and cost per conversion by campaign, and a watch reads the account's change history every morning at 7:05 Eastern. Where your Facebook and Instagram are connected, the Social view shows followers, engagement and top posts by platform, read only, on Meta's schedule. Client notes and intake forms stay in your booking software today, and card data is never read. Your inbox and calendar stay outside the screen today and connect during setup where your engagement calls for them, and a phone booking counts where your booking platform or CRM records it. The page loads last night's snapshot the moment you open it, pulls live numbers behind it when that snapshot is older than five minutes, and stamps the header with how old the data is.

What runs while you are with a client, and what waits for a person?
Your Google Ads account is watched every morning. At 7:05 Eastern the ads change watch reads the account's change history and its user list, sets our own writes and routine noise aside, and raises a material change made by anyone else the same morning, including a recommendation Google applied on its own. A setting switched on under a login you shared once, or a new address given access to the account, reaches the team the next morning rather than at the end of the month. Where we manage your search campaigns on all tiers, a budget or bid change is made within the limits set for your engagement and lands in your account's own change history, so opening spend when the book has open hours and easing it when it is full are decisions with a record behind them.
On Launch, Growth and Command, the content engine researches and drafts, on your cadence, the articles a client reads before a first booking: what to expect at a first massage, how Swedish and deep tissue differ, how to talk to your therapist about pressure, what a couples massage involves, how gift cards work. Each topic passes a demand gate on real search volume and what already occupies the result page, the research cites current sources, the dedupe reads the titles already published on your site, and each piece is filed as a Google Doc in your Drive with a featured image. Auto-publish is a per-client setting and approval is optional, so every sentence can read in your own voice before it goes out. On Growth and Command, Facebook and Instagram campaigns run alongside search, and the Creative view appears where we build the ad creative.
On Command, the outbound engine sources prospects weekly to the target profile set with you, which for a massage practice can be the offices that book chair massage for their staff, the event planners who add it to a day, and the hotels and wedding venues nearby with guests to send. It finds a deliverable address or routes the prospect to a contact-form path and drafts into a review-first queue; a person releases the emails, or the queue releases them on the schedule set for the engagement, and every send is logged with the draft, the mailbox and the time. Replies are classified and shown, and not-interested or bounced addresses are suppressed from further sends.
Every day at 7:20 Eastern, where your forms feed the sheet, the lead watch runs five checks across the sheet, GA4 and Ads, so a dead tag, a blind ad account or a request form that stopped submitting is flagged the next day rather than at the end of the quarter. Every night at 12:01 Central a fallback snapshot is baked, and a failed pull leaves the previous page up. What stays with a person is the judgement: the limits on spend, and anything that answers a client. Replies to reviews are in your voice and stay with you, and appointment reminders stay with your booking software today. From the screen you can set what a request became and request a website, content, keyword or targeting change, and every change made through the screen is written to an audit log with the address, the request and the result.
While you are with a client
- Ads change watchReads your account's change history and user list, and raises material changes the same morning
- Lead watchFive checks across your form sheet, GA4 and Ads
- Content draftsFirst-visit and couples questions, filed in your Drive, on Launch, Growth and Command
- Office and event prospectsOffices, event planners, hotels and venues, on Command
- Fallback snapshotBaked nightly, so a failed pull leaves the previous page up
Can I see it before I sign anything?
Yes. The demo is the same engine code every client runs, pointed at a fictional company called Meridian so it can be public, and every number in it is invented. It opens with your name and email, and the follow-up is an email, not a call. Open the search view, the Google Ads view and the Leads view and you are looking at the screen a massage practice gets, with your sources in place of Meridian's.
Then read it against your own practice. Clients near you search for a kind of massage, read the reviews and book an opening, and someone carries the marketing between sessions. That is the practice this page is written for, one therapist or a studio with several rooms. Part of it runs on your own numbers during setup: the first pull, the answer-engine baseline and the ads watch run on your accounts in the first two weeks, before most of the engines are switched on. If you want the work done as a service rather than run as a system, the services side is the other door.
Read the search view the way it is built. Ranking is not earning, so the view puts the bookings and requests your own systems took beside the queries and positions that earned them, and a position there is Search Console's average for that query, not a rank tracker's guess. A hot stone page that climbed and a couples page that filled a Saturday are told apart on the same screen.

A hot stone page that climbed and a couples page that filled a Saturday are told apart on the same screen.
Which tier fits a massage practice?
Starter includes the TruLata dashboard, full analytics, leads, search visibility, the AI visibility program, managed Google Ads search, the assistant and briefings and support tickets. The content engine is on Launch, Growth and Command. Meta ads are on Growth and Command. The outbound engine, for chair massage and event work with nearby offices and planners, is on Command. Command adds the outbound engine, ad creatives and your full marketing team, always on.
Seats are three on Starter, three on Launch, ten on Growth and unlimited on Command, so the owner and a lead therapist or front desk manager can each sign in with a seat of their own, and a seat you remove is revoked within 30 seconds. Starter is $400 a month, Launch $650, Growth $1,200, and Command is scoped per engagement. Every tier is month to month with nothing metered, and committing annually takes twenty to twenty-five percent off the monthly. The pricing page carries the same figures as every other page.
Which engine runs on which tier
- Content engineLaunch, Growth and Command
- Meta adsGrowth and Command
- Outbound engine, for chair massage and event workCommand
- Seats, for the owner and a lead therapistthree on Starter, three on Launch, ten on Growth and unlimited on Command
Can your team run it for my practice?
Yes, through two doors. Managed TruLata is our team running the program on your accounts, with the strategy, the optimization and the approvals on our side, and every change we make lands in your account's own change history, which the same 7:05 Eastern watch reads and sorts as ours. Local services marketing is TruLata's agency work for the same buyer, with search and paid search with a daily account watch among it. Either way the evening marketing comes off your list, and you stay with the client in the room.

What a massage practice's screen reads, and how fresh it is.
| What | Where it comes from | How fresh |
|---|---|---|
| Bookings | Your booking platform, where it connects during setup | Live; a coming-soon card until the data is trustworthy |
| Couples, gift card and office requests | Your site's forms, appended to a lead sheet server-side and emailed to you; the Leads view reads it newest first | Live |
| Reviews, rating, listing performance | Google Business Profile, with our Google account as a manager you can revoke | Refreshed with each pull; the header stamp says when |
| Sessions, sources, pages, key events | Google Analytics 4, a book-now tap or a gift card purchase as a key event | Hours behind intraday |
| Spend, conversions, cost per conversion | Google Ads, by campaign | Intraday lags hours; change history read daily at 7:05am ET |
| Queries, impressions, clicks, average position | Search Console; its own average positions, not a rank tracker | 2 to 3 days behind |
| Followers, engagement, top posts | Facebook and Instagram, where connected, read only | On Meta's schedule |
A phone booking counts where your booking platform or CRM records it, and a call-tracking platform with an API is connected during setup where you run one. Client notes and intake forms stay in your booking software today, card data is never read, and your inbox and calendar stay outside the screen today and connect during setup where your engagement calls for them. Positions are Search Console's own averages. Every new client on the screen traces to your booking platform, your forms or your CRM.
Questions, answered.
Does it read my booking platform?
Where your practice books online through a platform with an API, it connects during setup and the Jobs view reads its bookings live, with a coming-soon card rather than a number until the data is trustworthy. Our team makes that connection from the inside with the access you grant, and we never hold your passwords. Client notes and intake forms stay in your booking software.
Can I see which clients came back?
Where your booking platform connects, its bookings are read live on the Jobs view, so returning appointments sit on the same screen as the new ones. For requests from your site, you set what each became on its row, and won is the first appointment on the book.
Do phone bookings count?
A phone booking counts where your booking platform or CRM records it, and a call-tracking platform with an API is connected during setup where you run one. The requests the screen counts on its own are submissions from your website's forms, written to a sheet server-side as they land.
Does it reply to my Google reviews?
The screen reads reviews, rating and listing performance from your Business Profile, and the reviews card on the search view shows your rating and review count. Replying is your voice, so it stays with you today.
Can each therapist or location be read on its own?
Each Business Profile listing is read one listing at a time, so one location's reviews and rating stay its own, and where your form asks for a therapist or a location, the answer is on each request row. Where each location runs its own campaigns, its spend and cost per conversion sit on their own campaign row.
What does it cost for a massage practice?
Starter is $400 a month, Launch $650, Growth $1,200, and Command is scoped per engagement. Seats are three on Starter, three on Launch, ten on Growth and unlimited on Command. Every tier is month to month with nothing metered, and a managed strategy retainer sits on top of any tier, scoped with you rather than priced on this site; <a href="/product/managed">the managed page</a> says what our team takes on.
See it running
before you decide.
The demo is the real product on a fictional company, with your name and email in front of it. Pricing is three published tiers.
Open the live demo See pricing
New here? See what TruLata is. Prefer to write? Send us the one thing you want to know.
Start here: AI marketing platform · AI marketing software · all-in-one marketing platform · marketing automation software · marketing software for small business.
- Refreshed when you open itLive data on page load, never a monthly PDF
- Counted from your own formsLeads recorded server-side, compared daily with Ads and GA4
- Seen in AI answersHow often ChatGPT, Gemini, Claude and Grok name you, measured
- Every send loggedProspect emails leave from a review-first queue, and every send is logged.

