Open app
connect → detect → approve → govern

The data foundation agents can actually trust.

Grunda is the governance layer between your CRM and everything that reads from it. It mirrors your portal, detects what’s wrong, fixes it with human approval, and serves the cleaned-up view to your AI tools through a governed API.

Open the app
app.grunda.ai · insights
Data health94/100▲ 6 this week
Records governed128,431synced 12 min ago
Open findings37▼ 214 resolved
214 company pairs match domain + name
record level · duplication · merge
merge ready
industry 66% populated · required 95% on Enterprise
field level · fill rate · enrich
enrichable
country split across "US" / "USA" / "United States"
taxonomy · clean rule · awaiting approval
queued
Works with
HubSpotSalesforcePlanhatPipedriveCSV uploadSlackMicrosoft TeamsMCPREST APIEnrichment suppliers
Why now

Two forces, moving in opposite directions.

01

Agents now read your CRM directly.

Through MCP servers and APIs, AI agents score leads, route accounts, draft outreach, and answer revenue questions — straight from CRM data. Every answer inherits the quality of the fields underneath it.

→ More leverage from the same data. Good.
02

The fields underneath haven’t caught up.

Duplicated records, four spellings of one country, two fields for the same concept, owners who left last year. A human hesitates at bad data. An agent answers anyway — confidently, and at scale.

→ Garbage in, confident garbage out.

The opportunity and the obstacle are the same dataset.

Even the easy questions are hard

Try asking your CRM these three questions.

They sound trivial. In most CRMs, none of them have a confident, single answer.

“How many customers do we have?”Depends on: is a trial a customer? Is a churned logo still counted? “Customer” is defined three different ways across Sales, CS, and Finance dashboards.
“How many customers in the US?”The country field has 4 variants: “US”, “USA”, “United States”, “United States of America”. Each one is treated as a separate value.
“How many SaaS customers with 200–300 FTEs?”The industry field is 66% populated. Employee count is manually entered, stale, wrong, or missing for most records in this exact band.

If the easy questions need manual reconciliation, every agent built on top of them is guessing.

How Grunda works

Five steps. One continuous loop.

Connect the CRM. Detect what’s wrong. Approve the fixes. Enforce the definitions. Serve the governed view to everything downstream.

01ConnectOAuth into HubSpot, Salesforce, Planhat, or Pipedrive — read-only to start. Grunda mirrors the portal and keeps it fresh with scheduled and webhook-driven syncs.
02DetectDuplicate records, redundant fields, taxonomy violations, departed owners, coverage gaps — every finding ranked by business impact.
03ApproveEvery fix lands in a queue for a human to approve. Merges, archives, normalizations, enrichment — nothing writes to your CRM silently.
04EnforceLock field taxonomies, define segments as explicit conditions, and turn approved fixes into standing rules that keep enforcing themselves.
05ServeExpose the cleaned-up view through a governed REST API and MCP server — provenance and quality metadata on every value.

Not a one-time cleanup. A permanent operating loop.

Detect

Findings at two levels: the field, and the record

Field level: fill rates, duplicated fields describing the same concept, taxonomy drift splitting one market into four. Record level: duplicate companies and contacts, departed owners, records whose domains stopped resolving. Every finding is ranked and lands in one queue.

  • Fill rates: “industry” 66% populated, required at 95% for the segment
  • Duplicates: 214 pairs matching on domain + name, winner picked by policy
  • Field overlap: two properties tracking “employee count”, one canonical
industry 66% populated, required at 95%
field level · fill rate · enrich
enrich
214 company pairs match domain + name
record level · duplication · merge
merge
“employees” and “employee_count_new” overlap 98%
field level · redundancy · repoint + archive
consolidate

Every finding is ranked by business impact, ready to be fixed once or enforced forever.

Serve

A governed API your agents query instead of the raw CRM

REST for your integrations, MCP for your agents. Both read the governed view: canonical fields, locked taxonomies, normalized values. Every value carries provenance — which raw CRM property it came from, what it superseded, whether a taxonomy rewrote it — and quality metadata, so a caller can tell a solid answer from a guess.

  • REST API with per-portal, scoped API keys
  • MCP server — plug the governed view into Claude, or any agent framework
  • Provenance and quality metadata on every response
GET /api/v1/companies/acme.com
{
  "name": "Acme Inc",
  "industry": "SaaS",          // normalized by taxonomy
  "country": "United States",  // was "USA"
  "provenance": {
    "industry": {
      "source": "hubspot.industry_new",
      "superseded": ["industry"],
      "rewrittenBy": "taxonomy"
    }
  },
  "quality": {
    "completeness": 0.94,
    "openFindings": 0,
    "lastModified": "2026-08-21T09:14:00Z"
  }
}

Agents stop parsing raw CRM columns. They query the canonical view — with receipts.

Enforce

Approve a fix once. Grunda enforces it, continuously.

MERGETriggerTwo companies match on domain + nameActionCluster proposed → winner picked by your policy → history and associations preserved
CLEANTriggerCountry field contains “USA” or “U.S.”ActionNormalize to canonical “United States” → taxonomy enforced on every future sync
ENRICHTriggerIndustry field blank on an active customerActionResearch providers fill the gap → source and evidence logged as provenance
ARCHIVETriggerTwo fields describe the same conceptActionWorkflows, lists, and forms repointed to the winner → the loser archived safely

Standing rules run after every sync. The mess never accumulates again.

Fits your stack

Runs where you work. Hosted where you need it.

SLACK & TEAMS

Findings come to you

Notifications land in Slack or Microsoft Teams. Ask Grunda questions from chat — answers run read-only, with your own role and permissions.

ALWAYS IN SYNC

Scheduled + webhook syncs

Full syncs on a schedule, incremental syncs continuously, deletion webhooks in between. Portals with hundreds of thousands of records stay current without ever being empty mid-sync.

YOUR CLOUD, OPTIONALLY

Self-hosting & data residency

Run the whole backend in your own cloud with Docker, or keep Grunda hosted while your CRM mirror lives in your own Postgres. Your data, your region, your rules.

The foundation

AI changes the workflow. The foundation decides the outcome.

Answers agents can trust

AI tools query canonical fields and normalized values through the governed API — not raw CRM columns with four spellings of “United States”.

One definition of everything

Segments are explicit, stored conditions — not tribal knowledge. “Customer” means the same thing in every dashboard, workflow, and agent.

No silent writes

Every change to your CRM is proposed, reviewed, and approved by a human — with full provenance for what changed, why, and from where.

A loop, not a cleanup

Scheduled syncs, standing rules, and drift detection keep quality enforced continuously — the mess doesn’t come back three months later.

The companies that get this right compound. The ones that don’t will automate their own inconsistencies.

Getting started

From OAuth to governed answers in a day.

STEP 1

Connect your CRM

OAuth into HubSpot, Salesforce, Planhat, or Pipedrive — read-only until you say otherwise. Grunda mirrors objects, properties, associations, and fill rates. See the setup guide.

STEP 2

Review the findings

A data health score and ranked findings on day one: duplicates, redundant fields, taxonomy drift, coverage gaps — at field level and record level.

STEP 3

Approve, enforce, serve

Approve fixes from the queue, turn them into standing rules, then point your agents and integrations at the governed API instead of the raw CRM.

Get started

See what Grunda finds in your own portal

Tell us a bit about your setup and we’ll walk you through Grunda on your own data: what’s broken, what it costs you, and how the loop fixes it permanently.

By submitting this form you agree that Grunda may collect, process, and retain your data as described in our privacy policy.