You can edit Sanity content without learning GROQ by using the eve Sanity copilot, a Slack bot that turns plain-English requests into GROQ queries and content edits. Ask it "which posts still reference the old pricing page?" and it writes the query, runs it against your real dataset, and reports back. Edits happen as drafts, and anything destructive pauses for your approval.
This guide covers when GROQ is actually required, how the copilot removes that requirement, and how to deploy it.
Copy link to headingWhen do you actually need GROQ?
GROQ is Sanity's query language, described in Sanity's docs as SQL for JSON. For day-to-day field edits, you don't need it: Sanity Studio lets any editor open a document and change its fields directly.
GROQ becomes unavoidable when the work spans more than one document:
Content audits. "List every article without a meta description" or "find documents missing an author" are queries, not field edits.
Reference checks. Finding everything that links to a page you're about to retire requires following references across the dataset.
Bulk operations. Updating a field across dozens of documents means querying for the set first.
Reporting. Counting drafts by author, or posts by category, is a query.
GROQ also powers webhooks, content permissions, and Sanity Functions, so on most teams someone ends up learning it. The question is whether that someone has to be your content team. With a copilot, it doesn't.
Copy link to headingHow does the copilot remove the GROQ requirement?
The eve Sanity copilot is an open-source template built on eve, Vercel's framework for durable backend agents. A team member @mentions the bot in Slack, describes what they want, and the copilot does the query work itself:
It inspects your schema first, so its queries match the fields and document types that actually exist. It never invents document IDs or field names.
It writes and runs the GROQ query against your dataset, acting as the signed-in user with that person's permissions via Vercel Connect.
It reports the results in the thread, in plain language.
The copilot carries Sanity's own expertise: six of its seven skills come from Sanity's Agent Toolkit, including the GROQ and schema best practices behind the Sanity MCP server's rules tools. It loads a skill only when the task calls for it.
Copy link to headingCan it edit content too, or only query it?
It edits too, with guardrails. The copilot creates and edits content as drafts, which is the normal, ungated flow. The operations that change what's live pause for an approve or deny decision, rendered as buttons in Slack:
So a bulk fix works like this: you ask for the change, the copilot queries for the affected documents, prepares the patch, and waits. Nothing lands until a human presses approve.
Copy link to headingHow do I set it up?
Deploy the template with one click. The flow provisions the Slack, Sanity, and Notion connectors and a Vercel Blob store, then you invite the bot to a Slack channel and each team member signs in to Sanity on first use. There are no API keys to manage: Slack, Sanity, and Notion authenticate per user through Vercel Connect, and storage and the model authenticate with your project's OIDC token.
For the full setup walkthrough, including local development and customizing the approval gates, see Manage your Sanity project from Slack with eve. If you arrived at Sanity from Webflow and the missing visual editor is the wider problem, see How do I manage Sanity content after migrating from Webflow?
Copy link to headingFrequently asked questions
Copy link to headingIs GROQ hard to learn?
Not for developers. GROQ's syntax is approachable for anyone comfortable with JSON and JavaScript, and Sanity publishes a query cheat sheet and free courses. The copilot exists for the people on your team who work in content, not code, and shouldn't need a query language to answer questions about their own content.
Copy link to headingDo I still need Sanity Studio?
Yes. The Studio remains the place for hands-on editing, visual review, and structured field work. The copilot complements it for query-shaped work: audits, reference checks, bulk finds, and questions that span many documents.
Copy link to headingCan the copilot change my content without approval?
No. Queries and reads run freely, but every operation that changes content, including patching, publishing, unpublishing, and discarding drafts, pauses for an approve or deny decision in Slack before it runs.
Copy link to headingDoes it work for non-technical team members?
Yes, that's the point. Each person signs in to Sanity once through their browser, then makes requests in plain English in Slack. The copilot runs with that person's own permissions, so it can only see and touch what they already could.
Copy link to headingCan it write GROQ I can reuse in my code?
The copilot writes GROQ to answer your requests against the live dataset. For queries you'll ship in application code, treat its output as a starting point and review it against Sanity's GROQ documentation, the same way you'd review any generated code.