Privacy Policy

Effective date: September 16, 2026

Oh Local (the "Service") helps local businesses collect, understand, and respond to customer reviews and feedback. This policy explains what data we handle, why, and what your rights are. We have tried to write it in plain English. Where the plain English and the law disagree, the law wins.

Two kinds of people interact with the Service, and their data is treated differently:

If you are an end customer, the short version is: your relationship is with the business you gave your email to, not with us. We hold your data on that business's behalf and on their instructions. See Section 8 for how to unsubscribe or be deleted.


1. Controller and processor, in plain words

Privacy law splits responsibility between whoever decides how data is used (the "controller," or "business" under California law) and whoever handles it on their instructions (the "processor," or "service provider").

One deliberate exception to "only on their instructions": if an end customer asks us directly to unsubscribe them or delete their data, we honor it. A business cannot instruct us to keep emailing someone who has opted out.

2. Data we collect

Owner account data

Name, email address, login credentials (stored as a hash, or via OAuth — we never store plaintext passwords), business and location details, connected-platform identifiers, and billing status. Payment card details go directly to Stripe; we never see or store full card numbers.

End-customer emails

When a customer chooses to share their email through a business's capture flow, we store the email, which location it came from, and a timestamp of their explicit consent. This is enforced in code: a contact record with no consent timestamp cannot be sent anything. Every email sent includes an unsubscribe link, and unsubscribes are applied to our records immediately — you will receive nothing further, except at most a message already in transit when you clicked.

Scan telemetry

When someone scans a code or opens a short link, we record the time, which code was used, and a coarse device signal stored as a salted hash that rotates monthly. We do not store IP addresses in scan or analytics records. (Our hosting providers process IP addresses transiently to serve requests, as any website's do.) The hash is first-party only — it is designed so it cannot be used to track anyone across other websites or be turned back into a device identity, and we keep no key that would let us connect old scans to new ones after the monthly rotation. Its purposes are narrow and first-party: helping a business tell "one person scanned five times" from "five people scanned once," and — if someone has joined that business's email list — avoiding asking them for a review after they have already tapped through to leave one. It is never used to work out which review site anyone went to for that purpose, is never shared, and is never combined with anything outside that one business's own records.

Review content from public platforms

We retrieve reviews that are already public on Google, TripAdvisor, Facebook, and Yelp, using official APIs and licensed data providers. This includes the review text, rating, date, and the reviewer's public display name and public profile signals. We store this so the business can read, analyze, and respond to its own reviews. We do not combine it with any other data we hold, and the Service has no way to link a public review to any contact record or scan.

Anonymous feedback

The Service lets end customers send a business private feedback anonymously. This is built with identity isolation: the feedback text is stored with no identifying data attached, and the relay contact information is kept where owner-facing systems have no way to look it up. The business sees the feedback; the Service gives it no way to see or look up who sent it. Identity is revealed only if the customer takes a deliberate, explicit action to reveal it — never automatically, never by owner request, and never by us — the only exception being disclosure a court or valid legal process compels, which the business still never receives through the Service. Where the law allows, we will attempt to notify you of such a demand and to narrow or challenge overbroad ones. Timestamps on anonymous feedback may be deliberately coarsened so a submission cannot be matched to a specific visit. Feedback may also be held and delivered on a randomized delay and batched with other submissions, so that timing cannot identify the sender. This delay is deliberate, platform-controlled, and not configurable by the business.

Owner edits to AI drafts

When an Owner edits an AI-drafted reply before publishing it, we keep the difference between the draft and the published version, along with any reason given for rejecting a draft. This is used to make future drafts for that account better, and — reviewed by our own staff, not by any AI provider — to find and fix systematic problems in how the Service writes. It is never used to train a generalized model, and one business's edits are never used to write for another. See Section 4 for what AI providers do and do not get, and Section 11a for who at our company can see it.

3. How we use data

About AI output. Reply drafts, insights, recommended actions and scores are generated by statistical models and may be inaccurate, incomplete, or unsuitable — and may not comply with the laws, professional rules, or platform policies that apply to an Owner's business, including HIPAA. They are suggestions. The Owner reviews and approves every reply before it is published and is responsible for validating anything they publish or act on; the Terms of Service (Section 5) set this out in full. Do not put protected health information, or anyone's sensitive personal data, into the Service — it is not built for it, and PAXST LLC is not a HIPAA business associate.

What we do not do: we do not sell personal information. We never share an Owner's customers' data — reviews, contacts, private feedback, anything a customer gave the business — with an advertising platform. For any business, for any reason, ever. We do not use one business's customer list to benefit another business, or ourselves.

There are exactly two things we do share with an advertising platform, both about you as a visitor or buyer of our own service and never about anyone's customers: that a browser visited our marketing pages, and — if you sign up after arriving from one of our ads — that the browser which clicked the ad went on to become a paying account, and which plan it chose. That second one is how we learn which of our advertising actually finds owners who stay, rather than owners who click. Both stop when you opt out at Your privacy choices or send a Global Privacy Control signal, and both are described in full below.

There is exactly one exception, and it is about our own visitors rather than anyone's customers: on our public marketing pages we run advertising tags from our advertising partners — currently Meta and Google — so we can show ads to people who have looked at this site and measure which of our ads work. Under California law that counts as sharing personal information for cross-context behavioral advertising, and you can switch all of it off at Your privacy choices with one click. It is described in full below.

Analytics and Google advertising on our own marketing pages. Our public marketing pages — the home page, pricing, the free audit page, guides, FAQ, comparison pages, sign-up, and these legal pages — use Google Analytics so we can see which pages people find useful. It records the page visited, roughly where in the world the visit came from, and a first-party cookie that distinguishes a returning visit from a new one. Because we also advertise on Google, Google Analytics is linked to our Google Ads account: unless you have opted out, it may tell Google Ads that a browser which clicked one of our ads went on to request a free audit, and may be used to show our ads to people who have visited this site. If you opt out at Your privacy choices or send Global Privacy Control, Google's advertising signals are switched off for you (we tell Google's tag to deny advertising storage and personalisation) and Google Analytics keeps only the page-use measurement.

Meta advertising on our own marketing pages. The same pages carry a Meta (Facebook) advertising pixel. It tells Meta that a browser visited a page of ours, so that we can show ads to people who have already looked at the site. This — like the Google advertising signals above — is sharing for cross-context behavioral advertising as California defines it, and you have an absolute right to stop it:

The pixel runs on the marketing pages listed above and nowhere else — never on a signed-in Owner page, never on a customer-facing scan page or a private feedback thread, and never on a page whose address is itself a private link. What the pixel sees is a visit to a public page of our own website.

One event is sent from our server rather than from a page: when an account that arrived from one of our ads takes out a paid plan, we tell Meta that the browser which clicked the ad converted, and the monthly price of the plan. No name, no email, no business name, and nothing about the account's customers — the event carries Meta's own browser identifier (the _fbp cookie it set on the marketing page) and a dollar figure. If that cookie is absent — because you opted out, sent Global Privacy Control, or never visited from an ad — nothing is sent. No end-customer data is ever sent to Meta or to any other advertising platform, and the Owner's own data beyond that single conversion event — the dashboard, the replies, the insights — never leaves the service either.

If we add another advertising or analytics vendor later, it will appear in the table in Section 4 and be covered by the same opt-out — the control above turns off advertising sharing generally, not one named company.

It is not on any page where doing so could expose something private, and this is enforced in our code rather than by convention: not on a signed-in Owner page, not on the customer-facing scan page or a private feedback thread, and not on any page whose web address itself contains a private link — a claim, invite, ambassador or report link. Those addresses are secrets, and a measurement tag reports the address of every page it loads on.

4. Who we share data with (subprocessors)

We use a small set of vendors to run the Service. Each receives only what its job requires:

SubprocessorWhat they do for usData they handle
VercelApplication hosting and deliveryRequest data passing through the app
SupabaseDatabase, authentication, storageStored Service data (encrypted at rest)
StripeBilling and paymentsOwner billing details and payment status
ResendEmail deliveryRecipient email addresses and message content
AnthropicAI drafting and insightsReview text and business context (no model training on this data by default)
DataForSEORetrieval of public review dataPublic business identifiers we query; they return public review content
Meta PlatformsAdvertising measurement and retargeting on our own public marketing pagesThe fact that a browser viewed one of our marketing pages, with Meta's advertising cookie; and, for an account that arrived from one of our ads and took a paid plan, that the browser converted and the plan's monthly price. Neither is sent if you opt out or send a Global Privacy Control signal. No name, no email, and no end-customer data, ever.
Google Analytics / Google AdsMeasuring how our own public marketing pages are used; advertising measurement and retargeting for our own Google adsPage views on our marketing pages only, with a first-party cookie; and, unless you opt out, that a browser which clicked one of our ads requested a free audit, and advertising signals used to show our ads to people who visited this site. Advertising signals are denied if you opt out or send a Global Privacy Control signal. Not present on any signed-in page, on any customer-facing scan or feedback page, or on any page whose address contains a private link.

We may add or replace subprocessors; we will keep this table current and notify Owners of material changes. Beyond this table, we disclose data only if required by law, to prevent fraud or abuse, or as part of a business transfer — a merger, acquisition, sale of assets, or an internal reorganization that moves the Service into a different company under common ownership. In any of those, this policy continues to apply to data collected under it, and the receiving company is bound by it.

5. Google API Services — Limited Use disclosure

Oh Local's use and transfer to any other app of information received from Google APIs will adhere to the Google API Services User Data Policy, including the Limited Use requirements.

What the connection accesses. When an Owner connects Google, we ask for one Google permission — managing Business Profile listings (https://www.googleapis.com/auth/business.manage) — plus the Google account's email address, so the Owner can see which login is connected. With it we list the Business Profile locations that login manages (so the Owner can pick theirs), read that location's reviews (so each reply is posted under the right review), and post a reply only after the Owner approves it. We never create, edit, or remove reviews, and we never change the listing itself.

What we store from it. The connected account's email address; the access credential Google issues (a refresh token), encrypted at rest and never shown to anyone, including us; the identifiers of the chosen location and of its reviews; and Google's moderation status for replies we published. We do not store review text, reviewer details, or listing content obtained through this connection. Disconnecting revokes the credential at Google and deletes it and those identifiers from our systems immediately.

In plain words, for data we access through a business's Google Business Profile connection:

6. Retention

7. Owner rights

Owners can, at any time:

8. End-customer rights

Your relationship is with the business you gave your email to — we process your data on their behalf. Concretely:

9. California privacy rights (CCPA/CPRA)

If you are a California resident, you have the right to know what personal information we collect and how we use it (this policy), to access it, to correct it, to delete it, and to opt out of its sale or sharing for cross-context behavioral advertising. We do not sell personal information. We do share it for cross-context behavioral advertising in one narrow way — the advertising tags of our advertising partners (currently Meta and Google) on our own marketing pages, described in Section 3 — and you can opt out of all of it in one click at Your privacy choices, with no account and no email address. We also honour Global Privacy Control: if your browser sends that signal we treat it as a valid opt-out immediately, load no advertising pixel, and deny Google's advertising signals. For any other request the channel is info@ohlocal.co. We will never discriminate against you for exercising these rights. If you make a request as an end customer of one of our business customers, we may route it to that business, since they are the controller — or handle it directly where we can (unsubscribes and deletions, we handle directly).

10. Cookies

We use a minimal set of first-party cookies: keeping Owners logged in, remembering basic preferences, a 30-day cookie that remembers which of our own ads or links you first arrived by (so we can tell which of our advertising is worth running — it holds campaign labels, nothing about you), and — on our public marketing pages only — the Google Analytics measurement cookie described in Section 3. Our public marketing pages also set Meta's advertising cookie and allow Google's advertising signals, unless you have opted out or your browser sends Global Privacy Control — see Section 3. No cross-site fingerprinting, and no advertising cookie of any kind outside those marketing pages. The customer-facing scan pages set no third-party cookies and carry no analytics tag; they store one small on-device preference (which review platform you already used) and compute the short-lived, first-party device signal described in Section 2.

11. Security

Data is encrypted in transit and at rest. Access is role-limited and logged. The systems a business can access are built with no way to look up who sent anonymous feedback — it is not a rule we follow, it is a lookup that does not exist. No system is perfectly secure; if a breach affects your data, we will notify affected parties as the law requires, and sooner where we can.

11a. Who at our company can see your data

Access is limited to the small number of people who operate the Service, is authenticated separately from any customer login, and is logged. We look at Owner and end-customer data only:

We do not read anonymous-feedback identities — the lookup does not exist (Section 11) — and we do not browse customer data for any other reason.

12. Children

The Service is not directed to children under 13, and we do not knowingly collect their personal information. If we learn we have, we will delete it. If you believe a child's data has reached us, contact info@ohlocal.co.

13. Changes to this policy

We will post changes here with a new effective date. For material changes, we will email Owners before the change takes effect. Continued use after the effective date means the new policy applies.

14. Contact

PAXST LLC 7362 University Ave NE Ste 310-5 #114, Fridley, MN 55432, United States info@ohlocal.co