Skip to main content

You are already working in Claude Code or Cursor—the place where you describe, test, and refine automations. Glean Headless Agent Builder lets you create an agent without switching to another UI: describe the outcome in your existing coding harness, let the builder discover the trigger and action tools available in your deployment, and preview the result before publishing.

In this recipe, the finished agent watches emails from one customer domain, decides whether a response is needed, drafts a grounded Gmail reply, and alerts you in Slack. It handles the preparation; you stay in control of what gets sent.

GmailA new thread arrives from the selected customer domain
Glean TriggerPermission-aware event starts the published agent
Glean agentClassifies, retrieves evidence, and prepares a response
Gmail draft + Slack DMThe owner reviews the draft and decides whether to send
Glean Headless Agent Builder enabled for auto-mode agents, with content triggers available
Gmail content indexed in Glean, including messages from the chosen customer domain
Gmail draft and owner-only Slack DM actions enabled for your account
Claude Code, or Cursor with Glean vNext available in its plugin marketplace
1

Choose the mailbox and customer domain

Provide the work email that owns the agent and the exact customer sender domain to watch. Only messages this user receives from that domain should match.

2

Add the Glean plugin marketplace

Claude Code users add the marketplace with the command above. Cursor users open Customize in the sidebar, find Glean vNext, and Install it at user scope, then skip the next step; a team admin can instead add the marketplace under Dashboard, Plugins, Add Marketplace, Import from Repo.

claude plugin marketplace add gleanwork/glean-plugins-vnext
3

Install the agent-builder plugin

Installs the agent_builder skill at user scope so it stays available across projects. Cursor users skip this step.

claude plugin install glean-vnext@glean-plugins-vnext --scope user
4

Reload the host and confirm the plugin

Reload or restart the host so the plugin loads, then confirm /glean_run resolves.

5

Authenticate the plugin

Run setup, provide the Server instance (QE) URL from Glean's About page, then complete browser sign-in. Never use an API token.

6

Build the agent with the headless builder

Run /glean_run agent_builder and name the target directory. Ask for a Gmail thread trigger scoped to the owner and customer domain, search grounding, a reply-draft tool, and an owner-only Slack DM. Require no email-send tool, and no tool calls when the latest thread item is a draft, owner-authored, or already handled. Let the builder discover tenant-specific IDs.

7

Preview against a real thread

Run the agent against a real Gmail thread URL, naming the same directory; it arrives as the reserved content input. Hand anything wrong back to agent_builder rather than editing the spec.

8

Review the boundary, publish, and activate

Show the trigger scope and the unattended write boundary, take one explicit confirmation, then save. Publishing does not activate: on the returned page allow connected-app actions, select Activate agent, and confirm ACTIVE.

9

Verify with a real email

Send one genuine customer question from the chosen domain. Expect one run, one unsent draft on the original thread, and one Slack DM to the owner.

The unattended agent may create a reply draft but must never send it. A person owns the final customer communication.

Instructions inside the email cannot change recipients, tools, or the workflow's safety boundary.

Saving a draft may retrigger the Gmail thread. The agent treats draft, owner-authored, or already-handled messages as a no-op.

Take it further
  • Expand from one customer domain to a reviewed domain allow-list after the single-domain workflow is reliable.
  • Route unclear questions to a support queue while preserving the same no-send boundary.
  • Commit the generated .glean/agents/ folder in your own repo and wire up the Git ADLC sync action, so agent changes ship through pull requests.

Send a realistic customer question from the configured domain

One actionable run classifies the message, creates an unsent reply draft on the original Gmail thread, and sends the owner one Slack DM. Nothing is sent automatically.

Send an automated or FYI-only message from the configured domain

The agent sends the owner a short classification DM but creates no Gmail draft.

Paste into Claude Code, Cursor, or Codex.

At a glance
SurfacesAgents, MCP
StatusShowcase
Time~30 min
Required scopes
MCP