Security
Go Fig is SOC 2 Type II certified against the Security trust services category. Your financial data is encrypted in transit using TLS 1.2 or higher, with TLS 1.3 negotiated by default, and at rest using Google Cloud managed AES-256 encryption. Each organization's data sits in its own storage namespace, and tenant separation is enforced independently at the middleware, query, storage, and permission layers rather than relying on encryption alone. AI providers are accessed through business API tiers whose terms prohibit training on your data, and detected PII is redacted before anything reaches them. Celeste is read-only by default; write-back is opt-in per connector and fully audited. Role-based access controls, audit logs, and continuous control monitoring through Vanta protect your information.
Go Fig is SOC 2 Type II certified against the Security trust services category.
That examination covers Security only, and it expressly excluded the behavior of our AI components. So rather than point you at the audit, this page sets out Celeste's data handling in full: what we send to AI providers and which providers, how PII is redacted before it leaves, what Celeste can and cannot change in your systems, what is logged and for how long, and how your data stays separate from every other organization's.
How Celeste handles your data
Celeste is our AI analyst. The short version: your data is not used to train AI models, Celeste sends the minimum needed to answer your question plus a small capped sample of rows, and detected PII is redacted before anything reaches a provider. Everything below is the long version, written so a security reviewer can answer a questionnaire from it without being handed off anywhere else.
What Celeste sends to AI providers, and which providers
This page is explanatory
The binding version of these commitments is Annex I, Section 6 of our Data Processing Agreement, which forms part of your contract. Where the two differ, the DPA governs.
Go Fig sends AI requests only through providers' business API tiers, whose standard terms provide that data submitted via the API is not used to train their models. We never use consumer-tier endpoints, and we do not fine-tune any model on customer data.
| Provider | Model | Role | Training policy |
|---|---|---|---|
| Gemini (Vertex AI) | Primary, every plan | Covered by Google Cloud data processing terms; not used for training | |
| OpenAI | GPT | Failover and specific tasks, every plan | Does not train on data submitted via the API |
| Anthropic | Claude | Failover, Pro, Growth, and Enterprise. On Starter no data is sent to Anthropic. | Does not train on data submitted via the API |
Beyond those no-training terms, we minimize what is ever sent. Celeste transmits the minimum needed to understand your question, generate an accurate SQL query, and describe the result back to you in words.
Sent to AI providers
| Data type | Example | Why it is needed |
|---|---|---|
| Your question and session history | "Which segments lost margin last quarter?" | To understand what you are asking and what you asked before it |
| Table names | income_statement, sales_by_item | To reference the correct tables in SQL |
| Field names | revenue, date, category | To build accurate queries |
| Field types | VARCHAR, DECIMAL, DATE | To avoid type errors in SQL |
| Metric definitions | gross_margin = (revenue - cogs) / revenue | To use your organization's business language |
| Limited sample values | category: [Retail, Wholesale, Online] | To understand data shape (PII redacted first) |
| Capped row samples | Up to 100 rows from a relevant table | To ground the answer in your actual data rather than guessing |
| Capped query results | The rows your query returned, truncated | So Celeste can describe the result in words |
Note
Row samples and query results are filtered by your role-based permissions before they are sent. If a field is hidden or redacted for your role, it is not in the payload.
Never sent to AI providers
| Data type | Protection |
|---|---|
| Full table exports or bulk extracts | Never sent; only capped samples are transmitted |
| Passwords, API keys, OAuth tokens | Never included in any context |
| Data from other organizations | Blocked by the isolation layers described in Tenant isolation |
| Fields your role cannot see | Stripped before the payload is built |
The search index
Separately from answering any one question, Go Fig maintains a search index so Celeste can find the right table without scanning everything. That index is Google Cloud Vertex AI Vector Search, located in the United States, and Google generates the embeddings from the text we send it.
More goes to the index than to a single prompt. It holds table and field names, types and descriptions; statistical profiles of your fields, including value ranges and frequently occurring values; a small number of sample rows; the definitions of your flows, dashboards and saved questions; the question text your users submit; and the contents of any knowledge file you upload. The redaction described below is applied to sample rows and to profiled and sampled values. It is not applied to descriptions or knowledge-file content, which reach the index as your users wrote them.
Records derived from your data carry your organization ID, and retrieval of those records is filtered by that ID at Google, not only in our code. There is no fixed retention period on the index. Records are removed when the underlying table is deleted, when you disable AI features, and when your organization is deleted.
Improving Celeste
We review conversation content from real usage to evaluate and improve Celeste's own accuracy. This is internal quality work, and it is not model training: no customer data trains any foundation model as a result of it.
Conversations selected for review pass an automated screen that excludes anything showing signs of personal data. Anything the screen flags goes to a queue where an authorized person reviews it before it can be used. Organizations that want to be excluded from this entirely can request it at [email protected].
Connections you direct
Everything above describes Celeste, where we control the payload. Separately, Go Fig publishes a Model Context Protocol (MCP) server that lets you connect your Go Fig organization to an external AI assistant such as Claude. If you set that up, data from your organization flows to that assistant's provider under your agreement with them, not ours. The caps and redaction described on this page govern what Celeste sends; they do not govern what you pull through a connection you control. We authenticate the connection and log the access. This is Section 3.4 of the Data Processing Agreement.
How PII is redacted before it leaves
Before any data reaches an AI provider, Go Fig automatically detects and redacts personally identifiable information. The same protections apply to AI responses before they reach you.
Input side, before sending to AI
Every data path that feeds an AI prompt is scrubbed:
- Table sample values. PII in sample data is replaced with
[REDACTED]. - Table descriptions. User-written descriptions are scrubbed before embedding.
- Semantic model dimensions. Dimension sample values are scrubbed.
- Prompt context. A safety-net scrub runs on the final assembled prompt.
Output side, before showing responses
AI responses are validated before they reach you:
- PII patterns detected and redacted
- Unverified URLs removed
- Fabricated numbers flagged
- SQL mutation statements stripped from displayed code
PII types detected
| Type | Detection method |
|---|---|
| Social Security numbers | Pattern matching (XXX-XX-XXXX) |
| Credit card numbers | Pattern matching plus Luhn algorithm validation |
| Email addresses | Pattern matching |
| Phone numbers | US format pattern matching |
Know the limit
PII redaction is pattern-based. It catches common formats reliably, and it is not a substitute for proper data governance. Avoid storing PII in table descriptions or field names where you can.
Can Celeste change your data?
Not by default. Celeste is read-only by default. In its analytical role it generates SELECT queries only. INSERT, UPDATE, DELETE, DROP, and all other mutation statements are blocked at the guardrail layer.
Separately, an administrator can opt in to write-back on a per-connector basis. Where it is enabled, Celeste can act in your connected systems on your instruction:
| Capability | Example |
|---|---|
| Accounting write-back | Create invoices, bills, journal entries, estimates, customers, and vendors in QuickBooks |
| Send through a connected Gmail or Outlook mailbox | |
| Messaging | Post to Slack |
| Productivity | Write to Notion, create calendar events, update CRM records |
Off until you turn it on
Write-back stays off until an administrator turns it on, and it takes more than one switch. Your organization has a single write-back setting that has to be on, each connector then carries its own agent access setting, and a mailbox or CRM seat belonging to one person carries a further per-account setting that person controls. Your plan does not turn write-back on or off. It decides which systems you can connect in the first place, and so what write-back has to reach. Every write is recorded in a write audit log your organization can review. Review these settings before enabling them for a connector that reaches customers or a system of record.
What is logged, and for how long
Every AI interaction is logged stage by stage, on every plan. Each record holds:
- What was asked. The user's original question.
- Which model processed it. The model used at each stage.
- What data was reached. Tables and fields accessed, and the context provided.
- What was returned. The generated SQL and the response.
- Timing and confidence. Duration and confidence score for each processing stage.
The trail is read where the interaction happened: under any Celeste response, the Show work link opens the stages in order, with the tables reached, the SQL generated, and the time each stage took. An organization administrator can open any trail in their own organization. Everyone else sees only their own. Nobody can read across organizations, and a person who has left your organization is refused even on their own past conversations. Administrator here means the Admin role specifically, not any member who happens to hold elevated data permissions.
Administrators also get an organization-wide view: the AI activity page in organization settings. For any window they choose it lists interactions with when each one happened, who asked, the question, the data it reached, the models used, and the credits it consumed, and it filters to one person and to a date range. A window can span up to 400 days, measured end to end, and nothing limits how far back it starts. One request returns at most the 500 most recent interactions in that window and the page shows 25 rows at a time, so a busy window is a page rather than the whole record. The page says so on screen when the window holds more than one request returns, and it reports the true total either way. Every row carries a Decision trail column: Show work opens that interaction's stage-by-stage trail without leaving the page.
Question text is readable for 90 days, counted from when the conversation was opened rather than from the individual question. A question asked today inside a conversation opened more than 90 days ago is already withheld. Decision trails run on their own clock, counted from the interaction itself. Past 90 days that content is withheld at read time, ahead of the jobs that delete it, so nothing older is readable even in the days before a cleanup job runs. A trail withheld on the conversation clock is not blank: the stages that ran, their timing and confidence, and the tables reached are still shown, and only the written detail and the generated SQL are withheld. Once the interaction itself is past 90 days its trail records are deleted, and there is nothing left to show. Attribution outlives the content window: an administrator looking back a year still sees who asked, when, which models ran, and what it cost, without the question text or the written detail of the trail.
Usage metering records are separate and are retained for seven years on a tax and accounting basis. They record what was consumed, not what was said: model, token counts, cost, and credits per request, associated with your organization. They contain no query text, no results, and no content from your data. The link to the individual user is removed after 90 days, so only organization-level metering persists beyond that.
How your data stays separate from other organizations
Isolation is enforced twice over, on two different subsystems. Both sets of layers are always on.
On the AI retrieval path (vector search)
- Datapoint ID encoding. Every indexed record is prefixed with your organization ID.
- Server-side collection filtering. AI search queries are filtered by organization at the provider, not just in our code.
- Thread-local org fence. Every operation validates organization access before executing.
- Metadata encoding. Organization ID is stored as a searchable field in every data object.
On the platform path (queries, storage, permissions)
- Middleware organization fence. Validated on every request.
- Query-level filtering. Organization filtering applied to every database query.
- Storage namespacing. Per-organization object storage namespaces with scoped access credentials.
- Role-based access control. Enforced within each organization.
Cross-organization access attempts raise an error and are logged.
Two sets of four, not one set counted twice
These are two different sets of four layers, covering two different subsystems. If you are comparing this page against Annex II of our Data Processing Agreement, the DPA describes the platform path; this page adds the retrieval path on top of it. Neither is a restatement of the other.
One deliberate exception
Global knowledge bases (Go Fig product documentation and capabilities) are intentionally shared across organizations. They contain only Go Fig product information, never customer data.
What every plan gets, and what is plan-gated
The protections on this page are not an upsell. Every organization, on every plan, gets all six:
- No-training AI providers. What we send, and to whom
- PII redaction on the way out and the way back. PII redaction
- Tenant isolation, eight layers across two subsystems. Tenant isolation
- Read-only by default. Read-only and write-back
- A full AI interaction audit log. Audit trail and retention
- An organization-level switch to turn AI off entirely. With it off, no data from your organization reaches any AI provider under any code path.
What varies by plan is the depth of access control, which models are reachable, and how we evidence our security posture:
| Capability | Starter | Pro | Growth | Enterprise |
|---|---|---|---|---|
| Organization roles (Admin, Data Steward, Analyst) | Included | Included | Included | Included |
| Custom data roles for collection and table access | Not included | Not included | Included | Included |
| Field-level restrictions (hide and redact) | Not included | Not included | Included | Included |
| Permission audit log | Not included | Not included | Not included | Included |
| Anthropic (Claude) models in the routing pool | Not included | Included | Included | Included |
| SOC 2 Type II report, under NDA | Not included | Not included | Not included | Included |
On plans below Enterprise we provide a summary of our security posture and written answers to specific security questions in place of the report itself. Request either at [email protected]. The commitment is written down in section 3.6 of the Terms of Service and section 9 of the Data Processing Agreement.
Security Questions
Common questions about how Go Fig protects your data.
Where is my data stored?
Go Fig stores data only for customers who don't bring their own database. For these customers, data is stored in Google Cloud Storage's US multi-region location, which replicates it across at least two United States regions and holds it only within the United States, in a storage namespace scoped to your organization with credentials that do not reach across organizations. Data is encrypted at rest with Google Cloud managed AES-256 and in transit with TLS 1.2 or higher, negotiating TLS 1.3 by default. Storage access keys rotate on a 90-day policy.
Who can access my data?
Only users you explicitly authorize can access your data. Go Fig employees may access your data when necessary to help resolve issues or respond to support requests. All access is logged and auditable.
Do you sell or share customer data?
Never. Your data is your data. We do not sell, share, or use customer data for any purpose other than providing the Go Fig service. We may use anonymized, aggregated usage patterns to improve our platform, but your financial data is never used to train AI models. No system is perfectly secure and we do not claim otherwise; what we can tell you is exactly what we do and do not do with your data, which is set out in our Privacy Policy and DPA.
What happens to my data if I cancel?
Upon cancellation you have 30 days to export all your data in standard formats. After that period we delete your data from our production systems, and provide written confirmation on request. Encrypted database backups run on a rolling schedule of 21 automated daily backups with a seven-day point-in-time recovery window; they are never restored to production, and your data is overwritten as those backups age out. So the outside limit from cancellation to full expunction is roughly 51 days.
Is Go Fig SOC 2 certified?
Yes. Go Fig is SOC 2 Type II certified, and our security controls have been audited by an independent third party. The examination covers the Security trust services category only, and does not cover Availability, Processing Integrity, Confidentiality, or Privacy. Enterprise customers can request the report itself under NDA. On any other plan we provide a summary of our security posture and written answers to specific security questions; request either at [email protected].
Is Go Fig validated for FDA 21 CFR Part 11, or for other regulated records?
No, and it is not intended to be. Go Fig is an analytics layer, not a system of record. Records governed by Part 11 or a comparable regime, such as batch records, quality and laboratory data, and controlled documents, should remain in the validated systems that govern them. Go Fig reads from business systems such as your ERP for reporting and analysis, and our Terms confirm we are not a system of record or a backup service. If you determine that data you intend to connect falls under Part 11, HIPAA, PCI-DSS, or a comparable sectoral regime, Section 3.3 of our Data Processing Agreement requires the parties to agree additional terms in writing first. We would much rather have that conversation before you connect anything than after.
How do you handle data breaches?
We maintain a documented incident response plan, verified as part of our SOC 2 Type II audit. If we become aware of a breach affecting your data, we notify you without undue delay and no later than 72 hours after becoming aware, with what we know about the nature and scope and the steps we are taking.
Which AI providers does Go Fig use?
Celeste, our AI analyst, is powered by Google (Gemini via Vertex AI) as the primary provider on every plan, with OpenAI (GPT) used on every plan for failover and specific tasks. Anthropic (Claude) is in the routing pool on Pro, Growth, and Enterprise; on Starter no data is sent to Anthropic. All are accessed through their business API tiers, whose standard terms prohibit training on data submitted via the API. We never use consumer-tier endpoints.
Is my data used to train AI models?
No. The business API tiers we use do not train on data submitted through the API, and we do not fine-tune any model on customer data. We do review real conversations to improve Celeste's own accuracy, screened automatically for personal data with anything flagged reviewed by a person before use. Organizations can request exclusion from this at [email protected].
What data does Celeste send to AI providers?
Your question, structural metadata (table names, field names, types, metric definitions), and a capped sample of relevant rows, at most 100 per request, filtered by your role-based permissions and passed through PII redaction first. Full table exports, bulk extracts, and credentials are never sent. Query results Celeste needs to describe in words are capped and truncated before they reach a provider.
Can Celeste change my data or send things on my behalf?
Not by default. Celeste is read-only unless an administrator turns on write-back for a specific connector. Where enabled, it can create records in connected systems such as QuickBooks, send email through a connected mailbox, and post to Slack, Notion, CRM, and calendar systems. Every write is recorded in an audit log you can review. What switches it on is your own settings rather than your plan: an organization-wide write-back setting, then agent access on the individual connector, and for a mailbox or seat owned by one person, that person's own per-account setting.