Privacy Policy

Effective date: August 17, 2026

OhLocal (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 only purpose is to help a business tell "one person scanned five times" from "five people scanned once."

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. This is used to make future drafts for that account better. See Section 4 for what AI providers do and do not get.

3. How we use data

What we do not do: we do not sell personal information. We do not share it for cross-context behavioral advertising. We do not run third-party ad trackers. We do not use one business's customer list to benefit another business, or ourselves.

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

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 (in which case this policy continues to apply to data collected under it).

5. Google API Services — Limited Use disclosure

OhLocal'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.

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 and we do not share it for cross-context behavioral advertising, so there is nothing to opt out of — but the request channel exists regardless: hello@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 and remembering basic preferences. No cross-site tracking, no third-party advertising cookies, no cross-site fingerprinting. The customer-facing scan pages set no third-party cookies; 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.

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 hello@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 hello@ohlocal.co