This Privacy Policy describes how Brandfine collects, uses, stores, and shares information when you use our service. Read it alongside our Terms of Service and, if you collect data from visitors to your sites through Brandfine, our Data Processing Agreement.
Who we are
"Brandfine" (referred to as "we", "us", or "the service" in this document) is operated as a sole proprietorship registered in Turkey. Brandfine is a multi-tenant platform businesses use to publish marketing sites, manage content, receive contact forms, run live chat and appointment bookings, and measure how their sites perform.
We handle personal data in two different roles:
- As controller, for data about you and your team: your account, your workspaces, and how you use Brandfine. This policy covers that data in full. The controller is the sole proprietor of the business, contactable at hello@brandfine.co.
- As processor, for data about visitors to your sites: form submissions, live chat conversations, appointment requests, and website analytics. You are the controller of that data; we process it only on your behalf and under our Data Processing Agreement. The section "Data about visitors to your sites" below describes it, and you are responsible for telling your visitors about it.
What data we collect about you
Account information you give us directly
- Email address, name, and password (stored as a one-way hash — we never have access to your plaintext password) when you create an account.
- Team and workspace metadata you create: team names, workspace slugs, custom domains, brand settings, locales.
- Content you publish through Brandfine: posts, categories, navigation menus, post types, knowledge base entries, uploaded images and assets.
- Routing rule configurations, including any recipient email addresses or webhook URLs you choose to forward submissions to.
- Billing information when you subscribe: handled by our payment provider Polar (see "Service providers" below). We receive your plan, payment status, and billing contact, never your full card details.
Data we receive through third-party integrations you connect
When you opt in to a third-party integration by clicking "Connect" in Brandfine, we receive data from that service through a credential or OAuth flow you explicitly authorize.
- Google Search Console: when you connect your Google account and pick a property, we receive an OAuth refresh token, your Google account email address (for display only), and — through scheduled background syncs — search performance data (clicks, impressions, queries, average position per URL and per day) and per-URL index coverage results for the property you selected. See "Google API services" below for the full disclosure.
- Google Analytics: when you connect your Google account, we receive an OAuth refresh token, your Google account email address (for display only), the list of Google Analytics accounts and properties you can access, and aggregated reports for the property you selected. Once a day we copy daily totals (sessions, users, page views, engagement, and key events, per page, traffic channel, and event) for the last 90 days; some reports are also fetched live when you open the Google Analytics tab. These totals contain no information about individual visitors. If you ask Brandfine to create a property for you, we create a Google Analytics 4 property and web data stream in the account you pick and store its Measurement ID.
- Wyrote: an inbound webhook integration for AI content generation. We hold a signing secret we issue to Wyrote and store the article payloads they POST to us as draft posts in your workspace.
AI assistants you connect
You can connect an AI assistant that supports the Model Context Protocol, such as Claude, to your Brandfine account (Settings → AI access). This works the other way round from the integrations above: the assistant reads and changes your content in Brandfine, as you, when you ask it to.
- What we store: the name and return address the assistant registers with, the access and refresh tokens we issue to it, the permissions you approved, and when you approved and last used the connection.
- What the assistant can reach: only what you approved, in the teams you belong to, limited by your role there. There are four permissions: Content (posts, images, navigation, the knowledge base, and the brand description your team wrote), Workspaces (creating them and changing their settings), Analytics (traffic, Search Console, Google Analytics, and SEO audit results), and Inbox. An assistant never reaches billing, API keys, or team members.
- Inbox is off unless you tick it. With it, the assistant can read the form submissions, live chats, and appointment requests your sites receive, which include your visitors' names and contact details, and it can reply to chats and answer appointment requests, which sends messages and emails to those visitors. Turn it on only if you are allowed to share that data with the assistant's provider (see our Data Processing Agreement).
- Where that content goes: to the assistant and its provider (for Claude, Anthropic), under your own agreement with that provider, whose privacy terms apply to what the assistant receives. For this, the provider acts for you, not as Brandfine's sub-processor.
Data we generate from operating the service
- SEO audit results when you run an audit: URLs
discovered from your
/sitemap.xml, fetched HTML for audit-time analysis, Lighthouse / PageSpeed Insights scores from Google's PSI API, and our own per-check evaluations. - AI features you use (content briefs, insights, knowledge base answers): the workspace content and aggregated performance data the feature needs, sent to our AI provider to generate the result.
- Images imported from a web address: when you, or an AI assistant you connected, import an image, we download it from the address given and store it with your uploaded assets.
- Server logs: HTTP request metadata (IP, user agent, timestamps, path) kept for up to 30 days for security monitoring and abuse prevention.
- Analytics of our own sites: aggregate, privacy-friendly usage data via our self-hosted Umami instance. No third-party trackers, no cookies, no cross-site identifiers.
Data about visitors to your sites
When you turn these features on, Brandfine collects data from visitors to your sites on your behalf. You decide which features to use, and you are the controller of this data.
- Contact form submissions: whatever fields your forms collect (typically name, email, and a message), stored so they appear in your Submissions inbox and forwarded according to your routing rules.
- Live chat: the visitor's name, email address, and phone number if they give them, their messages, and the page, referrer, browser, and language they chatted from. To block abuse we also keep the visitor's IP address and a hash of basic device characteristics; both are used only to enforce blocks you set. These are created only once the visitor opens the chat, along with an identifier in the visitor's browser storage that lets them resume the conversation. If you turn on AI replies, messages are sent to our AI provider to generate answers from your knowledge base.
- Appointment requests: the visitor's name, email address, phone number if given, message, and requested time.
- Website analytics: page address (including any query string, so keep personal data out of your URLs), referrer, browser, operating system, device type, screen size, language, and approximate location (country, region, city) derived from the IP address. The IP address itself is not stored, no cookies are set, and nothing is stored on the visitor's device; visits are grouped with a salted hash that changes regularly and can't be used to track a visitor across sites.
- Google Analytics, if you enable it: loaded on your site only when your site calls our SDK after the visitor consents to analytics cookies. Asking for that consent is your site's responsibility. Google Analytics data goes to your own Google Analytics property under your agreement with Google; Brandfine does not receive it.
How we use your data
- To provide Brandfine to you and your team.
- To sync data from third-party services you connect (e.g. nightly pulls from Google Search Console).
- To send transactional notifications (account verification, team invitations, contact form, chat and appointment alerts, integration connection failures).
- To run SEO audits and AI features you request and store the results so you can review them later.
- To debug and improve the service, including reading aggregate usage trends.
- To enforce our Terms of Service and detect abuse.
We do not use your content, your visitors' data, or any data we receive through your integrations to train machine learning models, build advertising profiles, or sell to third parties. Our AI provider processes data only to return results to us and, under its commercial terms, does not train its models on it.
Google API services
This section covers Brandfine's use of Google APIs specifically. It fulfills the disclosure requirements Google requires for OAuth applications that access Google user data.
Scopes we request
-
https://www.googleapis.com/auth/webmasters.readonly— read-only access to Google Search Console data for the property you select. Used to pull clicks, impressions, queries, average position, and per-URL index coverage. -
https://www.googleapis.com/auth/analytics.readonly— read-only access to your Google Analytics accounts. Used to list the accounts and properties you can pick from and to run the reports shown in your workspace's Google Analytics tab. -
https://www.googleapis.com/auth/analytics.edit— requested optionally, only if you click "Create a property for me" in your workspace's Google Analytics tab. Used solely to create a Google Analytics 4 property and web data stream in the account you choose. -
https://www.googleapis.com/auth/userinfo.email— your Google account's email address, displayed in Brandfine so you can confirm which Google account a connection belongs to. Not used for any other purpose.
How we use Google API data
Google Search Console data we sync is stored in our database and surfaced in your workspace's Search Console tab, on the per-post detail page, and in your posts list as performance overlay columns. Google Analytics totals we sync are stored the same way and shown in your workspace's Google Analytics tab and on each page. Google API data is used only to display your search and analytics performance back to you and to power features inside Brandfine like the SEO Audit cross-reference. We do not aggregate it with other customers' data, sell it, share it with advertisers, or use it for any purpose unrelated to providing these features to your workspace.
Brandfine's use of information received from Google APIs adheres to the Google API Services User Data Policy, including the Limited Use requirements. Specifically:
- We use Google API data only to provide and improve the features visible in Brandfine's Search Console and Google Analytics tabs and related views.
- We do not transfer Google API data to third parties except as necessary to provide the user-facing features (see "Service providers" below), to comply with law, or as part of a merger or acquisition.
- We do not use Google API data for advertising purposes.
- We do not allow humans to read Google API data unless required by law, with your explicit consent for debugging a specific reported issue, or when the data has been aggregated and anonymized.
Revoking access
You can disconnect Brandfine from your Google account at any time by:
- Removing the integration in the Search Console or Google Analytics tab of your workspace; or
- Visiting Google Account → Connected apps and revoking Brandfine's access there.
Once revoked, we stop calling Google APIs immediately and delete the stored OAuth tokens. Search Console and Google Analytics data we already synced into your workspace remains until it passes the retention period or you delete the workspace; see "Data retention" below. A Google Analytics property we created for you stays in your Google account.
Service providers
We use the following providers to operate the service. Each receives only the data necessary to perform its function. Those that process your visitors' data on our behalf are listed, with their locations, on our sub-processor page.
- DigitalOcean — hosts the Brandfine application, databases (including website analytics), and uploaded assets, in Frankfurt, Germany.
- Anthropic — provides the AI models behind live chat AI replies, knowledge base answers, content briefs, and insights.
- Resend — sends transactional emails (account verification, team invitations, form, chat, and appointment notifications).
- Cloudflare — handles DNS and (optionally) CDN caching for our public domains.
- Polar — processes subscription payments and invoicing as our payment provider.
- Google — supplies Search Console, Google Analytics, and PageSpeed Insights data, used as described above.
We do not sell or rent your personal data to anyone, and we do not share it for cross-context behavioral advertising.
Where your data is stored
Brandfine's databases, application servers, and uploaded assets are hosted by DigitalOcean in Frankfurt, Germany (EU). Brandfine is operated from Turkey, and some of our service providers (Anthropic, Resend, Cloudflare, Polar) are based in the United States. Where personal data from the European Economic Area, the United Kingdom, or Switzerland is accessed from or sent to those countries, we rely on the European Commission's Standard Contractual Clauses (and the UK Addendum where applicable) or equivalent safeguards.
How we protect your data
- Connections between browsers and Brandfine are encrypted via HTTPS (TLS 1.2 or higher).
- Integration credentials, including OAuth refresh tokens for Google Search Console and Google Analytics, are encrypted at rest using AES-256-GCM with per-row random IVs. Decryption happens only inside the server process at the moment of use; raw credentials are never logged.
- Passwords are hashed using bcrypt (via Better Auth) and never stored or transmitted in plaintext.
- Tokens issued to AI assistants you connect carry only the permissions you approved, expire after one hour, and are renewed with single-use refresh tokens. You can revoke a connection at any time in Settings → AI access.
- Database access is restricted to the application server only. Keys placed in public web pages are scoped to the few actions a visitor needs. Outbound traffic to third-party APIs uses scoped credentials with the minimum permissions needed.
No system is perfectly secure, and we cannot guarantee absolute security. If we become aware of a security incident affecting your data, we will notify you without undue delay.
Data retention
- Account data: retained for the lifetime of your account. Deleted within 30 days of you requesting account deletion.
- Workspace content and visitor data (posts, navigations, contact submissions, live chat conversations, appointment requests): retained for the lifetime of the workspace. Deleted when you delete the workspace.
- Website analytics: retained for 25 months. Older data is deleted automatically every day.
- Google Search Console and Google Analytics data: we retain up to 16 months of metric history per workspace, matching Search Console's own retention window. Older rows are deleted automatically every night.
- OAuth tokens: deleted immediately when you disconnect the integration or delete the workspace.
- AI assistant connections: tokens are deleted when you disconnect the assistant. A connection unused for 30 days expires, and its tokens are deleted automatically. An assistant registration that nobody approved is deleted after 30 days.
- Server logs: retained for 30 days.
- Backups: may persist for an additional 30 days after primary deletion; we don't restore from backups except in emergency recovery.
Your rights
Depending on where you live, you may have legal rights regarding your personal data — including access, correction, deletion, restriction of processing, data portability, and objection to processing. To exercise any of these rights, email hello@brandfine.co from the email address registered to your account. We respond within 30 days.
For users in the European Economic Area, the United Kingdom, or Switzerland: you also have the right to lodge a complaint with your local data protection authority. The legal basis for our processing is performance of our contract with you (the Terms of Service), our legitimate interests in operating and securing the service, or your explicit consent for optional integrations you connect. Users in Turkey have the rights set out in Article 11 of the Personal Data Protection Law (KVKK).
Visitors to our customers' sites: the business that runs the site controls your data. Please contact them first; if you contact us, we will pass your request on to them.
Cookies
Brandfine sets a single first-party session cookie when you log in, used only to keep you signed in. We do not set advertising cookies, cross-site tracking cookies, or share cookie data with third parties. Our analytics is collected via a self-hosted, cookieless setup.
On our customers' sites, Brandfine's website analytics sets no cookies and stores nothing on the visitor's device. Live chat stores a conversation identifier in the visitor's browser only after they open the chat, so they can resume it. Google Analytics, if a customer enables it, is loaded by the customer's site only after the visitor consents, through the customer's own cookie banner.
Children
Brandfine is a business tool intended for use by adults. We do not knowingly collect personal data from anyone under 16 years of age. If you believe a minor has provided us with personal data, please contact us so we can delete it.
Changes to this policy
We may update this Privacy Policy from time to time. When we make material changes, we will notify registered users by email and update the "Last updated" date at the top of this page. Continued use of the service after a change constitutes acceptance of the updated policy.
Contact
Privacy questions, data requests, or anything else policy-related: hello@brandfine.co. We aim to respond within 30 days.