Skip to content
GarudaStart building
Privacy

Privacy policy

Garuda is a chat agent that businesses embed on their own websites. That means two very different groups of people have data here, and most privacy policies blur them together. This one keeps them apart.

Last updated 30 August 2026

The short version

This part is a summary in plain words. It is not the policy — the numbered sections below are — but nothing here contradicts them.

  • There are two kinds of people in this policy. If you run a business with a Garuda account, we hold your data for you. If you chatted with an agent on someone's website, we hold that conversation for that business, on its instructions. Which one you are

  • Nothing a visitor types becomes a saved lead until they explicitly agree in the conversation. The server refuses to write contact details without that consent. How consent works

  • Chat messages are sent to Google's Gemini API to produce a reply. If you are about to embed a chatbot on your site, you should know that before you paste the script tag. What is sent, and what is not

  • A returning visitor is recognised by a token that only works for one agent. The same browser produces a different identifier on a different customer's site, so the token cannot follow anyone around the web. Why it cannot track you

  • We do not sell personal information, we run no advertising or analytics trackers, and Garuda's own pages set no cookies at all. What is stored in your browser

  • There is no automated deletion schedule yet, and we are not going to pretend otherwise. Access, correction and deletion requests are handled by hand, by email. How to make a request

1. Two groups of people

Garuda is operated by Ravan AI. Throughout this policy, we means Ravan AI and Garuda means the product.

Customers

A customer is a business or a person who creates a Garuda account, builds an agent and embeds it on a website they control. We hold customer data for the customer, and we decide how the account itself works — sign-in, billing, support. This policy governs that data directly.

Visitors

A visitor is someone who opens a chat with an agent on a customer's website. We do not choose what that agent is for, what it asks, or what the business does with the answers. The customer does. For visitor data we act on the customer's behalf: we store it, we make it available to that customer and to nobody else, and we act on that customer's instructions about it.

The practical consequence for a visitor: if you want a conversation or your contact details removed, the business whose website you were on is the fastest route, because it is their record. You can also write to us at info@ravan.ai and we will help — see your rights.

One boundary that is enforced in code, not just here

Every record in Garuda — agent, knowledge source, conversation, message, lead — carries the account id it belongs to, and every request is resolved against that account before any record is returned. One customer cannot read another's conversations or leads.

2. What we collect from customers

Data collected from a business with a Garuda account
WhatWhy we have it
Your name and email addressTo create your account, sign you in, verify your address, and send password-reset and welcome email.
A password, stored only as a hashSign-in. We store a PBKDF2-SHA256 hash with a random salt, never the password. If you sign in with Google instead, we store the Google account identifier rather than a password.
Your workspace nameTo label the account in the portal.
Agent configurationThe agent's name, description, instructions, welcome message, suggested replies, lead-capture settings, colours and branding, the privacy-policy link shown in the widget, and the list of domains the widget is allowed to run on.
Knowledge sourcesThe text you paste in, its title, and an optional source URL. Garuda does not crawl your website: for a URL source you supply the extracted text yourself. Up to 5 sources per agent, 100,000 characters each.
Voice notes, if you record oneDuring onboarding you can describe your business by speaking instead of typing. That audio is sent to a transcription provider and you are shown the text it produced. Nothing is drafted from a recording you have not read.
Billing identifiers and subscription stateA Stripe customer id, the subscription id, its status and renewal date. Card details are entered on Stripe's own pages — Garuda never receives or stores a card number.
Support correspondenceIf you email us, we keep the email so we can answer it.

When you connect a third-party account through Composio, or add a webhook endpoint, we store the connection record and the endpoint you configured. We do not store the credentials for your third-party accounts; Composio holds those. See sub-processors.

3. What we collect from visitors

This is what the widget sends when someone opens a chat on a customer's website, and what the server keeps. It is stored for the business that owns the agent.

Data collected from a person chatting with an agent
WhatWhy it is collected
The messages in the conversationWhat the visitor typed and what the agent replied, with timestamps. This is the conversation the business reads in its inbox.
The page the chat happened onThe URL and title of the embedding page, plus the referrer your browser reported to it. It tells the business which page prompted the question.
The site the widget was loaded fromThe origin of the embedding page, checked against the domains the customer approved. A widget loaded from an unlisted domain is refused.
Your browser languageSent as a language tag, such as en-GB, so the conversation can be labelled.
An identifier for the conversationEither a per-visit identifier that links nothing, or — only if you agreed to be remembered — an agent-scoped one. See the next two sections.
Contact details, only after you agreeName, email address, phone number, company and any extra fields the business configured. Never stored without explicit consent.

Your IP address

Your IP address reaches our server, as it does with any website. It is used to apply rate limits, held in memory for the length of the limit window, and then discarded. It is not written into the conversation record, and our request log records the method, path, status, duration and a request id — not the address.

What the agent is not given

The widget does not read the page around it, does not see forms you have filled in elsewhere on the site, and does not fingerprint your device. It sends the fields in the table above and the messages you type, and nothing else.

5. The returning-visitor token

If a visitor agrees to be remembered, the agent can pick up where the last conversation left off. Here is exactly how that works, because the design is the reason it cannot be used for tracking.

  • The server generates 32 random bytes. The token is that random value and nothing else — it contains no name, no email address, no device information and no account identifier.
  • The widget stores it in the embedding site's own browser storage, under a key that names the specific agent it belongs to. A token from one customer's site is never read by another customer's widget, because the key does not match.
  • On the next visit the widget sends that token back. The server does not store the token itself: it derives an identifier using HMAC-SHA256 over a server-held secret, the agent's id and the token, and stores only that.
  • Because the agent's id is mixed into the derivation, the same token would produce a completely different identifier for a different agent. There is no shared identifier that could join two customers' records together.

So the token recognises a returning visitor for one agent, on one site. It cannot correlate the same browser across different customers' websites, and we could not build a cross-site profile from it even if we wanted to. That property is covered by a test in our codebase, so a change that broke it would fail the build.

A visitor who wants to be forgotten by an agent can clear that site's browser storage: the token is gone, and the next visit starts as a new one. That does not delete the transcripts already stored for the business — for those, see your rights.

6. Conversations go to a model provider

A Garuda agent does not write its answers by itself. To produce a reply, the server sends a request to Google's Gemini API through its OpenAI-compatible endpoint. If you are deciding whether to embed a chat agent on your site, this is the paragraph that matters.

What is and is not sent to the model provider on each reply
Sent with each requestNot sent
The agent's instructionsYour account name or email address
Passages retrieved from the customer's own knowledge sources, when they are relevant to the questionThe visitor identifier or the visitor token
The recent messages of the conversation, as roles and textThe page URL, page title or referrer
Nothing elseAny contact details captured as a lead

Whatever a visitor types into the chat is part of the conversation and therefore reaches the model provider. Tell your visitors not to type card numbers, passwords or government identifiers into a chat window — no chat agent is the right place for those. Google's handling of the request is governed by Google's own terms for that API.

We do not train any model on your content. Garuda has no training pipeline: your knowledge sources and conversations are used to answer questions in your own workspace and for nothing else.

7. Sub-processors

These are the companies that process data on our behalf so the product can work. We name what each one actually receives rather than listing them as a formality.

Sub-processors and what each one receives
ProviderWhat it receivesWhen
Google (Gemini API)Agent instructions, retrieved knowledge passages, and the recent messages of a conversation.Every time an agent replies.
SupabaseKnowledge source text, split into passages and indexed so the agent can retrieve the relevant part, plus the search query. It also backs account sign-in when Garuda is configured to use it.When a knowledge source is added, and on each retrieval.
StripeYour billing email address, an account identifier, and the card details you enter on Stripe's own payment pages.Checkout, renewals, invoices and the billing portal.
SendGridA customer's email address and name, to deliver account email: address verification, password reset and the welcome message. Visitor email addresses are never sent to SendGrid.Account email only.
DeepgramThe audio of an onboarding voice note, if you choose to record one instead of typing.Only when you use the voice recorder.
ComposioAn identifier for your workspace and the name of the tool you are connecting. You authorise your own third-party account; Composio holds that connection, not us.Only for integrations you connect yourself.
VercelHosting for this website, the customer portal and the widget script. Standard request data reaches it, as with any hosted site.Whenever a page or the widget script is loaded.
Our API hostThe API at api.garuda.ravan.ai runs on a virtual server we operate and administer. Its provider necessarily holds the disk that our data file sits on.All the time.

Every one of these is a company based in the United States, so assume that data sent to them is processed there. There are no advertising networks and no analytics vendors on this list, because we use none.

If you configure an outbound webhook, Garuda will send lead and conversation events to the URL you chose. Once an event leaves for your endpoint, it is in your hands and your provider's. Our delivery log records the event name, its status and the attempt count — never a visitor's email address or phone number.

8. Where data lives, and for how long

Where

Accounts, agents, conversations, messages and leads are held by our API service. Knowledge source text is additionally indexed by the retrieval service described above, so an agent can find the relevant passage. Both are covered by the sub-processor list.

For how long

Plainly: we do not currently delete anything on a schedule. There is no automated retention or deletion sweeper in the product today. Conversations, messages and leads stay in the customer's workspace until the customer or we remove them.

One number on the site is easy to mistake for a retention period, so to be clear about what it is: a returning visitor resumes a previous conversation only if it was active within the last 30 days, and the plan's 100 conversations are counted over the same rolling window. Both are product limits. Neither deletes anything.

What a customer can delete themselves, today

From the portal, a customer can archive an agent and delete a knowledge source — deleting a source also removes its indexed passages from the retrieval service. There is no self-serve button yet for deleting a conversation, a lead or a whole account. Those are requests we handle by hand, and the next section says how.

A promise we are not making

We are not going to state a retention period, a deletion deadline or a response-time guarantee that nothing in the product enforces. When automated retention exists, this section will say what it does and this page's date will change.

9. Your rights, and how to use them

Depending on where you live, you may have rights over your personal data — to get a copy of it, to correct it, to have it deleted, or to object to how it is used. We will act on these requests regardless of whether a particular law applies to you. Requests are handled by people, by email, not by an automated flow.

If you are a customer

Email info@ravan.ai from the address on your account and say what you want. You can also help yourself first: leads export to CSV from the portal, and conversations and their transcripts are all visible there.

If you are a visitor

The business whose website you chatted on holds the record, so ask them first — they can act immediately and they know which conversation you mean. If that gets you nowhere, or you do not know who to ask, email info@ravan.ai with the website, the approximate date and time, and anything that identifies the conversation. We will locate it and act on the customer's instructions, or tell you who to contact.

We will acknowledge a request when we read it and tell you what we are doing. We deliberately do not publish a fixed-hours response guarantee, because nothing in the product enforces one and a promise we cannot keep is worse than no promise.

10. Cookies and browser storage

Garuda's own pages set no cookies. There is no cookie banner on this site because there is nothing to consent to: no advertising pixels, no analytics scripts, no third-party trackers. What the product does use is browser storage, and here is all of it.

What Garuda stores in a browser
WhereWhat is storedHow long
The customer portalYour access token, refresh token and their expiry, in local storage.Cleared when you sign out, and when the token expires. Closing the tab does not clear it, so that signing in through Google in a new tab returns you to the app still signed in.
The customer portalThe id and name of an agent you just created, so the next screen can open it.Cleared on sign-out.
The chat widget, on the customer's own siteThe remember-or-not choice for that agent.Until the visitor clears that site's storage.
The chat widget, on the customer's own siteThe returning-visitor token for that agent, only if the visitor chose to be remembered.Until the visitor clears that site's storage, or chooses use once.

Widget storage lives under the customer's own website address, not ours, and every key names the single agent it belongs to. If browser storage is unavailable — a private window, or a browser that blocks it — the widget still works; it simply cannot remember anything between visits.

11. Security, and what we do not claim

The measures in place today include: passwords stored only as salted PBKDF2-SHA256 hashes; session tokens stored as digests rather than as the tokens themselves and compared in constant time; a widget that only runs on domains the customer has listed; per-address rate limits on every public endpoint; and HTTPS everywhere. The security page goes through each of these in detail.

Certifications we do not hold

Garuda has no SOC 2 report, no ISO 27001 certificate, and is not HIPAA compliant. There has been no independent security audit. If a vendor questionnaire asks, the honest answer is no. Do not put protected health information, payment card data or government identifiers into a Garuda agent.

No service can promise it will never be breached. If a breach affects your data, we will tell you what happened, what we know and what we are doing about it.

12. Children

Garuda is a business tool and is not directed at children. We do not knowingly collect personal data from a child. If you believe a child's data has ended up in a Garuda workspace, write to info@ravan.ai and we will remove it. Customers must not configure an agent to collect contact details from children.

13. Changes and contact

When this policy changes, the date at the top changes with it. A change that materially affects how we handle personal data will also be announced by email to account holders. Continuing to use Garuda after a change means the updated policy applies to you.

Garuda is operated by Ravan AI. For anything in this policy — a question, a correction, or a request about your data — write to info@ravan.ai. Our terms of service are at garuda.ravan.ai/terms.

Questions about this document?

Write to us and a person will answer. If anything on this page does not match what the product actually does, treat the product as the truth and tell us, so we can correct the page.