# Features
Source: https://docs.gc.ai/about/features
Key features and capabilities of GC AI
## Core Capabilities
See our [Getting Started](/guides/getting-started/first-steps) guide to learn more about GC AI's features.
### AI Chat
* Get answers from leading AI models from OpenAI, Anthropic, Google, and xAI, including GPT-5 series models, Claude Opus 4.6, Claude Sonnet 4.6, Gemini 3.1 Pro Preview, and Grok 4.6
* Automatic model fallback chains ensure high reliability across providers
* Built-in advanced reasoning with a structured 5-step process for complex legal analysis
* Voice input for hands-free interaction (up to 3 minutes per recording)
* [Easy Prompt™](/guides/prompting/using-easy-prompt) to optimize your questions before sending
* Message queue lets you send follow-up questions while the AI is still responding
* [Rich text composer](/guides/prompting/formatting-tips) that preserves headings, lists, tables, and links pasted from Word, Google Docs, and email
* Context usage indicator shows how much of the AI's context window you've used
* **[Agentic Chat History Search](/docs/chat/agentic-chat-history-search):** Ask GC AI in chat to find past conversations across your history, read relevant threads, and bring that context into your current conversation
* **[US Case Law](/docs/chat/case-law):** Search and analyze 13M+ US court opinions directly in chat. Get cited, synthesized answers with treatment flags and a built-in Opinion Reader for verifying sources.
### Research Agent
* Autonomous research with parallel subagents that search and analyze multiple sources simultaneously
* Visual progress cards show each parallel research thread in real time
* Integrated web search for current legal information, regulations, and news
* Combine web research with document analysis for comprehensive answers
### Projects
* Group related chats and files into a shared workspace
* **Cross-chat memory:** GC AI can reference prior chats in the same project for full context
* **Custom instructions:** Set project-level guidance that applies to every chat automatically
* **Flexible file access:** Upload files, link Google Drive, or connect existing file collections so every chat in the project can use them
* **Collaboration:** Share projects with teammates and control access with Read, Write, and Admin permissions
* **Private or organization-wide:** Choose who can see each project. Organization visibility includes the project's files and chats.
Learn more about [Projects](/docs/chat/projects) and how to [create a project](/guides/chat/how-to-create-a-project).
### Document Handling
* Superior PDF parsing (files up to 50MB)
* Smart document access via file tools: the AI reads, searches, and queries your documents on demand rather than loading everything into context upfront
* Read and analyze tracked changes, comments, and redlines from DOCX and PDF files (for files uploaded since August 18, 2025)
* Automatic extraction of document revisions and reviewer feedback (for files uploaded since August 18, 2025)
* Audio file transcription for depositions, meetings, and recordings
* Preserved formatting for copy and paste
* [Google Drive integration](/docs/files/google-drive) for accessing your team's files directly in GC AI
Learn more about [document analysis](/guides/usage/document-analysis) and [best practices for document handling](/guides/getting-started/best-practices).
### Document Drafting and Editing
* **Easy Edit**: Open an uploaded Word document in a live editor beside your chat. Ask GC AI to revise clauses, draft new sections, or add comments, and apply each change as a tracked redline, one at a time or all at once. Edit by hand with a full formatting toolbar whenever you want.
* **Edits save to your workspace**: Your work saves back into GC AI automatically and stays searchable and grounded for chat. Download a .docx copy in one click whenever you need a local file.
* **Generate documents from chat**: Ask GC AI to draft a contract, memo, or policy from a conversation, then open it in Easy Edit to refine or download it as a Word file
* **Tracked changes by default**: Every edit (yours or GC AI's) is recorded as a redline; accept or reject changes individually or in bulk, or switch to clean editing with no markup
* **Live document context**: While Easy Edit is open, GC AI reads the document in real time, so its answers and revisions reflect your latest edits
This brings the drafting and redlining capabilities of [GC AI for Word](/about/gcai-for-word) to the web. No Word installation required.
[--limit] ``` | Flag | Type | Required | Description | | ------------------ | -------- | -------- | ---------------------------------------- | | `--limit ` | `number` | | Max chats to return (default 20, max 50) | Wraps `GET /chat/search` — see [Search chats](/api-reference/search-chats) for full parameter semantics. # Company Source: https://docs.gc.ai/api-reference/cli/commands/company `gcai company` commands. ## `gcai company get` Get the company profile ```bash theme={null} gcai company get ``` Wraps `GET /company-profile` — see [Get the company profile](/api-reference/get-default-company-profile) for full parameter semantics. ## `gcai company update` Update the company profile ```bash theme={null} gcai company update [--name ] [--dba-name ] [--industry ] [--size ] [--location ] [--incorporation-country ] [--incorporation-state ] [--description ] [--revenue ] [--legal-matters ] [--regulations ] [--risk-tolerance ] [--additional-info ] [--customer-types …] ``` | Flag | Type | Required | Description | | --------------------------------- | ---------- | -------- | ----------------------------------------------------- | | `--name ` | `string` | | Company name (cannot be cleared, max 255 chars) | | `--dba-name ` | `string` | | Doing-business-as name. Send null to clear. | | `--industry ` | `string` | | Industry sector. Send null to clear. | | `--size ` | `string` | | Company size band. Send null to clear. | | `--location ` | `string` | | Primary office location. Send null to clear. | | `--incorporation-country ` | `string` | | Country of incorporation. Send null to clear. | | `--incorporation-state ` | `string` | | State/province of incorporation. Send null to clear. | | `--description ` | `string` | | Short company description. Send null to clear. | | `--revenue ` | `string` | | Annual revenue band. Send null to clear. | | `--legal-matters ` | `string` | | Typical legal matters. Send null to clear. | | `--regulations ` | `string` | | Key regulations. Send null to clear. | | `--risk-tolerance ` | `string` | | Risk tolerance level. Send null to clear. | | `--additional-info ` | `string` | | Free-form additional context. Send null to clear. | | `--customer-types …` | `string[]` | | Types of customers served. Send null or \[] to clear. | Wraps `PATCH /company-profile` — see [Update the company profile](/api-reference/update-default-company-profile) for full parameter semantics. # Company-profiles Source: https://docs.gc.ai/api-reference/cli/commands/company-profiles `gcai company-profiles` commands. ## `gcai company-profiles list` List company profiles ```bash theme={null} gcai company-profiles list [--limit ] [--offset ] ``` | Flag | Type | Required | Description | | ------------------- | -------- | -------- | ------------------------------------------ | | `--limit ` | `number` | | Max items to return (default 100, max 500) | | `--offset ` | `number` | | Number of items to skip (default 0) | Wraps `GET /company-profiles` — see [List company profiles](/api-reference/list-company-profiles) for full parameter semantics. ## `gcai company-profiles get` Get a company profile ```bash theme={null} gcai company-profiles get ``` Wraps `GET /company-profiles/{id}` — see [Get a company profile](/api-reference/get-company-profile) for full parameter semantics. ## `gcai company-profiles update` Update a company profile ```bash theme={null} gcai company-profiles update [--name ] [--dba-name ] [--industry ] [--size ] [--location ] [--incorporation-country ] [--incorporation-state ] [--description ] [--revenue ] [--legal-matters ] [--regulations ] [--risk-tolerance ] [--additional-info ] [--customer-types …] ``` | Flag | Type | Required | Description | | --------------------------------- | ---------- | -------- | ----------------------------------------------------- | | `--name ` | `string` | | Company name (cannot be cleared, max 255 chars) | | `--dba-name ` | `string` | | Doing-business-as name. Send null to clear. | | `--industry ` | `string` | | Industry sector. Send null to clear. | | `--size ` | `string` | | Company size band. Send null to clear. | | `--location ` | `string` | | Primary office location. Send null to clear. | | `--incorporation-country ` | `string` | | Country of incorporation. Send null to clear. | | `--incorporation-state ` | `string` | | State/province of incorporation. Send null to clear. | | `--description ` | `string` | | Short company description. Send null to clear. | | `--revenue ` | `string` | | Annual revenue band. Send null to clear. | | `--legal-matters ` | `string` | | Typical legal matters. Send null to clear. | | `--regulations ` | `string` | | Key regulations. Send null to clear. | | `--risk-tolerance ` | `string` | | Risk tolerance level. Send null to clear. | | `--additional-info ` | `string` | | Free-form additional context. Send null to clear. | | `--customer-types …` | `string[]` | | Types of customers served. Send null or \[] to clear. | Wraps `PATCH /company-profiles/{id}` — see [Update a company profile](/api-reference/update-company-profile) for full parameter semantics. # Jobs Source: https://docs.gc.ai/api-reference/cli/commands/jobs `gcai jobs` commands. ## `gcai jobs get` Get async job status ```bash theme={null} gcai jobs get [--wait ] ``` | Flag | Type | Required | Description | | ----------------- | -------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `--wait ` | `number` | | Optional long-poll wait time in seconds. Use `0` for fire-and-forget behavior. If both `wait` and `Prefer: wait=...` are supplied, they must match. Values above 90 are clamped. | Wraps `GET /jobs/{id}` — see [Get async job status](/api-reference/get-async-job) for full parameter semantics. # Mcp Source: https://docs.gc.ai/api-reference/cli/commands/mcp `gcai mcp` commands. ## `gcai mcp credentials create` Provision MCP client-credentials ```bash theme={null} gcai mcp credentials create ``` Wraps `POST /mcp/credentials` — see [Provision MCP client-credentials](/api-reference/provision-mcp-credentials) for full parameter semantics. # Me Source: https://docs.gc.ai/api-reference/cli/commands/me `gcai me` commands. ## `gcai me` Identify the caller ```bash theme={null} gcai me ``` Wraps `GET /me` — see [Identify the caller](/api-reference/get-me) for full parameter semantics. # Ping Source: https://docs.gc.ai/api-reference/cli/commands/ping `gcai ping` commands. ## `gcai ping` Health check ```bash theme={null} gcai ping ``` Wraps `GET /ping` — see [Health check](/api-reference/ping) for full parameter semantics. # Profile Source: https://docs.gc.ai/api-reference/cli/commands/profile `gcai profile` commands. ## `gcai profile get` Get your personal profile ```bash theme={null} gcai profile get ``` Wraps `GET /me/profile` — see [Get your personal profile](/api-reference/get-my-profile) for full parameter semantics. ## `gcai profile update` Update your personal profile ```bash theme={null} gcai profile update [--preferred-name ] [--use-name-in-chats] [--role-title ] [--jurisdiction-focus ] [--practice-areas …] [--custom-instructions ] [--privilege-marking-enabled] [--privilege-marking-text ] [--enter-to-submit] [--document-author-name ] [--enabled] ``` | Flag | Type | Required | Description | | ---------------------------------- | ---------- | -------- | -------------------------------------------------------------------- | | `--preferred-name ` | `string` | | Preferred name to use in chats. Send null to clear. | | `--use-name-in-chats` | `boolean` | | Whether the AI should address the user by name | | `--role-title ` | `string` | | Job title or role. Send null to clear. | | `--jurisdiction-focus ` | `string` | | Primary jurisdiction. Send null to clear. | | `--practice-areas …` | `string[]` | | Practice areas (max 20). Send null or \[] to clear. | | `--custom-instructions ` | `string` | | Custom instructions for every chat. Send null to clear. | | `--privilege-marking-enabled` | `boolean` | | Whether AI responses include an attorney-client privilege disclaimer | | `--privilege-marking-text ` | `string` | | Privilege disclaimer text. Send null to clear. | | `--enter-to-submit` | `boolean` | | Whether the chat composer submits on Enter instead of Cmd/Ctrl+Enter | | `--document-author-name ` | `string` | | Name stamped on AI tracked changes. Send null to clear. | | `--enabled` | `boolean` | | Whether the personal profile is active | Wraps `PATCH /me/profile` — see [Update your personal profile](/api-reference/update-my-profile) for full parameter semantics. # Projects Source: https://docs.gc.ai/api-reference/cli/commands/projects `gcai projects` commands. ## `gcai projects list` List projects ```bash theme={null} gcai projects list [--limit ] [--offset ] [--search ] ``` | Flag | Type | Required | Description | | ------------------- | -------- | -------- | ------------------------------------------------ | | `--limit ` | `number` | | Max items to return (default 100, max 500) | | `--offset ` | `number` | | Number of items to skip (default 0) | | `--search ` | `string` | | Case-insensitive substring match on project name | Wraps `GET /projects` — see [List projects](/api-reference/list-projects) for full parameter semantics. ## `gcai projects create` Create a project ```bash theme={null} gcai projects create [--description ] [--custom-instructions ] [--is-access-controlled] ``` | Flag | Type | Required | Description | | ------------------------------- | --------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | | `--description ` | `string` | | Optional project description | | `--custom-instructions ` | `string` | | Optional custom instructions for chats in this project | | `--is-access-controlled` | `boolean` | | When true (default), the project is visible only to the creator and explicitly granted users. When false, any member of the organization can see it. | Wraps `POST /projects` — see [Create a project](/api-reference/create-project) for full parameter semantics. ## `gcai projects get` Get a project ```bash theme={null} gcai projects get ``` Wraps `GET /projects/{id}` — see [Get a project](/api-reference/get-project) for full parameter semantics. ## `gcai projects update` Update a project ```bash theme={null} gcai projects update [--name ] [--description ] [--custom-instructions ] ``` | Flag | Type | Required | Description | | ------------------------------- | -------- | -------- | ------------------------------------------------------------------------ | | `--name ` | `string` | | New project name (non-empty after trim) | | `--description ` | `string` | | New project description, or null to clear it | | `--custom-instructions ` | `string` | | New custom instructions for chats in this project, or null to clear them | Wraps `PATCH /projects/{id}` — see [Update a project](/api-reference/update-project) for full parameter semantics. ## `gcai projects delete` Delete a project ```bash theme={null} gcai projects delete ``` Wraps `DELETE /projects/{id}` — see [Delete a project](/api-reference/delete-project) for full parameter semantics. ## `gcai projects attach-file` Attach a file to a project ```bash theme={null} gcai projects attach-file ``` Wraps `POST /projects/{id}/files` — see [Attach a file to a project](/api-reference/attach-file-to-project) for full parameter semantics. ## `gcai projects detach-file` Detach a file from a project ```bash theme={null} gcai projects detach-file ``` Wraps `DELETE /projects/{id}/files/{fileId}` — see [Detach a file from a project](/api-reference/detach-file-from-project) for full parameter semantics. ## `gcai projects files` List files on a project ```bash theme={null} gcai projects files [--limit ] [--offset ] ``` | Flag | Type | Required | Description | | ------------------- | -------- | -------- | ------------------------------------------ | | `--limit ` | `number` | | Max items to return (default 100, max 500) | | `--offset ` | `number` | | Number of items to skip (default 0) | Wraps `GET /projects/{id}/files` — see [List files on a project](/api-reference/list-project-files) for full parameter semantics. ## `gcai projects folders` List folders linked to a project ```bash theme={null} gcai projects folders [--limit ] [--offset ] ``` | Flag | Type | Required | Description | | ------------------- | -------- | -------- | ------------------------------------------ | | `--limit ` | `number` | | Max items to return (default 100, max 500) | | `--offset ` | `number` | | Number of items to skip (default 0) | Wraps `GET /projects/{id}/folders` — see [List folders linked to a project](/api-reference/list-project-folders) for full parameter semantics. ## `gcai projects attach-folder` Attach a folder to a project ```bash theme={null} gcai projects attach-folder ``` Wraps `POST /projects/{id}/folders` — see [Attach a folder to a project](/api-reference/attach-folder-to-project) for full parameter semantics. ## `gcai projects detach-folder` Detach a folder from a project ```bash theme={null} gcai projects detach-folder ``` Wraps `DELETE /projects/{id}/folders/{folderId}` — see [Detach a folder from a project](/api-reference/detach-folder-from-project) for full parameter semantics. ## `gcai projects star` Star a project ```bash theme={null} gcai projects star ``` Wraps `POST /projects/{id}/star` — see [Star a project](/api-reference/star-project) for full parameter semantics. ## `gcai projects unstar` Unstar a project ```bash theme={null} gcai projects unstar ``` Wraps `DELETE /projects/{id}/star` — see [Unstar a project](/api-reference/unstar-project) for full parameter semantics. ## `gcai projects chats` List chats in a project ```bash theme={null} gcai projects chats [--limit ] [--offset ] ``` | Flag | Type | Required | Description | | ------------------- | -------- | -------- | ------------------------------------------ | | `--limit ` | `number` | | Max items to return (default 100, max 500) | | `--offset ` | `number` | | Number of items to skip (default 0) | Wraps `GET /projects/{id}/chats` — see [List chats in a project](/api-reference/list-project-chats) for full parameter semantics. ## `gcai projects attach-chat` File a chat into a project ```bash theme={null} gcai projects attach-chat ``` Wraps `POST /projects/{id}/chats` — see [File a chat into a project](/api-reference/attach-chat-to-project) for full parameter semantics. # Usage Source: https://docs.gc.ai/api-reference/cli/commands/usage `gcai usage` commands. ## `gcai usage credits` Get credit usage ```bash theme={null} gcai usage credits --start-date --end-date [--timezone ] ``` | Flag | Type | Required | Description | | ---------------------- | -------- | -------- | -------------------------------------------------------------------------- | | `--start-date ` | `string` | yes | Inclusive range start (`YYYY-MM-DD`). | | `--end-date ` | `string` | yes | Inclusive range end (`YYYY-MM-DD`). | | `--timezone ` | `string` | | IANA timezone for day boundaries (default `UTC`), e.g. `America/New_York`. | Wraps `GET /credit-usage` — see [Get credit usage](/api-reference/get-credit-usage) for full parameter semantics. ## `gcai usage get` Get usage summary ```bash theme={null} gcai usage get --start-date --end-date [--timezone ] ``` | Flag | Type | Required | Description | | ---------------------- | -------- | -------- | ----------------------------------------------------------------- | | `--start-date ` | `string` | yes | Inclusive range start (`YYYY-MM-DD`). | | `--end-date ` | `string` | yes | Inclusive range end (`YYYY-MM-DD`). | | `--timezone ` | `string` | | IANA timezone for the api channel day boundaries (default `UTC`). | Wraps `GET /usage` — see [Get usage summary](/api-reference/get-usage) for full parameter semantics. # Output and scripting Source: https://docs.gc.ai/api-reference/cli/output Human-readable output by default, raw JSON with --json, and exit codes for scripting the gcai CLI. ## Two output modes By default the CLI prints human-readable output: lists render as tables, single resources as aligned key/value lines. Pass `--json` to get the raw API response as pretty-printed JSON instead. ```bash theme={null} # Human-readable (default) gcai projects list # Raw JSON, ready to pipe gcai projects list --json | jq '.projects[].name' ``` Use `--json` in scripts. It is the stable, structured shape; the human layout is meant for reading, not parsing. ## Exit codes Every command exits `0` on success and `1` on any error (an API error or a local failure). API errors print a clean `Error: ` to stderr with no stack trace; with `--json`, the error envelope is also written to stderr. `gcai auth status` exits `1` when you are not authenticated or the key is invalid, so you can gate a script on it: ```bash theme={null} gcai auth status >/dev/null 2>&1 || { echo "Run gcai auth login first"; exit 1; } ``` A command that returns no content (for example a delete) prints nothing and exits `0`. # CLI Introduction Source: https://docs.gc.ai/api-reference/cli/overview Install the gcai CLI, authenticate, and run your first command against the GC AI API from the terminal. `gcai` is the command-line client for the GC AI API. Every command maps to a REST endpoint, so anything you can do over the API you can do from your terminal, with tab-completable commands, typed flags, and human-readable output. Reach for the CLI for quick one-off calls, shell scripts, and piping results into other tools. For a long-running integration or an AI assistant working on your behalf, the [REST API](/api-reference/introduction) and [MCP server](/api-reference/mcp/overview) are the better fit. ## Install Requires Node.js 22 or newer. ```bash Global theme={null} npm install -g @gcai/cli gcai --help ``` ```bash npx theme={null} npx @gcai/cli --help ``` ## Quickstart## Finding your way around * **[Surface map](/api-reference/cli/surface-map)** lists every command at a glance. * **[Commands](/api-reference/cli/commands/chat)** gives the full synopsis and flags for each command, grouped by resource. * Concepts worth reading once: [Authentication](/api-reference/cli/authentication), [Output and scripting](/api-reference/cli/output), and [Async and polling](/api-reference/cli/async). Every command also accepts the global flags `--json` (raw JSON output), `--api-key`, and `--base-url`. # Surface map Source: https://docs.gc.ai/api-reference/cli/surface-map Every gcai command at a glance, grouped by resource. Every command the `gcai` CLI exposes. Each wraps a REST endpoint; open a group for its full synopsis and flags. See [CLI Introduction](/api-reference/cli/overview) to install and authenticate. ```bash theme={null} gcai auth login ``` This opens **Settings → API** in your browser so you can create an API key, then you paste it back. See [Authentication](/api-reference/cli/authentication) for details. ```bash theme={null} gcai ping ``` ```bash theme={null} gcai chat create "Summarize the key risks in this contract" --file-ids ``` `chat create` waits for the answer and prints it. Add `--json` for raw output you can pipe to `jq`. ## Chat | Command | Method | | ----------------------------------------------------------- | ----------------- | | [`gcai chat create`](/api-reference/cli/commands/chat) | POST | | [`gcai chat materialize`](/api-reference/cli/commands/chat) | POST | | [`gcai chat search`](/api-reference/cli/commands/chat) | GET | ## Company | Command | Method | | ------------------------------------------------------------ | ------------------ | | [`gcai company get`](/api-reference/cli/commands/company) | GET | | [`gcai company update`](/api-reference/cli/commands/company) | PATCH | ## Company-profiles | Command | Method | | ------------------------------------------------------------------------------ | ------------------ | | [`gcai company-profiles list`](/api-reference/cli/commands/company-profiles) | GET | | [`gcai company-profiles get`](/api-reference/cli/commands/company-profiles) | GET | | [`gcai company-profiles update`](/api-reference/cli/commands/company-profiles) | PATCH | ## Files | Command | Method | | -------------------------------------------------------- | ------------------ | | [`gcai files upload`](/api-reference/cli/commands/files) | POST | | [`gcai files search`](/api-reference/cli/commands/files) | GET | | [`gcai files get`](/api-reference/cli/commands/files) | GET | | [`gcai files move`](/api-reference/cli/commands/files) | PATCH | ## Folders | Command | Method | | -------------------------------------------------------------- | ------------------- | | [`gcai folders list`](/api-reference/cli/commands/folders) | GET | | [`gcai folders create`](/api-reference/cli/commands/folders) | POST | | [`gcai folders get`](/api-reference/cli/commands/folders) | GET | | [`gcai folders update`](/api-reference/cli/commands/folders) | PATCH | | [`gcai folders delete`](/api-reference/cli/commands/folders) | DELETE | | [`gcai folders children`](/api-reference/cli/commands/folders) | GET | ## Jobs | Command | Method | | --------------------------------------------------- | ---------------- | | [`gcai jobs get`](/api-reference/cli/commands/jobs) | GET | ## Mcp | Command | Method | | ---------------------------------------------------------------- | ----------------- | | [`gcai mcp credentials create`](/api-reference/cli/commands/mcp) | POST | ## Me | Command | Method | | ------------------------------------------- | ---------------- | | [`gcai me`](/api-reference/cli/commands/me) | GET | ## Ping | Command | Method | | ----------------------------------------------- | ---------------- | | [`gcai ping`](/api-reference/cli/commands/ping) | GET | ## Playbooks | Command | Method | | ------------------------------------------------------------------------ | ------------------- | | [`gcai playbooks list`](/api-reference/cli/commands/playbooks) | GET | | [`gcai playbooks get`](/api-reference/cli/commands/playbooks) | GET | | [`gcai playbooks create`](/api-reference/cli/commands/playbooks) | POST | | [`gcai playbooks update`](/api-reference/cli/commands/playbooks) | PATCH | | [`gcai playbooks duplicate`](/api-reference/cli/commands/playbooks) | POST | | [`gcai playbooks delete`](/api-reference/cli/commands/playbooks) | DELETE | | [`gcai playbooks run`](/api-reference/cli/commands/playbooks) | POST | | [`gcai playbooks checks list`](/api-reference/cli/commands/playbooks) | GET | | [`gcai playbooks checks get`](/api-reference/cli/commands/playbooks) | GET | | [`gcai playbooks checks create`](/api-reference/cli/commands/playbooks) | POST | | [`gcai playbooks checks update`](/api-reference/cli/commands/playbooks) | PATCH | | [`gcai playbooks checks delete`](/api-reference/cli/commands/playbooks) | DELETE | | [`gcai playbooks checks reorder`](/api-reference/cli/commands/playbooks) | POST | ## Profile | Command | Method | | ------------------------------------------------------------ | ------------------ | | [`gcai profile get`](/api-reference/cli/commands/profile) | GET | | [`gcai profile update`](/api-reference/cli/commands/profile) | PATCH | ## Projects | Command | Method | | --------------------------------------------------------------------- | ------------------- | | [`gcai projects list`](/api-reference/cli/commands/projects) | GET | | [`gcai projects create`](/api-reference/cli/commands/projects) | POST | | [`gcai projects get`](/api-reference/cli/commands/projects) | GET | | [`gcai projects update`](/api-reference/cli/commands/projects) | PATCH | | [`gcai projects delete`](/api-reference/cli/commands/projects) | DELETE | | [`gcai projects attach-file`](/api-reference/cli/commands/projects) | POST | | [`gcai projects detach-file`](/api-reference/cli/commands/projects) | DELETE | | [`gcai projects files`](/api-reference/cli/commands/projects) | GET | | [`gcai projects folders`](/api-reference/cli/commands/projects) | GET | | [`gcai projects attach-folder`](/api-reference/cli/commands/projects) | POST | | [`gcai projects detach-folder`](/api-reference/cli/commands/projects) | DELETE | | [`gcai projects star`](/api-reference/cli/commands/projects) | POST | | [`gcai projects unstar`](/api-reference/cli/commands/projects) | DELETE | | [`gcai projects chats`](/api-reference/cli/commands/projects) | GET | | [`gcai projects attach-chat`](/api-reference/cli/commands/projects) | POST | ## Skills | Command | Method | | ---------------------------------------------------------- | ------------------- | | [`gcai skills list`](/api-reference/cli/commands/skills) | GET | | [`gcai skills get`](/api-reference/cli/commands/skills) | GET | | [`gcai skills create`](/api-reference/cli/commands/skills) | POST | | [`gcai skills update`](/api-reference/cli/commands/skills) | PATCH | | [`gcai skills delete`](/api-reference/cli/commands/skills) | DELETE | ## Usage | Command | Method | | --------------------------------------------------------- | ---------------- | | [`gcai usage credits`](/api-reference/cli/commands/usage) | GET | | [`gcai usage get`](/api-reference/cli/commands/usage) | GET |# Complete a Chunked Upload Source: https://docs.gc.ai/api-reference/complete-upload POST /files/uploads/{upload_id}/complete Assemble the uploaded parts into the final file and start processing (text extraction, summarization, embeddings), returning the same file object as `POST /files`. For PDFs and Word documents, extraction runs asynchronously; poll `GET /files/{id}` until `status` is `ready`. # API Keys Source: https://docs.gc.ai/api-reference/concepts/api-keys GC AI has two kinds of API key: **organization keys** and **personal keys**. They authenticate almost the same surface, but they differ in who creates them, who can revoke them, whose identity the request carries, and which resources they can reach — and a few user-centric endpoints require a personal key (see below). Picking the right one is a governance decision, not just a setup step. In GC AI, an **organization** is your GC AI workspace: the people you have invited into GC AI, not your entire company headcount. If only two legal-ops people have GC AI accounts, your organization is those two people. ## Organization keys An organization key belongs to the whole organization. It has no individual owner; it carries the organization's identity on every request, and nothing about a particular person. * **Admin-only.** Only an org admin can create or revoke organization keys. * **Shared across admins.** Organization keys are listed and revoked by organization, not by creator. Every admin sees every organization key and can revoke any of them. There is no "this is my key"; they are shared infrastructure for the org. * **No user attribution.** Requests made with an organization key are attributed to the organization, not to the admin who created the key. The key record does not track which admin created it. * **Reaches non-access-controlled resources only.** An organization key sees org-wide resources: it searches files that are not access-controlled and lists projects that are not access-controlled. It cannot reach files or projects shared privately with specific members. A personal key, by contrast, sees everything its owner can read. If an integration needs privately shared files or projects, use a personal key belonging to a member who has access. * **A few endpoints require a personal key.** Endpoints that resolve "what this user can access" reject organization keys because there is no individual to scope to. [`GET /chat/search`](/api-reference/search-chats) returns `400` for an organization key — chat search is inherently per-user. The user-scoped `scope` filter on the [files](/api-reference/search-files) and [folders](/api-reference/list-folders) endpoints likewise requires a personal key. Use a personal key for these. Reach for an organization key when the integration belongs to the company rather than a person: a backend service, a scheduled job, a shared automation in Zapier or Make. Use one anywhere you'd set up a **system user** or **service account**: it represents the application itself, not an individual. Because any admin can rotate it and no single person owns it, it survives staff changes. An admin creates one under **Settings → API → Organization API Keys**:![]()
Anyone holding an organization key can make requests on behalf of your entire organization. Store it in a secret manager, never in client-side code or a committed file, and rotate it if it may have leaked. ## Personal keys A personal key belongs to one member. Every request made with it carries that member's identity (their user ID and email), so activity is attributable to a person. * **Gated by an org policy.** Personal keys can only be created when an admin has turned on **User API Keys Policy** for the organization (see [Enabling personal keys](#enabling-personal-keys)). The policy is off by default. * **Self-service, self-owned.** Once the policy is on, any member can create their own personal keys from **Settings → API**. Each member sees and revokes **only their own** keys. * **User attribution.** Because the request carries the member's identity, a personal key is the right choice when you want actions traced back to an individual. Reach for a personal key when an individual is scripting against their own access (a one-off analysis, a personal workflow, an experiment) and you want that activity tied to them. ## Scopes at a glance | | Organization key | Personal key | | ------------------------ | ------------------------------------------ | ------------------------------------------------ | | Prefix | `gcai_…` | `u:gcai_…` | | Tied to | The organization | A specific user, within the organization | | Who can create | Org admins only | Any member, once an admin enables the org policy | | Who can revoke | Any org admin | Only the member who owns the key | | Identity on each request | The organization (no individual user) | The individual user (`userId` + email) | | Where you manage them | **Settings → API → Organization API Keys** | **Settings → API → Personal API Keys** | | Billing | The organization | The organization | Both scopes bill usage to the organization. The difference is about attribution and control, not cost. ## Enabling personal keys Personal keys are off until an admin opts the organization in. An admin enables them under **Settings → API**:A few things worth knowing about this policy: * **It is all-or-nothing for the organization.** The toggle is a single organization-wide setting. When it is on, every member may create personal keys; when it is off, none may. * **It gates admins too.** There is no admin exception. An admin who wants a personal key for themselves must first turn the policy on for the whole organization, which turns it on for everyone. (If you want a company-owned key without enabling personal keys org-wide, use an [organization key](#organization-keys) instead.) * **Turning it off does not revoke existing keys.** Disabling the policy stops new personal keys from being created. Keys that already exist keep working until they are revoked. Once the policy is on, each member creates and manages their own keys:
The full key is shown only once, at creation. Copy it and store it somewhere safe immediately. GC AI cannot show it to you again. ## Current limitations A few governance behaviors are worth planning around: * **Personal-key revocation is self-service only.** A member can revoke their own keys, but an admin cannot revoke another member's personal key from the settings UI. * **Organization keys have no per-admin attribution.** The system records that an organization key exists, but not which admin created it. Track ownership and purpose out of band (for example, a note in your secret manager) if you need it. * **The personal-key policy has no per-member granularity.** You cannot enable personal keys for some members but not others; it is a single org-wide switch.
Removing a member from the organization does not revoke their personal keys. A removed member's keys keep authenticating against the organization until that user's account is fully deleted or the keys are revoked, and an admin cannot revoke another member's keys from the UI. When offboarding someone who held personal keys, revoke those keys as a separate step (contact support if needed). ## Choosing a scope * **Company-owned integration, shared service, scheduled job** → [organization key](#organization-keys). Any admin can rotate it, and it outlives individuals. Note that an organization key only reaches non-access-controlled resources, and a few per-user endpoints (chat search, the `scope` filter on files/folders) reject organization keys; if your integration needs privately shared files or projects, or any of those endpoints, use a personal key instead. * **An individual scripting against their own access, where you want activity attributed to them** → [personal key](#personal-keys) (after an admin enables the org policy). ## Related * [How to enable API access](/api-reference/how-to-enable): step-by-step setup for the **personal-key** path (enabling the org policy and creating a personal key). For an organization key, an admin creates one directly under **Settings → API → Organization API Keys** — see [Organization keys](#organization-keys) above. * [API Introduction](/api-reference/introduction): base URL, authentication header, and a quick-start request. # Asynchronous Requests Source: https://docs.gc.ai/api-reference/concepts/async-jobs Working with long-running requests GC AI's inference endpoints run asynchronously. When you call one, GC AI creates a background **job**, runs the model, and returns a **job envelope**: a small object that describes the job and carries its result once it's ready. The endpoint holds your request open for a short window. If the job finishes within it, the envelope comes back with the result already filled in; if it doesn't, the envelope comes back describing a job that's still running, with a `job_id` you use to fetch the result later. Once a job is created you always get a job envelope, never a separate synchronous response, and this holds for every inference endpoint. (Calls that fail before the job starts return a standard HTTP error instead of an envelope; see [Job failures vs. request errors](#job-failures-vs-request-errors).) You control how long that window is. [Waiting inline vs. fire-and-forget](#waiting-inline-vs-fire-and-forget) covers it in full. ## Why inference is asynchronous Legal AI inference is slow and variable. Reviewing a long contract against a playbook, or answering a question grounded in several uploaded files, can take anywhere from a couple of seconds to well over a minute. A plain request/response call that blocks for that entire time is fragile: it runs into edge-network and proxy timeouts, it ties up a connection, and it gives you nothing to hold onto if the connection drops mid-flight. Modeling every inference call as a job solves this: * **The work has a stable identity.** Each job has a `job_id` you can come back to. Once you hold that id, a dropped connection costs you nothing: you poll for the result instead of losing it. The `job_id` arrives with the response, so to survive the *initial* request dropping, use `wait=0` to receive the id immediately (see [Waiting inline vs. fire-and-forget](#waiting-inline-vs-fire-and-forget)). * **You choose how long to wait.** You can block for a result inline (up to 90 seconds, the default), or return immediately and collect the result later (fire-and-forget). Both use the same machinery. * **The response shape is uniform.** Every inference endpoint, today and in the future, returns the same envelope, so one client integration handles all of them. Today, two endpoints create jobs: | Endpoint | `kind` | Reference | | -------------------------- | ------------------ | ----------------------------------------------------------------- | | `POST /chat/completions` | `chat/completions` | [Create a Chat Completion](/api-reference/create-chat-completion) | | `POST /playbooks/{id}/run` | `playbooks/run` | [Run a Playbook](/api-reference/run-playbook) | Each one creates a job and returns the same envelope. The only things that change per endpoint are the shape of `result` and the value of `kind`. As we add more inference endpoints over time, they will all work this way, and the rest of this guide applies to all of them.Non-inference endpoints (uploading a file, creating a folder, listing playbooks, materializing a chat) are ordinary synchronous calls and do **not** return a job envelope. Asynchronous jobs are specific to inference. ## The job envelope Every inference endpoint returns the same top-level object: ```json theme={null} { "job_id": "123e4567-e89b-12d3-a456-426614174000", "kind": "chat/completions", "status": "succeeded", "result": { "result": "When reviewing a software license agreement, key terms to examine include...", "chat_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890" }, "error": null, "created_at": "2026-04-30T20:00:00.000Z", "completed_at": "2026-04-30T20:00:02.000Z" } ``` | Field | Type | Description | | -------------- | ------------------------- | --------------------------------------------------------------------------------------------------------------------- | | `job_id` | string (UUID) | Stable identifier for the job. Use it to [poll for the result](#polling-for-the-result). | | `kind` | string | Which inference produced this job: `chat/completions` or `playbooks/run`. Lets one client branch on the result shape. | | `status` | string | Lifecycle state. One of `pending`, `running`, `succeeded`, `failed`, `canceled`. | | `result` | object \| null | The endpoint-specific payload. `null` until the job succeeds; the shape depends on `kind`. | | `error` | object \| null | `{ "code": string, "message": string }` when the job has `failed`; otherwise `null`. | | `created_at` | string (ISO 8601) | When the job was created. | | `completed_at` | string (ISO 8601) \| null | When the job reached a terminal state, or `null` while still in flight. | The `result` field is the only part that differs between endpoints. For `chat/completions` it carries the answer text and a `chat_id`; for `playbooks/run` it carries the review payload. See each endpoint's reference for its exact `result` schema. ### Job status values | Status | Terminal? | Meaning | | ----------- | --------- | --------------------------------------------- | | `pending` | No | Created and queued, not yet picked up. | | `running` | No | Currently executing. | | `succeeded` | Yes | Finished successfully; `result` is populated. | | `failed` | Yes | Finished with an error; `error` is populated. | | `canceled` | Yes | Stopped before completion. | A job is **done** when it reaches a terminal state (`succeeded`, `failed`, or `canceled`). Until then it is either `pending` or `running`, and you should keep waiting or polling. ## Waiting inline vs. fire-and-forget When you call an inference endpoint, you decide how long GC AI should hold the connection open waiting for the job to finish before it returns the envelope. This is the **wait window**, the one control that drives the async model: a single mechanism that gives you both "block until done" and "return immediately" behavior. You control it two ways, which must agree if you supply both: * A `wait` query parameter: `POST /chat/completions?wait=30` * A `Prefer: wait=30` request header ([RFC 7240](https://www.rfc-editor.org/rfc/rfc7240)) The value is in **seconds**. The default is **90**, and **90 is also the maximum**; values above it are clamped down. (90 seconds sits just under the edge-network timeout, leaving headroom to flush the response.) If you pass both the query parameter and the header and they disagree, the request is rejected with `400`. The endpoint behaves like a long poll. It returns as soon as **either** of these happens: 1. The job reaches a terminal state, and you get the finished envelope, including the `result`. 2. The wait window elapses, and you get the envelope in whatever non-terminal state it is in (`pending` or `running`), with `result` still `null`. So the two common modes are just two values of the same knob: * **Wait inline (default).** Omit `wait`, or set it up to 90. Most calls finish inside the window and return `200` with the result already populated. It feels synchronous, but it is still a job under the hood. * **Fire-and-forget.** Set `wait=0` (or `Prefer: wait=0`). The endpoint enqueues the job and returns immediately with a `pending` envelope. You collect the result later by [polling](#polling-for-the-result). Use this when you do not want to hold a connection, for example kicking off many reviews in a batch.The HTTP status code tells you whether the job is **done**, not whether it **succeeded**: * **`200 OK`**: the job is in a terminal state (`succeeded`, `failed`, or `canceled`). The envelope is final; check `status` to see which. * **`202 Accepted`**: the job is still `pending` or `running`. Come back for the result. A job that ran and *failed* still returns `200`, because it is done, with `status: "failed"` and a populated `error`. See [Job failures vs. request errors](#job-failures-vs-request-errors). ## Polling for the result When a call returns `202` (the wait window elapsed, or you used `wait=0`), the job is still running. Use the [Get Async Job Status](/api-reference/get-async-job) endpoint to retrieve it by `job_id`: ```bash theme={null} curl https://app.gc.ai/api/external/v1/jobs/123e4567-e89b-12d3-a456-426614174000 \ -H "Authorization: gcai_your_api_key_here" ``` This returns the exact same envelope shape. As with the inference endpoints, you get `200` once the job is terminal and `202` while it is still in flight. ### Long-poll instead of busy-poll The jobs endpoint **also accepts the `wait` parameter**, and this is the recommended way to poll. Rather than requesting repeatedly in a tight loop, ask the jobs endpoint to hold the connection until the job finishes: ```bash theme={null} # Blocks up to 90s, returning the moment the job reaches a terminal state curl "https://app.gc.ai/api/external/v1/jobs/123e4567-e89b-12d3-a456-426614174000?wait=90" \ -H "Authorization: gcai_your_api_key_here" ``` If the job is still running after the window, you get a `202` and simply request again. This keeps the result latency low while using far fewer requests than fixed-interval polling. If you do poll on a fixed interval instead (for example with `wait=0`), leave a few seconds between requests. ### A complete fire-and-forget flow ```bash theme={null} # 1. Enqueue the job and return immediately. JOB_ID=$(curl -s -X POST "https://app.gc.ai/api/external/v1/chat/completions?wait=0" \ -H "Authorization: gcai_your_api_key_here" \ -H "Content-Type: application/json" \ -d '{"message": "Summarize the indemnification terms in this contract.", "file_ids": ["123e4567-e89b-12d3-a456-426614174000"]}' \ | jq -r '.job_id') # 2. Long-poll for the result until it is terminal. while true; do RESPONSE=$(curl -s "https://app.gc.ai/api/external/v1/jobs/$JOB_ID?wait=90" \ -H "Authorization: gcai_your_api_key_here") STATUS=$(echo "$RESPONSE" | jq -r '.status') case "$STATUS" in succeeded) echo "$RESPONSE" | jq '.result'; break ;; failed|canceled) echo "$RESPONSE" | jq '.error'; break ;; pending|running) ;; # the wait window elapsed, poll again *) echo "Unexpected response:" >&2; echo "$RESPONSE" >&2; break ;; esac done ``` Most integrations do not need fire-and-forget at all. If a single inline call with the default `wait` finishes inside 90 seconds, as the large majority do, you get the result in one request and never touch the jobs endpoint. Reach for the polling flow when you expect long-running jobs, are running many in parallel, or cannot hold a connection open. ## Job failures vs. request errors There are two distinct ways an inference call can go wrong, and they surface differently. **Request errors** are problems with the call itself; the job never starts. These come back as standard HTTP error codes with an error body, not a job envelope: | Status | Cause | | ------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `400` | Invalid request body, or conflicting `wait` controls. | | `401` | Missing or malformed API key. | | `402` | Billing isn't set up (`BILLING_NOT_CONFIGURED`), the organization hasn't started a usage-based trial (`TRIAL_NOT_STARTED`), or the account is out of credits (`INSUFFICIENT_CREDITS`). The body carries a `code`. | | `403` | Invalid API key, or the feature is not enabled for your account. | | `404` | A referenced `file_id`, `playbook_id`, or `job_id` was not found. | | `422` | A referenced file failed text extraction or isn't ready yet (playbook runs). Poll `GET /files/{id}` until its status is `ready`. | | `429` | Too many requests: you've hit a [rate limit](/api-reference/concepts/rate-limits). Carries `Retry-After` and `RateLimit-*` headers; wait and retry. | | `500` | An unexpected internal error before the job was created. Safe to retry; if it persists, contact support. | | `503` | Service temporarily unavailable. Includes a `Retry-After` header (in seconds). | **Job failures** happen after the job has started and the model runs into a problem. The job reaches the terminal `failed` state, so the call returns `200` with a job envelope: `status: "failed"` and a populated `error` object: ```json theme={null} { "job_id": "123e4567-e89b-12d3-a456-426614174000", "kind": "playbooks/run", "status": "failed", "result": null, "error": { "code": "extraction_failed", "message": "Could not extract text from one or more files." }, "created_at": "2026-04-30T20:00:00.000Z", "completed_at": "2026-04-30T20:00:05.000Z" } ``` The rule of thumb: **a `4xx`/`5xx` status means your request didn't run; a `200` with `status: "failed"` means it ran and failed.** A `202` is neither — the job was created and is still running, so come back for it ([poll for the result](#polling-for-the-result)). Handle all three: branch on the HTTP status first, then on the envelope `status`. ## Related * [Create a Chat Completion](/api-reference/create-chat-completion): the `chat/completions` inference endpoint and its `result` shape. * [Run a Playbook](/api-reference/run-playbook): the `playbooks/run` inference endpoint and its `result` shape. * [Get Async Job Status](/api-reference/get-async-job): poll a job by `job_id`. * [API Introduction](/api-reference/introduction): base URL, authentication, and a first request. # Chat Visibility Source: https://docs.gc.ai/api-reference/concepts/chat-visibility Why API chats stay private until you materialize them Every chat completion you create through the API is saved as a chat, but that chat is **headless** by default. It does not appear in anyone's chat history, not in the GC AI web app and not in the API's own [chat search](/api-reference/search-chats). It exists only as a record you can reach by its `chat_id`. To put it into a person's history, you **materialize** it. ## Why API chats are hidden by default When you call [`POST /chat/completions`](/api-reference/create-chat-completion), GC AI creates a chat to hold the exchange and returns its `chat_id` in the result envelope. Most API traffic is automated, though: batch contract reviews, a triage bot, a nightly job. If every one of those calls dropped a chat into someone's sidebar, real users' histories would fill up with machine-generated chats they never started. So API chats start headless. The chat is saved and reachable by `chat_id`, but it stays out of every human-facing listing until a person explicitly **claims** it by materializing it. ## What "hidden" means An API chat that has not been materialized: * **Does not appear in the web app.** It never shows up in the chat sidebar or history. * **Does not appear in API chat search.** [`GET /chat/search`](/api-reference/search-chats) searches the caller's chat history, and the chat is not in it, so search will not return it. * **Addressable only by `chat_id`.** Visibility is about listings, not access. The chat is still reachable directly by the `chat_id` from the completion response, but you have to hold that id yourself. Capture it (and the answer text) at the time of the call; an unmaterialized chat whose `chat_id` you never kept is effectively lost.Materialization is not a web-app-only flag. The same gate controls both the web sidebar and API chat search, so an unmaterialized chat is hidden in both. Materializing it makes the chat show up in both at once. ## Materializing a chat There are two ways to do it. If you already know at request time that a person is meant to open the chat, set `materialize: true` on the completion and skip the second call: ```bash theme={null} curl -X POST https://app.gc.ai/api/external/v1/chat/completions \ -H "Authorization: gcai_your_api_key_here" \ -H "Content-Type: application/json" \ -d '{"message": "Summarize this matter", "project_id": "...", "materialize": true}' ``` The response carries a `chat_url` you can hand straight to a person. If `chat_url` is missing, materialization did not happen and the chat is still headless, so fall back to the endpoint below. Otherwise call [`POST /chat/{id}/materialize`](/api-reference/materialize-chat) with the `chat_id` from a completed `POST /chat/completions` response: ```bash theme={null} curl -X POST https://app.gc.ai/api/external/v1/chat/a1b2c3d4-e5f6-7890-abcd-ef1234567890/materialize \ -H "Authorization: gcai_your_api_key_here" ``` Materializing a chat does four things: * **Adds it to chat history**, so it shows up in the GC AI web app and becomes findable through `GET /chat/search`. * **Sets who can use it.** An organization key shares the chat with the whole organization. See [Who can materialize what](#who-can-materialize-what). * **Returns a shareable deep link** (`chat_url`) that opens the chat in the web app. * **Is idempotent.** Calling it again on an already-materialized chat returns the same link and changes nothing else. A common pattern is to run completions fire-and-forget and then materialize only the chats a person actually needs to see, such as the ones a review flagged, rather than every chat the integration creates. That is the case the two-call shape exists for. Use the inline `materialize: true` flag when every chat in a flow is meant for a person, for example one chat per matter that an attorney opens from your own system.Filing a chat into a project with `project_id` is not the same as materializing it. `project_id` grounds the completion in the project's files and records the chat under that project, but the chat stays out of `GET /projects/{id}/chats` and out of the web app until it is materialized. If you file chats into projects for people to browse, materialize them too. ## Who can materialize what Materialization claims a chat into a person's or an organization's history, so it is scoped to the key that created the chat: | Key type | Can materialize | | --------------------------- | ----------------------------------------------------- | | **Personal** (`u:gcai_…`) | Only chats it created. | | **Organization** (`gcai_…`) | Only chats created by other organization-scoped keys. | When an organization key materializes a chat that another organization key created, the chat is shared with the **whole organization**. An organization key has no user identity, so the chat has no owner, and every member gets full access: they can open it from the shared link and keep chatting in it themselves. A chat a personal key created keeps that user as its owner. Materializing it puts it in that user's history. Teammates reach it only through the normal sharing rules, the same as a chat the user started in the web app. Use an organization key when you want the whole team to be able to pick up the conversation. See [API Keys](/api-reference/concepts/api-keys) for the difference between the two key types. ## Materialization and chat search [`GET /chat/search`](/api-reference/search-chats) runs hybrid search over the caller's chat history. Two things follow from how visibility works: * **Search needs a personal key.** Chat history is per-user, so chat search rejects organization keys with `400`. Use a personal key. * **Search only finds materialized chats.** An API chat is not in anyone's history until it is materialized, so it cannot show up in search before then. If you want an integration's chats to be searchable later, materialize the ones worth keeping. ## Related * [Create a Chat Completion](/api-reference/create-chat-completion): creates the chat and returns its `chat_id`. * [Multi-turn Conversations](/api-reference/concepts/multi-turn): continue a chat across turns by passing its `chat_id`. * [Materialize an API Chat](/api-reference/materialize-chat): surface a chat by `chat_id` and get a deep link. * [Search Chats](/api-reference/search-chats): hybrid search over a user's chat history. * [API Keys](/api-reference/concepts/api-keys): personal vs. organization keys and what each can reach. # Multi-turn Conversations Source: https://docs.gc.ai/api-reference/concepts/multi-turn Continue a chat across multiple completions by passing chat_id A single [`POST /chat/completions`](/api-reference/create-chat-completion) call is one turn. To hold a conversation — ask a follow-up, refine a draft, react to what the model said — you continue the same chat across turns by passing its `chat_id`. ## How it works Every completion returns a `chat_id` in its result envelope. Pass that value back as `chat_id` on your next request and the new message is appended to the same conversation: ```bash theme={null} # Turn 1 — omit chat_id to start a new chat curl -X POST https://app.gc.ai/api/external/v1/chat/completions \ -H "Authorization: gcai_your_api_key_here" \ -H "Content-Type: application/json" \ -d '{ "message": "Summarize the indemnification clause in plain English." }' # → result.chat_id = "a1b2c3d4-e5f6-7890-abcd-ef1234567890" # Turn 2 — pass chat_id to continue curl -X POST https://app.gc.ai/api/external/v1/chat/completions \ -H "Authorization: gcai_your_api_key_here" \ -H "Content-Type: application/json" \ -d '{ "chat_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "message": "Now redline it to be more favorable to the buyer." }' ``` The model sees the full prior conversation on turn 2 — the earlier messages, any tool calls it made, and the files you attached — so the follow-up can refer back to "it" without restating context. ## State lives on the server Conversation state is stored server-side and reconstructed for you on every turn. **Send only the new message** (plus any new `file_ids`) — never re-send prior turns. In particular, you do **not** echo back anything the API returned to you: * **Files stay attached.** A file you sent with `file_ids` on an earlier turn remains available; you don't re-attach it. * **Generated outputs are remembered.** Documents, emails, and diagrams returned on `result.documents` / `result.emails` / `result.diagrams` are already persisted to the chat. The model can refer to and build on them without you sending them back. Those response fields are there for *your* convenience — to download or display — not state you must round-trip. This keeps requests small and avoids the drift that comes from a client reassembling history by hand. ## One turn at a time Each turn runs as an [async job](/api-reference/concepts/async-jobs). Only one turn may be in flight per chat: if you send a new message while a prior turn is still `pending` or `running`, the request is rejected with `409`. Wait for the prior turn to reach a terminal state (`succeeded` / `failed`) before sending the next. This prevents two turns from racing on the same message history. If you long-poll (`wait` > 0) you'll usually have the result before you send the next turn; with fire-and-forget (`wait=0`) poll [`GET /jobs/{id}`](/api-reference/get-async-job) until the turn is terminal first. ## Who can continue what Continuing a chat is scoped exactly like [materialization](/api-reference/concepts/chat-visibility#who-can-materialize-what), and only [API-created chats](/api-reference/concepts/chat-visibility) can be continued: | Key type | Can continue | | --------------------------- | ----------------------------------------------------- | | **Personal** (`u:gcai_…`) | Only chats it created. | | **Organization** (`gcai_…`) | Only chats created by other organization-scoped keys. | A `chat_id` that doesn't exist (or that this key can't reach) returns `404`; a chat owned by a different scope returns `403`; a chat that wasn't created through the API returns `409`. Continuing a chat does **not** materialize it — the conversation stays [headless](/api-reference/concepts/chat-visibility) until you explicitly [materialize](/api-reference/materialize-chat) it. ## Related * [Create a Chat Completion](/api-reference/create-chat-completion): each turn; returns the `chat_id`. * [Chat Visibility](/api-reference/concepts/chat-visibility): why API chats stay headless and how ownership scoping works. * [Asynchronous Requests](/api-reference/concepts/async-jobs): the job envelope, waiting, and polling. # Rate Limits Source: https://docs.gc.ai/api-reference/concepts/rate-limits How the API limits request rate, and how to handle being throttled GC AI rate-limits the API in two tiers. **Inference** endpoints (the model-backed calls) are limited tightly. Everything else (listing, creating, and updating projects, playbooks, files, and so on) gets a far more forgiving limit. ## The two tiers | Tier | Endpoints | Per organization | Per API key | | ------------------- | --------------------------------------------------------------------------- | --------------------- | --------------------- | | **Inference** | `POST /chat/completions`, `POST /playbooks/{id}/run` | 60 requests / minute | 20 requests / minute | | **Everything else** | All other endpoints (files, folders, projects, playbooks CRUD, profiles, …) | 600 requests / minute | 120 requests / minute | Each limit is a fixed 60-second window. The full quota is available at once, then resets at the end of the window. ## What counts against the limit Limits apply **per organization**, and within that **per API key**. GC AI checks both on every request, and whichever is exhausted first blocks it: * The **per-organization** limit is the binding ceiling. It is shared across every key the organization holds, so minting extra keys does not raise your total throughput. * The **per-key** limit keeps one integration from monopolizing the organization's budget. It is the per-integration sub-limit beneath the organization ceiling. ## When you exceed a limit A throttled request returns **`429 Too Many Requests`**: ```json theme={null} { "error": "Rate limit exceeded", "code": "RATE_LIMITED" } ``` It also carries headers describing the limit and when to retry: | Header | Meaning | | --------------------- | ---------------------------------------------- | | `Retry-After` | Seconds to wait before retrying. | | `RateLimit-Limit` | The request quota for the window that was hit. | | `RateLimit-Remaining` | Requests remaining in the current window. | | `RateLimit-Reset` | Seconds until the quota resets. | Honor `Retry-After`: wait that many seconds before sending the next request. For batch workloads, use [fire-and-forget](/api-reference/concepts/async-jobs#waiting-inline-vs-fire-and-forget) and pace your enqueues rather than retrying in a tight loop. ## Related * [Asynchronous Requests](/api-reference/concepts/async-jobs): inference calls are jobs; pace batches with fire-and-forget. * [API Introduction](/api-reference/introduction): base URL, authentication, and a first request. # Running an example on Replit Source: https://docs.gc.ai/api-reference/concepts/running-on-replit Import a GC AI API example project into your own Replit workspace in a few clicks. Each API example (the [contract risk heatmap](/api-reference/examples/contract-risk-heatmap) and [triage and route](/api-reference/examples/triage-and-route)) has a **Run it yourself** link that opens Replit with the project's repository pre-filled. Replit imports the code and its Agent gets it running for you. It is only a few clicks, but the prompts are easy to miss the first time, so here is the whole flow.You will need a free [Replit](https://replit.com) account and a GC AI API key. See [How to enable API access](/api-reference/how-to-enable) to create a key. If you only want to see the example working, use the **Try it live** link on the example page instead. That opens a hosted version with nothing to set up. ## StepsThat is it. The imported project is yours to edit, extend, or fork. See its `README` for how the app is structured. # Create Chat Completion Source: https://docs.gc.ai/api-reference/create-chat-completion POST /chat/completions Send a message to GC AI and receive an AI-generated response. The **Run it yourself** link opens Replit's **Import from GitHub** page with the repository already selected. Click **Import from GitHub**. ![]()
Replit copies the repository and its Agent starts setting the project up. This takes a minute or two. ![]()
The Agent asks what you want to do with the project. Select **Get it running on Replit** and click **Submit**. The Agent then installs dependencies, configures the dev server, and starts the app. ![]()
When the app is running, its preview opens on the right. Paste your GC AI API key into the field at the top to start using it. ![]()
The example runs entirely in your browser and stores the key in your browser's local storage. There is no server-side secret to configure. This endpoint is asynchronous: it returns a job envelope, and the result is filled in once the job completes. See [Asynchronous Requests](/api-reference/concepts/async-jobs) for how waiting, polling, and the envelope work. ## Multi-turn conversations Every response includes a `chat_id`. Pass it back as `chat_id` on a later request to continue that conversation. Conversation state (prior messages, tool calls, and any returned documents, emails, or diagrams) is held server-side, so each turn sends only the new `message` (plus any new `file_ids`); never re-send prior turns or previously returned outputs. Only one turn may be in flight per chat at a time: a request whose `chat_id` already has a turn running is rejected with `409`. Wait for the prior turn to reach a terminal state before sending the next. Continuing a chat is scoped like [materialization](/api-reference/concepts/chat-visibility): personal keys continue chats they created; organization keys continue organization chats. See [Multi-turn Conversations](/api-reference/concepts/multi-turn). ## Server-side tools The model can invoke tools automatically while generating a response. Tool calls happen server-side. Only the final assistant text is returned in `result.result`. | Tool | Description | Key type | |---|---|---| | Document reading | Read, query, and search within attached files | All | | Web search | Search the web for current information | All | | Research agent | Multi-step web research with synthesis | All | | Case-law lookup | Search case law databases | User-scoped only | | Playbook review | Run playbook checks against attached files (requires `playbook_ids`) | All | | Document editing | Apply redline edits to an attached DOCX. All proposed revisions are auto-accepted; the edited file is returned via `result.documents`. The original file is preserved. | All | | Document generation | Generate a new DOCX from a prompt. The generated file is returned via `result.documents`. | All | | Slide generation | Generate a new PowerPoint deck (PPTX) from a prompt. The generated file is returned via `result.documents`. | User-scoped only | | Email drafting | Draft a structured email from a prompt. The draft is returned via `result.emails` (`to`, `subject`, `body`, …). | All | | Diagrams | Generate a diagram from a prompt. The diagram is returned via `result.diagrams` as validated Mermaid source (`mermaid`) you can render with any Mermaid-compatible renderer. | All | | Vault query | Query documents and fields in an attached Contract Intelligence vault (requires `vault_id`) | All (subject to vault authorization) | The following tools are **not available** via API (the response is plain text with no channel for rich outputs): | Tool | Reason unavailable | |---|---| | Interactive clarification | Requires a back-and-forth channel with the caller |This is an inference endpoint and is [rate limited](/api-reference/concepts/rate-limits): 60 requests/minute per organization (20 per API key). Exceeding the limit returns `429` with a `Retry-After` header. # Create a Public Share Link Source: https://docs.gc.ai/api-reference/create-chat-share-link POST /chats/{id}/share Make a chat publicly accessible via a share URL. **Security note**: anyone with the URL can read the chat, even without authenticating. Treat this as a deliberate publishing action. Omit expiry fields to use the default 7-day lifetime (or keep the current expiry when re-sharing a live link). Pass `expires_at: null` for a link that never expires. # Create a Folder Source: https://docs.gc.ai/api-reference/create-folder POST /folders Create a new folder for organizing files. Folders can be nested by specifying a `parent_folder_id`. Org-scoped keys can create folders under non-access-controlled parents. The `scope` parameter requires a user-scoped key. # Create a Playbook Source: https://docs.gc.ai/api-reference/create-playbook POST /playbooks Create a new, empty playbook. Add checks to it with the check endpoints, then run it against files. With a user-scoped key, the caller is recorded as the creator and the playbook is private to them. With an org-scoped key, the playbook is org-visible (any member of the organization can read and manage it) and has no individual creator. # Add a Check to a Playbook Source: https://docs.gc.ai/api-reference/create-playbook-check POST /playbooks/{id}/checks Create a check and append it to the playbook. Requires write access to the playbook. With a user-scoped key the caller is recorded as the check’s creator; with an org-scoped key the check has no individual creator and is org-owned. # Create a Project Source: https://docs.gc.ai/api-reference/create-project POST /projects Create a new project to group files, folders, and chats around a single matter (deal, vendor, or program). With a user-scoped key, the caller is recorded as the project creator and granted admin access. With an org-scoped key, `creatorId` is null and the project defaults to non-access-controlled (org-wide). # Create a Skill Source: https://docs.gc.ai/api-reference/create-skill POST /skills Create a new skill in the caller's organization. User-scoped keys own the skill and default it to `private`; org-scoped keys create `organization`-visible skills. Official skills cannot be created via the API. # Delete a Chat Source: https://docs.gc.ai/api-reference/delete-chat DELETE /chats/{id} Delete a chat and all its messages. Attached files are NOT deleted — only the chat association is removed. Public share links are invalidated. # Delete a Folder Source: https://docs.gc.ai/api-reference/delete-folder DELETE /folders/{id} Delete a folder. By default, only empty folders can be deleted; pass `?recursive=true` to delete a folder along with all of its subfolders and files. System folders cannot be deleted. Org-scoped keys can delete non-access-controlled folders. # Delete a Playbook Source: https://docs.gc.ai/api-reference/delete-playbook DELETE /playbooks/{id} Soft-delete a playbook by ID. The playbook is marked as deleted and will no longer appear in `GET /playbooks` results. User-scoped keys require admin access to the playbook. Org-scoped keys can delete org-visible (non-private) playbooks. # Remove a Check From a Playbook Source: https://docs.gc.ai/api-reference/delete-playbook-check DELETE /playbooks/{id}/checks/{checkId} Remove a check from the playbook. Requires a user-scoped key with write access to the playbook. Org-scoped keys cannot remove checks. # Delete a Project Source: https://docs.gc.ai/api-reference/delete-project DELETE /projects/{id} Delete a project. Files, folders, and chats linked to the project are detached, not deleted; they remain in the organization and can be reattached elsewhere. Requires admin access to the project. Org-scoped keys can delete non-access-controlled projects. # Delete a Skill Source: https://docs.gc.ai/api-reference/delete-skill DELETE /skills/{id} Delete a skill. Attached files are detached, not deleted; manage file lifecycle via the files API. User-scoped keys require write access to the skill; org-scoped keys can delete org-visible (non-private) skills. Official skills cannot be deleted via the API. # Detach a File From a Chat Source: https://docs.gc.ai/api-reference/detach-file-from-chat DELETE /chats/{id}/files/{fileId} Detach a file from a chat. The file is NOT deleted from the organization — only the chat association is removed. # Detach a File From a Project Source: https://docs.gc.ai/api-reference/detach-file-from-project DELETE /projects/{id}/files/{fileId} Remove the link between a file and a project. The file itself is not deleted; it stays in the organization and can be reattached later. Idempotent: detaching a file that is not attached is a no-op. Requires write access to the project. Org-scoped keys can detach files from non-access-controlled projects. # Detach a Folder From a Project Source: https://docs.gc.ai/api-reference/detach-folder-from-project DELETE /projects/{id}/folders/{folderId} Remove the link between a folder and a project. The folder itself is not deleted; it stays in the organization. Idempotent: detaching a folder that is not attached is a no-op. Requires write access to the project. Org-scoped keys can detach folders from non-access-controlled projects. # Duplicate a Chat Source: https://docs.gc.ai/api-reference/duplicate-chat POST /chats/{id}/duplicate Create a full copy of a chat including all messages and attached files. The new chat is a separate, editable conversation. # Duplicate a Playbook Source: https://docs.gc.ai/api-reference/duplicate-playbook POST /playbooks/{id}/duplicate Create a copy of a playbook, including its checks and positions. The copy is private to the caller. Requires a user-scoped key: the caller is recorded as the new playbook's creator and must be able to read the source. Org-scoped keys cannot duplicate playbooks. # Contract Risk Heatmap Source: https://docs.gc.ai/api-reference/examples/contract-risk-heatmap Upload a contract and get a visual risk analysis with severity levels, clause references, and suggested redlines.**Developer tutorial.** Requires Node.js, React, TypeScript, and command-line experience. Upload a contract and get back a severity-ranked list of risky clauses with suggested redlines, all in a single-page React app that talks to the GC AI API.## What you'll build A drag-and-drop webapp where a user pastes their API key, uploads a PDF contract, and sees a heatmap of risks sorted by severity. Each risk includes a clause reference, category, and suggested redline. The whole thing runs on two API calls: one to upload the file, one to analyze it. ## API endpoints | Method | Endpoint | What it does | | ------ | --------------------------------------------------------------- | ------------------------------------------- | | `GET` | [`/v1/folders`](/api-reference/list-folders) | Validates the API key on paste | | `POST` | [`/v1/files`](/api-reference/upload-file) | Uploads the contract | | `GET` | [`/v1/files/:id`](/api-reference/get-file-status) | Polls until the file is processed | | `POST` | [`/v1/chat/completions`](/api-reference/create-chat-completion) | Sends the analysis prompt (async, `wait=0`) | | `GET` | [`/v1/jobs/:id`](/api-reference/get-async-job) | Polls until the analysis is complete | Want to skip ahead? [Try the live demo](https://api-demo-heatmap.replit.app/) or [view the source on GitHub](https://github.com/GC-AI-Inc/api-demo-heatmap). ## Prerequisites * A [GC AI API key](/api-reference/introduction#authentication) (get one from **Settings > API** in the app) * [Node.js](https://nodejs.org/) 18+ ## Build the app
## Try it and explore the source Create a new Vite + React + TypeScript project and install Tailwind CSS: ```bash theme={null} npm create vite@latest api-demo-heatmap -- --template react-ts cd api-demo-heatmap npm install tailwindcss @tailwindcss/vite react-pdf npm install ``` Open `vite.config.ts` and add the Tailwind plugin plus an API proxy for development: ```typescript vite.config.ts theme={null} import { defineConfig } from "vite"; import react from "@vitejs/plugin-react"; import tailwindcss from "@tailwindcss/vite"; export default defineConfig({ plugins: [react(), tailwindcss()], server: { proxy: { "/api": { target: "https://app.gc.ai", changeOrigin: true, }, }, }, }); ``` The proxy forwards `/api` requests to GC AI during development so you don't hit CORS issues from `localhost`. Now clear out the starter code. We'll write everything from scratch: ```bash theme={null} rm src/App.css src/assets -rf ``` Replace `src/index.css` with the Tailwind import and a minimal color theme: ```css src/index.css theme={null} @import "tailwindcss"; @theme { --color-surface: #f5f6f8; --color-card: #ffffff; --color-border: #e2e5ea; --color-border-light: #eef0f3; --color-ink: #1a2332; --color-ink-secondary: #4b5563; --color-ink-muted: #8b95a5; --color-accent: #2563eb; --color-severity-high: #dc2626; --color-severity-high-bg: #fef2f2; --color-severity-medium: #d97706; --color-severity-medium-bg: #fffbeb; --color-severity-low: #0891b2; --color-severity-low-bg: #ecfeff; --color-success: #16a34a; --color-error: #dc2626; --color-error-bg: #fef2f2; } ``` Create two empty files. These are the only two source files we'll write: ```bash theme={null} echo '' > src/api.ts echo 'export default function App() { return hello}' > src/App.tsx ``` Run `npm run dev` to confirm the scaffold works before we start building.The API client goes in `src/api.ts`. It wraps the GC AI endpoints into three functions: `validateApiKey`, `uploadFile`, and `analyzeContract`. Start with the types. `ContractRisk` is the shape we'll ask the model to return: ```typescript src/api.ts theme={null} export interface ContractRisk { severity: "high" | "medium" | "low"; category: string; clause: string; issue: string; redline: string; } interface FileResponse { id: string; name: string; status: "pending" | "processing" | "ready" | "failed"; } interface JobResponse { job_id: string; kind: string; status: "pending" | "running" | "succeeded" | "failed" | "canceled"; result: T | null; error: { code: string; message: string } | null; created_at: string; completed_at: string | null; } interface ChatResult { result: string; chat_id: string; } ``` Next, a small helper that attaches the API key to every request and throws on non-2xx responses: ```typescript src/api.ts theme={null} const API_BASE = "/api/external/v1"; async function apiRequest( apiKey: string, path: string, options: RequestInit = {}, ): Promise { const res = await fetch(`${API_BASE}${path}`, { ...options, headers: { Authorization: apiKey, ...options.headers, }, }); if (!res.ok) { const body = await res.json().catch(() => ({})); throw new Error( (body as { error?: string }).error ?? `API error ${res.status}: ${res.statusText}`, ); } return res; } ``` **Key validation.** A lightweight `GET /folders?limit=1` call checks whether the API key is valid without creating any resources: ```typescript src/api.ts theme={null} export async function validateApiKey(apiKey: string): Promise { try { const res = await fetch(`${API_BASE}/folders?limit=1`, { headers: { Authorization: apiKey }, }); return res.ok; } catch { return false; } } ``` **File upload.** `uploadFile` posts the file, then polls `GET /files/:id` every 2 seconds until the status is `ready`. The caller just awaits the result: ```typescript src/api.ts theme={null} export async function uploadFile( apiKey: string, file: File, ): Promise { const form = new FormData(); form.append("file", file); const res = await fetch(`${API_BASE}/files`, { method: "POST", headers: { Authorization: apiKey }, body: form, }); if (!res.ok) { const body = await res.json().catch(() => ({})); throw new Error( (body as { error?: string }).error ?? `Upload failed: ${res.status} ${res.statusText}`, ); } const uploaded: FileResponse = await res.json(); return waitForFile(apiKey, uploaded.id); } async function waitForFile( apiKey: string, fileId: string, ): Promise { for (let i = 0; i < 60; i++) { const res = await apiRequest(apiKey, `/files/${fileId}`); const file: FileResponse = await res.json(); if (file.status === "ready") return file; if (file.status === "failed") throw new Error("File processing failed"); await new Promise((r) => setTimeout(r, 2000)); } throw new Error("Timed out waiting for file processing"); } ``` **Contract analysis.** `analyzeContract` sends a chat completion with `wait=0`, which returns a job ID immediately instead of blocking. It polls the job until the model finishes, then parses the structured JSON out of the response: ```typescript src/api.ts theme={null} const ANALYSIS_PROMPT = `Analyze this contract for legal risks. Return a JSON array of risk objects. Each risk object must have exactly these fields: - "severity": "high", "medium", or "low" - "category": a short label (e.g. "Liability", "Termination", "IP", "Data Privacy", "Indemnification") - "clause": the section or clause reference (e.g. "Section 7.1", "Clause 4(b)") - "issue": a one-sentence description of the risk - "redline": a one-sentence suggested revision Return ONLY the JSON array, no other text. Example format: [{"severity":"high","category":"Liability","clause":"Section 5.2","issue":"Unlimited liability exposure","redline":"Cap liability at 12 months of fees paid"}]`; export async function analyzeContract( apiKey: string, fileId: string, ): Promise { const res = await apiRequest(apiKey, "/chat/completions?wait=0", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ message: ANALYSIS_PROMPT, file_ids: [fileId], }), }); const job: JobResponse = await res.json(); if (job.status === "failed") { throw new Error(job.error?.message ?? "Analysis failed"); } return waitForAnalysis(apiKey, job.job_id); } async function waitForAnalysis( apiKey: string, jobId: string, ): Promise { for (let i = 0; i < 90; i++) { await new Promise((r) => setTimeout(r, 2000)); const res = await apiRequest(apiKey, `/jobs/${jobId}`); const job: JobResponse = await res.json(); if (job.status === "succeeded" && job.result) { return parseRisks(job.result.result); } if (job.status === "failed") { throw new Error(job.error?.message ?? "Analysis failed"); } } throw new Error("Timed out waiting for analysis"); } function parseRisks(text: string): ContractRisk[] { const jsonMatch = text.match(/\[[\s\S]*\]/); if (!jsonMatch) throw new Error("Could not parse risk analysis response"); return JSON.parse(jsonMatch[0]); } ``` That's the whole API layer. Three exported functions: `validateApiKey(key)`, `uploadFile(key, file)`, and `analyzeContract(key, fileId)`. Now we start building `src/App.tsx`. This first pass just sets up the header (with the API key input), an empty main area, and a footer: ```tsx src/App.tsx theme={null} import { useCallback, useEffect, useState } from "react"; import { Document, Page, pdfjs } from "react-pdf"; import "react-pdf/dist/Page/AnnotationLayer.css"; import "react-pdf/dist/Page/TextLayer.css"; import { validateApiKey, uploadFile, analyzeContract } from "./api"; import type { ContractRisk } from "./api"; pdfjs.GlobalWorkerOptions.workerSrc = `https://unpkg.com/pdfjs-dist@${pdfjs.version}/build/pdf.worker.min.mjs`; function App() { const [apiKey, setApiKey] = useState( () => localStorage.getItem("gcai_api_key") ?? "", ); const [keyValid, setKeyValid] = useState (null); const [keyChecking, setKeyChecking] = useState(false); const checkKey = useCallback(async (key: string) => { if (!key.trim()) { setKeyValid(null); return; } setKeyChecking(true); const valid = await validateApiKey(key.trim()); setKeyValid(valid); setKeyChecking(false); if (valid) { localStorage.setItem("gcai_api_key", key.trim()); } }, []); useEffect(() => { if (apiKey) checkKey(apiKey); }, []); function handleKeyChange(e: React.ChangeEvent ) { setApiKey(e.target.value); setKeyValid(null); } return ( ); } export default App; ``` The key validates on blur and on page load (if one was saved to `localStorage` from a previous session). A green checkmark or red X shows up inline so you know right away whether the key is good.Contract Risk Heatmap
{/* We'll fill this in over the next steps */} ![]()
Add a `FileUpload` component above the `App` function. It supports both drag-and-drop and click-to-browse: ```tsx src/App.tsx (above App) theme={null} function FileUpload({ onFileSelected, disabled, }: { onFileSelected: (file: File) => void; disabled: boolean; }) { const [dragOver, setDragOver] = useState(false); const handleDrop = useCallback( (e: React.DragEvent) => { e.preventDefault(); setDragOver(false); const file = e.dataTransfer.files[0]; if (file) onFileSelected(file); }, [onFileSelected], ); const handleChange = useCallback( (e: React.ChangeEvent ) => { const file = e.target.files?.[0]; if (file) onFileSelected(file); }, [onFileSelected], ); return ( { e.preventDefault(); setDragOver(true); }} onDragLeave={() => setDragOver(false)} onDrop={handleDrop} className={`flex w-full max-w-md flex-col items-center rounded-lg border-2 border-dashed p-12 transition-colors ${ dragOver ? "border-accent bg-accent/5" : "border-border" } ${disabled ? "pointer-events-none opacity-50" : "cursor-pointer hover:border-ink-muted"}`} onClick={() => { if (!disabled) document.getElementById("file-input")?.click(); }} >); } ```Drop a contract here, or{" "} browse
Add a `DocumentPreview` component that renders the uploaded PDF using `react-pdf`. We use this instead of a native iframe embed so the preview works in sandboxed environments like Replit: ```tsx src/App.tsx (above App) theme={null} function DocumentPreview({ file }: { file: File }) { const [numPages, setNumPages] = useState(0); return ( ); } ``` This renders from the browser's local `File` object, not from anything returned by the API. The preview shows up the moment the user drops a file, even while the upload is still running.{file.name} {(file.size / 1024).toFixed(0)} KBsetNumPages(n)}> {Array.from({ length: numPages }, (_, i) => ( ))} Add the `RiskHeatmap` component that renders the analysis results. Each risk gets a card with a colored left border for severity, a category badge, a clause reference, and a suggested redline: ```tsx src/App.tsx (above App) theme={null} const severityStyles = { high: { border: "border-l-severity-high", badge: "bg-severity-high-bg text-severity-high", label: "High", }, medium: { border: "border-l-severity-medium", badge: "bg-severity-medium-bg text-severity-medium", label: "Medium", }, low: { border: "border-l-severity-low", badge: "bg-severity-low-bg text-severity-low", label: "Low", }, }; function SeveritySummary({ risks }: { risks: ContractRisk[] }) { const counts = { high: 0, medium: 0, low: 0 }; for (const r of risks) counts[r.severity]++; return ( {(["high", "medium", "low"] as const).map((level) => counts[level] > 0 ? ( {counts[level]} {severityStyles[level].label} ) : null, )}); } function RiskHeatmap({ risks, fileName, }: { risks: ContractRisk[]; fileName: string; }) { const sorted = [...risks].sort((a, b) => { const order = { high: 0, medium: 1, low: 2 }; return order[a.severity] - order[b.severity]; }); return (); } ``` Risks are sorted high to low. The `SeveritySummary` at the top acts as a legend, with colored count badges that match the left-border colors on the cards below.Identified Risks
{fileName}
{sorted.map((risk, i) => { const style = severityStyles[risk.severity]; return (); })}{risk.category} {risk.clause}{risk.issue}
{risk.redline}
The last piece is the state machine and the conditional rendering that wires everything together. Define the status type and status messages above the `App` function: ```tsx src/App.tsx (above App) theme={null} type Status = | { step: "idle" } | { step: "uploading"; fileName: string; file: File } | { step: "analyzing"; fileName: string; file: File } | { step: "done"; fileName: string; file: File; risks: ContractRisk[] } | { step: "error"; message: string }; const statusMessages: Record = { uploading: "Uploading contract...", analyzing: "Analyzing risks, this may take a minute...", }; ``` Each variant of `Status` carries only the data the UI needs for that state. TypeScript narrows the type in each rendering branch, so you can't accidentally access `risks` while still uploading. Add the state and handler inside `App`: ```tsx theme={null} const [status, setStatus] = useState ({ step: "idle" }); async function handleFile(file: File) { const key = apiKey.trim(); try { setStatus({ step: "uploading", fileName: file.name, file }); const uploaded = await uploadFile(key, file); setStatus({ step: "analyzing", fileName: file.name, file }); const risks = await analyzeContract(key, uploaded.id); setStatus({ step: "done", fileName: file.name, file, risks }); } catch (err) { setStatus({ step: "error", message: err instanceof Error ? err.message : "Something went wrong", }); } } function reset() { setStatus({ step: "idle" }); } const isWorking = status.step === "uploading" || status.step === "analyzing"; const isReady = keyValid === true && !isWorking && status.step !== "done"; ``` Finally, fill in the ` ` element: ```tsx theme={null} {keyValid === false && ( ``` The UI shows one thing at a time based on the current status: a prompt to enter a key, the file upload zone, a spinner, or the results. The `DocumentPreview` stays mounted across the uploading/analyzing/done transitions so it doesn't flash. Run `npm run dev`, paste your API key, and drop a contract PDF. You should see the risk heatmap appear after about 30-60 seconds.Invalid API key. Check your key in{" "} Settings → API)} {!keyValid && !keyChecking && status.step === "idle" && ()} {isReady && status.step === "idle" && (Enter your GC AI API key above to get started
Upload a contract and get a structured risk analysis
)} {(isWorking || status.step === "done") && ( {"file" in status &&)} {status.step === "error" && (} {isWorking && ( )} {status.step === "done" && ( <>{statusMessages[status.step]}
> )})}{status.message}![]()
![]()
A hosted version. Paste your own GC AI API key to use it. The full project on GitHub. Import it into your own Replit in a few clicks. See [Running on Replit](/api-reference/concepts/running-on-replit). # Slack Triage Bot Source: https://docs.gc.ai/api-reference/examples/slack-triage-bot Automate legal request triage in Slack with a Zapier workflow, no code required.**No code required.** This tutorial uses Zapier's point-and-click builder. No programming experience needed. Set up a Zapier automation that watches a Slack channel for legal requests, sends them to GC AI for classification, and replies in-thread with a structured triage report.## What you'll build A Zapier "Zap" that monitors a Slack channel (e.g. `#legal-requests`). When someone posts a message describing a legal need, the automation: 1. Sends the message to GC AI for classification 2. Replies in the same Slack thread with a structured triage: category, risk level, urgency, a summary, recommended next steps, and which playbook to use in GC AI ## API endpoints | Method | Endpoint | What it does | | ------ | --------------------------------------------------------------- | ----------------------------------------------------------------------- | | `POST` | [`/v1/chat/completions`](/api-reference/create-chat-completion) | Classifies the request | | `GET` | [`/v1/jobs/:id`](/api-reference/get-async-job) | Polls for the result when the classification takes longer than expected | ## Prerequisites * A [GC AI API key](/api-reference/introduction#authentication) (get one from **Settings > API** in the app) * A [Zapier](https://zapier.com) account (the free plan works for testing; a paid plan is needed for multi-step Zaps to run automatically) * Admin access to a Slack workspace ## Part 1: The basic Zap
### Exercise: trigger the bot only on certain messages Right now the bot triages every message posted in the channel. How would you configure it so the bot only runs when someone specifically addresses it, for example by starting their message with "hey legalbot"? Create a dedicated channel for incoming legal requests, something like `#legal-requests`. This is the channel the bot will watch. If your team already has a channel for this purpose, you can use that instead. Go to [zapier.com](https://zapier.com) and click **Create** → **New Zap**. You'll see an empty canvas with a trigger step. Click the trigger step and configure it: 1. **App**: Search for **Slack** and select it 2. **Event**: Choose **New Message Posted to Channel** 3. **Account**: Connect your Slack workspace (Zapier will walk you through the OAuth flow) 4. **Channel**: Select your `#legal-requests` channel 5. **Trigger on bot messages**: Set to **No** (this prevents the bot from responding to its own replies) 6. Click **Test trigger** to pull in a sample message ![]()
![]()
Post a test message in the channel before testing the trigger so Zapier has sample data to work with. Add a new step: **Slack** → **Send Channel Message**. | Field | Value | | ---------------- | ----------------------------------------------------------------------------------- | | **Channel** | Select `#legal-requests` (or map the **Channel ID** from the trigger) | | **Message Text** | `Working on it...` | | **Thread** | Map the **Ts** field from the Slack trigger (this makes the reply appear in-thread) | | **Bot Name** | `GC AI Triage` (optional) | This gives the requester instant feedback while the API processes their request. We'll update this message with the actual result in a later step. ![]()
![]()
![]()
Add a new step: **Webhooks by Zapier** → **POST**. | Field | Value | | ------------------------- | ------------------------------------------------------------ | | **URL** | `https://app.gc.ai/api/external/v1/chat/completions?wait=30` | | **Payload Type** | `Json` | | **Data** | Key: `message` / Value: see below | | **Wrap Request In Array** | `No` | | **Unflatten** | `Yes` | | **Headers** | Key: `Authorization` / Value: `YOUR_API_KEY` | For the **Data** value, paste the following prompt. Replace `{{insert Message Text}}` with the mapped field from your Slack trigger (click the **+** button in the value field, then select **Message Text** from the Slack trigger data): ``` You are a legal operations triage assistant. A team member posted the following request in Slack: "{{insert Message Text}}" Classify this request and respond with: Category: [Contract Review, Employment, IP, Compliance, Litigation, Corporate, or Other] Risk Level: [Low, Medium, High, or Critical] Urgency: [Routine, Expedited, or Urgent] Summary: [One sentence describing the request] Recommended Next Steps: 1. [First step] 2. [Second step] 3. [Third step] Suggested GC AI Playbook: [Which playbook type to use] Keep the response concise. Use bold (*text*) for labels. ``` The `?wait=30` on the URL tells the API to hold the connection for up to 30 seconds while it works, comfortably inside Zapier's 30-second limit for action steps, so the step returns cleanly instead of erroring out. (The API reads `wait` from the query string or a `Prefer: wait=30` header, not the JSON body, so it must live on the URL here.) Click **Test step**. Quick classifications come back with `status: "succeeded"` and the text inside `result` → `result`. If the request needs longer than 30 seconds, the call returns with a non-`succeeded` status and a `job_id`; the next step handles that case (and Part 2 polls the job to completion). ![]()
![]()
![]()
Add a new step: **Paths by Zapier**. The API usually finishes within the wait window, but longer queries can time out. This step handles both cases. **Path A: Classification ready** | Field | Value | | ------------- | ------------------------------------------------------------- | | **Condition** | `Status` (from the Webhooks step) exactly matches `succeeded` | Add a **Slack** → **Edit Message** step inside this path. When searching for the action, choose the first "Edit Message" option (the one with just "Edits a message." as the description). | Field | Value | | ------------------- | ---------------------------------------------------------------------------------------------------------------------- | | **Conversation ID** | Your `#legal-requests` channel | | **Message TS (ID)** | Map the **Ts** from the "Working on it..." step (this identifies which message to update) | | **Message Content** | Map the **Result Result** field from the Webhooks step (the AI's classification text, found under `result` → `result`) | | **Content Type** | `Markdown` |
![]()
**Path B: Timed out** | Field | Value | | ------------- | -------------------------------------------------------------------- | | **Condition** | `Status` (from the Webhooks step) does not exactly match `succeeded` |
Add a **Slack** → **Edit Message** step inside this path (same first option): | Field | Value | | ------------------- | ------------------------------------------------------------------------------------------ | | **Conversation ID** | Your `#legal-requests` channel | | **Message TS (ID)** | Map the **Ts** from the "Working on it..." step | | **Message Content** | `This request timed out. It may be too complex for the bot. Try asking in GC AI directly.` | | **Content Type** | `Markdown` |
![]()
![]()
1. Post a test message in `#legal-requests`: > We just signed a new vendor and need their MSA reviewed before onboarding. It's a 3-year SaaS agreement with auto-renewal and an uncapped indemnification clause. Timeline is end of week. 2. Click **Test** on each step to run the Zap manually, or click **Publish** and post the message to see it run automatically. 3. You should see a threaded reply with the structured triage. Once it's working, click **Publish** to turn the Zap on. Every new message in the channel will now be triaged automatically.
Add a **Filter by Zapier** step between the Slack trigger and the Webhooks POST. Set the condition to only continue if **Message Text** contains `hey legalbot`. Every other message in the channel will be ignored. ## Part 2: Handling long-running queries The basic Zap works well for quick classifications, but some queries, especially those involving large documents or complex analysis, can take longer than the API's wait window. When that happens, Path B fires and the user sees "Your request is taking longer than expected." To actually follow up with the result, we'll build a **second Zap** that polls for the completed job. The main Zap calls this sub-Zap when a query times out, and the sub-Zap keeps checking until the result is ready. ### How it works The sub-Zap receives a `job_url`, an `attempt_number`, and the Slack context needed to update the "Working on it..." message. It waits, checks the job status, and then: * **Job succeeded** → updates the "Working on it..." message with the result * **Max attempts reached** → updates the message with an error * **Still running** → calls itself again with `attempt_number + 1` This is recursion: the sub-Zap calls itself with an incremented counter until it either gets a result or hits the retry limit. ### Build the polling sub-Zap![]()
### Wire the sub-Zap into the main Zap Go back to your main Zap and update **Path B** (the timed-out branch). Replace the **Edit Message** step with a **Webhooks by Zapier** → **GET** step (keep the Edit Message that says "This request timed out..."; the sub-Zap will update it again when the result is ready): | Field | Value | | ----------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | | **URL** | Your sub-Zap's Catch Hook URL | | **Query String Params** | `job_url`: type `https://app.gc.ai/api/external/v1/jobs/` then map **Job Id** from the main Zap's Webhooks step (it appends to the URL) | | | `attempt_number`: `1` | | | `channel`: map **Channel ID** from the Slack trigger | | | `message-ts`: map **Ts** from the "Working on it..." step | Create a second Zap. For the trigger, choose **Webhooks by Zapier** → **Catch Hook**. In the **Configure** tab, leave **Pick off a Child Key** empty and click **Continue**. Zapier will give you a unique webhook URL (something like `https://hooks.zapier.com/hooks/catch/123456/abcdef/`). Copy this URL; the main Zap will call it. In the **Test** tab, click **Test trigger**. Zapier will wait for a request. To send test data, you'll need a real Job Id. Go to your main Zap, open the Webhooks POST step, and copy the **Job Id** from its test results. Then paste both values below and click **Send test request**:
Go back to Zapier. It should pick up the request and show the four fields: `job_url`, `attempt_number`, `channel`, and `message-ts`. Once the request appears, select the record and click **Continue with selected record**. ![]()
Add a step: **Webhooks by Zapier** → **GET**. | Field | Value | | ----------------------- | -------------------------------------------- | | **URL** | Map `job_url` from the Catch Hook trigger | | **Send As JSON** | `Yes` | | **Unflatten** | `Yes` | | **Query String Params** | Key: `wait` / Value: `30` | | **Headers** | Key: `Authorization` / Value: `YOUR_API_KEY` | The `wait` parameter makes this GET long-poll the job for up to 30 seconds, so each attempt gives GC AI real processing time before the path branches. It also paces the recursion: there's no need for a separate Delay step, since every loop spends up to 30 seconds here before deciding whether to try again. ![]()
Add a step: **Paths by Zapier** with three paths. **Path A: Job succeeded** | Field | Value | | ------------- | ----------------------------------------------- | | **Condition** | `Status` (from the GET step) equals `succeeded` | Add a **Slack** → **Edit Message** step (the first option): | Field | Value | | ------------------- | -------------------------------------------- | | **Conversation ID** | Map `channel` from the Catch Hook trigger | | **Message TS (ID)** | Map `message-ts` from the Catch Hook trigger | | **Message Content** | Map **Result Result** from the GET step | | **Content Type** | `Markdown` |
**Path B: Max attempts reached** Without this path, a job that never completes would recurse forever. This is the safety valve: after 4 attempts, stop and tell the user. | Field | Value | | --------------- | ------------------------------------------------------------------------------ | | **Condition 1** | `Status` (from the GET step) does not equal `succeeded` | | **Condition 2** | `Attempt Number` (from the Catch Hook trigger) is greater than or equal to `4` |
Add a **Slack** → **Edit Message** step (the first option): | Field | Value | | ------------------- | ---------------------------------------------------------------------------------------- | | **Conversation ID** | Map `channel` from the Catch Hook trigger | | **Message TS (ID)** | Map `message-ts` from the Catch Hook trigger | | **Message Content** | `Sorry, this request is taking too long to process. Please try again in GC AI directly.` | | **Content Type** | `Markdown` |
**Path C: Try again (recurse)** | Field | Value | | --------------- | --------------------------------------------------------------- | | **Condition 1** | `Status` (from the GET step) does not equal `succeeded` | | **Condition 2** | `Attempt Number` (from the Catch Hook trigger) is less than `4` |
First, add a **Formatter by Zapier** → **Numbers** step: | Field | Value | | ------------- | -------------------------------------------------------- | | **Transform** | `Perform Math Operation` | | **Operation** | `Add` | | **Values** | `1` and map `attempt_number` from the Catch Hook trigger |
Then add a **Webhooks by Zapier** → **GET** step that calls the sub-Zap's own webhook URL: | Field | Value | | ----------------------- | ------------------------------------------------------------ | | **URL** | Your sub-Zap's Catch Hook URL (the one from Step 1) | | **Query String Params** | `job_url`: map from Catch Hook trigger | | | `attempt_number`: map the **Output** from the Formatter step | | | `channel`: map from Catch Hook trigger | | | `message-ts`: map from Catch Hook trigger |
![]()
Now when a classification times out, the main Zap updates the message to say it's still working and kicks off the polling sub-Zap. The sub-Zap polls (up to 4 times) and updates the same message with the result when it's ready.
## Customizing the prompt The classification prompt in Step 4 is fully customizable. Here are some ideas: * **Add your team's categories**: replace the generic list with your actual practice areas * **Include routing rules**: tell the model which attorney or team handles which category * **Reference your playbooks by name**: if you know your GC AI playbooks, list them in the prompt so the model suggests a specific one * **Change the output format**: ask for a numbered priority score, a deadline estimate, or a link to the relevant GC AI playbook page ## Going further
# Triage & Route Source: https://docs.gc.ai/api-reference/examples/triage-and-route Classify legal requests, pick the right playbook, and run a full review automatically. Upload attachments from Slack to GC AI using the [file upload endpoint](/api-reference/upload-file), wait for processing, then include the file in the classification prompt via `file_ids`. Reuse the polling sub-Zap pattern to wait for file processing. After classification, use the [run playbook endpoint](/api-reference/run-playbook) to execute a full playbook review against the attached document. Post the check results back to Slack. Add a lookup table in Zapier that maps categories to Slack users. After classification, `@mention` the right attorney in the thread reply so they know to pick it up. Add a Google Sheets step to log every triage (timestamp, requester, category, risk, urgency) for reporting and SLA tracking. **Developer tutorial.** Requires Node.js, React, TypeScript, and command-line experience. Classify incoming legal requests by type and risk, pick the right playbook from your account, and run a full review against the attached document. Two AI calls, one app.## What you'll build A two-panel webapp where a user describes a legal request, attaches a contract, and clicks "Triage Request." The app classifies the request (category, risk level, routing lane), selects the most relevant playbook from the user's GC AI account, and runs that playbook against the document. The left panel shows the classification. The right panel shows every playbook check with pass/flag results and suggested revisions. ## API endpoints | Method | Endpoint | What it does | | ------ | --------------------------------------------------------------- | ------------------------------------------------------------- | | `GET` | [`/v1/folders`](/api-reference/list-folders) | Validates the API key on paste | | `GET` | [`/v1/playbooks`](/api-reference/list-playbooks) | Fetches available playbooks from the user's account | | `POST` | [`/v1/chat/completions`](/api-reference/create-chat-completion) | Classifies the request and picks a playbook (async, `wait=0`) | | `GET` | [`/v1/jobs/:id`](/api-reference/get-async-job) | Polls until the classification or playbook run finishes | | `POST` | [`/v1/files`](/api-reference/upload-file) | Uploads the attached document | | `GET` | [`/v1/files/:id`](/api-reference/get-file-status) | Polls until the file is processed | | `POST` | [`/v1/playbooks/:id/run`](/api-reference/run-playbook) | Runs the selected playbook against the document | Want to skip ahead? [Try the live demo](https://api-demo-triage.replit.app/) or [view the source on GitHub](https://github.com/GC-AI-Inc/api-demo-triage). ## Prerequisites * A [GC AI API key](/api-reference/introduction#authentication) (get one from **Settings > API** in the app) * At least one completed playbook in your GC AI account * [Node.js](https://nodejs.org/) 18+ ## Build the app
## Try it and explore the source Create a new Vite + React + TypeScript project and install Tailwind CSS: ```bash theme={null} npm create vite@latest api-demo-triage -- --template react-ts cd api-demo-triage npm install tailwindcss @tailwindcss/vite npm install ``` Open `vite.config.ts` and add the Tailwind plugin plus an API proxy for development: ```typescript vite.config.ts theme={null} import { defineConfig } from "vite"; import react from "@vitejs/plugin-react"; import tailwindcss from "@tailwindcss/vite"; export default defineConfig({ plugins: [react(), tailwindcss()], server: { proxy: { "/api": { target: "https://app.gc.ai", changeOrigin: true, }, }, }, }); ``` The proxy forwards `/api` requests to GC AI during development so you don't hit CORS issues from `localhost`. Clear out the starter code and set up the theme: ```bash theme={null} rm src/App.css src/assets -rf ``` Replace `src/index.css` with the Tailwind import and a color theme that covers classification badges, routing lanes, and check statuses: ```css src/index.css theme={null} @import "tailwindcss"; @theme { --color-surface: #f5f6f8; --color-card: #ffffff; --color-border: #e2e5ea; --color-border-light: #eef0f3; --color-ink: #1a2332; --color-ink-secondary: #4b5563; --color-ink-muted: #8b95a5; --color-accent: #2563eb; --color-success: #16a34a; --color-error: #dc2626; --color-error-bg: #fef2f2; --color-risk-high: #dc2626; --color-risk-high-bg: #fef2f2; --color-risk-medium: #d97706; --color-risk-medium-bg: #fffbeb; --color-risk-low: #0891b2; --color-risk-low-bg: #ecfeff; --color-route-auto: #16a34a; --color-route-auto-bg: #f0fdf4; --color-route-junior: #2563eb; --color-route-junior-bg: #eff6ff; --color-route-senior: #d97706; --color-route-senior-bg: #fffbeb; --color-route-out: #6b7280; --color-route-out-bg: #f9fafb; --color-check-pass: #16a34a; --color-check-pass-bg: #f0fdf4; --color-check-flagged: #d97706; --color-check-flagged-bg: #fffbeb; } ``` Create two empty files. These are the only two source files we'll write: ```bash theme={null} echo '' > src/api.ts echo 'export default function App() { return hello}' > src/App.tsx ``` Run `npm run dev` to confirm the scaffold works before we start building.The API client goes in `src/api.ts`. It wraps the GC AI endpoints into five functions: `validateApiKey`, `listPlaybooks`, `uploadFile`, `classifyRequest`, and `runPlaybook`. Start with the types. This demo has two main shapes: `Classification` (from the AI) and `PlaybookRunResult` (from the playbook API): ```typescript src/api.ts theme={null} export interface Playbook { id: string; title: string; description: string | null; } export interface Classification { category: | "nda" | "vendor-agreement" | "employment" | "ip-licensing" | "corporate" | "regulatory"; risk: "high" | "medium" | "low"; route: | "auto-handled" | "junior-counsel" | "senior-counsel" | "routed-out"; rationale: string; suggestedReply: string; playbookId: string; playbookRationale: string; } export interface CheckResult { checkId: string; checkTitle: string; evaluationResult: "Pass" | "Flag" | "Fallback" | "Error"; analysis?: string; revisions?: Array<{ paragraphId: string; revisedText: string; revisionTitle: string; }>; } export interface PlaybookRunResult { playbookTitle: string; totalChecks: number; results: CheckResult[]; summary: { flags: number; fallbacks: number; passes: number; errors: number; }; } interface FileResponse { id: string; name: string; status: "pending" | "processing" | "ready" | "failed"; } interface JobResponse { job_id: string; kind: string; status: "pending" | "running" | "succeeded" | "failed" | "canceled"; result: T | null; error: { code: string; message: string } | null; created_at: string; completed_at: string | null; } interface ChatResult { result: string; chat_id: string; } ``` Next, a small helper that attaches the API key to every request and throws on non-2xx responses: ```typescript src/api.ts theme={null} const API_BASE = "/api/external/v1"; async function apiRequest( apiKey: string, path: string, options: RequestInit = {}, ): Promise { const res = await fetch(`${API_BASE}${path}`, { ...options, headers: { Authorization: apiKey, ...options.headers, }, }); if (!res.ok) { const body = await res.json().catch(() => ({})); throw new Error( (body as { error?: string }).error ?? `API error ${res.status}: ${res.statusText}`, ); } return res; } ``` **Key validation and playbook listing.** `validateApiKey` checks the key with a lightweight folders call. `listPlaybooks` fetches all completed playbooks from the user's account: ```typescript src/api.ts theme={null} export async function validateApiKey(apiKey: string): Promise { try { const res = await fetch(`${API_BASE}/folders?limit=1`, { headers: { Authorization: apiKey }, }); return res.ok; } catch { return false; } } export async function listPlaybooks( apiKey: string, ): Promise { const res = await apiRequest(apiKey, "/playbooks?limit=500"); const data: { playbooks: Array<{ id: string; title: string; description: string | null; status: string; }>; } = await res.json(); return data.playbooks .filter((p) => p.status === "completed") .map((p) => ({ id: p.id, title: p.title, description: p.description })); } ``` **File upload.** Same pattern as the heatmap demo: post the file, then poll until it's ready: ```typescript src/api.ts theme={null} export async function uploadFile( apiKey: string, file: File, ): Promise { const form = new FormData(); form.append("file", file); const res = await fetch(`${API_BASE}/files`, { method: "POST", headers: { Authorization: apiKey }, body: form, }); if (!res.ok) { const body = await res.json().catch(() => ({})); throw new Error( (body as { error?: string }).error ?? `Upload failed: ${res.status} ${res.statusText}`, ); } const uploaded: FileResponse = await res.json(); return waitForFile(apiKey, uploaded.id); } async function waitForFile( apiKey: string, fileId: string, ): Promise { for (let i = 0; i < 60; i++) { const res = await apiRequest(apiKey, `/files/${fileId}`); const file: FileResponse = await res.json(); if (file.status === "ready") return file; if (file.status === "failed") throw new Error("File processing failed"); await new Promise((r) => setTimeout(r, 2000)); } throw new Error("Timed out waiting for file processing"); } ``` **Request classification.** This is the first novel piece. The prompt includes the list of playbooks so the model can pick the best match. It returns category, risk, routing lane, and the selected playbook ID: ```typescript src/api.ts theme={null} function buildClassifyPrompt(playbooks: Playbook[]): string { const playbookList = playbooks .map((p) => ` - ID: "${p.id}" | Title: "${p.title}"`) .join("\n"); return `You are a legal intake triage system. Classify this incoming legal request, then select the most relevant playbook to run against the attached document. Return a JSON object with exactly these fields: - "category": one of "nda", "vendor-agreement", "employment", "ip-licensing", "corporate", "regulatory" - "risk": "high", "medium", or "low" - "route": one of "auto-handled" (routine, low-risk items), "junior-counsel" (standard matters), "senior-counsel" (high-risk or high-value), "routed-out" (not a legal matter, forward elsewhere) - "rationale": one sentence explaining your classification and routing decision - "suggestedReply": a brief, professional reply to the requester acknowledging receipt and outlining next steps - "playbookId": the ID of the most relevant playbook from the list below, or "" if none match - "playbookRationale": one sentence explaining why this playbook was selected Available playbooks: ${playbookList} Return ONLY the JSON object, no other text.`; } export async function classifyRequest( apiKey: string, requestText: string, playbooks: Playbook[], ): Promise { const prompt = buildClassifyPrompt(playbooks); const res = await apiRequest(apiKey, "/chat/completions?wait=0", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ message: `${prompt}\n\nRequest:\n${requestText}`, }), }); const job: JobResponse = await res.json(); if (job.status === "failed") { throw new Error(job.error?.message ?? "Classification failed"); } return waitForClassification(apiKey, job.job_id); } async function waitForClassification( apiKey: string, jobId: string, ): Promise { for (let i = 0; i < 90; i++) { await new Promise((r) => setTimeout(r, 2000)); const res = await apiRequest(apiKey, `/jobs/${jobId}`); const job: JobResponse = await res.json(); if (job.status === "succeeded" && job.result) { return parseClassification(job.result.result); } if (job.status === "failed") { throw new Error(job.error?.message ?? "Classification failed"); } } throw new Error("Timed out waiting for classification"); } function parseClassification(text: string): Classification { const jsonMatch = text.match(/\{[\s\S]*\}/); if (!jsonMatch) throw new Error("Could not parse classification response"); return JSON.parse(jsonMatch[0]); } ``` **Playbook run.** The second novel piece. Instead of crafting our own review prompt, we call the real playbook API. It runs every check the playbook defines and returns structured results: ```typescript src/api.ts theme={null} export async function runPlaybook( apiKey: string, playbookId: string, fileIds: string[], ): Promise { const res = await apiRequest(apiKey, `/playbooks/${playbookId}/run?wait=0`, { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ file_ids: fileIds }), }); const job: JobResponse = await res.json(); if (job.status === "failed") { throw new Error(job.error?.message ?? "Playbook run failed"); } if (job.status === "succeeded" && job.result) { return job.result; } return waitForPlaybook(apiKey, job.job_id); } async function waitForPlaybook( apiKey: string, jobId: string, ): Promise { for (let i = 0; i < 120; i++) { await new Promise((r) => setTimeout(r, 3000)); const res = await apiRequest(apiKey, `/jobs/${jobId}`); const job: JobResponse = await res.json(); if (job.status === "succeeded" && job.result) { return job.result; } if (job.status === "failed") { throw new Error(job.error?.message ?? "Playbook run failed"); } } throw new Error("Timed out waiting for playbook run"); } ``` That's the whole API layer. Five exported functions: `validateApiKey`, `listPlaybooks`, `uploadFile`, `classifyRequest`, and `runPlaybook`. The playbook polling uses a 3-second interval and longer timeout since playbook runs with many checks can take a few minutes. Now we start building `src/App.tsx`. This first pass sets up the header with the API key input, loads playbooks once the key validates, and adds the footer. The layout is wider than the heatmap demo (`max-w-5xl` instead of `max-w-3xl`) because we'll use a two-column layout for results. ```tsx src/App.tsx theme={null} import { useCallback, useEffect, useState } from "react"; import { validateApiKey, listPlaybooks, uploadFile, classifyRequest, runPlaybook, } from "./api"; import type { Playbook, Classification, CheckResult, PlaybookRunResult, } from "./api"; function App() { const [apiKey, setApiKey] = useState( () => localStorage.getItem("gcai_api_key") ?? "", ); const [keyValid, setKeyValid] = useState (null); const [keyChecking, setKeyChecking] = useState(false); const [playbooks, setPlaybooks] = useState ([]); const checkKey = useCallback(async (key: string) => { if (!key.trim()) { setKeyValid(null); return; } setKeyChecking(true); const valid = await validateApiKey(key.trim()); setKeyValid(valid); setKeyChecking(false); if (valid) { localStorage.setItem("gcai_api_key", key.trim()); listPlaybooks(key.trim()).then(setPlaybooks).catch(() => {}); } }, []); useEffect(() => { if (apiKey) checkKey(apiKey); }, []); function handleKeyChange(e: React.ChangeEvent ) { setApiKey(e.target.value); setKeyValid(null); } return ( ); } export default App; ``` When the key validates, `listPlaybooks` runs in the background. The playbooks are stored in state so the classification prompt can include them later. You won't see them in the UI yet.Triage & Route
{/* We'll fill this in over the next steps */} ![]()
Add a `RequestForm` component above the `App` function. It has a text area for describing the request and an optional file upload: ```tsx src/App.tsx (above App) theme={null} function RequestForm({ onSubmit, disabled, }: { onSubmit: (requestText: string, file?: File) => void; disabled: boolean; }) { const [text, setText] = useState(""); const [file, setFile] = useState (null); const [dragOver, setDragOver] = useState(false); function handleSubmit(e: React.FormEvent) { e.preventDefault(); if (!text.trim()) return; onSubmit(text.trim(), file ?? undefined); } const handleDrop = useCallback((e: React.DragEvent) => { e.preventDefault(); setDragOver(false); const dropped = e.dataTransfer.files[0]; if (dropped) setFile(dropped); }, []); return ( ); } ``` Also add a `RequestSummary` component that displays the submitted request after the form is replaced: ```tsx src/App.tsx (above App) theme={null} interface RequestContext { requestText: string; fileName?: string; } function RequestSummary({ request, onReset, }: { request: RequestContext; onReset: () => void; }) { return ( ); } ```{request.requestText}
{request.fileName && ({request.fileName})}![]()
Add the classification panel that displays on the left side of the results. It shows the category, risk level, routing lane, the selected playbook, and a suggested reply: ```tsx src/App.tsx (above App) theme={null} const riskStyles = { high: { badge: "bg-risk-high-bg text-risk-high", label: "High Risk" }, medium: { badge: "bg-risk-medium-bg text-risk-medium", label: "Medium Risk" }, low: { badge: "bg-risk-low-bg text-risk-low", label: "Low Risk" }, }; const routeStyles: Record = { "auto-handled": { badge: "bg-route-auto-bg text-route-auto", label: "Auto-Handled" }, "junior-counsel": { badge: "bg-route-junior-bg text-route-junior", label: "Junior Counsel" }, "senior-counsel": { badge: "bg-route-senior-bg text-route-senior", label: "Senior Counsel" }, "routed-out": { badge: "bg-route-out-bg text-route-out", label: "Routed Out" }, }; const categoryLabels: Record = { nda: "NDA", "vendor-agreement": "Vendor Agreement", employment: "Employment", "ip-licensing": "IP & Licensing", corporate: "Corporate", regulatory: "Regulatory", }; function ClassificationPanel({ classification, selectedPlaybook, }: { classification: Classification; selectedPlaybook?: Playbook; }) { const risk = riskStyles[classification.risk]; const route = routeStyles[classification.route]; return ( <> Classification
{categoryLabels[classification.category]} {risk.label}> ); } ``` The category and risk badges sit in the panel's header bar. The routing lane, rationale, selected playbook, and suggested reply fill the body. The "Selected playbook" block has a distinct accent-colored border so it stands out as the routing decision.→ {route.label}{classification.rationale}
{selectedPlaybook && ()}Selected playbook
{selectedPlaybook.title}
{classification.playbookRationale && ({classification.playbookRationale}
)}Suggested reply
{classification.suggestedReply}
Add the playbook panel that displays on the right side. Each check is collapsible, showing just the title and Pass/Flag badge until clicked. The analysis text is cleaned to strip internal citation tags: ```tsx src/App.tsx (above App) theme={null} function cleanText(text: string): string { return text .replace(/]*\/>/g, "") .replace(/\*\*/g, "") .trim(); } function CheckCard({ check }: { check: CheckResult }) { const [expanded, setExpanded] = useState(false); const passed = check.evaluationResult === "Pass"; const flagged = check.evaluationResult === "Flag" || check.evaluationResult === "Fallback"; const hasDetails = (check.analysis && check.analysis.trim().length > 0) || (check.revisions && check.revisions.length > 0); return ( {expanded && (); } function PlaybookPanel({ result }: { result: PlaybookRunResult }) { return ( <>{check.analysis && ()}{cleanText(check.analysis)}
)} {check.revisions?.map((rev, i) => (→ {rev.revisionTitle}
))}{result.playbookTitle}
{result.summary.flags > 0 && ( {result.summary.flags} Flagged )} {result.summary.passes > 0 && ( {result.summary.passes} Pass )} {result.summary.fallbacks > 0 && ( {result.summary.fallbacks} Fallback )}{result.results.map((check) => (> ); } ``` `cleanText` strips `` tags and `**` bold markers that the playbook system uses internally for citations and emphasis. These are useful in the product UI but would look like raw markup in our demo.))} The last piece is the state machine and the three-section layout that brings everything together. Define the status type above the `App` function: ```tsx src/App.tsx (above App) theme={null} type Status = | { step: "idle" } | { step: "classifying"; request: RequestContext } | { step: "uploading"; request: RequestContext; classification: Classification; file: File } | { step: "reviewing"; request: RequestContext; classification: Classification } | { step: "done"; request: RequestContext; classification: Classification; playbookResult?: PlaybookRunResult } | { step: "error"; message: string }; ``` Each step carries everything the UI needs. The `request` context travels through every state so the summary bar always has it. The `classification` appears once classification finishes and stays visible through upload and review. Add the state, handler, and derived values inside `App`: ```tsx theme={null} const [status, setStatus] = useState ({ step: "idle" }); const selectedPlaybook = status.step !== "idle" && status.step !== "error" && status.step !== "classifying" ? playbooks.find( (p) => p.id === (status as { classification: Classification }).classification.playbookId, ) : undefined; async function handleSubmit(requestText: string, file?: File) { const key = apiKey.trim(); const request: RequestContext = { requestText, fileName: file?.name }; try { setStatus({ step: "classifying", request }); const classification = await classifyRequest(key, requestText, playbooks); if (!file || !classification.playbookId) { setStatus({ step: "done", request, classification }); return; } setStatus({ step: "uploading", request, classification, file }); const uploaded = await uploadFile(key, file); setStatus({ step: "reviewing", request, classification }); const playbookResult = await runPlaybook(key, classification.playbookId, [uploaded.id]); setStatus({ step: "done", request, classification, playbookResult }); } catch (err) { setStatus({ step: "error", message: err instanceof Error ? err.message : "Something went wrong", }); } } function reset() { setStatus({ step: "idle" }); } const hasClassification = status.step === "uploading" || status.step === "reviewing" || status.step === "done"; const hasRequest = status.step !== "idle" && status.step !== "error"; ``` The handler runs four steps in sequence: classify, upload, run playbook, done. If there's no file or no matching playbook, it short-circuits to done after classification. Finally, fill in the ` ` element. The layout has three sections: the request summary on top, then a two-column grid with classification on the left and playbook results on the right: ```tsx theme={null} {keyValid === false && ( ``` Run `npm run dev`, paste your API key, describe a request like "Our vendor Cloudtop is requiring us to sign their SaaS MSA, contract attached," upload the PDF, and click **Triage Request**. The classification should appear in a few seconds on the left. The playbook results fill in on the right once the review finishes, which can take a few minutes for playbooks with many checks.Invalid API key. Check your key in{" "} Settings → API)} {!keyValid && !keyChecking && status.step === "idle" && ()} {keyValid === true && status.step === "idle" && (Enter your GC AI API key above to get started
Classify legal requests and route them to the right playbook
)} {hasRequest && ( <> {/* Left: Classification */}> )} {status.step === "error" && ({status.step === "classifying" && ({/* Right: Playbook */})} {hasClassification && (Classifying request...
)} {status.step === "classifying" && (Waiting for classification...)} {(status.step === "uploading" || status.step === "reviewing") && ( <>{selectedPlaybook?.title ?? "Playbook Review"}
> )} {status.step === "done" && status.playbookResult && ({status.step === "uploading" ? "Uploading document..." : "Running playbook, this may take a few minutes..."}
)} {status.step === "done" && !status.playbookResult && ( )}{(status as { classification: Classification }).classification.playbookId ? "No document attached, so no playbook was run." : "No matching playbook found for this request type."}
)}{(status as { message: string }).message}![]()
A hosted version. Paste your own GC AI API key to use it. The full project on GitHub. Import it into your own Replit in a few clicks. See [Running on Replit](/api-reference/concepts/running-on-replit). # Get Async Job Status Source: https://docs.gc.ai/api-reference/get-async-job GET /jobs/{id} Poll an async API job created by endpoints like `POST /chat/completions`. Use the `job_id` returned by a `202 Accepted` response to check whether the job is still pending or has reached a terminal state. # Get a Chat Source: https://docs.gc.ai/api-reference/get-chat GET /chats/{id} Retrieve a single chat by ID. Returns metadata only — use `GET /v1/chats/{id}/messages` for the conversation history. # Get a Company Profile Source: https://docs.gc.ai/api-reference/get-company-profile GET /company-profiles/{id} Fetch a single company profile by ID. Returns `404` if the company profile does not exist or is not accessible to the caller. User-scoped keys can only read company profiles they have access to; org-scoped keys can read any company profile in the organization. # Get Credit Usage Source: https://docs.gc.ai/api-reference/get-credit-usage GET /credit-usage Billing view of the organization's credit consumption, broken down by billable operation and by day, with rate-card pricing. Requires an org-scoped API key: credit usage is an organization-level concern. User-scoped keys receive a 403. If rate-card pricing can't be resolved for every observed operation, `pricing_available` is `false` and all credit fields are null; raw request counts are still returned. # Get the Company Profile Source: https://docs.gc.ai/api-reference/get-default-company-profile GET /company-profile Retrieve the organization's company profile: the company context (industry, jurisdiction, regulations, risk posture) the AI uses to ground answers. Readable with either a user-scoped or org-scoped key. With a user-scoped key, the user's active (default) company is returned when one is set; otherwise the organization's sole company is returned. An organization with multiple companies and no applicable default returns 409. # Get File Status Source: https://docs.gc.ai/api-reference/get-file-status GET /files/{id} Retrieve the current status and metadata of an uploaded file. Use this to poll for extraction completion after uploading a file. # Get a Folder Source: https://docs.gc.ai/api-reference/get-folder GET /folders/{id} Retrieve a single folder by ID. # Identify the Caller Source: https://docs.gc.ai/api-reference/get-me GET /me Return the identity behind the API key making the request: the organization it belongs to, and, for user-scoped keys, the user it acts as. Works with **either** a user-scoped key (`u:gcai_...`) or an org-scoped key (`gcai_...`). Org-scoped keys carry no user identity, so `user` is `null` for them. Use this to confirm which credential and account a request resolves to before calling `/me/profile` or `/company-profile`. # Get Your Personal Profile Source: https://docs.gc.ai/api-reference/get-my-profile GET /me/profile Retrieve the calling user's personal profile: the chat-context fields the web UI exposes under Settings → Profile. A profile that has never been saved is returned with default values. Display name and avatar are managed by your identity provider, not this API, so they are not included. Requires a **user-scoped** key (`u:gcai_...`); org-scoped keys carry no user identity and receive 403. # Get a Playbook Source: https://docs.gc.ai/api-reference/get-playbook GET /playbooks/{id} Retrieve a single playbook by ID, including its `guide` text. User-scoped keys can read playbooks they created, playbooks shared with them, org-visible playbooks, and official playbooks. Org-scoped keys can read org-visible and official playbooks, but not private ones. # Get a Check Source: https://docs.gc.ai/api-reference/get-playbook-check GET /playbooks/{id}/checks/{checkId} Retrieve a single check in a playbook by ID. Readable by any caller who can read the playbook. # Get a Project Source: https://docs.gc.ai/api-reference/get-project GET /projects/{id} Retrieve a single project by ID. Returns the caller's access level alongside the project metadata. # Get a Skill Source: https://docs.gc.ai/api-reference/get-skill GET /skills/{id} Fetch a single skill by ID, including its instructions and attached files. Returns `404` if the skill does not exist or is not accessible to the caller. User-scoped keys require Skills access, including for official skills. User skills follow the same visibility rules as `GET /skills`. # Get Usage Summary Source: https://docs.gc.ai/api-reference/get-usage GET /usage Organization-wide product-usage summary by channel: `web` (web app), `word` (Word add-in), and `api`. Requires an org-scoped API key: usage is reported org-wide, so a user-scoped key receives a 403. For credit/billing totals, use `GET /v1/credit-usage`. Note: web/word counts are sourced from product analytics; day boundaries for those channels are approximate (UTC). # Initiate a Chunked Upload Source: https://docs.gc.ai/api-reference/initiate-upload POST /files/uploads Start a multipart upload session for a large file. Validates the file type, size, and destination up front, then returns an `upload_id`. Send the file in parts with `PUT /files/uploads/{upload_id}/parts/{part_number}`, then finalize with `POST /files/uploads/{upload_id}/complete`. Use this instead of `POST /files` when a single request is impractical (large files, or clients with per-request payload limits). The destination options (`folder_id` / `project_id` / `scope`) behave exactly as on `POST /files`. # API Introduction Source: https://docs.gc.ai/api-reference/introduction Programmatic access to GC AI for workflow automation ## Overview The GC AI External API allows you to integrate GC AI's legal AI capabilities into your workflows and applications. Perfect for: * **Workflow automation** with tools like Zapier, Make, or n8n * **Custom integrations** in your internal tools * **Batch processing** of legal questions * **Chatbots and assistants** powered by legal AI This is programmatic access with API keys. For connecting your own email, Slack, Drive, and other apps inside GC AI chat (with per-user OAuth and approval controls), see **[Agent Connectors](/guides/organizations/agent-connectors)**. ## Multi-turn Conversations Conversations can span multiple turns. Pass the `chat_id` returned by a completion back on your next request to continue the same chat — see [Multi-turn Conversations](/api-reference/concepts/multi-turn). ## Current Limitations * **Interactive clarification** is not yet available: the model can't pause mid-completion to ask you a follow-up question. ## Base URL All API requests should be made to: ``` https://app.gc.ai/api/external/v1 ``` ## Authentication All requests require an API key in the `Authorization` header: ```bash theme={null} Authorization: gcai_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ```GC AI supports two scopes: **organization** and **personal**. Learn [which to use and how to govern them](/api-reference/concepts/api-keys). ### Getting an API Key Which scope you create depends on whether the integration belongs to the company or to a person (see [API Keys](/api-reference/concepts/api-keys)). **For a company-owned integration (organization key):** an org admin opens **Settings → API → Organization API Keys** and clicks **+ Create API Key**. This needs no org-wide policy change. **For an individual's own access (personal key):** 1. An org admin opens **Settings → API** and enables **Allow team to create personal API keys** (User API Keys Policy). 2. Each user opens **Settings → API → Personal API Keys** and clicks **+ Create API Key**. Either way, copy and securely store the key. It is only shown once.Keep your API key secure. Anyone with your API key can make requests on behalf of your organization. ## Quick Start Here's a simple example using curl: ```bash theme={null} curl -X POST https://app.gc.ai/api/external/v1/chat/completions \ -H "Authorization: gcai_your_api_key_here" \ -H "Content-Type: application/json" \ -d '{ "message": "What are the key terms to look for in a software license agreement?", "file_ids": ["123e4567-e89b-12d3-a456-426614174000"] }' ``` Response: ```json theme={null} { "job_id": "123e4567-e89b-12d3-a456-426614174000", "kind": "chat/completions", "status": "succeeded", "result": { "result": "When reviewing a software license agreement, key terms to examine include:\n\n1. **License Grant** - Understand the scope of rights granted...", "chat_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890" }, "error": null, "created_at": "2026-04-30T20:00:00.000Z", "completed_at": "2026-04-30T20:00:02.000Z" } ``` ## Usage Usage is tracked and viewable in the GC AI app under **Settings → API → View Usage**. The API is free to test. ### Rate Limits The API is rate-limited in two tiers: **inference** endpoints (chat completions, playbook runs) are capped at 60 requests per minute per organization (20 per API key), and **all other** endpoints at 600 requests per minute per organization (120 per API key). Exceeding a limit returns `429 Too Many Requests` with a `Retry-After` header. See [Rate Limits](/api-reference/concepts/rate-limits) for the full breakdown. ## Support For API support, reach out to your account representative. # List Messages in a Chat Source: https://docs.gc.ai/api-reference/list-chat-messages GET /chats/{id}/messages Retrieve the message history of a chat with pagination. Returns all messages including branched versions — use `parent_id` to reconstruct the conversation tree. # List Chats Source: https://docs.gc.ai/api-reference/list-chats GET /chats List chats visible to the calling token with pagination. - **Org-scoped tokens**: list chats that are visible to the whole organization. This includes chats that are not access-controlled and chats in an org-visible (non-access-controlled) project. Access-controlled chats stay private to their users. - **User-scoped tokens**: list chats the user can access (created, shared, or non-access-controlled). # List Company Profiles Source: https://docs.gc.ai/api-reference/list-company-profiles GET /company-profiles List the company profiles in the organization: the company contexts (industry, jurisdiction, regulations, risk posture) the AI can use to ground answers. With a user-scoped key, only the company profiles the user can read are returned. With an org-scoped key, all of the organization's company profiles are returned. This is the multi-profile counterpart to the singular `/company-profile`, and the way to discover the `id` a company profile is addressed by elsewhere in the API. # List a Folder's Children Source: https://docs.gc.ai/api-reference/list-folder-children GET /folders/{id}/children List the direct children of a folder. The response items are a discriminated union of subfolders and files: subfolders are returned first (alphabetical), then files (alphabetical). # List Folders Source: https://docs.gc.ai/api-reference/list-folders GET /folders List all folders accessible to the authenticated user, returned as a flat list with full paths. Pass `scope` to filter to one of the three top-level meta-collections shown in the GC AI UI: - `my-files`: folders rooted in the user's personal "My Files" tree - `shared-with-me`: folders explicitly shared with the user by other users - `organization`: folders rooted in the organization's "Organization Files" tree Filtering by `scope` requires a user-scoped API key (`u:gcai_...`). # List a Playbook's Checks Source: https://docs.gc.ai/api-reference/list-playbook-checks GET /playbooks/{id}/checks List the checks in a playbook, in their configured order. Readable by any caller who can read the playbook. # List Playbooks Source: https://docs.gc.ai/api-reference/list-playbooks GET /playbooks List playbooks accessible to the caller. With a user-scoped key, returns playbooks the user created, org-visible playbooks, shared playbooks, and official playbooks. With an org-scoped key, returns org-visible and official playbooks. # List Chats in a Project Source: https://docs.gc.ai/api-reference/list-project-chats GET /projects/{id}/chats List chats associated with a project. Returns chat metadata only. Per-chat message retrieval is not exposed via the API. # List Files on a Project Source: https://docs.gc.ai/api-reference/list-project-files GET /projects/{id}/files List files directly linked to a project. Files reachable only via a linked folder are not included; list those folders separately with `GET /projects/{id}/folders`. # List Folders Linked to a Project Source: https://docs.gc.ai/api-reference/list-project-folders GET /projects/{id}/folders List folders linked to a project. To enumerate the contents of a folder, call `GET /folders/{id}/children`. # List Projects Source: https://docs.gc.ai/api-reference/list-projects GET /projects List projects accessible to the caller, optionally filtered by name. With a user-scoped key (`u:gcai_...`), the user sees projects they created, projects shared with them, and non-access-controlled projects. With an org-scoped key (`gcai_...`), only non-access-controlled (org-wide) projects are returned. # List Skills Source: https://docs.gc.ai/api-reference/list-skills GET /skills List skills accessible to the caller. Returns id, name, description, visibility, files, and timestamps. Instruction bodies are omitted; fetch a skill by id to load `content`. With a user-scoped key that has Skills access, returns skills the user created, org-visible skills, skills explicitly shared with the user, and official skills. With an org-scoped key, returns org-visible skills and official skills. # Materialize an API Chat Source: https://docs.gc.ai/api-reference/materialize-chat POST /chat/{id}/materialize Surface an API-created chat into chat history and return a shareable deep link. Chats created through `POST /chat/completions` stay out of chat history (both the GC AI web app and [chat search](/api-reference/search-chats)) until you materialize them. Use the `chat_id` from a completed completion response. The endpoint is idempotent. Calling it again on an already-materialized chat returns the same link without side effects. Pass `project_id` to file the chat into a project at the same time, so it is browsable under `GET /projects/{id}/chats`. This requires write access to the project and files a chat that is already materialized. **Authorization:** User-scoped keys can only materialize chats they created. Organization-scoped keys can only materialize chats created by other organization-scoped keys. **Who can use the chat afterwards:** An organization-scoped key shares the chat with the whole organization, and every member can continue it in the web app. A user-scoped key keeps the chat owned by that user, so teammates reach it only through the normal sharing rules. See [Chat Visibility](/api-reference/concepts/chat-visibility) for how this works. # Connecting Source: https://docs.gc.ai/api-reference/mcp/connecting Add the GC AI MCP server to ChatGPT, Claude, Cursor, or any MCP client, and sign in with your GC AI account.The MCP server is in public beta. It is open to use and still being refined, so tools and behavior may change. The GC AI MCP server lives at one endpoint: ``` https://app.gc.ai/api/mcp ``` You do not need an API key. The server authenticates with your GC AI login through a standard OAuth flow: when you add it, your host opens a GC AI sign-in page, you approve access, and the host stores the connection. Every request then runs as you. ## Before you connect Two things need to be true for the connection to work: 1. **You have a GC AI account.** The assistant acts as you, so you sign in with your own credentials. 2. **Your organization has the MCP server turned on.** It is off by default. An org admin turns it on under **Settings**, **API**. If your organization has not turned MCP on yet, you can still add the server and sign in. The tools appear in your host, and calling any of them returns a message telling you to ask your admin. Once the admin turns it on, the same tools start working with no need to reconnect. ## Add the server to your host The steps differ slightly by host, but the shape is the same everywhere: point the host at the endpoint above, then complete the GC AI sign-in when prompted.In a ChatGPT plan that supports connectors, add a new connector using the URL `https://app.gc.ai/api/mcp`. ChatGPT walks you through the GC AI sign-in, then lists the GC AI tools. Enable the ones you want the assistant to use. In Claude, add GC AI from the connectors directory. Approve the GC AI sign-in when Claude opens it, and the tools become available in your conversations. To connect manually instead, add a custom connector pointing at `https://app.gc.ai/api/mcp`. In the Claude sidebar, click **Customize**. ![]()
Under **Customize**, select **Connectors**. ![]()
Click **Add**, then **Browse connectors**. ![]()
Search for **GC AI** and add it. ![]()
Add the server to your MCP configuration with the same URL. Cursor opens the GC AI sign-in on first use, then the tools are available to the agent. ```json theme={null} { "mcpServers": { "gc-ai": { "url": "https://app.gc.ai/api/mcp" } } } ``` Any MCP client that supports remote servers over HTTP with OAuth can connect. Use the endpoint `https://app.gc.ai/api/mcp`; the client discovers the sign-in flow automatically from the server's OAuth metadata. The exact menu labels vary by host and change over time. If you do not see a place to add a remote MCP server or connector, check that your plan supports custom connectors. ## Verify the connection Once connected, ask the assistant to run a quick read, for example: "List my GC AI projects." That calls `get_projects` and confirms the tools are wired up and scoped to your account. From there the assistant can upload files, run playbooks, and ask questions grounded in your files. ## Related * [MCP server overview](/api-reference/mcp/overview): what the server does and how requests are scoped. * [REST API introduction](/api-reference/introduction): for backend integrations and scripts rather than assistants. # MCP Introduction Source: https://docs.gc.ai/api-reference/mcp/overview Connect GC AI to ChatGPT, Claude, Cursor, and other MCP clients so an assistant can work in your files on your behalf.The MCP server is in public beta. It is open to use and still being refined, so tools and behavior may change. The GC AI MCP server lets an AI assistant work directly in your GC AI account. Connect it once in a host like ChatGPT, Claude, or Cursor, and the assistant can search your files, run playbooks, ask legal questions grounded in your files, and organize projects and skills, all as you. [MCP](https://modelcontextprotocol.io) (the Model Context Protocol) is the open standard those hosts use to call external tools. The GC AI server implements it over a single authenticated endpoint, so any MCP-compatible client can use it. If you are building a backend integration or script rather than connecting an assistant, use the [REST API](/api-reference/introduction) instead. The two cover the same ground; MCP is the right fit when an AI agent is the one doing the work. ## What you can do The server exposes 20 tools, grouped by what they touch: * **Ask GC AI.** Ask a legal question or run a task grounded in your files, playbooks, and skills, then save the resulting chat into your history. * **Files.** Upload documents, poll them until they finish processing, and search across everything you can access. * **Projects.** Create and update projects, and attach or detach files to group work around a matter. * **Playbooks.** List, create, and update review playbooks, and run one against uploaded files to get structured check results. * **Skills.** List, create, and update reusable instructions the assistant can apply on demand. Every tool page under this section lists its exact inputs, outputs, and behavior. The [Surface map](/api-reference/mcp/surface-map) shows all 20 tools at a glance; see [Connecting](/api-reference/mcp/connecting) to set the server up in your host. ## How requests are scoped Requests run as you, the signed-in user, not as a shared service account. The assistant sees exactly what you can see in GC AI: your files, the projects and playbooks shared with you, and your organization's open resources. Nothing it does reaches beyond your own access. Usage is billed to your organization, the same as the rest of GC AI. ## Two behaviors worth knowing A few tools work differently from a plain request-and-response call. Good MCP hosts handle both for you, but it helps to know what is happening.## Next steps `ask_gcai` and `run_playbook` can take a while, so they return a job with a `status` and a `job_id` rather than a finished answer. The assistant polls the matching status tool (`ask_gcai_status`, `run_playbook_status`) until the job succeeds and the result is ready. This is expected, and the assistant does it on its own. An uploaded file is stored and then processed (text extraction and embeddings) before it is ready to use. After an upload, the assistant polls `get_files` with the file's `id` until `status` is `ready`. Two upload paths exist: `upload_file` for a file your host has already attached, and `start_file_upload` plus `finish_file_upload` for a file that lives only in the assistant's own sandbox. # Surface map Source: https://docs.gc.ai/api-reference/mcp/surface-map Every MCP tool at a glance, grouped by resource. Add the GC AI server to ChatGPT, Claude, or Cursor. See every tool's inputs, outputs, and behavior. The MCP server is in public beta. It is open to use and still being refined, so tools and behavior may change. Every tool the server exposes, grouped by resource. Behavior follows the MCP annotation hints: read-only, additive, destructive, or open world (reaches beyond GC AI's own data). See [MCP Introduction](/api-reference/mcp/overview) for how the server works.## Ask GC AI | Tool | Behavior | | -------------------------------------------------------------------- | ----------------------- | | [ask\_gcai](/api-reference/mcp/tools/ask-gcai) | Open world | | [ask\_gcai\_status](/api-reference/mcp/tools/ask-gcai-status) | Read-only | | [ask\_gcai\_save\_chat](/api-reference/mcp/tools/ask-gcai-save-chat) | Additive | ## Files | Tool | Behavior | | ------------------------------------------------------------------- | ----------------------- | | [get\_files](/api-reference/mcp/tools/get-files) | Read-only | | [upload\_file](/api-reference/mcp/tools/upload-file) | Open world | | [start\_file\_upload](/api-reference/mcp/tools/start-file-upload) | Additive | | [finish\_file\_upload](/api-reference/mcp/tools/finish-file-upload) | Additive | ## Projects | Tool | Behavior | | --------------------------------------------------------------------- | ------------------------ | | [get\_projects](/api-reference/mcp/tools/get-projects) | Read-only | | [create\_project](/api-reference/mcp/tools/create-project) | Additive | | [update\_project](/api-reference/mcp/tools/update-project) | Destructive | | [attach\_to\_project](/api-reference/mcp/tools/attach-to-project) | Additive | | [detach\_from\_project](/api-reference/mcp/tools/detach-from-project) | Destructive | ## Playbooks | Tool | Behavior | | --------------------------------------------------------------------- | ------------------------ | | [get\_playbooks](/api-reference/mcp/tools/get-playbooks) | Read-only | | [create\_playbook](/api-reference/mcp/tools/create-playbook) | Additive | | [update\_playbook](/api-reference/mcp/tools/update-playbook) | Destructive | | [run\_playbook](/api-reference/mcp/tools/run-playbook) | Additive | | [run\_playbook\_status](/api-reference/mcp/tools/run-playbook-status) | Read-only | ## Skills | Tool | Behavior | | ------------------------------------------------------ | ------------------------ | | [get\_skills](/api-reference/mcp/tools/get-skills) | Read-only | | [create\_skill](/api-reference/mcp/tools/create-skill) | Additive | | [update\_skill](/api-reference/mcp/tools/update-skill) | Destructive |# Create chat completion Source: https://docs.gc.ai/api-reference/mcp/tools/ask-gcai Ask GC AI a legal question or give it a task.The MCP server is in public beta. It is open to use and still being refined, so tools and behavior may change. **Tool** `ask_gcai` · **Behavior** Open world Ask GC AI a legal question or give it a task. Optionally ground it in uploaded files (`file_ids`), playbooks (`playbook_ids`), skills (`skill_ids`), or a Contract Intelligence vault (`vault_id`). Returns a job envelope, not a final answer: while `status` is `pending` or `running`, keep polling `ask_gcai_status` with the returned `job_id` until `status` is `succeeded` (then `result` holds the answer). Pass `chat_id` to continue a prior conversation, sending only the new message (conversation state is kept server-side). ## Input parametersThe user's message or prompt Optional uploaded file IDs to attach as context for this completion. Upload files first via `POST /files`. Optional playbook IDs to ground the completion in (up to 20). The model uses each playbook's checks and guidance to structure its review of the attached files. Discover playbooks via `GET /playbooks`. Org-scoped keys can use org-visible and official playbooks. Deprecated and no longer accepted. Use `playbook_ids` (an array) instead. Requests that include this field are rejected with a 400 so the playbook is never silently dropped. Optional skill IDs to run on the first turn. Each skill's instructions are injected as context for this completion. Discover skills via `GET /skills`. Only valid when starting a new chat; omit them when continuing with `chat_id`. Optional chat ID to continue an existing conversation, from the `chat_id` of a prior completion. Omit to start a new chat. Conversation state is held server-side, so send only your new `message` (plus any new `file_ids`); do **not** re-send prior turns or previously returned documents/emails/diagrams. Only one turn may be in flight per chat at a time. See [Multi-turn Conversations](/api-reference/concepts/multi-turn). Optional project to file the chat into. Requires write access to the project. Discover projects via `GET /projects`. This does two things: it grounds the completion in the project's files, and it files the chat under that project. Filing alone does not make the chat visible to people, because API chats stay out of chat history until they are materialized. Pass `materialize: true` (or call `POST /chat/{id}/materialize` afterwards) for the chat to appear under `GET /projects/{id}/chats` and in the GC AI web app. See [Chat Visibility](/api-reference/concepts/chat-visibility). Surface this chat into chat history as part of the same call, instead of making a second request to `POST /chat/{id}/materialize`. Defaults to `false`, which keeps the chat headless. Set this when a person is meant to open the chat. An organization-scoped key shares the materialized chat with the whole organization, so any member can open it and keep chatting in it. A user-scoped key keeps the chat owned by the caller. On success the response includes `chat_url`. If that field is absent, materialization did not happen and the chat is still headless; retry with `POST /chat/{id}/materialize` using the returned `chat_id`. Continuing an already-materialized chat is a no-op. See [Chat Visibility](/api-reference/concepts/chat-visibility). Optional company profile to ground the completion in, so the model has that company's context (industry, jurisdiction, regulations, risk posture). Discover company profiles via `GET /company-profiles`. The company is fixed for the life of a chat. On a new chat, supply this to target a specific company (the only way to ground against a particular one in a multi-company organization); when omitted, a company is auto-resolved: user-scoped keys use the caller's active (default) company, and org-scoped keys use the organization's sole company, or none when there are several. When continuing a chat with `chat_id`, omit this to reuse the chat's company. You may echo the same `company_id`, but a different one is rejected with `409` (start a new chat to use a different company). Optional Contract Intelligence vault to ground the completion in, so the model can query that vault's documents and fields. Copy the vault ID from the GC AI web app. **Authorization:** User-scoped keys need the Vault Chat permission, Contract Intelligence access, and view access to the vault. Organization-scoped keys need the organization to have Contract Intelligence entitlement; they can attach any vault in the organization because organization keys have no user identity for per-vault access checks. The vault is fixed for the life of a chat. When continuing with `chat_id`, omit this to reuse the chat's vault. You may echo the same `vault_id`, but a different one is rejected with `409` (start a new chat to use a different vault). When also filing into a project (`project_id`) that is linked to a vault, `vault_id` must match that vault. A different one is rejected with `409`; omit `vault_id` to use the project's vault. ## ResponseJob identifier. Pass it to the matching `*_status` tool to poll. `succeeded` means `result` is populated; `running`/`pending` means poll again; `failed`/`canceled` are terminal. Typed result when `status` is `succeeded`; `null` until then. The AI-generated response text The chat ID. API chats stay out of chat history until you materialize them. Pass `materialize: true` on the request to surface the chat in the same call, or pass this ID to `POST /chat/{id}/materialize` afterwards. See [Chat Visibility](/api-reference/concepts/chat-visibility). Deep link that opens the chat in the GC AI web app. Present only when the request set `materialize: true` and the chat was surfaced, so its absence means the chat is still headless. Documents produced during this completion: either edits of an attached file (the document editing tool) or newly generated files (the document or slide generation tools). Present only when at least one document was produced. Each entry exposes a new `file_id` and a signed download URL; edits also reference the preserved original via `original_file_id`. The new uploaded file ID for the produced document. Use it with `POST /chat/completions` `file_ids` to apply further edits to this version. Download via `signed_url` for the finished file. The `file_id` the changes were applied to (edits only). The original file is preserved unchanged. Omitted for newly generated documents. Filename of the produced document (edits are prefixed with `edited_`). Filename of the source file the changes were applied to (edits only). Omitted for newly generated documents. Time-limited direct download URL (no login required). Valid for 7 days from job completion. Download promptly; the URL is not re-minted, so re-fetching the job after expiry returns the same expired URL. For a link you intend to store or email, use `download_url` instead. Permanent, login-gated download link for the produced document. Unlike `signed_url` it never expires: it points at a GC AI web page that mints a fresh download for a signed-in user with access to the file, and redirects to GC AI login otherwise. Use this for links you store or email. The produced document inherits the source document's access, so it opens for whoever can already see the source: a document uploaded to the organization is org-visible, one in a project is visible to that project's members, and one in personal files stays private to the uploader. Recipients still need a GC AI login. Email drafts produced during this completion by the email drafting tool. Present only when at least one email was drafted. Each entry is a structured draft (`to`, `subject`, `body`, …) ready to send via your own mail client or provider. Recipient email address(es), comma-separated. May be an empty string when the prompt named no recipient; fill it in before sending. CC recipient email address(es), comma-separated. BCC recipient email address(es), comma-separated. Email subject line. Always present, inferred from context when the prompt did not specify one. Email body in markdown. Email body with markdown stripped, for plain-text clients. Diagrams produced during this completion by the diagram tool. Present only when at least one diagram was produced. Each entry exposes validated Mermaid source (`mermaid`) you can render with any Mermaid-compatible renderer. A short descriptive title for the diagram. The semantic type of diagram, e.g. orgChart, dealStructure, workflow, timeline, sequence, entityRelationship, or general. The diagram source as validated Mermaid syntax. Render it with any Mermaid-compatible renderer. The exact tool to call to poll this job. Call it yourself with `job_id`; do not ask the user to poll. While `status` is `pending`/`running`, wait this many seconds, then call `status_tool` with `job_id`. `null` once the job is terminal. Plain-language next step. Follow it before responding. # Save chat Source: https://docs.gc.ai/api-reference/mcp/tools/ask-gcai-save-chat Save an `ask_gcai` chat into GC AI history and return a shareable deep link.The MCP server is in public beta. It is open to use and still being refined, so tools and behavior may change. **Tool** `ask_gcai_save_chat` · **Behavior** Additive Save an `ask_gcai` chat into GC AI history and return a shareable deep link. API chats stay out of history until saved. Pass `project_id` to also file the chat into a project you can edit. Idempotent: saving a chat that is already saved (and already in that project) returns the same link with no side effects. ## Input parametersThe `chat_id` of an API chat, from a completed `ask_gcai` result. Optional project to file the chat into. You must have edit access to it. ## ResponseDeep link to open the chat in GC AI. The project the chat is filed under, if any. # Check chat completion status Source: https://docs.gc.ai/api-reference/mcp/tools/ask-gcai-status Poll a chat completion started by `ask_gcai`, using the `job_id` it returned.The MCP server is in public beta. It is open to use and still being refined, so tools and behavior may change. **Tool** `ask_gcai_status` · **Behavior** Read-only Poll a chat completion started by `ask_gcai`, using the `job_id` it returned. While `status` is `running` or `pending`, poll again; when `succeeded`, `result` holds the answer. ## Input parametersThe `job_id` returned by the executor tool. ## ResponseJob identifier. Pass it to the matching `*_status` tool to poll. `succeeded` means `result` is populated; `running`/`pending` means poll again; `failed`/`canceled` are terminal. Typed result when `status` is `succeeded`; `null` until then. The AI-generated response text The chat ID. API chats stay out of chat history until you materialize them. Pass `materialize: true` on the request to surface the chat in the same call, or pass this ID to `POST /chat/{id}/materialize` afterwards. See [Chat Visibility](/api-reference/concepts/chat-visibility). Deep link that opens the chat in the GC AI web app. Present only when the request set `materialize: true` and the chat was surfaced, so its absence means the chat is still headless. Documents produced during this completion: either edits of an attached file (the document editing tool) or newly generated files (the document or slide generation tools). Present only when at least one document was produced. Each entry exposes a new `file_id` and a signed download URL; edits also reference the preserved original via `original_file_id`. The new uploaded file ID for the produced document. Use it with `POST /chat/completions` `file_ids` to apply further edits to this version. Download via `signed_url` for the finished file. The `file_id` the changes were applied to (edits only). The original file is preserved unchanged. Omitted for newly generated documents. Filename of the produced document (edits are prefixed with `edited_`). Filename of the source file the changes were applied to (edits only). Omitted for newly generated documents. Time-limited direct download URL (no login required). Valid for 7 days from job completion. Download promptly; the URL is not re-minted, so re-fetching the job after expiry returns the same expired URL. For a link you intend to store or email, use `download_url` instead. Permanent, login-gated download link for the produced document. Unlike `signed_url` it never expires: it points at a GC AI web page that mints a fresh download for a signed-in user with access to the file, and redirects to GC AI login otherwise. Use this for links you store or email. The produced document inherits the source document's access, so it opens for whoever can already see the source: a document uploaded to the organization is org-visible, one in a project is visible to that project's members, and one in personal files stays private to the uploader. Recipients still need a GC AI login. Email drafts produced during this completion by the email drafting tool. Present only when at least one email was drafted. Each entry is a structured draft (`to`, `subject`, `body`, …) ready to send via your own mail client or provider. Recipient email address(es), comma-separated. May be an empty string when the prompt named no recipient; fill it in before sending. CC recipient email address(es), comma-separated. BCC recipient email address(es), comma-separated. Email subject line. Always present, inferred from context when the prompt did not specify one. Email body in markdown. Email body with markdown stripped, for plain-text clients. Diagrams produced during this completion by the diagram tool. Present only when at least one diagram was produced. Each entry exposes validated Mermaid source (`mermaid`) you can render with any Mermaid-compatible renderer. A short descriptive title for the diagram. The semantic type of diagram, e.g. orgChart, dealStructure, workflow, timeline, sequence, entityRelationship, or general. The diagram source as validated Mermaid syntax. Render it with any Mermaid-compatible renderer. The exact tool to call to poll this job. Call it yourself with `job_id`; do not ask the user to poll. While `status` is `pending`/`running`, wait this many seconds, then call `status_tool` with `job_id`. `null` once the job is terminal. Plain-language next step. Follow it before responding. # Attach files to project Source: https://docs.gc.ai/api-reference/mcp/tools/attach-to-project Link existing files to a project.The MCP server is in public beta. It is open to use and still being refined, so tools and behavior may change. **Tool** `attach_to_project` · **Behavior** Additive Link existing files to a project. Membership is a separate edge, not a field on the project. Idempotent: re-linking a file is a no-op. Files you cannot access are reported in `not_found` and skipped; the rest are linked. ## Input parametersProject to link the files to. You must have edit access. File ids to link to the project (1-50). ## ResponseFiles now linked to the project (includes already-linked). Requested files that were not found or not accessible. # Create playbook Source: https://docs.gc.ai/api-reference/mcp/tools/create-playbook Create a playbook — a reusable set of review checks.The MCP server is in public beta. It is open to use and still being refined, so tools and behavior may change. **Tool** `create_playbook` · **Behavior** Additive Create a playbook — a reusable set of review checks. You own it and it is private to you. Pass `checks` to author them inline, or add them later with `update_playbook`. Returns the playbook and its checks. ## Input parametersPlaybook title (required, non-empty). Optional human-facing description. Optional free-text guidance applied across the whole playbook. Optional checks to create with the playbook (max 100). Each runs as one review criterion. You can also add checks later with `update_playbook`. ## ResponseCheck title (required). Optional internal description. Optional priority within the playbook. The check's positions: exactly one `standard` plus any `fallback`s. `standard` for the primary stance, `fallback` for an alternative. What to require, accept, or flag for this position. # Create project Source: https://docs.gc.ai/api-reference/mcp/tools/create-project Create a project to group files, folders, and chats around a single matter. The MCP server is in public beta. It is open to use and still being refined, so tools and behavior may change. **Tool** `create_project` · **Behavior** Additive Create a project to group files, folders, and chats around a single matter. You are recorded as the creator with admin access. Add files with `attach_to_project`; membership is managed separately, not on this call. ## Input parametersProject name (required, non-empty). Optional project description. Optional custom instructions injected into chats in the project. When true (default), only you and users you grant access can see the project. When false, everyone in your organization can see it. ## Response# Create skill Source: https://docs.gc.ai/api-reference/mcp/tools/create-skill Create a skill — a reusable instruction the model applies on demand. The MCP server is in public beta. It is open to use and still being refined, so tools and behavior may change. **Tool** `create_skill` · **Behavior** Additive Create a skill — a reusable instruction the model applies on demand. You own it and it defaults to private. Attach reference files with `file_ids` (upload them first). Returns the created skill. ## Input parametersSkill name (required, 1-255 chars). The skill instructions — the prompt text the model receives when the skill runs (required, 1-100000 chars). Optional short description of what the skill does (max 1000 chars). Skill visibility. Defaults to `private` (only you and users you share it with). `organization` makes it visible to everyone in your org. Uploaded file ids to attach as reference context (max 50). Upload files first with `upload_file`. ## Response# Detach files from project Source: https://docs.gc.ai/api-reference/mcp/tools/detach-from-project Unlink files from a project. Unique skill identifier Skill name Short description of what the skill does, or null if unset The skill instructions: the prompt text the model receives when the skill runs `private` (only the creator and users it has been explicitly shared with) or `organization` (visible to everyone in the org). Official skills report `organization`. Whether this is an official GC AI skill. Official skills are read-only and cannot be edited or deleted via the API. Files attached to the skill as reference context Attached file identifier Attached file name ISO 8601 creation timestamp ISO 8601 last-updated timestamp The MCP server is in public beta. It is open to use and still being refined, so tools and behavior may change. **Tool** `detach_from_project` · **Behavior** Destructive Unlink files from a project. Membership is a separate edge, not a field on the project. Idempotent at the membership level: detaching a file that is not linked leaves membership unchanged and is safe to retry. This removes the project link only; the file itself is not deleted. ## Input parametersProject to unlink the files from. You must have edit access. File ids to unlink from the project (1-50). ## ResponseFiles unlinked from the project. # Finish file upload Source: https://docs.gc.ai/api-reference/mcp/tools/finish-file-upload Finish an upload started with `start_file_upload`, after you have PUT the file bytes to its `upload_url`.The MCP server is in public beta. It is open to use and still being refined, so tools and behavior may change. **Tool** `finish_file_upload` · **Behavior** Additive Finish an upload started with `start_file_upload`, after you have PUT the file bytes to its `upload_url`. Verifies the uploaded bytes, stores and processes the file (text extraction + embeddings), and returns the file record. Poll readiness with `get_files({ id })` until `status` is "ready" (then use the file) or "failed" (then `extraction_error` explains why). ## Input parametersThe `file_id` returned by `start_file_upload`. ## Response# Get files Source: https://docs.gc.ai/api-reference/mcp/tools/get-files List files. The MCP server is in public beta. It is open to use and still being refined, so tools and behavior may change. **Tool** `get_files` · **Behavior** Read-only List files. Pass `id` to fetch one file (and poll its upload `status`), `q` to search files you can access (optionally narrowed by `scope`), or `project_id` to list a project's files (add `q` to search within them). Always returns a `files` array — empty when nothing matches. Calling with none of `id`, `q`, or `project_id` is an error: there is no full file listing, only lookup, search, and per-project listing. ## Input parametersFetch one file by id. This is also the upload-readiness poll: the returned file carries `status` (`ready` once processing finishes). Cannot be combined with `q` or `project_id`. Search across files you can access, ranked by relevance (max 100 results). Combine with `project_id` to search within one project. Optional search scope filter: "my-files", "shared-with-me", or "organization". Applies to `q` searches only. Restrict to files in this project (e.g. a project holding a set of contracts). Alone, lists the project's files; with `q`, searches within them. Cannot be combined with `id` or `scope`. ## ResponsePlain-language next step for a single-file lookup (ready to use, still processing so poll again, or failed). Absent for searches and multi-file results. # Get playbooks Source: https://docs.gc.ai/api-reference/mcp/tools/get-playbooks List or fetch playbooks.The MCP server is in public beta. It is open to use and still being refined, so tools and behavior may change. **Tool** `get_playbooks` · **Behavior** Read-only List or fetch playbooks. Pass `id` to fetch one playbook including its full `guide` text. Otherwise returns a page of playbooks you can access (those you created, org-visible, shared with you, and official ones); narrow with `q` and page with `cursor`/`limit`. Always returns a `playbooks` array (empty when nothing matches) and a `next_cursor` (null on the last page). ## Input parametersFetch one playbook by id, including its full `guide` text. Provide either `id` or a list query (`q`/`cursor`), not both. Filter the accessible playbooks by a case-insensitive substring of title or description. Omit to list everything accessible. Opaque pagination cursor from a previous response's `next_cursor`. Omit for the first page; repeat any filters (e.g. `q`) alongside it. Max items to return (default 25, max 100). Defaults to `25`. ## Response# Get projects Source: https://docs.gc.ai/api-reference/mcp/tools/get-projects List or fetch projects. The MCP server is in public beta. It is open to use and still being refined, so tools and behavior may change. **Tool** `get_projects` · **Behavior** Read-only List or fetch projects. Pass `id` to fetch one project. Otherwise returns a page of projects you can access (those you created, open projects, and ones shared with you); narrow with `q` and page with `cursor`/`limit`. Always returns a `projects` array (empty when nothing matches) and a `next_cursor` (null on the last page). ## Input parametersFetch one project by id. Provide either `id` or a list query (`q`/`cursor`), not both. Filter the accessible projects by a case-insensitive substring of the project name. Omit to list everything accessible. Opaque pagination cursor from a previous response's `next_cursor`. Omit for the first page; repeat any filters (e.g. `q`) alongside it. Max items to return (default 25, max 100). Defaults to `25`. ## Response# Get skills Source: https://docs.gc.ai/api-reference/mcp/tools/get-skills List or fetch skills. The MCP server is in public beta. It is open to use and still being refined, so tools and behavior may change. **Tool** `get_skills` · **Behavior** Read-only List or fetch skills. Pass `id` to fetch one skill including its full `content`. Otherwise returns a page of skills you can access (those you created, org-visible, shared with you, and official ones) as summaries without `content`; narrow with `q` and page with `cursor`/`limit`. Always returns a `skills` array (empty when nothing matches) and a `next_cursor` (null on the last page). ## Input parametersFetch one skill by id, including its full `content`. Provide either `id` or a list query (`q`/`cursor`), not both. Filter the accessible skills by a case-insensitive substring of name or description. Omit to list everything accessible. Opaque pagination cursor from a previous response's `next_cursor`. Omit for the first page; repeat any filters (e.g. `q`) alongside it. Max items to return (default 25, max 100). Defaults to `25`. ## ResponseUnique skill identifier Skill name Short description of what the skill does, or null if unset The skill instructions: the prompt text the model receives when the skill runs `private` (only the creator and users it has been explicitly shared with) or `organization` (visible to everyone in the org). Official skills report `organization`. Whether this is an official GC AI skill. Official skills are read-only and cannot be edited or deleted via the API. Files attached to the skill as reference context Attached file identifier Attached file name ISO 8601 creation timestamp ISO 8601 last-updated timestamp # Run a playbook against uploaded files Source: https://docs.gc.ai/api-reference/mcp/tools/run-playbook Run a playbook (by `id`) against uploaded files (`file_ids`) and get structured check results. The MCP server is in public beta. It is open to use and still being refined, so tools and behavior may change. **Tool** `run_playbook` · **Behavior** Additive Run a playbook (by `id`) against uploaded files (`file_ids`) and get structured check results. Files must be uploaded and `ready` first; the playbook must be `completed`. Pass `check_ids` to run a subset of checks, or omit to run all. Returns a job envelope, not final results: while `status` is `pending` or `running`, keep polling `run_playbook_status` with the returned `job_id` until `status` is `succeeded` (then `result` holds the check results). ## Input parametersPlaybook ID from `GET /playbooks`. IDs of uploaded files to review. Files must be in `ready` status. At least one file is required. Whose perspective the review takes. `third-party` reviews a counterparty document (default); `first-party` reviews your own. Defaults to `"third-party"`. Name of the party the review represents (default: "our company"). Defaults to `"our company"`. Optional subset of check IDs to evaluate. Omit to run every check in the playbook. Optional company profile to ground the review in, so the checks have that company's context (industry, jurisdiction, regulations, risk posture). Discover company profiles via `GET /company-profiles`. Opt-in: supply this to ground the review against a specific company. When omitted, the review runs with no company profile. This is separate from `representing_party`, which stays free text. ## ResponseJob identifier. Pass it to the matching `*_status` tool to poll. `succeeded` means `result` is populated; `running`/`pending` means poll again; `failed`/`canceled` are terminal. Typed result when `status` is `succeeded`; `null` until then. Evaluation outcome. One of `Pass`, `Flag`, `Fallback`, or `Error`. Position in the document where the matched language was found, or null if not anchored. Redlined documents produced from the review's suggested revisions, applied as tracked changes. Present only when a single DOCX file was reviewed and at least one revision applied. Works with either a user-scoped or an org-scoped key. The original file is preserved; each entry exposes a new `file_id` and a signed download URL. The new uploaded file ID for the produced document. Use it with `POST /chat/completions` `file_ids` to apply further edits to this version. Download via `signed_url` for the finished file. The `file_id` the changes were applied to (edits only). The original file is preserved unchanged. Omitted for newly generated documents. Filename of the produced document (edits are prefixed with `edited_`). Filename of the source file the changes were applied to (edits only). Omitted for newly generated documents. Time-limited direct download URL (no login required). Valid for 7 days from job completion. Download promptly; the URL is not re-minted, so re-fetching the job after expiry returns the same expired URL. For a link you intend to store or email, use `download_url` instead. Permanent, login-gated download link for the produced document. Unlike `signed_url` it never expires: it points at a GC AI web page that mints a fresh download for a signed-in user with access to the file, and redirects to GC AI login otherwise. Use this for links you store or email. The produced document inherits the source document's access, so it opens for whoever can already see the source: a document uploaded to the organization is org-visible, one in a project is visible to that project's members, and one in personal files stays private to the uploader. Recipients still need a GC AI login. The exact tool to call to poll this job. Call it yourself with `job_id`; do not ask the user to poll. While `status` is `pending`/`running`, wait this many seconds, then call `status_tool` with `job_id`. `null` once the job is terminal. Plain-language next step. Follow it before responding. # Check playbook run status Source: https://docs.gc.ai/api-reference/mcp/tools/run-playbook-status Poll a playbook run started by `run_playbook`, using the `job_id` it returned.The MCP server is in public beta. It is open to use and still being refined, so tools and behavior may change. **Tool** `run_playbook_status` · **Behavior** Read-only Poll a playbook run started by `run_playbook`, using the `job_id` it returned. While `status` is `running` or `pending`, poll again; when `succeeded`, `result` holds the check results. ## Input parametersThe `job_id` returned by the executor tool. ## ResponseJob identifier. Pass it to the matching `*_status` tool to poll. `succeeded` means `result` is populated; `running`/`pending` means poll again; `failed`/`canceled` are terminal. Typed result when `status` is `succeeded`; `null` until then. Evaluation outcome. One of `Pass`, `Flag`, `Fallback`, or `Error`. Position in the document where the matched language was found, or null if not anchored. Redlined documents produced from the review's suggested revisions, applied as tracked changes. Present only when a single DOCX file was reviewed and at least one revision applied. Works with either a user-scoped or an org-scoped key. The original file is preserved; each entry exposes a new `file_id` and a signed download URL. The new uploaded file ID for the produced document. Use it with `POST /chat/completions` `file_ids` to apply further edits to this version. Download via `signed_url` for the finished file. The `file_id` the changes were applied to (edits only). The original file is preserved unchanged. Omitted for newly generated documents. Filename of the produced document (edits are prefixed with `edited_`). Filename of the source file the changes were applied to (edits only). Omitted for newly generated documents. Time-limited direct download URL (no login required). Valid for 7 days from job completion. Download promptly; the URL is not re-minted, so re-fetching the job after expiry returns the same expired URL. For a link you intend to store or email, use `download_url` instead. Permanent, login-gated download link for the produced document. Unlike `signed_url` it never expires: it points at a GC AI web page that mints a fresh download for a signed-in user with access to the file, and redirects to GC AI login otherwise. Use this for links you store or email. The produced document inherits the source document's access, so it opens for whoever can already see the source: a document uploaded to the organization is org-visible, one in a project is visible to that project's members, and one in personal files stays private to the uploader. Recipients still need a GC AI login. The exact tool to call to poll this job. Call it yourself with `job_id`; do not ask the user to poll. While `status` is `pending`/`running`, wait this many seconds, then call `status_tool` with `job_id`. `null` once the job is terminal. Plain-language next step. Follow it before responding. # Start file upload Source: https://docs.gc.ai/api-reference/mcp/tools/start-file-upload Start uploading a file that only exists in your local/sandbox filesystem (use this when no host-attached file reference is available, e.g. on Claude).The MCP server is in public beta. It is open to use and still being refined, so tools and behavior may change. **Tool** `start_file_upload` · **Behavior** Additive Start uploading a file that only exists in your local/sandbox filesystem (use this when no host-attached file reference is available, e.g. on Claude). Returns a short-lived signed `upload_url`: PUT the file bytes straight to it from your sandbox, for example `curl -X PUT --upload-file" "`. Then call `finish_file_upload` with the returned `file_id` to register and process the file. Target with `project_id` or `scope` (mutually exclusive, default "my-files"). If the host already populates a file reference, prefer `upload_file` instead. ## Input parameters Original filename, including extension (e.g. "contract.pdf"). MIME type, if known. Inferred from the filename when omitted. Upload into a project you can edit. Mutually exclusive with `scope`. Upload to the root of "my-files" or "organization". Mutually exclusive with `project_id`. Defaults to "my-files". ## Response# Update playbook Source: https://docs.gc.ai/api-reference/mcp/tools/update-playbook Update a playbook you can write to. The MCP server is in public beta. It is open to use and still being refined, so tools and behavior may change. **Tool** `update_playbook` · **Behavior** Destructive Update a playbook you can write to. Only the fields you pass change. Pass `checks` to replace the whole check set (read it first, edit, send it back); omit `checks` to leave them. Returns the playbook and its checks. ## Input parametersPlaybook to update. You must have write access. New title (non-empty). New description, or null to clear it. New guide text, or null to clear it. Full desired set of checks, in order (max 100). Replaces the current checks: entries with a matching `id` are updated, new entries are created, and omitted checks are removed. Omit `checks` entirely to leave them unchanged. ## ResponseCheck title (required). Optional internal description. Optional priority within the playbook. The check's positions: exactly one `standard` plus any `fallback`s. `standard` for the primary stance, `fallback` for an alternative. What to require, accept, or flag for this position. Existing check id to update in place. Omit to create a new check. # Update project Source: https://docs.gc.ai/api-reference/mcp/tools/update-project Update a project you can write to. The MCP server is in public beta. It is open to use and still being refined, so tools and behavior may change. **Tool** `update_project` · **Behavior** Destructive Update a project you can write to. Only the fields you pass change; omit a field to leave it, or pass null to `description`/`custom_instructions` to clear it. Membership is managed with the attach/detach tools, not here. ## Input parametersProject to update. You must have write access. New project name (non-empty). New description, or null to clear it. New custom instructions, or null to clear them. ## Response# Update skill Source: https://docs.gc.ai/api-reference/mcp/tools/update-skill Update a skill you can write to. The MCP server is in public beta. It is open to use and still being refined, so tools and behavior may change. **Tool** `update_skill` · **Behavior** Destructive Update a skill you can write to. Only the fields you pass change; omit a field to leave it. `file_ids` replaces the whole attachment set. Visibility is not editable here — manage skill sharing in the GC AI app. ## Input parametersSkill to update. You must have write access. New skill name (1-255 chars). New skill instructions (1-100000 chars). New description (max 1000 chars). Pass null or "" to clear it. Replacement set of attached file ids (max 50). When given, attachments are reconciled to exactly this list. Omit to leave them. ## Response# Upload file Source: https://docs.gc.ai/api-reference/mcp/tools/upload-file Upload a file the user has attached into GC AI. Unique skill identifier Skill name Short description of what the skill does, or null if unset The skill instructions: the prompt text the model receives when the skill runs `private` (only the creator and users it has been explicitly shared with) or `organization` (visible to everyone in the org). Official skills report `organization`. Whether this is an official GC AI skill. Official skills are read-only and cannot be edited or deleted via the API. Files attached to the skill as reference context Attached file identifier Attached file name ISO 8601 creation timestamp ISO 8601 last-updated timestamp The MCP server is in public beta. It is open to use and still being refined, so tools and behavior may change. **Tool** `upload_file` · **Behavior** Open world Upload a file the user has attached into GC AI. To upload, just call this tool: the host populates the `file` argument automatically. Do not read or pass a local/sandbox path (e.g. /mnt/data/...) and do not construct `file.download_url` yourself. The bytes are fetched, stored, and processed (text extraction + embeddings) in place. Poll readiness with `get_files({ id })` until `status` is "ready" (then use the file) or "failed" (then `extraction_error` explains why). Target the upload with `project_id` (into a project) or `scope` ("my-files" / "organization"); the two are mutually exclusive and default to "my-files". ## Input parametersThe file to upload. The host populates this automatically when the user attaches a file. Do not construct it or pass a local/sandbox path (e.g. /mnt/data/...); just call the tool and let the host attach the file reference. Temporary URL to download the file bytes from. Stable identifier for the file from the client. MIME type of the file, if known. Original filename, if known. Upload into a project you can edit. Mutually exclusive with `scope`. Upload to the root of "my-files" or "organization". Mutually exclusive with `project_id`. Defaults to "my-files". ## ResponsePlain-language next step: use the file immediately when ready, poll get\_files while still processing, or stop on failure. # Health Check Source: https://docs.gc.ai/api-reference/ping GET /ping Returns a simple health check response. Useful for verifying API key validity and connectivity. # Provision MCP Client-credentials Source: https://docs.gc.ai/api-reference/provision-mcp-credentials POST /mcp/credentials Mint an OAuth 2.0 client-credentials credential so a machine client (e.g. Salesforce AgentForce) can obtain org-scoped MCP access tokens. Requires an **org-scoped** API key (`gcai_...`); user-scoped keys receive 403. The organization's single M2M application is created on first call and reused thereafter, so this endpoint is safe to call repeatedly. Each call mints a **new** secret and returns it **once** (it cannot be retrieved again). A WorkOS application allows up to 5 live credentials; once that limit is reached the identity provider rejects further mints (returned here as 502) until an existing credential is revoked. Hand the returned `client_id`, `client_secret`, `token_endpoint`, and `resource` to the machine client's OAuth configuration. # Reorder a Playbook's Checks Source: https://docs.gc.ai/api-reference/reorder-playbook-checks POST /playbooks/{id}/checks/reorder Set the order of the playbook's checks. Provide the check IDs in the desired order. Requires a user-scoped key with write access to the playbook. Org-scoped keys cannot reorder checks. # Surface map Source: https://docs.gc.ai/api-reference/rest-surface-map Every REST endpoint at a glance, grouped by resource. Every endpoint in the REST API, grouped by resource. See [Introduction](/api-reference/introduction) for the base URL and authentication.## Async Jobs | Endpoint | Method | | ---------------------------------------------------- | ---------------- | | [Get async job status](/api-reference/get-async-job) | GET | ## Chat | Endpoint | Method | | --------------------------------------------------------------- | ----------------- | | [Create chat completion](/api-reference/create-chat-completion) | POST | | [Materialize an API chat](/api-reference/materialize-chat) | POST | | [Search chats](/api-reference/search-chats) | GET | ## Chats | Endpoint | Method | | ------------------------------------------------------------------- | ------------------- | | [List chats](/api-reference/list-chats) | GET | | [Get a chat](/api-reference/get-chat) | GET | | [Update a chat](/api-reference/update-chat) | PATCH | | [Delete a chat](/api-reference/delete-chat) | DELETE | | [Duplicate a chat](/api-reference/duplicate-chat) | POST | | [List messages in a chat](/api-reference/list-chat-messages) | GET | | [Create a public share link](/api-reference/create-chat-share-link) | POST | | [Revoke a public share link](/api-reference/revoke-chat-share-link) | DELETE | | [Detach a file from a chat](/api-reference/detach-file-from-chat) | DELETE | ## Files | Endpoint | Method | | ----------------------------------------------------------- | ------------------- | | [Upload a file](/api-reference/upload-file) | POST | | [Search files](/api-reference/search-files) | GET | | [Get file status](/api-reference/get-file-status) | GET | | [Move a file](/api-reference/update-file) | PATCH | | [Initiate a chunked upload](/api-reference/initiate-upload) | POST | | [Upload a file part](/api-reference/upload-part) | PUT | | [Complete a chunked upload](/api-reference/complete-upload) | POST | | [Abort a chunked upload](/api-reference/abort-upload) | DELETE | ## Folders | Endpoint | Method | | --------------------------------------------------------------- | ------------------- | | [List folders](/api-reference/list-folders) | GET | | [Create a folder](/api-reference/create-folder) | POST | | [Get a folder](/api-reference/get-folder) | GET | | [Update a folder](/api-reference/update-folder) | PATCH | | [Delete a folder](/api-reference/delete-folder) | DELETE | | [List a folder's children](/api-reference/list-folder-children) | GET | ## MCP | Endpoint | Method | | ---------------------------------------------------------------------------- | ----------------- | | [Provision MCP client-credentials](/api-reference/provision-mcp-credentials) | POST | ## Playbooks | Endpoint | Method | | ---------------------------------------------------------------------- | ------------------- | | [List playbooks](/api-reference/list-playbooks) | GET | | [Create a playbook](/api-reference/create-playbook) | POST | | [Get a playbook](/api-reference/get-playbook) | GET | | [Update a playbook](/api-reference/update-playbook) | PATCH | | [Delete a playbook](/api-reference/delete-playbook) | DELETE | | [Duplicate a playbook](/api-reference/duplicate-playbook) | POST | | [Run a playbook against uploaded files](/api-reference/run-playbook) | POST | | [List a playbook's checks](/api-reference/list-playbook-checks) | GET | | [Add a check to a playbook](/api-reference/create-playbook-check) | POST | | [Get a check](/api-reference/get-playbook-check) | GET | | [Update a check](/api-reference/update-playbook-check) | PATCH | | [Remove a check from a playbook](/api-reference/delete-playbook-check) | DELETE | | [Reorder a playbook's checks](/api-reference/reorder-playbook-checks) | POST | ## Profiles | Endpoint | Method | | --------------------------------------------------------------------------- | ------------------ | | [Identify the caller](/api-reference/get-me) | GET | | [Get your personal profile](/api-reference/get-my-profile) | GET | | [Update your personal profile](/api-reference/update-my-profile) | PATCH | | [Get the company profile](/api-reference/get-default-company-profile) | GET | | [Update the company profile](/api-reference/update-default-company-profile) | PATCH | | [List company profiles](/api-reference/list-company-profiles) | GET | | [Get a company profile](/api-reference/get-company-profile) | GET | | [Update a company profile](/api-reference/update-company-profile) | PATCH | ## Projects | Endpoint | Method | | --------------------------------------------------------------------------- | ------------------- | | [List projects](/api-reference/list-projects) | GET | | [Create a project](/api-reference/create-project) | POST | | [Get a project](/api-reference/get-project) | GET | | [Update a project](/api-reference/update-project) | PATCH | | [Delete a project](/api-reference/delete-project) | DELETE | | [Attach a file to a project](/api-reference/attach-file-to-project) | POST | | [List files on a project](/api-reference/list-project-files) | GET | | [Detach a file from a project](/api-reference/detach-file-from-project) | DELETE | | [List folders linked to a project](/api-reference/list-project-folders) | GET | | [Attach a folder to a project](/api-reference/attach-folder-to-project) | POST | | [Detach a folder from a project](/api-reference/detach-folder-from-project) | DELETE | | [Star a project](/api-reference/star-project) | POST | | [Unstar a project](/api-reference/unstar-project) | DELETE | | [List chats in a project](/api-reference/list-project-chats) | GET | | [File a chat into a project](/api-reference/attach-chat-to-project) | POST | ## Skills | Endpoint | Method | | --------------------------------------------- | ------------------- | | [List skills](/api-reference/list-skills) | GET | | [Create a skill](/api-reference/create-skill) | POST | | [Get a skill](/api-reference/get-skill) | GET | | [Update a skill](/api-reference/update-skill) | PATCH | | [Delete a skill](/api-reference/delete-skill) | DELETE | ## Usage | Endpoint | Method | | --------------------------------------------------- | ---------------- | | [Get credit usage](/api-reference/get-credit-usage) | GET | | [Get usage summary](/api-reference/get-usage) | GET | ## Utility | Endpoint | Method | | ----------------------------------- | ---------------- | | [Health check](/api-reference/ping) | GET |# Revoke a Public Share Link Source: https://docs.gc.ai/api-reference/revoke-chat-share-link DELETE /chats/{id}/share Make a previously public chat private again. # Run a Playbook Against Uploaded Files Source: https://docs.gc.ai/api-reference/run-playbook POST /playbooks/{id}/run Run a playbook against one or more uploaded files and receive structured check results.This endpoint is asynchronous: it returns a job envelope, and the result is filled in once the job completes. See [Asynchronous Requests](/api-reference/concepts/async-jobs) for how waiting, polling, and the envelope work. Files referenced by `file_ids` must be accessible to the caller and in `ready` status. The playbook must be in `completed` status. Org-scoped keys can run org-visible playbooks against non-access-controlled files.This is an inference endpoint and is [rate limited](/api-reference/concepts/rate-limits): 60 requests/minute per organization (20 per API key). Exceeding the limit returns `429` with a `Retry-After` header. # Search Chats Source: https://docs.gc.ai/api-reference/search-chats GET /chat/search Hybrid search across the caller's chat history that merges two lanes: a case-insensitive title-substring match and a semantic (vector) match over each chat's AI-generated summary. Title matches are returned first (a strong signal the user remembers the chat name), followed by semantic matches in relevance order, de-duplicated and capped at `limit`. **Authorization:** User-scoped keys (`u:gcai_...`) search the chats that user can access. Organization-scoped keys search every chat shared with the entire organization, regardless of who or what created it. Chats that remain private to an individual user are never returned to an org-scoped key. API-created chats appear here only once they've been [materialized](/api-reference/concepts/chat-visibility); unmaterialized chats are not in anyone's history and won't match. # Search Files Source: https://docs.gc.ai/api-reference/search-files GET /files Hybrid (vector + keyword) search across accessible files. Results are ranked by relevance and capped at 100. User-scoped keys search all files the user can read. Org-scoped keys search all non-access-controlled files in the organization. Pass `scope` (user-scoped keys only) to constrain the search to one of the three top-level meta-collections shown in the GC AI UI: - `my-files`: files in the user's personal "My Files" tree - `shared-with-me`: files explicitly shared with the user (and files inside shared folders) - `organization`: files in the organization's "Organization Files" tree Pass `project_id` (user- or org-scoped keys) to constrain the search to the files linked to one project, e.g. searching a project of contracts for specific terms. Mutually exclusive with `scope`. To list a project's files without a query, use `GET /projects/{id}/files` instead. # Star a Project Source: https://docs.gc.ai/api-reference/star-project POST /projects/{id}/star Pin a project to the calling user's sidebar. Idempotent. Starring is per-user state (each user has their own starred set), so it requires a user-scoped key (`u:gcai_...`). Org-scoped keys carry no user identity and receive 422. # Unstar a Project Source: https://docs.gc.ai/api-reference/unstar-project DELETE /projects/{id}/star Remove a project from the calling user's sidebar pins. Idempotent. Starring is per-user state (each user has their own starred set), so it requires a user-scoped key (`u:gcai_...`). Org-scoped keys carry no user identity and receive 422. # Update a Chat Source: https://docs.gc.ai/api-reference/update-chat PATCH /chats/{id} Update a chat's metadata (title, summary, project). Pass `project_id: null` to remove a chat from its project. # Update a Company Profile Source: https://docs.gc.ai/api-reference/update-company-profile PATCH /company-profiles/{id} Partially update a company profile. Omitted fields are left unchanged; nullable fields accept `null` to clear them. User-scoped keys require write access to the company profile; org-scoped keys can update any company profile in the organization. Creating the first company profile is done in the web UI. # Update the Company Profile Source: https://docs.gc.ai/api-reference/update-default-company-profile PATCH /company-profile Partially update the organization's company profile. Omitted fields are left unchanged; nullable fields accept `null` to clear them. Requires an **org-scoped** key (`gcai_...`): company context is organization-level configuration, so user-scoped keys receive 403. Creating the first company profile is done in the web UI. # Move a File Source: https://docs.gc.ai/api-reference/update-file PATCH /files/{id} Move a file to a different folder by updating its `folder_id`. Org-scoped keys can move non-access-controlled files to non-access-controlled destination folders. # Update a Folder Source: https://docs.gc.ai/api-reference/update-folder PATCH /folders/{id} Update a folder's name, description, parent, or access-control flag. At least one field must be provided. System folders cannot be modified. Org-scoped keys can update non-access-controlled folders. # Update Your Personal Profile Source: https://docs.gc.ai/api-reference/update-my-profile PATCH /me/profile Partially update the calling user's personal profile. Omitted fields are left unchanged; nullable fields accept `null` to clear them. The profile is created on first write. Display name and avatar are managed by your identity provider, not this API. Requires a **user-scoped** key (`u:gcai_...`); org-scoped keys receive 403. # Update a Playbook Source: https://docs.gc.ai/api-reference/update-playbook PATCH /playbooks/{id} Update a playbook's title, description, or guide. At least one field is required. User-scoped keys require write access to the playbook. Org-scoped keys can update org-visible (non-private) playbooks. # Update a Check Source: https://docs.gc.ai/api-reference/update-playbook-check PATCH /playbooks/{id}/checks/{checkId} Update a check's title, description, importance, or positions. At least one field is required. When `positions` is supplied it replaces the check's positions entirely. Requires a user-scoped key with write access to the playbook. Org-scoped keys cannot update checks. # Update a Project Source: https://docs.gc.ai/api-reference/update-project PATCH /projects/{id} Update a project's name, description, or custom instructions. Only the fields you supply are changed; omitted fields are left untouched. Pass `null` for `description` or `custom_instructions` to clear them. Requires write access to the project. Org-scoped keys can update non-access-controlled projects. # Update a Skill Source: https://docs.gc.ai/api-reference/update-skill PATCH /skills/{id} Partially update a skill's name, instructions, description, or attached files. Requires write access to the skill. Official skills cannot be edited via the API. Visibility is not editable here; manage skill sharing in the GC AI app. # Upload a File Source: https://docs.gc.ai/api-reference/upload-file POST /files Upload a file to GC AI for processing and storage. Files are uploaded as multipart form data and automatically processed (text extraction, summarization, and embedding creation). With a user-scoped key, files default to the user's "My Files" folder. With an org-scoped key, files default to the "Organization Files" folder and the `my-files` scope is not available. For PDFs and Word documents, extraction runs asynchronously. Poll `GET /files/{id}` until `status` is `ready`. # Upload a File Part Source: https://docs.gc.ai/api-reference/upload-part PUT /files/uploads/{upload_id}/parts/{part_number} Upload one part of a chunked upload. The request body is the raw bytes of the part (`application/octet-stream`). Parts may be uploaded in any order; re-sending the same `part_number` overwrites it, so a failed part is safe to retry. # Apr 18, 2026 Source: https://docs.gc.ai/changelog/april-2026/apr-18-2026 ## New Features **Skills: A Better Way to Reuse Your Best Instructions** The Prompt Library is now the Skill Library, and skills work differently than prompts did. Instead of pasting instructions into the composer as plain text, you attach skills to a conversation the same way you attach files. GC AI reads the skill's instructions as dedicated context while your actual question stays short and focused. The biggest change: you can now chain multiple skills in a single conversation. Attach a compliance checklist skill and a plain-language drafting skill at the same time, and GC AI follows both sets of instructions together. Advanced, multi-step instructions that used to crowd the composer now live cleanly in attached skills. All your existing saved prompts have been carried over as skills automatically. **Skill Creator** A new GC AI skill that helps you build reusable skills through conversation. Attach the "Create Skill" skill, describe what you want, and GC AI interviews you about your goal, drafts the skill, and saves it directly to your library. It knows six common patterns (checklist, role, template, workflow, style, and drafting) and coaches you through picking the right structure. You can also ask it to refine existing skills. **In-Chat Skill Editing** When GC AI suggests changes to one of your skills during a conversation, you see a side-by-side comparison of the original and proposed versions before anything is saved. Approve the changes as-is, switch into edit mode to adjust them, or deny if they miss the mark. ## Improvements ### Web • Skills can now carry knowledge base files. Link files to a skill, and they travel with it every time it's used. No re-uploading templates, policies, or example documents. • Easy Prompt now includes attached skill context when optimizing your question, so suggestions are tailored to the skills you're working with. • Clicking a skill badge on a sent message opens the skill in the sidebar for quick viewing, editing, or sharing. • The `/prompts` URL now permanently redirects to `/skills`. Existing bookmarks and shared links continue to work. # Apr 7, 2026 Source: https://docs.gc.ai/changelog/april-2026/apr-7-2026 ## New Features **Rich Text Composer** The chat input is now a rich text editor with a formatting toolbar. Click the "Aa" button to open it, then format your prompts with bold, italic, strikethrough, headings, bullet and numbered lists, checklists, blockquotes, code blocks, links, and tables. Insert tables with a visual grid picker and manage rows and columns with inline controls. Undo and redo work as expected. Pasting from Word, Google Docs, or email preserves formatting. Enter adds a new line, and ⌘Enter / Ctrl+Enter sends your message. Your in-progress message is saved automatically if you navigate away. ## Improvements ### Web • AI responses with document-style headings are now collapsible. The top-level title stays visible while section headings (like "Recitals" or "Definitions") can be expanded and collapsed individually as you work through them. • If an AI provider drops the connection mid-response, GC AI now recovers automatically. When the interruption happens before any text appears, the response restarts silently on a different model. If text was already flowing, an inline message and Retry button let you continue with one click. • Section icons have been removed from sidebar headers (Chat, Prompt Library, Playbooks, etc.), and the collapse/expand toggle now sits in a consistent position whether the sidebar is open or closed. • The Settings pages have a cleaner layout: section cards and redundant tab descriptions have been removed, and subtitles are more consistent across tabs. • Dialog overlays and dropdown menus have updated styling with improved scrim effects and smoother transitions. • Sidebar and header labels are more consistent, with cleaner states for active, hover, and selected items. • Focus rings throughout the app now use a double-shadow style (blue and light blue) for better visibility. The chat input and message areas have also been visually refined. • The Files and Prompts sidebar tabs now use a pill-style design that is easier to read and tap. • The "Add" button in the chat input has been updated from a plain plus icon to a labeled dropdown menu (replacing a recent regression). ## Fixes ### Web • Fixed an issue where Easy Prompt would sometimes follow instructions inside your prompt (like "ask me clarifying questions first") instead of optimizing the prompt. It now correctly rewrites the prompt in all cases. • Fixed sharing bugs where added users did not appear in the "People with access" list, the share dialog reopened in the wrong view, and the public link toggle did not sync between the header button and the three-dot menu. # Aug 18, 2025 Source: https://docs.gc.ai/changelog/august-2025/aug-18-2025 ## New Features **GC AI Web can now read PDF and DOCX Comments and Redlines** GC AI can now read and understand tracked changes and comments in both PDF and Word documents, including strikethroughs, additions, and reviewer feedback. This enables the AI to analyze what changed between document versions and provide insights like "Three clauses were removed from section 2, and two new liability terms were added to section 5" rather than just reading the final text. ## Improvements ### Web • **Increased paste text limit:** You can now paste up to 6,000 characters (up from 3,000) directly into chat before text automatically converts to a file attachment so you can edit longer inputs you paste in. • **Table redline warnings:** Added upfront warning messages and visual alerts when working with redlines in tables, plus a new copy button for manual text retrieval when automatic changes may not apply correctly. ### Word • **Improved chat navigation in the Word Add-in:** You won't lose your place if you switch between a playbook run and a chat, or when you move between chats and other tabs. You'll come right back to where you left off. • **Clearer redlines:** Redlines are now more readable and more closely match Word's native redlining functionality  ## Fixes ### Web • **Corrected table formatting:** Tables in the web app now properly display bullet points and line breaks within cells, ensuring clean and professional formatting instead of broken HTML elements.  • **Resolved add-in crashes with older chats:** Fixed compatibility issues that caused the Word add-in to crash when opening older historical chat conversations. ### Word • **Better section referencing accuracy:** GC AI in Word now more accurately tracks numbered sections and subsections, so the AI can precisely locate and modify specific paragraphs when you reference them by number (e.g., "modify section 3.1"). # Aug 25, 2025 Source: https://docs.gc.ai/changelog/august-2025/aug-25-2025 ## New Features **Prompt Library Search** You can now search for specific prompts in the sidebar's Prompt Library by typing keywords, with real-time results appearing as you type across both "My Prompts" and "GC AI Prompts." This lets you instantly find the exact prompt you need instead of scrolling through long lists, making the prompt library much more efficient to use.  **Internal vs. Counterparty Comment Generation in Word** You can now generate two types of comments in Word - internal comments with candid risk assessments for internal use, and counterparty comments that are professional and suitable for sharing externally. This gives you more control over tone and content based on their audience through a simple dropdown selection.  ## Improvements ### Web • **More Reliable Chat Responses:** Added automatic retry functionality when AI takes too long to respond initially, reducing chat failures. ### Word • **Higher Quality Redlines and Draft Language:** Improved the quality of redlines and draft language generation by switching from Gemini to Claude. ## Fixes ### Word • **Fixed Word Add-in Tab Navigation:** You won't lose your place in your in-progress chat anymore when you navigate to other tabs in the Word Add-in. • **Fixed Word Add-in Chat Company Association:** Word Add-in chats are now properly associated with the selected company profile, ensuring consistency with the main web app experience and fixing missing company context. # Aug 13, 2026 Source: https://docs.gc.ai/changelog/august-2026/aug-13-2026 ## New Features **GC AI Academy** GC AI Academy now lives inside the app. Open **Academy** from the left sidebar to browse live training classes, enroll in upcoming sessions, and track your progress without leaving GC AI. The **Courses** tab shows a personalized catalog. A **Recommended next step** card highlights the next class in the catalog based on the classes you've completed. **Suggested for you**, **New & updated**, and **Upcoming sessions** sections help you find the right session fast. Switch between list and calendar views to scan dates at a glance. Each course card shows completion, enrollment, and update badges so you always know where you stand. Open any course to see the full description, instructor bios, star ratings, review excerpts, prerequisites, and downloadable class materials. Pick an upcoming session and enroll in one click. After class, return to **My Sessions** to download materials, watch the recording, or leave a review. The **Instructors** tab lists GC AI instructors with their upcoming sessions. The **Team** tab shows which teammates have signed up for or completed each class, plus recent team reviews, so admins and team leads can see training progress at a glance. **Find and Enroll in Classes from Chat** Ask GC AI in chat to find Academy classes or sign you up for a session. GC AI surfaces matching courses with upcoming dates, instructor names, and review snippets, then walks you through enrollment with a confirmation card before anything is booked. # Aug 19, 2026 Source: https://docs.gc.ai/changelog/august-2026/aug-19-2026 ## Improvements ### Web • **Attach a skill with /**: Type `/` in the chat box to search your skills and GC AI Skills. Press Enter or click one to attach it as a chip, then keep typing your question next to it. You can still browse skills from the **+** menu. See [Using Skills in Chat](/guides/prompting/using-skills-in-chat).![]()
• **A tighter chat composer**: File, skill, playbook, vault, and folder chips are more compact, and they look the same in the chat box and on sent messages. Pick a project from the composer when you start a chat. An empty box also says **Type / for skills**.
![]()
• **Use in new chat from a file**: Open a file preview, then click **Use in new chat**. A new conversation opens with that file already attached.
• **Skills and Files sidebars**: The Skills and Files panels use a cleaner header, denser rows, and clearer section labels so you can scan and attach items faster.
![]()
• **Transfer project ownership**: Project Owners can hand a project to another organization member from the **Share** dialog. Open a member's access menu, choose **Transfer ownership**, and confirm. The new Owner gets full Admin access. You keep **Edit** access so you can keep working in the project.
• **Organization-visible projects share files and chats**: Setting a project to **Organization** shares the project, its files, and its chats with everyone in your organization. Hover **Shared with your organization** on the project page for a short explanation and a link to the docs. • **Import spreadsheet columns into a Vault**: On a Vault's Fields page, choose **Import spreadsheet** to join an .xlsx or .csv tracker to your documents on one key (document name, file name, or counterparties). The other sheet columns become Vault columns and stay tied to that spreadsheet. • **Group Vault columns by hand**: In a Vault view, drag one column header onto another, or right-click a header and choose **Group with**. Collapse the group when you want a narrower table. • **Pause or resume Vault source sync**: On a Vault's Sources page, use the **Sync** switch to turn live sync off. Documents stay in the Vault. Turn it back on when you want updates again.
• **Find Academy classes by topic in chat**: Ask GC AI for Academy classes on a topic. Matching courses come back instead of the full catalog.
# Aug 25, 2026 Source: https://docs.gc.ai/changelog/august-2026/aug-25-2026 ## Improvements ### Web • **Connect Microsoft OneNote**: Connect OneNote from **Settings** so GC AI can search your notebooks, read page content, and create or update pages from chat.
• **Naming templates for Vault documents**: Open **Edit naming template** from a Vault's Fields page or the Document Name column header. Build a template from document fields, preview the result, and apply it across the vault. New scans and reapplies name documents from the template instead of AI-generated titles.
• **Filter Vault imports by file name**: When you add a source, expand **What to import** to set a file-name rule. Only matching files sync in. Edit the same rule from the source card on the Sources page.
• **Relationship detection progress**: While GC AI finds related documents, the Relationships column header shows a spinner with a **Finding related documents…** tooltip. Rows the scan has not reached yet show a skeleton instead of **No relationships**. The document side panel's Related tab shows the same in-progress state.
• **Download a full vault chat**: In Contract Intelligence vault chat, use **Download** in the sidebar header to export the whole thread as one PDF or DOCX, with the same format and citation options as main chat.
• **Label vault chats from the sidebar**: Assign chat labels from the **Labels** dropdown in the Contract Intelligence vault chat sidebar, so labeled vault conversations show up in your label filters.
• **Clearer compound file rows**: When one uploaded file holds several agreements, each extracted document shows as its own row in the Vault table. Siblings share a dim subline with the file name and **n of m** instead of a grouped banner row, so you can scan related documents faster.
• **Rewrite with Easy Prompt on sent messages**: Hover a message you sent and choose **Rewrite with Easy Prompt** to tighten the prompt without retyping it.
• **Web, link, and image approval controls for admins**: Organization admins now see **Web Page Policy** and **Links and Images Policy** under **Settings → Organization**. Turn on approval before GC AI reads a specific web page, or before outbound links and embedded images load in a response.
### Word • **AI redlines match your Word name color**: Tracked changes from GC AI use the same color Word assigns to your user name. • **Comment dates match Word's clock**: Comment timestamps in generated documents align with the wall clock Word displays. ## Fixes ### Web • Fixed an issue where batch apply and download replayed edits across every open document instead of only the one you were working on. • Fixed an issue where **editDocument** could hang when the target file could not be edited. • Fixed an issue where a Dropbox import filter could block adding a source even when the rule was valid. • Fixed an issue where Google Drive tools failed on shared drives. • Fixed an issue where deleting a chat during an active turn could race with the in-progress response. • Fixed an issue where garbled text in some PDFs was not routed to OCR. • Fixed an issue where the Contract Intelligence chat icon was missing from the sidebar. ### Word • Fixed an issue where AI table edits could land in the wrong cell when a bookmark range was reused. • Fixed an issue where label-cell blank lines appeared in AI-generated table XML. • Fixed an issue where redline context could drop after certain document operations. # Aug 5, 2026 Source: https://docs.gc.ai/changelog/august-2026/aug-5-2026 ## New Features **Contract Intelligence** Contract Intelligence is now generally available. Bring thousands of contracts, policies, and agreements into one place and ask questions across all of them at once. GC AI reads every document, pulls the information you care about into a sortable View with citations, connects related agreements, and keeps everything current as your documents change. Create a Vault in a guided chat: describe your documents and what you want to track, and GC AI drafts the columns to extract for you to adjust. Bring documents in from Google Drive, SharePoint, OneDrive, or Dropbox, or upload PDF, Word, and text files directly. A single Vault can pull from more than one source, so documents scattered across systems come together without a migration. Ask plain-language questions across your whole portfolio and GC AI answers from every document, filtering the View to the agreements behind the answer at the same time. Every value carries a citation, so **View source** opens the document with the exact passage highlighted and you can verify any answer in one click. Save any set of filters, sorts, and columns as a named view that persists in the Vault for your whole team to return to, and export the current view to CSV. GC AI also works out what you would otherwise tag by hand. It detects the execution status of every agreement as Executed, Partially Executed, Unsigned, or Draft, so you can separate what is in force from what is still in negotiation and catch the partially executed ones, where one party signed and the other never did. It connects amendments, renewals, and SOWs to the agreements they belong to, then rolls up a Current Terms view showing what governs today across each contract family. It gives every document a clean, standardized name in the convention you set, and splits a single file that holds several agreements into one row each. Your source files are never modified. Link a Vault to a [Project](/docs/chat/projects) and the Project's chat can query its documents alongside your other matter material. Learn more in the [Contract Intelligence guide](/guides/contract-intelligence/getting-started-with-contract-intelligence), or see the [FAQ](/guides/contract-intelligence/faq). # Dec 22, 2025 Source: https://docs.gc.ai/changelog/december-2025/dec-22-2025 ## New Features **Email File Support** You can now upload .msg and .eml email files directly to GC AI. Email content, metadata, and attachments are automatically extracted and made searchable by the AI in your chats. **Audio File Upload** You can now upload audio files to GC AI. Audio content is automatically transcribed so you can ask the AI questions about recordings, calls, and other audio content. **Folder Downloads** You can now download entire folders from your files as a zip archive, making it easy to export collections of documents at once. **Seat Management** Organization admins can now manage user seats directly from organization settings — add or remove seats and see current usage at a glance. Users removed from an organization automatically have their seat freed up. **New AI Models** Gemini 3 Pro and Gemini 3 Flash are now available as model options, giving you more choices for speed and depth of analysis. **Expandable Tables** Tables in AI responses can now be expanded for easier viewing and interaction with large data sets. ## Improvements ### Web • Citations are now grouped by source document in the sidebar, making it easier to see which documents the AI referenced. • Web search results now show clickable source links, making it easier to verify sources. • Improved feedback experience when rating AI responses. • File processing errors now show clear messages instead of failing silently. • Organization trial status is now displayed more clearly in account settings. • Updated Prompt Library layout for easier browsing. ### Word • Improved look and feel for redline and draft language suggestions. • Improved labels for contributor and party selectors. ## Fixes ### Web • Fixed display issues on the upgrade prompt page. • Fixed formatting in notification emails. • Fixed scrolling issues in the chat area. ### Word • Fixed issues with draft and redline insertion in certain document types. • Fixed revised language tool incorrectly suggesting "Reserved." in some contexts. • Fixed issue where tracked changes mode wasn't properly enabled before making edits. # Feb 13, 2026 Source: https://docs.gc.ai/changelog/february-2026/feb-13-2026 ## New Features **Chat 2.0** We've rebuilt the chat experience from the ground up. Chat 2.0 delivers a faster, more capable AI assistant with major improvements to research, reasoning, and response quality. What's new: • **Claude Opus 4.6** is now the default model, delivering significantly better legal analysis and writing • **Visible Reasoning** — watch the AI's thinking process in real-time as it works through complex questions • **Enhanced Research** — a new research agent searches multiple sources, evaluates their authority, and synthesizes findings with proper citations • **Continue Button** — when a response reaches its limit, click Continue to have the AI pick up where it left off • **Stop & Resume** — clearly see when a response was interrupted and stop generation at any time • **Better Writing Quality** — more professional, legally precise language across all responses **Claude Sonnet 4.6** Claude Sonnet 4.6 is now available as a faster model option for quick tasks and simple questions. ## Improvements ### Web • Faster AI responses — reduced wait time before the first words appear. • Faster file uploads — documents are processed more quickly after upload. • Simplified feedback — thumbs-down now opens a simple text box for faster submissions. • You can now change the company profile on existing chats without starting a new conversation. • Context limit notifications are now clearer and less disruptive. • Tool calls and AI thinking are now excluded from chat downloads for cleaner exported files. • More complete usage metrics export with additional data fields. • Switching between chats no longer loses in-progress AI responses. • Dictation is now always available without needing to enable it separately. ### Word • Document title now displays correctly for Word chats. • You can now "jump to" a document location even when a redline failed to apply. • Fixed Easy Prompt returning complete answers instead of optimized prompts. ## Fixes ### Web • Fixed issue where uploading multiple files at once could interfere with each other. • Fixed sending messages with only file attachments (no text) not working. • Fixed display issues on Safari. • Fixed issue where AI response text could disappear if the connection dropped mid-stream. ### Word • Fixed search and formatting issues in certain Word documents. # Feb 27, 2026 Source: https://docs.gc.ai/changelog/february-2026/feb-27-2026 ## New Features **Google Drive Integration** You can now connect your Google Drive account and import files directly into GC AI. Browse your Drive folders, select documents, and they'll be automatically processed and available for AI analysis — no need to download and re-upload. **Diagrams** The AI can now generate visual diagrams directly in chat. Ask for flowcharts, org charts, process diagrams, timelines, and more. Diagrams include zoom and pan controls for exploring complex visualizations. **Chat Labels** Organize your chat history with custom labels. Create, assign, and filter chats by labels to keep your conversations organized. Labels are available in both the web app and Word, and are inherited when branching conversations. **Draft Email** Ask the AI to draft an email directly in chat. The AI composes a professional email based on your conversation context, ready to copy and send. **Generate Document from Chat** Export AI-generated content from any chat conversation into a formatted Word document with a single click. **Batch Approve/Deny** When the AI asks for approval on multiple actions in a single message, you can now approve or deny them all at once instead of handling each one individually. **Extended Context for Claude Opus 4.6** Claude Opus 4.6 now supports extended context, allowing you to work with even larger documents and longer conversations. ## Improvements ### Web • "Knowledge Bases" has been renamed to "Files" across the app for clarity. • Prompt Library now includes search, file attachments, descriptions, and alphabetical sorting for easier discovery. • Saved prompts now display in a dedicated sidebar view with descriptions on hover. • New company profile field for DBA/Trade Name. • Organization admins can now set a policy for whether users can create their own API keys. • You'll now see a clear notification when a content filter blocks an AI response, explaining what happened. • The research agent can now be interrupted mid-search. • You can now remove yourself from shared resources. • You can now add labels to chats you have read-only access to. • Upgraded to Gemini 3.1 Pro for improved performance. • Organization admins can now control who has permission to create playbooks. • Clearer error messages when you don't have permission for an action. ### Word • Major speed improvement — applying redlines is now dramatically faster in most documents. • Improved paste formatting when copying AI-generated content into documents. • Better error notifications so you know when something goes wrong. • Relevant files now auto-load when they match your current document. • Improved Easy Prompt reliability and consistency. ## Fixes ### Web • Fixed Google Drive import issues with authentication and file processing. • Fixed company profile updates accidentally clearing fields that weren't changed. • Fixed diagrams with long labels being cut off. ### Word • Fixed display issues with chat file attachments. # Jan 29, 2026 Source: https://docs.gc.ai/changelog/january-2026/jan-29-2026 ## New Features **Playbooks** Playbooks are now available! Playbooks let you create structured, repeatable review workflows for your documents. Define the checks you want the AI to run, and Playbooks will systematically review your document against each one — flagging issues, suggesting redlines, and providing detailed analysis. Key capabilities: • Create custom playbooks with your own review criteria • Run playbooks against any document in Word • Review AI findings check-by-check with suggested redlines • Apply individual changes or use Apply All to accept multiple suggestions at once • Multi-party contract support with tracked changes • Share playbooks across your organization Visit our [Playbooks Guide](/guides/playbooks/creating-playbooks) to get started. **Organization Public Link Controls** Organization admins can now control whether members can generate public sharing links for chats, giving admins more oversight of external information sharing. **Organization Members Export** Organization admins can now copy and export a list of all organization members for record-keeping. ## Improvements ### Web • Long messages are now collapsible, keeping your chat view clean and easy to navigate. • File attachments stay visible as you scroll through long conversations. • Downloaded chat files now use the chat title as the file name. ### Word • Improved guidance text for playbook comment suggestions. • Simplified diff display for easier review of suggested changes. ## Fixes ### Web • Fixed issue where moving files between folders wouldn't remove them from the original location. • Fixed various dropdown styling inconsistencies. • Fixed text overflow on mobile company profile setup. ### Word • Fixed issue with copying draft and revision content as plain text. # Jan 5, 2026 Source: https://docs.gc.ai/changelog/january-2026/jan-5-2026 ## New Features **Brand Refresh** GC AI has a fresh new look! We've updated our colors and styling across the entire application for a cleaner, more modern experience. **Save Chat as Prompt** You can now save any message from a conversation as a reusable prompt in your Prompt Library. When you craft a prompt that works well, save it for easy reuse later. **Table Controls** AI responses containing tables now include controls for sorting and interacting with the data directly in chat. ## Improvements ### Word • You can now view all previous versions of revisions and draft language, making it easier to track how suggestions evolved. • The sharing dialog has been redesigned for a cleaner experience. • Improved accuracy of redline suggestions. ## Fixes ### Web • Fixed issue with uploading files via links. • Fixed seat management dropdown not working in some organizations. • Fixed issue where duplicating a chat wouldn't carry over file attachments. ### Word • Fixed bug where stopping the first AI response in Word would fail. # Jul 14, 2026 Source: https://docs.gc.ai/changelog/july-2026/jul-14-2026 ## Improvements • **Defined terms land in the right alphabetical spot**: Ask GC AI to add defined terms to a contract and each one is inserted at its correct alphabetical position among the definitions already there, one term at a time. Alphabetical position wins even when the section's own numbering runs a different way, and sorting ignores leading articles so the term itself decides where it goes. Works in the Word add-in and on a DOCX you open in the web editor. • **Download tables as CSV or Excel**: When GC AI returns data as a table in chat, the "Download table" button above it gives you CSV or Excel. With the Google Sheets integration connected, GC AI can send the data straight to a sheet. • **Set up monthly and quarterly automations from chat**: The automation editor in chat now has the same fields as the automations page, so you can choose a weekly, monthly, or quarterly schedule while you build an automation in the conversation. • **Clearer file attachments in the message box**: Files you attach to a message show a compact chip with an icon for the file type, including Word, PDF, PowerPoint, Excel, and plain text. The chips take up less room, so you can see more of what you're writing. ## Fixes • Fixed an issue on phones and tablets where the edit and retry actions on your own messages stayed hidden, which made it hard to retry a message once a response had finished. # Jul 21, 2026 Source: https://docs.gc.ai/changelog/july-2026/jul-21-2026 ## Improvements • **Search projects straight from the sidebar**: The sidebar project list has a search box now: start typing a project name and jump straight to it. If you have a long list of projects, the sidebar now scrolls through all of them smoothly, with projects and chats each scrolling independently. • **Neater reasoning and clearer answers in Chat**: When GC AI works through a multi-step request, the reasoning and tool activity now fold into a single expandable section once it finishes. Your answer is no longer pushed down by a long trail of intermediate steps. While GC AI is still working, the section stays open so you can follow its progress, and any step that needs your approval is always shown directly. • **A better way to attach Google Drive files**: Attaching files from Google Drive in chat and projects now uses GC AI's built-in Drive browser instead of the Google pop-up window. You get the same familiar file browser everywhere you pick Drive files in the app, with a cleaner look and easier folder navigation. • **See every chat where a file was used**: Each file's menu now includes a "View chats" option that lists all the chats the file has been added to. If you reuse the same contracts, policies, or templates across many conversations, you can now trace where a document has been used and pick up past work from the file itself. • **Invite your whole team to GC AI at once**: Admins can now paste a comma-separated list of email addresses to invite several teammates in one step, instead of adding them one at a time. # Jul 31, 2026 Source: https://docs.gc.ai/changelog/july-2026/jul-31-2026 ## New Features **Agent Connectors** Connect the apps you already use (email, files, calendar, Slack, CRM, and more) so GC AI can pull context into chat and take actions on your behalf. Summarize an email thread, find a contract in Drive or SharePoint, check tomorrow's calendar, or post a status to Slack without leaving the conversation. Each action defaults to **Needs approval**. You can set **Always allow** or **Block** per action in Settings. Organization admins turn Agent Connectors on for the org; each person connects their own accounts. After you connect apps, ask GC AI in chat to scan email, calendar, Slack, or other linked apps. You can also schedule that as an [automation](/docs/automations/overview). Learn more in the [Agent Connectors guide](/guides/organizations/agent-connectors). **Easy Edit** Open, edit, and redline Word documents directly in the GC AI web app. Click any uploaded .docx file in chat to open it in a side-by-side editor panel, or ask GC AI to generate a new document and it opens in the editor automatically. Ask GC AI to revise clauses, draft new sections, or add comments, and apply each change to the document as a tracked redline, one at a time or all at once. A full formatting toolbar lets you make manual edits alongside AI revisions. GC AI reads the document in real time as you work, so its suggestions stay accurate and reflect your latest edits. Your work saves back into your GC AI workspace automatically, and you can download a .docx copy in one click whenever you need a local file. # Jun 1, 2026 Source: https://docs.gc.ai/changelog/june-2026/jun-1-2026 ## Improvements ### Web • Automations now support **Local timezone**. Choose it when scheduling an automation to keep runs at the same local time as you travel, such as 8 AM wherever you are. # Jun 17, 2026 Source: https://docs.gc.ai/changelog/june-2026/jun-17-2026 ## New Features **Agentic Chat History Search** You can now ask GC AI in chat to search your past conversations. Describe what you are looking for in plain language, and GC AI finds matching chats across your history with titles, summaries, and links. When a prior conversation is relevant, GC AI can read that chat and bring that context into the conversation you are in now, so you can find prior work and keep going without hunting in the sidebar. # Jun 30, 2026 Source: https://docs.gc.ai/changelog/june-2026/jun-30-2026 ## New Features **US Case Law** Search and analyze 13M+ US court opinions directly in chat. Ask a case law question in plain language and get a cited, synthesized answer grounded in the actual opinions. Every cited case links to the full text through a built-in Opinion Reader, so you can verify sources without leaving your workspace. US Case Law is on by default. GC AI searches relevant opinions whenever your question calls for it. Use the source toggles in the Add menu to turn case law or web search on and off, or open Advanced Settings to filter by jurisdiction. US Case Law is included in all Team and Enterprise plans. For Individual seats, it is available as an [add-on](https://gc.ai/pricing). Case law from other jurisdictions, like the EU and UK, is in development and will launch next. # Mar 16, 2026 Source: https://docs.gc.ai/changelog/march-2026/mar-16-2026 ## New Features **Projects** Organize related chats, files, and instructions into a single workspace. Chats within a project share AI context, GC AI can reference other conversations in the same project to give more informed answers. Star your most-used projects for quick access, set project-level instructions that apply to every chat, and share entire projects with teammates. You can also drag and drop chats into projects from the sidebar. **Chat Summarization** When a conversation gets long, you can now summarize it in place to free up the AI's context window. A "Summarize chat" button appears in the context usage indicator once your conversation passes 50% capacity. After summarizing, a divider marks where the AI's memory starts — older messages stay visible in your chat history, but the AI works from the summary going forward. **Chat Bulk Actions** Select multiple chats from the sidebar to manage them in bulk. The new Actions menu lets you add or remove labels, move chats to a project, or delete them all at once. **Clarifying Questions** When your request is ambiguous or involves multiple decisions, GC AI now pauses and asks structured clarifying questions before proceeding. Questions appear as an interactive card above the chat input with options to select from, type custom answers, pick dates, or choose from your files and playbooks. You can answer as many or as few as you'd like before submitting. **Email Draft Editor** Email drafts now open in a rich text editor instead of plain text. Bold, italicize, add links, and switch between headings and lists directly in the draft. Your edits are saved automatically, and copying preserves formatting when you paste into Gmail or Outlook. You can also open the draft directly in Gmail, Outlook, or your default mail app. **Early Adopter Program** Organization admins can now enroll their team in the Early Adopter Program from organization settings. Enrolled organizations get early access to new features before they're available to everyone. ## Improvements ### Web • Diagram labels now wrap at natural break points so text stays inside the node boxes. • Shared links now display the actual title of the shared chat instead of "Untitled chat." • File uploads to chat can now be canceled while in progress. • You can now choose whether to include timestamps when downloading chat messages. • The context window indicator now uses color-coded rings — green, orange, and red — to show usage at a glance. • Wide tables in AI responses now scroll horizontally with visible edge gradients instead of being clipped. • The Enter key now behaves consistently on mobile devices. • Pending invitations now show their expiry date, and expired invitations can be resent. ### Word • Redline and revision labels now display consistently across expanded and collapsed views. • You can now apply all suggested changes from a chat response to your document in one step, with a significantly more reliable engine behind it. • Comments can now be applied to a document before the associated redline is accepted. ## Fixes ### Word • Fixed an issue where applying all changes at once reported failures even though the edits were successfully written to the document. # Mar 31, 2026 Source: https://docs.gc.ai/changelog/march-2026/mar-31-2026 ## New Features **In-Chat Playbook Management** You can now create, view, edit, delete, and duplicate playbooks directly from the chat interface. Upload your documents to the conversation, tell GC AI what you need, and it builds your playbook without leaving the chat. Every action, whether creating a new playbook, updating checks, or deleting one you no longer need, shows an approval card so you confirm each change before it takes effect. For detailed check editing, a panel opens on the right side of the screen where you can review and adjust check contents before approving. If GC AI needs to confirm which playbook you're working with, it asks clarifying questions and presents a list to pick from. No more navigating to a separate wizard or switching between screens. **Document Editing and Redlining in Web Chat** You can now upload a document to the web chat, ask GC AI to revise it, and review each proposed change as an inline diff. Accept or reject individual edits, then choose between tracked changes (preserving redlines in the output) or clean replacement. Download the updated file and keep iterating with follow-up messages until the document reads right. This brings the core redlining workflow from GC AI for Word to any browser, no Word installation required. ## Improvements ### Web • You can now edit AI responses inline. A pencil icon in the assistant message action bar opens a rich text editor for the response text. Your edits are preserved in the conversation context, and an "Edited" badge with timestamp appears in the action bar. • Clarifying questions now accept file attachments and extra context. Type additional details in the chat input or attach files while answering, and the AI can read those files in its follow-up response. • Queued messages now disappear from the list instantly when sent. You can also edit queued message text inline by clicking the pencil icon before the message is sent. • A new "My chats" filter in the chat history sidebar lets you toggle between all chats and only your own conversations. • Shared chat links now include the files that were part of the conversation, so viewers can see the same documents the original chat referenced. • Chat sharing is consolidated into a single permissions dialog with a public link toggle, replacing the previous separate sharing flows. • Organization admins can now upload a logo for their organization, and company profiles support logo uploads. Logos appear throughout the app wherever the org or company name is displayed. • Chat history group headers (Today, Yesterday, Last 7 Days, etc.) are now collapsible. Click a header to collapse or expand that section. • The plus button in the sidebar icon rail now creates a new chat on click. • Email draft tables now support direct cell editing, row and column controls, and a table toolbar, matching the formatting of tables in chat responses. • Copied AI text now blends with your existing text when pasted into Gmail and other email clients. Structural formatting (bold, lists, headings) is preserved, but app-specific fonts and spacing are stripped. • Chat messages now display at a 66-character line width for more comfortable reading. • The mobile navigation menu is now accessible on all pages in compact or narrow views, not only the chat page. • The organization switcher is now always visible in the mobile menu. • Shared chat links no longer show error-styled cards for tool calls from renamed or deprecated tools. They display a clean "Tool called: Tool Name" label instead. • Clarifying questions are now fully keyboard accessible. Press Enter to advance between questions, and Enter on the last question submits the form. # Nov 17, 2025 Source: https://docs.gc.ai/changelog/november-2025/nov-17-2025 ## Improvements ### Web • You can now see all files attached to a chat conversation, not just recently added ones. ### Word • Improved reliability when uploading large documents. ## Fixes ### Word • Fixed issue where Easy Prompt would silently fail on certain prompts. # Nov 3, 2025 Source: https://docs.gc.ai/changelog/november-2025/nov-3-2025 ## Improvements ### Web • Fixed bugs with documents not being read properly by the AI in some specific scenarios. • Improved web scraping infrastructure. • Improved research decisions - the AI is now biased to use research more than before. • Improved, more professional tone for the AI. • Show hint when trying to delete a file that you don't have delete permissions for. • Add placeholder text for when a folder in Files is empty so it doesn't look broken. ### Word • Fixed issue where re-sending a prompt would drop any attached files it had. • Fixed issue where redlines would fail to apply when a document was in read-only mode, shows warning to user instead now to change the mode. • Fixed issue with Easy Prompt causing crashes on Windows. • Fixed issue with some documents not being able to load. • Fixed some issues with redline application in some legacy documents. • Fixed issues with Word field codes being added to redlines. • Fixed issues with the way redlines were displayed in the UI. #### Playbooks Beta • You can now see recommended Playbooks based on the document you're in above others. • Better adherence to guidance for suggested redlines with less direct matching of standard language. # Oct 20, 2025 Source: https://docs.gc.ai/changelog/october-2025/oct-20-2025 ## Improvements ### Web • Fixed continue button bug that was not actually continuing the AI response. • Fixed bugs with documents not being read properly by the AI in some specific scenarios. • When you select an organization during log in, it now sets it as your default organization. • Fixed a bug where users couldn't upload files to an organization that wasn't their first organization. ### Word • Show spinner while saving edited redlines to prevent applying stale redline to document. • Fixed bug with editing and resubmitting prompts. • Improved prompts to bias AI to more strongly favor the user when suggesting redlines. # Oct 6, 2025 Source: https://docs.gc.ai/changelog/october-2025/oct-6-2025 ## New Features **Files and file upload in Word** You can now upload additional documents directly in GC AI for Word to make comparing, drafting, and redlining even easier. You'll find the "+ Add Files" button inside GC AI for Word. Click, then quickly add documents to reference. ## Improvements ### Web GC AI can now understand longer documents and sets of documents better, and longer chats should work better. ### Word Redlines and comments should now be more favorable to the user's position. # Sep 15, 2025 Source: https://docs.gc.ai/changelog/september-2025/sep-15-2025 ## New Features **Branch Chat from Message** You can now create new chat conversations starting from any assistant message by clicking the branch button on assistant responses. This opens a new chat tab with the complete conversation history up to that point, including all file attachments and collections, allowing you to explore different conversation paths without losing your original chat context.  ## Improvements ### Word • **Show/hide Playbooks**: Manage Playbook visibility through a dedicated edit mode on the Playbooks home page. Click the dropdown menu and select "Show/hide playbooks" to enter an edit mode where you can individually toggle the visibility of each playbook.  # Sep 2, 2025 Source: https://docs.gc.ai/changelog/september-2025/sep-2-2025 ## New Features **See Exact Quotes in context** You can now click on citations in chat responses to open the source PDF with the exact text highlighted and automatically scroll to the cited passage. This makes it much easier to verify AI responses and understand the context behind the information provided.  **Note: This feature only works with Word docs and PDFs uploaded since August 18, 2025** ## Fixes ### Web • Fixed chat history bug in large organizations where older chats were not viewable for some members • Fixed contract language formatting issues where text was incorrectly displayed as code blocks # Sep 22, 2025 Source: https://docs.gc.ai/changelog/september-2025/sep-22-2025 ## Improvements ### Word **Improve 'Drafting' new language** When the Word add-in generates new 'draft' text (as opposed to redlines), we show where the draft text will be inserted in the document and show more of the paragraph text above and below where it will be inserted.  **Significantly improved document loading reliability** You can now open Word documents that previously caused crashes, with faster loading times and more accurate paragraph tracking for redlines and comments, even after content is moved or edited. # Sep 29, 2025 Source: https://docs.gc.ai/changelog/september-2025/sep-29-2025 ## Improvements ### Web • Removed Wikipedia from valid sources for research ### Word • Improved performance in Word document initialization • Made applying redlines more reliable ## Fixes ### Word • Fixed bug where Easy Prompt in Word did not work on the first prompt in a chat • Fixed bug in Word where bad internet connections resulted in disappearing AI responses during the stream • Fixed bug in Word where converted PDFs would crash the Add-in # Sep 1, 2026 Source: https://docs.gc.ai/changelog/september-2026/sep-1-2026 ## New Features **Connect Box** Connect Box from **Settings** to search files, pull a document into chat, and use Box as a Contract Intelligence source. Pick folders, set import filters, and pin files the same way you do with Drive, SharePoint, and OneDrive.
**Import a zip into a Vault** Drop a .zip of up to 1 GB on a Vault upload zone, and Contract Intelligence will unzip and begin processing the documents in the background. GC AI imports supported PDF, Word, and text files as individual documents and shows progress on the Sources page. ## Improvements ### Web • **Pending changes per document**: When several documents have edits in one chat, each file gets its own row with Apply, Undo, and Download, so an action affects only that document. • **Company profile defaults**: Under **Defaults** in the company profile picker, set **Your default** for your new chats, or **Project default** so new chats in that project start with that company.
• **Search a Vault by name**: You can now search your vault by name by clicking on the magnifying glass icon above your vault table
• **Grouped Vault filters**: Rules that share a field fold into one chip with an N values badge. Past six chips, the bar collapses to an N filters pill.
• **Naming in More actions**: After you apply a naming template, **Naming** moves from the toolbar into **More actions**, and a note shows how many documents were renamed. • **Duplicate Vault copies count once**: If the same file lands twice, for example a manual upload and a later Drive sync, GC AI keeps one copy. Duplicates no longer use extra document allowance or inflate Vault chat counts. • **Clearer spreadsheet import**: The Import spreadsheet dialog now explains that you are merging columns from your tracker into extracted Vault data, matching rows, then adding columns. • **Clearer Vault capacity message**: When a Vault hits its document allowance, the table says so instead of showing documents as still processing. • **Clarifying questions one at a time**: When GC AI asks follow-up questions, you see one question at a time with a 1 of N header, and every option stays visible. • **Per-person connector access**: Organization admins can set custom allow or restrict rules for a connector, so one teammate can have different Agent Connector or Document Storage access than the org default.
• **Skills list filters**: Filter skills by All, Mine, Shared, Organization, or GC AI. You can also sort by name, or collapse sections for easier navigation
• **Skills created in chat stay private**: A skill you create in chat lands in My Skills unless you ask to share it with your organization. • **Academy recordings stay available**: If you registered for a class, you can open the recording anytime, even if you missed the session.
• **Opt out of new connectors by default**: Under **Settings → Policies**, turn off **Enable new integrations by default**. New connectors stay off until an admin turns them on. • **Standing instructions stay in force**: When you give GC AI a standing rule in a chat, it keeps following it until you clearly change or drop it. ### Word • **Dictate chat prompts in Word**: Select the microphone in chat to speak your prompt. Review the transcript before you send it. ## Fixes ### Web • Fixed an issue where downloading a document from pending changes showed the redlines, then reverted the file back to the original. • Fixed an issue where a download after applying redlines returned a clean file without those edits. • Fixed an issue where a long document generation could time out and report that you interrupted it. • Fixed an issue where the Insert page break button in the document editor did nothing. • Fixed an issue where clicking a citation from a text file showed only the snippet, instead of opening the file. • Fixed an issue where web-source citations showed a View in File button that opened File not found. • Fixed an issue where Easy Prompt could rewrite your draft as if a file were attached when none was. • Fixed an issue where GC AI could not read documents it had just generated or edited in the same chat. • Fixed an issue where leaving a chat mid-response and coming back dropped the live reply. • Fixed an issue where reopened chats landed at the top of the thread instead of the latest message. • Fixed an issue where pressing Enter to pick a skill from the / menu also sent the message when Enter to send was on. • Fixed an issue where the skill / menu opened off-screen from the bottom composer. • Fixed an issue where pasting a skill into the composer inserted raw markdown instead of a skill chip. • Fixed an issue where Personalization closed as soon as the pointer left the collapsed sidebar. • Fixed an issue where drafted language in a document used the editor default style instead of the surrounding formatting. • Fixed an issue where "next Thursday" and similar dates could land on the wrong day. • Fixed an issue where playbook text could show through the Create Playbook wizard. • Fixed an issue where some Italian case law citations and body text were hard to read. • Fixed an issue where the Contract Intelligence preview page hid the sidebar menu when the rail was collapsed. ### Word • Fixed an issue where the Word task pane chat list could show a dark navy fill until you scrolled. # Account FAQ Source: https://docs.gc.ai/docs/account/account-faq Common questions about signing in, resetting your password, and managing your GC AI account. ## Signing In ### How do I sign in to GC AI? Go to [https://app.gc.ai](https://app.gc.ai) and use the **Sign In** tab. Enter the email associated with your GC AI account and your password (or use SSO if your organization has it set up).
If you already have an account, do **not** use the Sign Up tab. Sign Up is only for brand new accounts and will show an error if an account already exists for your email. ### Why am I seeing an error when I try to sign up? This usually means an account already exists for your email. Switch to the **Sign In** tab at [https://app.gc.ai](https://app.gc.ai) and sign in with that email instead. If you do not remember your password, use **Forgot password** on the Sign In tab. ## Resetting Your Password ### How do I reset my password? 1. Go to [https://app.gc.ai](https://app.gc.ai). 2. Make sure you are on the **Sign In** tab (not Sign Up). 3. Click **Forgot password**. 4. Enter the email on your GC AI account and submit. 5. Open the password reset email and follow the link to set a new password. The reset email typically arrives within a couple of minutes. ### I did not receive the password reset email. What should I check? * **Check Spam/Junk.** Reset emails are sometimes filtered, especially on consumer mailboxes (aol, yahoo, gmail) and on corporate mail with strict filtering. * **Confirm you used the right email.** Use the same email that is on your GC AI account. If you are unsure which email is on file, ask your organization admin or contact [support@gc.ai](mailto:support@gc.ai). * **Confirm you used Forgot password from the Sign In tab.** The Sign Up tab does not send reset emails. * **Wait a few minutes and try once more.** Some corporate mail systems delay first-time senders. * **Ask IT to allowlist `@gc.ai`.** If reset and verification emails are consistently slow or missing, your corporate email or network filter is likely blocking us. See [My verification email is slow or never arrives](#my-verification-email-is-slow-or-never-arrives-what-should-i-do). If none of those work, email [support@gc.ai](mailto:support@gc.ai) and we will look at delivery from our side. ## Changing Your Email ### How do I change the email on my account? You can change your email at [https://app.gc.ai/settings/account](https://app.gc.ai/settings/account). If the verification code does not arrive, check Spam/Junk first, then resend from the same settings page. If it still does not arrive, contact [support@gc.ai](mailto:support@gc.ai). ### My verification email is slow or never arrives. What should I do? If your verification email takes more than a few minutes to land (or never arrives at all), it is usually because your email provider or corporate network is filtering or quarantining mail from `@gc.ai`. To fix it: * **Check Spam/Junk and any quarantine views** in your mail client first. * **Contact your IT department** and ask them to allowlist (whitelist) `@gc.ai` and `@getgc.ai` in your email security gateway, spam filter, and any network filtering system you use. This is the most common cause of slow or missing delivery on corporate accounts. * **Add `support@gc.ai` and `noreply@gc.ai` to your contacts** so future messages from us are not flagged. For broader network requirements (firewall, proxy, app domains), see [Whitelisting Requirements](/security/whitelisting). If IT confirms nothing is being blocked on their side and you still are not receiving emails, contact [support@gc.ai](mailto:support@gc.ai) and we will look at delivery from our side. ## SSO and Organization Accounts ### My organization uses SSO. How do I sign in? You have two options: * **Use the GC AI tile in your SSO portal.** Select the GC AI tile in your organization's identity provider (for example, Okta) to sign in directly. * **Go to [https://app.gc.ai](https://app.gc.ai)** and you will be redirected to your identity provider to authenticate. Either way, you will not need a separate GC AI password. For more on SSO setup, see [SSO Setup](/security/sso-setup). ### I am locked out and SSO is not working. Contact your internal IT/identity admin first to confirm your SSO account is active. If they confirm everything is fine on their side, contact [support@gc.ai](mailto:support@gc.ai) and we will help reconcile your account. ## Still Need Help? Email [support@gc.ai](mailto:support@gc.ai) with: * The email address on your GC AI account * A short description of what you tried * A screenshot of any error message That gives our team enough to investigate without another round trip. # Automations Source: https://docs.gc.ai/docs/automations/overview Schedule recurring GC AI chats with the skills, playbooks, files, and instructions they need to run on their own. Automations are recurring GC AI chats. You set the task up once with the instructions, skills, files, playbooks, and context it needs, then pick a schedule. Each run starts a fresh chat with the results, so you have a stable record of every weekly scan, monthly review, quarterly close check, or scheduled briefing. Each Automation run produces a new chat in your history, the same way any other GC AI conversation does. The chat is named for the automation and dated for the run, so you can compare results across weeks. Open it, edit it, [share it](/docs/organizations/sharing), branch from it, or carry the conversation on manually like any other chat. ## What You Can Do with Automations * **Connect an automation to a [project](/docs/chat/projects)** so every run uses the project's files, instructions, and prior chats as context. * **Share with teammates** at read, write, or admin access — or make an automation visible to your whole organization. * **Pause and resume** when the work is on hold (a regulatory pause, a deal that is sleeping, a holiday week). * **Run manually** at any time without changing the schedule. * **Duplicate** an automation, or **Copy and Customize** one shared with you, to use as the starting point for a new variant. * **Get an email** when each run finishes so you can read the results when you have a minute. ## Where to Find Automations Automations show up in several places in GC AI: ### Automations page Open **Automations** from the left sidebar. This is where you can view and create all your automations.### Create menu 1. Click the **+** button. 2. Select **New automation**.
### Projects page Create or attach an automation to a [project](/docs/chat/projects) so each run inherits the project's files, instructions, and chat history.
### Skills From any [skill](/guides/prompting/creating-skills), click the Zap icon (or **Automate this skill**) to start a new automation pre-attached to that skill.
## Setting Up an Automation The setup is short. Open the automation form from any of the entry points above, then: 1. **Create the automation** and give it a clear, specific name (for example, "Weekly Ohio construction-law update"). 2. **Add a description** so teammates know at a glance what the run does. 3. **Write the instructions** GC AI should follow each time. Treat it like a short brief: the instructions need to stand on their own, since there is no live back-and-forth during the run. 4. **Attach the resources** the run depends on: * [Skills](/guides/prompting/creating-skills) (for example, a regulatory-scan skill or a playbook-review skill) * Files and folders (uploaded materials, your standard templates, internal memos) * [Playbooks](/about/playbooks) (when the run is reviewing a playbook itself or applying one) * [Company profile](/guides/organizations/creating-a-profile), [labels](/docs/chat/labels), or a [project](/docs/chat/projects) for organization-aware context 5. **Pick a schedule.** Choose **Daily**, **Weekdays**, **Weekends**, **Weekly** (one day a week), **Monthly**, **Quarterly** (relative to calendar quarter-end), or **Custom** (any combination of days), then pick the time and time zone. Use **Local timezone** if you want the automation to run at the same local time when you travel. 6. **Turn on email notifications** if you want a note in your inbox when each run is ready. 7. **Save.** The automation runs on the schedule you picked, and you can also run it manually any time from the automation page.
Click **Easy Automation™** above the instructions box to expand a short prompt into structured, best-practice instructions using your attached skills, files, and company profile. ## Example Workflows A few patterns we see in-house teams set up first: ### Weekly regulatory scan for a jurisdiction A weekly scan of new and proposed legislation, regulatory guidance, and enforcement actions in a single jurisdiction (for example, Ohio construction law). Attach a research skill, set the scope in the instructions, and let GC AI deliver a Monday-morning briefing each week. ### Scheduled playbook review A monthly check that keeps a [playbook](/about/playbooks) current with changing law. Attach the playbook itself and a "review for legislative drift" skill. GC AI reads the playbook, scans for regulatory developments since the last run, and flags clauses that may need updating. ### Weekly legal ops briefing A weekly digest of what is happening across a matter or workstream. Connect the automation to a [project](/docs/chat/projects), attach the relevant memos and uploaded materials, and write instructions that ask for a structured briefing (priorities, blockers, decisions needed). Each Monday you get a fresh chat with a teammate-shareable summary. ### Quarterly close checklist A quarter-end review that runs before or after Mar 31, Jun 30, Sep 30, and Dec 31. Attach the project, playbooks, and reporting materials you want reviewed, then choose a quarterly offset such as one week before quarter-end or two weeks after quarter-end. ### Daily briefing across connected apps After you [connect apps](/guides/organizations/agent-connectors), write instructions that ask GC AI to scan email, calendar, Slack, or other linked apps, then attach the skills and files the run needs. An official Daily Briefing template is not available yet. You can still schedule this as your own automation. ## Sharing and Ownership Each automation has a single creator. The creator owns the schedule, the run history, and any destructive actions (delete, share, change visibility). To bring teammates in, you have two options: * **Share with specific people.** Open the automation menu and pick **Share** to grant **Read**, **Write**, or **Admin** access to individual teammates. Everyone you share with sees the same automation; edits made by anyone with Write or Admin access apply to that one shared automation. * **Make it visible to your whole organization.** From the share dialog, turn off access controls to publish the automation to the **Organization** tab so anyone in your org can find it. If a teammate wants their own variant of an automation shared with them, they can click **Copy and Customize** on the detail page. That creates an independent copy in their account that they can edit freely without affecting the original. A few things to keep in mind: * **Run history stays with the creator.** Only the creator sees the list of past runs and the chats they produced. Teammates with access can read and edit the configuration and run it manually, but the run log on the page is creator-only. * **Attached skills are shared along with the automation.** If your automation references private skills you've authored, GC AI grants the people you share with read access to those skills automatically. Be thoughtful about what you attach before sharing. * **Project-attached automations** follow the project's access — anyone who can see the project sees the automation in its **Automations** section. ## Notifications You can turn on email notifications inside any automation. When each run finishes, GC AI emails you with a link to the new chat. Slack notifications are on the roadmap. ## Best Practices A few patterns from the in-house teams using Automations well: * **Write self-contained instructions.** A run cannot ask a clarifying question. Spell out the audience, the format you want, the depth you want, and what to do when sources disagree. * **Attach stable resources.** Pick the skills, files, and playbooks the run needs and keep them stable. If you rename a file or rework a skill mid-quarter, your run picks up the new version on the next schedule, which is usually what you want, but worth knowing. * **Connect to a project when context matters.** If the run is about a specific matter or workstream, link it to the project so the run sees the prior chats and shared files automatically. * **Be thoughtful about sharing.** Sharing grants access to the same automation (not a copy), and any private skills attached to it become readable to the people you share with. Audit the attached resources before you share. * **Pause when the work is on hold.** A paused automation skips its schedule and is one click away from resuming, with the configuration intact. * **Treat the first run as a draft.** Read the first chat carefully, refine the instructions, then let the schedule do its job. ## FAQ ### What does an automation create when it runs? A new GC AI chat in your history, with your saved instructions and attached resources already in place. You can read, edit, share, branch from, or continue the chat the same as any other GC AI conversation. ### Can I attach existing GC AI resources to an automation? Yes. Attach skills, files, playbooks, your [company profile](/guides/organizations/creating-a-profile), [project](/docs/chat/projects) context, and [labels](/docs/chat/labels). Any combination you would attach to a regular chat works inside an automation. ### Can I automate a skill I already use? Yes. From any [skill](/guides/prompting/creating-skills), click the Zap icon or **Automate this skill** to open the automation form with that skill pre-attached. Add the rest of the resources, write the instructions, and pick a schedule. ### Will I get notified when a run finishes? Yes. Turn on email notifications when you set up or edit an automation, and GC AI emails you when each run finishes. Slack notifications are on the roadmap. ### Can teammates share automations? Yes. From the automation menu, pick **Share** to grant Read, Write, or Admin access to specific teammates, or turn off access controls to publish the automation to your whole organization. If a teammate wants their own independent variant, they can click **Copy and Customize** to fork it into their account. ### Is this the same as API or workflow automation? No. Automations are recurring GC AI chats that run on a schedule inside the product. For programmatic access with API keys, see the [External API](/api-reference/introduction). For connecting your own apps inside chat, see [Agent Connectors](/guides/organizations/agent-connectors). ### Can I run an automation manually? Yes. Open the automation and click **Run now**. Manual runs do not change the schedule. ### What does Local timezone mean? **Local timezone** keeps the automation tied to your current browser timezone. If you set a weekday automation for 8 AM and then travel, GC AI updates the automation the next time you use the app or Word add-in, so future runs stay at 8 AM where you are. ### How do I pause an automation? Open the automation and toggle it to **Paused**. Paused automations skip their scheduled runs without losing their configuration. Toggle back to **Active** when you are ready. # Agentic Chat History Search Source: https://docs.gc.ai/docs/chat/agentic-chat-history-search Ask GC AI in chat to find past conversations, read relevant threads, and continue with that context in your current conversation. **Agentic Chat History Search** lets you ask GC AI to find conversations across your chat history. GC AI surfaces matching chats with titles and summaries, links you back when you want to reopen one, and can read a relevant prior chat to bring that context into the conversation you are in now. ## When to use it Use Agentic Chat History Search when you: * **Use separate GC AI chats** for different matters, clients, or topics and need to find the right one again later * Remember **what** you discussed but not **which chat** it was in * Want GC AI to **find a prior chat, read it, and answer from that context** without you hunting in the sidebarPhrases like "search my history," "find that chat where I asked about…," or "what did we say about termination for convenience in the ToyCo chat?" tell GC AI to search your chat history rather than the web. ## How it works 1. **You ask in chat** using natural language (see example prompts below). 2. **GC AI searches** your accessible chat history and returns matching conversations with titles, summaries, and links. 3. **GC AI can read** a relevant prior chat and use what you discussed there to answer in your **current** conversation. You may see **Searched chat history** and **Read chat \[title]** indicators in the thread as GC AI works. ## Example prompts * "Find the chat where I compared Acme's liability cap to our standard." * "Search my history for conversations about force majeure carve-outs." * "What did we conclude about the NDA template in an earlier chat?" * "Find my past chats about GDPR data processing addenda and summarize what we decided." * "Find the LP Interviews project, then search for the privacy DPIA exercise." ## Agentic search vs sidebar search | | **Agentic Chat History Search** | **Sidebar search** | | ----------------- | --------------------------------------------------------------------------------- | ------------------------------------------------------ | | **How you start** | Ask in chat | Type in the sidebar search box | | **What you get** | Matching chats; GC AI can read and use prior context in your current conversation | A list of chats to open yourself | | **Best for** | Finding the right conversation and continuing from prior work in one flow | Quickly locating a chat you remember by title or topic | Both use your chat history. Sidebar search helps you **find and open** a chat. Agentic search helps you **find, read, and keep working** from prior conversations in the chat you are in now. ## Projects and shared chats Agentic Chat History Search covers standalone chats and chats inside projects. Results show the project name when a match lives in a project. Ask GC AI to find a project by name, then search chats inside that project. Example: "Search the LP Interviews project for the DPIA exercise." Inside a [project](/docs/chat/projects), GC AI can also list and read sibling chats in that project without a keyword search. GC AI only searches conversations you can access: your chats, shared chats, and project chats you can read. It does not surface conversations outside your permissions. ## Tips * **Rename chats** with descriptive titles ([How to Rename a Chat](/docs/chat/how-to-rename-a-chat)) and use [labels](/docs/chat/labels) so sidebar search and history search both surface the right threads faster. * For **quoting or analyzing specific contract language**, attach or link the source document in your current chat. Prior conversation summaries help you recall what you discussed; the source document is still the authority for clause-level claims. # AI Model Opt In/Out Source: https://docs.gc.ai/docs/chat/ai-model-opt-in-out How admins on Teams and Enterprise plans opt in to Claude Fable 5 and opt out of AI model providers. ## AI Model Opt Out Organization admins on Teams and Enterprise plans can now opt-out of AI model providers GC AI uses for their organization. In Settings, admins can switch a toggle to prevent use of one or more models from the following providers: Anthropic (Claude), OpenAI (GPT), and xAI (Grok). Turning a provider off means that provider's models will not be used for chat or any other product features. GC AI will instead use the next best model for each task. The change is reversible anytime and every change is recorded (who, when). We know some organizations have policies around which AI providers they can use. You now have full control to enable or disable specific models directly from your Organization Settings, no need to contact us. ### Setup Instructions For organization admins: 1. Go to Settings > Organization > AI model providers 2. Turn the provider off. GC AI will ask you to confirm and let you know about anything the change may affect. 3. The change applies to every member in your organization immediately. The AI model provider toggle table shows who turned it off and when. 4. You can turn it back on anytime from the same place. For members: Nothing to do. GC AI will not route to any models from providers your admin has turned off. Notes: * A provider that is restricted in your agreement with GC AI shows as locked and cannot be changed in settings; contact support for additional assistance with those models. * You cannot turn off every provider. GC AI always keeps at least one chat provider available so your team can keep working. * Google (Gemini) is not toggleable at this time. ## Claude Fable 5 Overview Claude Fable 5 is a Mythos-class model from Anthropic, available to customers on Teams and Enterprise plans in GC AI. GC AI has ZDR in place with Anthropic, however it does not apply to the Fable 5 model. Fable 5 follows [these data retention terms](https://support.claude.com/en/articles/15425996-data-retention-practices-for-mythos-class-models), which retains data sent to Claude Fable 5 for 30 days for "safety work." On GC AI's benchmark of 100 demanding in-house legal tasks (contract analysis, multi-document review, regulatory interpretation, drafting), Claude Fable 5 outperformed every other model in the suite. Fable 5 is also slower than other Anthropic models. If you are not using Claude Fable 5, then your zero-data retention stays in place, regardless of the other models selected. Claude Fable 5 is off by default until an organization admin reviews the terms and enables it. ### Setup Instructions For organization admins: 1. Go to Settings > Organization. 2. Find Claude Fable 5 and review the data retention terms shown in the consent dialog. 3. Enable it. 4. The change applies to every member in your organization immediately. The AI model provider toggle table shows who turned it on and when. 5. You can turn it back off anytime from the same place. For members (once your admin has enabled it): Nothing to do. GC AI automatically routes conversations to Claude Fable 5 on the backend, the same way it manages model routing generally. # AI Models Source: https://docs.gc.ai/docs/chat/ai-models AI Models used by GC AI GC AI uses advanced large language models (LLMs) from leading AI providers to deliver features like contract analysis, legal research, and policy drafting. Your data is processed securely by these models and is never used for training by the providers. GC AI automatically selects the best model for each task. You don't need to choose a model manually. The system handles this behind the scenes, including automatic fallback to alternative models if a provider experiences issues. ## 🤖 AI Providers ### Anthropic GC AI integrates multiple models from Anthropic's Claude family, ranging from highly capable reasoning models for complex legal analysis to faster models for lighter tasks. ### OpenAI GC AI uses OpenAI's most advanced models for complex reasoning and analysis. ### Google GC AI incorporates Google's Gemini models for legal queries and document analysis. ### xAI GC AI uses xAI's Grok models for chat and analysis as part of its model lineup. Please visit our [subprocessor page](https://gc.ai/subprocessors) for information about zero data retention (ZDR) with our underlying service providers.Admins on Teams and Enterprise plans can opt in to Claude Fable 5 and opt out of specific AI providers from Organization Settings. See [AI Model Opt In/Out](/docs/chat/ai-model-opt-in-out) for details. These controls are available on Teams and Enterprise plans only. ## 🔄 Model Fallback Chains GC AI uses cross-provider fallback chains to ensure reliability. If a primary model is unavailable or experiences issues, your request automatically routes to the next model in the chain, often from a different provider entirely. This means you get uninterrupted service even during provider outages. For example, if the primary Anthropic model is unavailable, your request may automatically fall back to a Google or OpenAI model. ## 🔍 Cohere (Embeddings Only) GC AI uses Cohere's embedding model for semantic search across your documents. Cohere is not used for chat responses. It powers the behind-the-scenes search that helps GC AI find relevant passages in your uploaded files. GC AI regularly updates its available models to give you the best results. You do not pick a model for each chat. GC AI routes the request automatically, including fallback if a provider has an issue. *** ## 🔐 Learn More About Security and Privacy For a comprehensive overview of how GC AI handles your data, including detailed security measures and privacy commitments across all integrated services, see our [Security and Privacy FAQs](https://gc.ai/security). # US Case Law Source: https://docs.gc.ai/docs/chat/case-law Search and analyze 13M+ US court opinions directly in chat. Get cited, synthesized answers grounded in primary authority. GC AI includes a dedicated US case law database directly in chat. Ask a case law question in plain language and get a cited, synthesized answer grounded in the actual opinions. Every cited case links to the full text through a built-in Opinion Reader. ## How it works 1. **Ask your question.** Type a case law question in chat. GC AI automatically searches relevant opinions when your question calls for it. 2. **GC AI searches and reads.** GC AI searches the database, reads full opinions, checks treatment status where available, and synthesizes an answer with citations. 3. **Verify your sources.** Click any hyperlinked case name or use the View Opinion button in the citation hover card to open the full opinion in the sidebar. Search within it or download it. You'll see a "Searched case law" indicator in the chat when GC AI uses the case law database. Expand it to see which cases were retrieved. ## Source controls US Case Law is **on by default**. GC AI searches case law whenever your question calls for it, without any setup required. You can adjust your sources from the **Add menu**: * **US Case Law toggle**: Turn off if you don't regularly need case law in your conversations. This setting persists across chats. * **Web toggle**: Turn off for case law only results. This setting applies within a single conversation. * **Advanced Settings**: Open the jurisdiction picker to filter by court level and state. This setting applies within a single conversation.Specifying jurisdiction directly in your query (e.g., "under Delaware law") is often faster than using the jurisdiction picker. ## What's in the database The case law database includes 13M+ US opinions covering: * Federal courts at every level (Supreme Court, Circuit Courts, District Courts) * State supreme and appellate courts across all 50 states and D.C., plus the Court of Chancery for Delaware * Select specialized courts (e.g., Tax Court) Opinions are sourced from authoritative publishers like court websites and government records through Midpage AI. The database is actively maintained and regularly updated. ## Opinion Reader Click a hyperlinked case name in any response to open the full opinion in the sidebar, or hover or click a citation and click **View Opinion**. From the Opinion Reader you can: * Read the complete opinion text * Search within the opinion for specific terms * Download the opinion The Opinion Reader opens alongside your chat, so you can verify sources without losing your place in the conversation. ## Citations and treatment Every case GC AI cites links to the full opinion. Citations appear as hyperlinked case names in the response. When treatment information is available, GC AI displays treatment flags alongside citations: * **Negative**: The case has been reversed, overruled, or otherwise negatively treated * **Cautionary**: The case has been distinguished, questioned, or criticized * **Positive**: The case has been followed or affirmed * **Neutral**: Notable subsequent history without a clear positive or negative signalTreatment flags are not available for every case. For recent decisions or cases with limited subsequent history, treatment may not appear. Always verify critical citations independently. ## Case law summary tables For multi-case research questions, GC AI may produce a structured summary table breaking down each case by: * Citation * Facts * Issue * Holding * Application to your question Summary tables are especially useful for jurisdiction surveys, comparing how different courts handle the same issue. ## Combining case law with other work Case law works alongside everything else in GC AI. In a single conversation you can: * Upload a contract, flag risks, then research the case law on specific issues * Ask a case law question, then draft a memo incorporating the findings * Combine web research and case law for a comprehensive answer * Use case law to support a position in a negotiation Case law is also available in chats within a [Project](/docs/chat/projects) and in chats run as part of [Automations](/docs/automations/overview). ## Example prompts * **Contract clause enforceability** ([sample chat](https://app.gc.ai/shared/532c1377-e648-43d5-af0d-f7abeef064cd/chat/61d8aca4-12b7-40ad-aabd-e0fb6cf27ed0)): "We're negotiating a SaaS agreement governed by Delaware law. Can we enforce the forum selection clause in our customer terms of service?" * **Multi-jurisdiction survey** ([sample chat](https://app.gc.ai/shared/532c1377-e648-43d5-af0d-f7abeef064cd/chat/195c94f5-42dd-4c2d-868e-9070779746f6)): "Do New York, Illinois, and Texas courts recognize the inevitable disclosure doctrine for trade secrets? Compare their approaches." * **Evolving precedent tracking** ([sample chat](https://app.gc.ai/shared/532c1377-e648-43d5-af0d-f7abeef064cd/chat/68ad3c80-df57-44b7-8258-447545bb0730)): "How are courts in the Second Circuit applying Muldrow v. City of St. Louis to Title VII retaliation claims? Is 'some harm' now the standard, or does the Burlington Northern 'materially adverse' test still apply to retaliation?" * **Case lookup and plain-language summary** ([sample chat](https://app.gc.ai/shared/532c1377-e648-43d5-af0d-f7abeef064cd/chat/23e6518a-abea-4f49-bc2c-61aadaa6cb57)): "Pull up E.M.D. Sales, Inc. v. Carrera, 604 U.S. 45. Summarize the holding and draft an email from me containing 3-4 plain-language takeaways I can share with my leadership team." ## Availability US Case Law is included in all Team and Enterprise plans. For Individual seats, it is available as an [add-on](https://gc.ai/pricing). ## Data and security Case law data is provided by Midpage AI, a subprocessor that provides the legal research database and search infrastructure. Midpage is SOC 2 Type II compliant. Their role is limited to providing legal research content and search infrastructure. GC AI does not maintain a case law corpus. Opinions are fetched live from Midpage's API when you search or open the Opinion Reader. Citation snippets and metadata are stored as part of your chat history for display purposes only. ## Common questions ### Is this available outside the US? US case law is available now. Additional jurisdictions, namely EU and UK case law, will launch next. ### How does this compare to traditional legal research platforms? Traditional legal research platforms give you a search interface to run boolean queries and read results. GC AI is AI-native: you describe what you need in plain language, and GC AI searches, reads, and synthesizes opinions into a cited answer. Your time goes to evaluating the analysis. For exhaustive litigation research, like building a complete state trial court research trail, reviewing academic treatises, or pulling full administrative tribunal dockets, some teams keep a traditional research platform seat alongside GC AI. ### How is this different from AI assistants built on proprietary legal databases? These products add a generative AI layer on top of databases originally built for manual, keyword-driven research. The AI and the database are tightly coupled, and the fit between the two can affect the quality of results, especially when the underlying architecture wasn't designed for AI-driven retrieval. GC AI's case law capabilities were built around AI from the start. Case law is fetched live from a dedicated legal database and read alongside your contracts, playbooks, and company context, so the output is grounded in the work in front of you. Each cited case links to the full opinion. ### How is this different from general-purpose AI platforms with legal plugins? Some general-purpose AI platforms offer legal plugins that connect to third-party research databases and other legal tools. The research experience depends on which connectors you've set up and which subscriptions you hold. GC AI is built for in-house counsel. US Case Law is built directly into the same workspace your team already uses for contracts, drafting, web research, playbooks, and company context, with control and verification designed into the experience. There are no modes to switch between and nothing to install. ### Is US Case Law available in shared chats? Case law citations are visible in shared chats. Authenticated org members with US Case Law access can click through to read the full opinion. Readers viewing a shared chat via a public link can see the citations but cannot open the full opinion. ### How current is the data? Midpage AI's database is actively maintained and regularly updated. There may be a short lag before newly published opinions appear in GC AI, as Midpage processes the data before it becomes searchable. # Understanding the Context Window in GC AI Source: https://docs.gc.ai/docs/chat/context-window When you use GC AI to analyze contracts or draft policies, you might wonder how it keeps track of everything you've uploaded or asked. That's where the context window comes in. The context window is the amount of information GC AI can "see" and work with at one time, like the working memory it uses to understand your documents and questions. ## What Is a Context Window? The context window is the maximum amount of text (measured in tokens, which are bits of words or phrases) that GC AI can process in a single conversation. It includes your messages, the AI's responses, document content accessed during the conversation, and your Company Profile context. The baseline context window is **200,000 tokens** (roughly 150,000 words). Some models support significantly larger windows. Claude Sonnet 4.6 and Gemini 3.1 Pro support up to 1,000,000 tokens. ## Context Usage IndicatorGC AI displays a visual context usage indicator that shows how much of the context window you've used in your current conversation. The indicator includes: * **Percentage used** of the total context capacity * **Token breakdown** showing input and output usage * **Color-coded warnings**: the indicator changes color as you approach the context limit (90%+ shows a warning) This helps you monitor your context usage and plan accordingly. For example, starting a new chat when you're approaching the limit. ## Smart Document Access GC AI uses an on-demand approach to document access rather than loading all document content into the context window upfront. When you attach documents or files, the AI uses specialized tools to: * **Read specific sections** of a document as needed * **Search across documents** for relevant passages using keyword matching * **Query document content** using semantic search to find conceptually related information This means you can work with many more documents than would fit in the context window at once. The AI accesses only the portions it needs for each response, keeping context usage efficient. ## Why It Matters for You As an in-house counsel, you deal with complex legal work daily. Here's how the context window and smart document access help: * **Large Documents:** GC AI can handle individual documents up to 50MB. The AI reads relevant sections on demand rather than consuming the entire context window. * **Multiple Documents:** The on-demand approach lets you work with larger document sets than would otherwise fit in context. * **Connected Analysis:** Ask about a clause on page 45, and GC AI can look up the definitions from page 45 using its document tools, keeping everything connected without filling the context window. * **Tailored Advice:** Your Company Profile context is included to provide organization-aware responses. ## Model Fallback on Context Overflow When your conversation approaches the context limit, GC AI can automatically fall back to a model with a larger context window to continue serving your request. This cross-provider fallback happens transparently. You won't need to take any action. ## Tips for Managing Context * **Watch the indicator:** Keep an eye on the context usage indicator during long conversations or multi-document analysis. * **Start fresh when needed:** For new topics or when context is running low, start a new chat. * **Let the AI search:** Rather than pasting large amounts of text, upload documents and let GC AI's tools search and read what's needed. * **Be specific:** Clear, focused questions help the AI access only the relevant document sections, keeping context usage efficient. # Dictation Source: https://docs.gc.ai/docs/chat/dictation Dictation for prompting in GC AI Dictation lets you speak your prompt in GC AI chat on the web or in Word. GC AI converts your speech to text so you can review it before sending. ## How It Works 1. **Activate:** Select the **microphone** button in the chat interface 2. **Speak:** Talk clearly into your microphone for up to 3 minutes 3. **Dictate:** GC AI converts your speech to text using AI 4. **Submit:** Review the dictated text and select the **Enter** button to send your message ## Features * **Error Handling:** Automatic detection of no speech and permission issues * **Mobile Optimized:** Works seamlessly on mobile * **Works with Easy Prompt:** After dictating, you can use [Easy Prompt™](/guides/prompting/using-easy-prompt) to refine your spoken input before sending * **Message Queue Compatible:** Dictate follow-up messages while GC AI is still responding. They'll be queued automatically. ## Use Cases * **Legal Research:** "What are the key provisions of the Texas AI Governance Act?" * **Document Drafting:** "Draft a follow-up email about the unsigned NDA" * **Risk Analysis:** "Analyze the risks in our vendor contract terms" * **Quick Queries:** Perfect for on-the-go questions when typing isn't convenient ## Tips * Speak clearly and at a moderate pace * Minimize background noise * Review dictated text before submitting * For complex legal terms, speak slowly for accuracy # Email Drafting Source: https://docs.gc.ai/docs/chat/email-drafting Draft and send emails directly from your GC AI conversations  GC AI can draft emails directly in chat. When you ask the AI to write, compose, or reply to an email, it creates a structured draft with editable fields that you can copy or open in your email client. ## 📝 Drafting an Email Ask GC AI to draft an email in natural language. For example: * "Draft an email to opposing counsel about the scheduling conflict" * "Write a follow-up email to the vendor about the missing DPA" * "Reply to this email declining the proposed terms" GC AI generates a draft card with pre-filled fields: * **To** - Recipient email address(es) * **CC / BCC** - Optional additional recipients * **Subject** - Email subject line * **Body** - The full email text You don't need to provide a recipient address. GC AI drafts the email with an empty **To** field, and you can add recipients when you open it in your email client. Sending directly from GC AI with a connected account requires a recipient, so ask GC AI to add one to the draft first. ## ✏️ Editing Your Draft The email body appears in an editable text area within the draft card. Revise the wording, add details, or make any changes before sending. ## 📤 Sending Options Once your draft is ready, you have three options: 1. **Send with a connected account** - If you have connected Gmail or Outlook, the send menu lists each connected account under **Use existing connector**. Pick one and GC AI sends the email for you, formatting included, with links intact. The card then shows a Sent confirmation. GC AI never sends on its own: you decide when the email goes out. 2. **Copy** - Copies the email body to your clipboard so you can paste it into any email client 3. **Open in Email Client** - Opens a pre-filled compose window in Gmail, Outlook, or your default email app To connect an account you haven't linked yet, use **Add new connector** in the send menu and pick Gmail or Outlook. After you connect, GC AI sends the draft for you. If the email body exceeds URL length limits when opening in an email client, GC AI automatically copies the full body to your clipboard and shows a notification. Sending with a connected account has no such limit and keeps hyperlinks clickable. ## 🔒 Privilege Marking If you have privilege marking configured in your Personal Profile, a checkbox appears on email drafts: * Check **Include privilege marking** to prepend your privilege text to both the subject line and body * Uncheck it to send without the marking This gives you per-email control over privilege marking without changing your profile settings. ## 💡 Tips * GC AI always generates a subject line, even if you don't specify one * Provide context about the purpose and tone you want for better results * You can ask GC AI to revise the draft in a follow-up message, and it generates a new draft card * Email drafting works for emails only. For memos, letters, or Slack messages, GC AI responds in the chat thread instead # How to Download a Chat Source: https://docs.gc.ai/docs/chat/how-to-download Learn how to download and export your GC AI chat conversations. GC AI offers multiple ways to export your conversations and content. ## Exporting a Full Chat To download an entire conversation: 1. Open the chat you want to export. 2. Select the export option in the chat header. 3. Choose your preferred format: * **PDF**: Best for sharing and archiving * **DOCX**: Best for further editing in Word * **Markdown**: Best for plain text or developer workflows Your exported chat includes a detailed "Citations" section when applicable: * **With citations included:** A "Citations" section appears at the end of your downloaded file, detailing each citation with its number, the quoted text, and the source filename. * **Without citations included:** The downloaded file will not contain citation markers or the "Citations" section, giving you a cleaner version focused on the conversation. ## Exporting Individual Messages You can also download individual AI responses rather than the entire chat. Select the download option on any message to save just that response in PDF, DOCX, or Markdown format. ## Exporting Tables When GC AI generates tables in its responses, you can export them separately in formats optimized for data work: * **CSV**: For spreadsheets and data analysis * **XLSX**: For Microsoft Excel with formatting preserved * **PDF**: For sharing and archiving * **DOCX**: For Word documents * **Markdown**: For plain text ## Generating Slides GC AI can generate PowerPoint (PPTX) slide decks directly from chat. See [Creating PowerPoint Slides](/guides/prompting/creating-powerpoint-slides) for details on how to generate presentations.
Chats must be downloaded individually and cannot be bulk downloaded. # How to Rename a Chat Source: https://docs.gc.ai/docs/chat/how-to-rename-a-chat Learn how to rename your chats in GC AI for better organization and quick recall. Being able to rename your chats makes it much easier to find and recall specific conversations. GC AI provides a simple way to customize chat names to help you stay organized and quickly locate previous discussions. ## Video Tutorial Watch this quick tutorial to see how to rename your chats: ## How to Rename a Chat To rename your current chat, follow these simple steps: 1. **Select the Pencil Icon:** Look for the pencil (edit) icon next to the chat title in the header of your current conversation. 2. **Enter a New Chat Title:** Click on the pencil icon and type a descriptive name that will help you instantly recognize and recall this conversation. For example: * "Q3 2025 Contract Review - Acme Corp" * "Employment Agreement Template Updates" * "GDPR Compliance Research" 3. **Automatic Save:** The new chat name will be automatically saved as soon as you finish typing or click outside the text field. There's no need to press a save button.Chat names are automatically saved when you click outside the text field. ## Best Practices for Chat Naming * **Be Specific:** Use descriptive names that include key details like client names, project codes, or specific legal issues. * **Include Dates:** For time-sensitive matters, consider including dates in your chat names (e.g., "2025-10 Board Meeting Minutes Review"). * **Use Consistent Naming Conventions:** Develop a naming system that works for your workflow (e.g., "\[Client] - \[Matter Type] - \[Date]"). * **Update as Needed:** Don't hesitate to rename chats as their focus evolves or becomes clearer. ## Chat Labels You can organize chats further with [Chat Labels](/docs/chat/labels): * Tag conversations with color-coded labels and filter your chat history in the sidebar * Create custom label names and colors, and assign multiple labels per chat * Use labels in both the web app and GC AI for Word ## Why Custom Chat Names Matter The auto-generated chat names created by GC AI are helpful but may not always be specific enough for quick recall. Custom naming allows you to: * Quickly find previous analyses on specific issues * Better organize your legal research * Maintain clear records of client-related discussions * Overcome limitations when the search feature doesn't surface the exact conversation you need By taking a few seconds to rename your chats with meaningful titles, you'll save significant time when returning to previous work and maintain better organization of your GC AI conversations. # How to Report a Chat Source: https://docs.gc.ai/docs/chat/how-to-report-a-chat Report a problem with a GC AI chat, including chats that fail before the first reply. When something goes wrong in a chat, you can send feedback directly from GC AI. Reports include the chat link and the messages our team needs to investigate. ## Report an entire chat Use **Report chat** when the problem affects the whole conversation. This works even when GC AI never sends a first reply. 1. Open the chat where you saw the issue. 2. Select **Chat settings** (⋯) in the chat header. 3. Select **Report chat**. 4. Describe what went wrong in the text box. 5. Select **Submit report**.![]()
![]()
After you submit, GC AI shows a confirmation toast. Our team reviews reports in the order they arrive. We reach out if we need more detail.
**Report chat** is available as soon as the chat has a title in the header. You do not need to wait for an assistant reply. ## Report a specific response When one answer is wrong but the rest of the chat looks fine, rate that message instead of reporting the whole chat. 1. Find the assistant message you want to flag. 2. Select the **thumbs down** icon under the message. 3. Describe what went wrong. 4. Select **Submit feedback**.Use **Report chat** for errors that happen before any reply, connection failures, or issues that affect the full conversation. Use **thumbs down** when a single response missed the mark. ## Add a screenshot Screenshots help when the issue is visual: a broken layout, a missing button, or an error banner. 1. Capture the screenshot on your computer. 2. Open **Chat settings** (⋯) and select **Copy link to chat** so our team can open the same conversation. 3. Email [support@gc.ai](mailto:support@gc.ai) with: * The chat link you copied * A short description of what went wrong * The screenshot attached to the email You can still submit **Report chat** or **thumbs down** feedback in the app. The in-app form captures your message and chat context automatically. Email with a screenshot is best when a picture shows the problem more clearly than words alone.
Do not include client-confidential document text in screenshots unless your organization allows it. Crop or redact sensitive content when you can. ## What to include in your report Helpful reports usually mention: * **What you expected** GC AI to do * **What happened instead**, including any error text * **When it happened**, if timing matters (for example, right after you attached a file) * **A screenshot**, when the issue is visual (see above) You do not need to copy message text into the report form. GC AI attaches the relevant chat context when you submit from the app. ## Other ways to get help * For product how-to questions, ask in any chat at [app.gc.ai](https://app.gc.ai). GC AI searches [docs.gc.ai](https://docs.gc.ai) and links you to the right page. * For billing, access, or add-in issues, see [Get Support](/support). * Before you contact support, check the [GC AI status page](https://status.gc.ai/) for ongoing incidents. # Understanding the GC AI Chat Interface Source: https://docs.gc.ai/docs/chat/interface-overview Explore the features and capabilities of the main chat interface in GC AI.The GC AI chat interface is your primary workspace for interacting with the AI. Here, you can ask legal questions, request document drafting or analysis, get summaries, conduct research, and export your work. Understanding its features will help you work more efficiently. ## Core Chat Functionality At its heart, the chat interface works like most messaging applications: 1. **Input Field:** Type your requests, questions, or instructions into the text box at the bottom. When pasting text: * Content up to 6,000 characters remains as editable chat text * Content exceeding 6,000 characters is automatically converted to a downloadable text file attachment 2. **Submit:** Select the **Submit** button (or press Enter) to send your message to GC AI. 3. **Conversation History:** Your interactions with GC AI are displayed in a chronological thread, making it easy to follow the conversation and refer back to previous exchanges. ## Key Features ### AI Models and Reasoning
* **Multiple AI Models:** GC AI uses leading models from providers like OpenAI, Anthropic, Google, and xAI, automatically selected for your task. You do not pick a model in the product. Cross-provider fallback chains ensure reliability if any provider experiences issues. * **Advanced Thinking:** For complex requests, GC AI uses a structured 5-step reasoning process: scoping the question, performing a systematic sweep of relevant information, tracing patterns, accounting for completeness, and reconciling findings. You'll see a "Thinking" indicator when this process is active. * **[Easy Prompt™](/guides/prompting/using-easy-prompt):** Optimize your questions before sending them. Easy Prompt refines your prompt for better results. * **[Voice Input](/docs/chat/dictation):** Speak your questions using the microphone button (up to 3 minutes per recording). ### Research and Document Analysis
* **[Research Agent](/docs/chat/research):** For questions requiring current information, GC AI launches parallel research subagents that search and analyze multiple web sources simultaneously. Visual progress cards show each research thread in real time. * **Smart Document Access:** When you upload documents or attach files, GC AI uses specialized tools to read, search, and query your documents on demand, rather than loading everything into context at once. This lets you work with more documents efficiently. * **Web Page Analysis:** Paste a URL into the chat and GC AI can access and analyze its content. This is useful for reviewing terms of service, summarizing articles, or checking web content for compliance. ### Message Queue
You can send follow-up messages while GC AI is still responding. Messages are queued and processed in order, so you don't need to wait for each response before asking your next question. You can pause, resume, or remove queued messages. ### Context Usage Indicator
A visual indicator shows how much of the AI's context window you've used. The indicator changes color as you approach the limit: * Shows percentage used, input/output tokens, and total capacity * Context baseline is 200k tokens, with some models supporting up to 936k or more * When context is nearly full, GC AI can automatically fall back to a model with a larger context window ### Citations
When GC AI references your documents, responses include numbered citation badges. You can: * Hover over a citation to preview the quoted text * Click a citation to open the source document with the relevant passage highlighted * Copy text with citations included ### Conversation Branching
You can branch from any AI response to explore different directions while keeping your original conversation intact. This lets you test alternative approaches, compare strategies, or pursue tangential questions without losing context. ### Export
* **Full Chat Export:** Download entire conversations as PDF, DOCX, or Markdown * **Per-Message Download:** Download individual messages in PDF, DOCX, or Markdown * **Table Export:** Export tables from responses as CSV, XLSX, PDF, DOCX, or Markdown * **[Slides](/guides/prompting/creating-powerpoint-slides):** Generate PowerPoint slide decks directly from chat ### Report a problem If a chat fails, returns an unexpected answer, or shows a visual bug, use **Report chat** in the chat header menu (⋯). You can also flag a single response with the thumbs down icon under that message. See [How to Report a Chat](/docs/chat/how-to-report-a-chat) for details, including how to send a screenshot to support. ### Projects * **[Projects](/docs/chat/projects):** Group related chats and files into a shared workspace * **Cross-Chat Memory:** GC AI can reference prior chats in the same project, so each new conversation builds on prior work * **Custom Instructions:** Set project-level guidance that applies to every chat automatically * **Collaboration:** Share projects with teammates and control access with Read, Write, and Admin permissions ### Workflows * **[Skill Library](/guides/prompting/using-skills-in-chat):** Type `/` in the chat box to search and attach a skill. You can also open the library from the **+** menu to browse My Skills, Shared with Me, Organization Skills, and GC AI Skills * **[Company Profile](/guides/organizations/creating-a-profile):** Information from your Company Profile is automatically used to provide organization-aware responses tailored to your business context * **[Skills](/guides/prompting/creating-skills):** Save and reuse your frequently used workflows ## Tips for Effective Chat Usage * **Be Specific:** The clearer your prompt, the better the response. * **Provide Context:** Upload relevant documents or provide background details. * **Use Easy Prompt:** Let Easy Prompt™ refine your questions for optimal results. * **Attach a skill with /:** Type `/` in the chat box to search skills and insert one as a chip in your message. * **Queue Follow-ups:** Don't wait for a response. Send your next question and it will be queued automatically. * **Branch When Exploring:** Use conversation branching to test different approaches without losing your main thread. * **Watch the Context Indicator:** Keep an eye on context usage when working with many documents or long conversations. # Chat Labels Source: https://docs.gc.ai/docs/chat/labels Organize and filter your chats with color-coded labels Chat labels let you tag conversations with color-coded markers so you can organize and filter your chat history. Labels appear as colored chips in the chat sidebar and work across both the web app and the Word add-in. ## 🏷️ Creating Labels 1. Open the chat settings dropdown on any chat 2. Select **Labels** 3. Click **Add/manage chat labels** 4. Choose a color and enter a name 5. Click **Add** You can pick from 10 preset colors or use the color picker to choose any custom color. Label names can be up to 100 characters and must be unique within your account. ## 📌 Assigning Labels to Chats 1. Open the chat settings dropdown on any chat 2. Select **Labels** 3. Check the boxes next to the labels you want to apply A single chat can have multiple labels. Labels appear as colored chips below the chat title in your sidebar, showing up to three with a **+N** indicator for any additional ones. ## 🔍 Filtering by Labels Click any label chip in the chat sidebar to filter your history to chats with that label. You can also use the filter dropdown at the top of the sidebar to select one or more labels. When multiple labels are selected, chats matching any of the selected labels are shown. To clear filters, click **Clear filters** or deselect all labels in the dropdown. ## ✏️ Editing and Deleting Labels 1. Open the label management dialog from any chat's **Labels** submenu 2. Click the pencil icon to rename a label or change its color 3. Click the trash icon to delete a label Deleting a label removes it from all chats it was assigned to. # Projects Source: https://docs.gc.ai/docs/chat/projects Group related chats and files into a shared workspace with AI-powered cross-chat awareness Projects let you organize related work into a single workspace. Each project brings together chats and files so your AI conversations share context automatically. ## 🗂️ What Projects Do A project acts as a container for everything related to a matter, deal, or initiative. When you create a chat inside a project, GC AI can: * Access all files linked to the project * Read other chats in the same project for cross-conversation context * Follow custom instructions you set at the project level This means you spend less time re-uploading files or repeating background information across chats. ## 🧩 Project Components ### Custom Instructions Each project has an **Instructions** section on the right sidebar where you can provide guidance that applies to every chat in the project. Use this for matter-specific context, preferred formatting, or standing directions that GC AI should follow. You need **Edit** access (or be the project owner) to edit instructions. ### Company profile A project can have one default company profile. New chats in the project use this profile instead of each member's personal default. Members can use the project default in that project's chats. This access does not let them view or edit the profile elsewhere. You need **Edit** or **Admin** access to change the project default. Set the default from a project chat's company profile picker. You can also set it when you create or edit the project. See [Create and manage a company profile](/guides/organizations/creating-a-profile) for steps and screenshots. ### Chats Every project has its own chat list. You can start new chats directly from the project page or move existing chats into the project. Drag chats from the left sidebar into the project's **Previous chats** section, or use the chat menu to add or move a chat. You can also remove a chat from the project through the chat menu on the project page. A chat belongs to one project at a time. When GC AI responds in a project chat, it can reference information from sibling chats in the same project, giving it awareness of your prior work. ### Files You can add files to a project in several ways: * **Upload from your computer** (individual files or folders) * **Import from Google Drive** (when connected) * **Add from Files** to link existing files or folders from your organization's file library * **Drag and drop** files directly onto the project page All files linked to a project are available to every chat in that project. GC AI can search and reference them without you needing to attach them to each conversation. When you link a folder, any files added to that folder later are automatically included. ## Sharing and visibility A project works like a shared folder. Anyone who can view the project can also view its chats and linked files. Projects have two visibility modes: * **Private**: Only invited members can see the project, its chats, and its files. The Owner is the creator unless ownership has been transferred. * **Organization**: Everyone in your organization can view the project, including its chats and files. **Edit** access still requires an explicit grant. You can change visibility in the **Share** dialog on the project page. The project header shows **Shared with your organization** when visibility is Organization.
Organization visibility covers every chat and file in the project. A chat can still have its own share list for people you add directly. Everyone in your organization can still view that chat through the project. When you invite someone to a Private project, they automatically get read access to the files and folders linked to it, and they can view the project's chats. ### Access Levels In the **Share** dialog you assign each member either **View** or **Edit** access. The project **Owner** appears in the Share dialog with full **Admin** access. By default that is the person who created the project. The Owner can transfer ownership to another organization member. | Access in the Share dialog | Permissions | | -------------------------- | ------------------------------------------------------------------------------------- | | **View** | View the project, its chats, and files. Use AI with project context. | | **Edit** | Everything in View, plus add and edit chats, files, and instructions. | | **Owner** | Holds full **Admin** access (see below) and appears as the Owner in the Share dialog. | Sharing, managing members, changing visibility, and deleting a project require **Admin** access. Only the current Owner can transfer ownership. The Owner has Admin access by default. The Share dialog does not offer an Admin option, so you grant other members only View or Edit there. ### Transfer Ownership If you are the project Owner, open **Share**, open the access menu for another organization member, and choose **Transfer ownership**. Confirm the transfer. The new Owner gets Admin access. You keep **Edit** access so you can still work in the project. ## 📍 Where to Find Projects * **Left sidebar**: Your project list appears in the sidebar for quick navigation. You can hide individual projects from the sidebar through the project menu without leaving them. * **[Projects page](https://app.gc.ai/projects)**: Browse all projects, search, and create new ones * **Pinned projects**: Pin frequently used projects to keep them at the top of your list * **Word add-in**: Select an active project from the project picker in GC AI for Word ## ✏️ Editing a Project You can edit a project's name and description from the project menu in the header. Visibility is managed separately through the **Share** dialog. ## ⚠️ Limits and Requirements * Projects are scoped to your organization * A chat can belong to only one project at a time * Only the chat creator can move or remove a chat from a project * Cross-chat context is limited to the most recent 50 messages per sibling chat * Deleting a project unlinks its chats and files but does not delete the underlying content * Deleting a project requires Admin access, which the Owner has by default * The Owner can transfer ownership to another organization member from the Share dialog * Non-owners can leave a project through the project menu ## 💡 Word Add-in When you select a project in GC AI for Word, chats you start use that project's context. Files referenced in a Word chat are not automatically added to the project. You need to upload or add those files to the project separately so they are available to other project chats. For step-by-step setup instructions, see [How to create a project](/guides/chat/how-to-create-a-project). # Research Source: https://docs.gc.ai/docs/chat/researchGC AI can search the web to find current information, verify legal citations, and gather authoritative sources. It uses two different approaches depending on the complexity of your question: a quick **Web Search** for straightforward lookups, and a **Research Agent** for questions that need deeper investigation. ## Web Search vs. Research Agent GC AI automatically chooses the right approach based on what you ask. **Web Search** is a quick lookup that returns results from authoritative sources. GC AI uses it for questions that can be answered with one or two searches, such as: * Looking up what a specific statute or regulation says * Checking whether something is legal in a particular state * Finding requirements for a specific topic * Comparing two jurisdictions on a single issue When Web Search runs, you'll see a compact "Searched the web" indicator in the chat. You can expand it to see the search query and the sources that were retrieved. GC AI may run multiple web searches in parallel if your question touches on a few distinct points. **Research Agent** is an autonomous researcher that GC AI deploys for more complex questions. The Research Agent runs its own searches, reads full pages when excerpts are not enough, and iterates until it has a thorough answer. GC AI uses it when a question requires: * Multiple rounds of searching, where findings from one search inform what to search next * Cross-referencing three or more independent sources to resolve conflicts or build a complete picture * Surveying multiple jurisdictions (for example, "which states have AI healthcare laws?") When the Research Agent is active, you'll see a progress card in the chat showing the research thread and its current status. For multi-part questions, GC AI may launch several Research Agents in parallel, each investigating a different aspect of your question. ## How Research Works When your question requires web research, GC AI follows a structured process: 1. **Routing:** GC AI analyzes your question and decides whether a quick web search or the Research Agent is the right approach. 2. **Searching:** For web search, results come back quickly with search excerpts. For the Research Agent, it plans and executes multiple searches in parallel, then fetches full page content from official sources when it needs exact statutory language or precise citations. 3. **Source Prioritization:** Results are ranked by source authority. Primary sources (statutes, regulations, case law, government guidance) come first, followed by authoritative secondary sources (law firm publications, legal journals, bar associations), then general sources. Reference sites like Wikipedia are used for background understanding but are never cited. 4. **Synthesis:** GC AI combines findings into a response with citations linking back to original sources, including hyperlinks to official statute and regulation text. ## When GC AI Searches the Web GC AI uses web search or the Research Agent any time your question involves: * Any specific statute, regulation, or rule, even if you're just asking for an explanation * Current legal developments, regulations, or case law * Recent news or events relevant to a legal matter * The legal basis or authority for a specific duty or obligation * Drafting that references or cites specific laws or regulations * Multi-jurisdiction comparisons * Information that may have changed since the AI's training data GC AI answers directly from its training (without searching) only for general concept explanations, standard document element descriptions, common business or financial concepts, and general procedural questions. ## Combining Research with Documents Web search and the Research Agent work alongside your files in GC AI. You can: * Ask questions that combine web research with analysis of your uploaded documents * Use research findings to inform your document review or drafting * Verify claims in your documents against current web sources ## Tips for Better Research Results * **Be specific:** Include jurisdictions, time frames, or specific legal topics for targeted results. * **Provide context:** Explain what you're looking for and why. This helps GC AI formulate better search queries and choose the right research approach. * **Combine with documents:** Upload relevant documents and ask GC AI to research related topics for comprehensive analysis. * **For surveys, name the scope:** If you want a multi-jurisdiction survey, say so explicitly (for example, "which states require X?"). This tells GC AI to deploy its survey research workflow, which systematically checks each jurisdiction rather than relying on a single broad search. # Thinking Source: https://docs.gc.ai/docs/chat/thinking Learn how GC AI uses a structured reasoning process for complex tasks.
When you give GC AI complex requests that need in-depth analysis or research, you'll see a **Thinking** indicator in the message. This shows the AI is working through a structured reasoning process to ensure accuracy and thoroughness. This thinking process helps GC AI tackle tasks that go beyond simple information retrieval, such as complex legal questions, multi-document analysis, or nuanced contract review. ## The 5-Step Reasoning Process For complex tasks, GC AI follows a structured approach: 1. **Scope:** Define the boundaries of the question, identifying relevant jurisdictions, legal areas, applicable standards, and what specifically needs to be analyzed. 2. **Systematic Sweep:** Conduct a thorough review of all relevant information, searching through documents, identifying applicable provisions, and gathering pertinent facts. 3. **Pattern Tracing:** Identify connections, contradictions, and patterns across the gathered information, spotting how different clauses interact, where risks emerge, or how regulations apply. 4. **Completeness Accounting:** Verify that all aspects of the question have been addressed, checking for gaps, edge cases, or overlooked considerations. 5. **Reconcile:** Synthesize findings into a coherent, well-reasoned response, resolving any conflicts in the analysis and presenting clear conclusions. ## How It Works Across Models The thinking process works across all AI models used by GC AI, including models from OpenAI, Anthropic, and Google. The structured reasoning approach is built into GC AI's system, not tied to any single provider's capabilities. ## Benefits of Structured Thinking * **Accuracy:** Breaking problems into steps reduces errors on complex, multi-part tasks * **Thoroughness:** The completeness check ensures no aspect of your question is overlooked * **Better Legal Analysis:** The structured approach is especially effective for legal reasoning, where precision and comprehensive coverage matter * **Transparency:** The thinking indicator shows that the AI is actively working through your problem, not just generating a quick response ## When Thinking Activates The thinking process is most visible on complex tasks such as: * In-depth legal research spanning multiple jurisdictions or areas of law * Contract review requiring clause-by-clause analysis * Regulatory compliance questions with multiple applicable standards * Strategic legal advice requiring consideration of multiple factors * Document comparison or redlining tasks For simpler questions, GC AI responds directly without the extended thinking phase. # Citations Source: https://docs.gc.ai/docs/files/citations Learn how citations work in Files ## Citations GC AI automatically includes citations when referencing information from your documents. Citations help you verify sources, navigate to original content, and maintain accuracy. ### How Citations Work When GC AI references information from your documents in Files, it includes numbered superscript citation badges in its response. These citations are generated when the AI accesses your documents using its file tools (reading, searching, and querying your documents on demand). ### Citation Features * **Superscript badges:** Citations appear as numbered badges inline in the response text * **Hover preview:** Hover over any citation to see a preview of the quoted text without leaving the chat * **Click to navigate:** Click a citation to open the source PDF or DOCX document with the exact text highlighted and auto-scrolled to the cited passage * **Page numbers** for PDF documents * **Line numbers** for code files * **Timestamp references** for media files * **Grouped by filename** in the citations sidebar
### Copy with Citations When you select and copy text from a GC AI response that contains citations, the citations are preserved: * Use the copy button on any message to copy content with citation footnotes * Select text and use the text selection popover to copy with citations included * Citations appear as footnotes in both HTML and Markdown formats ### Citations in Exported Files When you [export a chat](/docs/chat/how-to-download), you can choose whether to include citations: * **With citations:** A "Citations" section appears at the end listing each citation number, quoted text, and source filename * **Without citations:** A cleaner version without citation markers or the citations section ### Best Practices * Always verify citations when accuracy is critical * Use the "provide citations" instruction for detailed source references * Hover over citations for quick verification before clicking through to the full document * Request explicit citations by asking GC AI to "provide citations" in your prompt # How to Delete a File Source: https://docs.gc.ai/docs/files/delete-file To delete a file in GC AI, please follow these steps: 1. Navigate to the **Files** tab in the right sidebar 2. Locate the file you want to delete using one of these methods: * Search for the file by name * Navigate to the directory/folder containing the file: * "My Files" section * "Organization Files" section 3. Once you've found the file, delete it using either method: * Right-click on the file and select **Delete** * Select the three-dot menu (⋮) next to the file and select **Delete**
Deleting a file in your **Organization Files** will delete it for the whole organization. ## Important Notes * Deleting a shared file will remove the file for both parties * There is no bulk delete feature at this timeCaution: you will not be able to recover deleted files. # Supported File Types Source: https://docs.gc.ai/docs/files/file-types Learn about the file types and limitations supported in GC AI ## Supported File Types GC AI supports a wide range of file formats: ### Text Documents * .txt, .md, .markdown * .json, .html, .htm * .rtf ### Images * .png, .jpg, .jpeg * .heic, .heif ### Documents * .pdf, .doc, .docx * .pptx * .eml, .msg**Enhanced Document Features**: For PDF and DOCX files, GC AI automatically reads and analyzes: * Tracked changes and revision history * Comments and reviewer feedback * Redlines and proposed modifications **Date Requirement**: These enhanced features are only available for PDF and Word files uploaded since August 18, 2025. Files uploaded before this date will be processed without comment and tracked change analysis. ### Spreadsheets * .xlsx, .xlsm * .ods, .csv, .tsv * .numbers ### Audio Files * .mp3, .m4a * .wav, .webm * .ogg, .flac**Audio Transcription**: Audio files are automatically transcribed using speech-to-text technology. The transcribed text becomes searchable and can be referenced in your chats just like any other document. ## File Limitations When uploading files, keep these current limitations in mind: ### Per-File Limits * ZIP files work only in Vault manual upload fields. * Each file must be under 50MB. * Audio files must be under 25MB. ### ZIP Files in Vaults Upload one ZIP file at a time to a Vault manual upload field. A ZIP file can be up to 1GB. Vaults import PDF, DOC, DOCX, and TXT files from the ZIP file. Vaults skip unsupported files and nested ZIP files. Each imported file must be under 50MB. A ZIP file can contain up to 10,000 entries and 10GB of uncompressed data. Vaults remove folder paths during import. If two files have the same name, Vaults add a number to the later file. ### Working with Multiple Documents GC AI uses smart, on-demand document access. The AI reads, searches, and queries your documents as needed rather than loading everything into the context window at once. This lets you attach more documents to a chat than traditional approaches allow.For very large document sets, the [context usage indicator](/docs/chat/context-window) helps you monitor how much context is being used. If you're approaching the limit, consider starting a new chat for a fresh context window. # Google Drive Source: https://docs.gc.ai/docs/files/google-drive Import files from Google Drive into GC AI Files ## 🔗 Overview The Google Drive integration lets you import documents directly from Google Drive into Files. Once imported, you can reference these documents during AI-assisted legal research and drafting, just like any other file in Files. Files are imported as point-in-time snapshots. There is no continuous sync or background access to your Drive.This page covers **Google Drive import** (one-time file import into Files). **[Agent Connectors](/guides/organizations/agent-connectors)** is separate: connect Google Drive under **Settings → Integrations → Agent Connectors** to search, pull, and act on Drive files live in chat, with per-action approval. ## 📥 What the Integration Does * Lets you browse and select specific files from your Google Drive using the Google Picker UI * Imports selected files (PDF, DOCX, Google Docs) into Files * Extracts text from imported documents for AI-powered search and retrieval ## 🚫 What the Integration Does NOT Do * Does not continuously monitor or scan your Google Drive contents * Does not access files you have not explicitly selected * Does not modify, delete, or write any files to Google Drive * Does not share your Drive files with other users or organizations * Does not retain Google Drive access beyond the authenticated session scope ## 🔑 OAuth Scopes and Permissions GC AI requests the following Google OAuth 2.0 scopes: | Scope | Purpose | | ------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | | `drive.file` | Access only files that you explicitly select via Google Picker. This is a narrow scope and does NOT grant access to all Drive files. | | `userinfo.email` | Identify the Google account used to connect (for display purposes). | | `userinfo.profile` | Display your name and avatar in the connection status UI. |The `drive.file` scope is the most restrictive Drive scope available. It only permits access to files you explicitly open or select through the Google Picker interface. GC AI cannot browse, list, or access any other files in your Drive. ## 📂 How File Import Works When you select a file from Google Drive, GC AI processes it through the following steps: 1. You select a file in the Google Picker 2. GC AI downloads the file via the Google Drive API 3. GC AI validates the file type 4. Google Docs are exported as PDF; other files are used as-is 5. The file is uploaded to Google Cloud Storage (encrypted at rest) 6. GC AI extracts the text from the file 7. GC AI generates text chunks and vector embeddings for search 8. The file metadata and extracted text are stored in your organization's database 9. The file becomes available for AI-assisted retrieval within your organization ## 🔒 Security ### Access Control  * **Organization-level**: Administrators can enable or disable the Google Drive integration for their entire organization * **User-level**: Each user connects their own Google account. One user's connection cannot access another user's Drive * **Resource-level**: Imported files follow GC AI's standard [access control model](/docs/files/sharing), including private, shared within org, and other permission levels * **Role-based**: Organization admins can disconnect any user's Google Drive integration ### Deletion Behavior * **User disconnects**: OAuth tokens are deleted. Previously imported files remain in Files as standalone copies. * **Admin disables integration for org**: All user OAuth tokens for that organization are deleted. * **User or org deleted**: Cascade deletes remove all associated tokens, files, and embeddings. * **Individual file deletion**: You can [delete imported files](/docs/files/delete-file) from Files at any time. ## ⚙️ Administrative ControlsThe Google Drive integration is **enabled by default**. Organization administrators have the following controls: * Enable or disable the Google Drive integration for the entire organization via **Organization Settings** * View which users have connected their Google Drive accounts * Disconnect any user's Google Drive integration When an administrator disables the integration: 1. All existing OAuth tokens for that organization are immediately deleted 2. Users can no longer initiate new Google Drive connections 3. Users can no longer import files from Google Drive 4. Previously imported files remain in Files (they are standalone copies) ## ❓ Frequently Asked Questions ### Can GC AI access all files in my Google Drive? No. GC AI uses the `drive.file` scope, which only grants access to files you explicitly select through the Google Picker interface. GC AI cannot browse or list your Drive contents. ### Does GC AI continuously sync with Google Drive? No. Files are imported as one-time snapshots. There is no background polling, webhook listening, or continuous sync. If a Drive file changes, you need to manually re-import it. ### Can other users in my organization see files I import from Google Drive? Imported files follow GC AI's standard [access control model](/docs/files/sharing). By default, files are private to you. You can choose to share files with your organization through GC AI's sharing controls. ### What happens if I revoke GC AI's access from my Google account? If you revoke access from Google's security settings, GC AI can no longer refresh tokens or import new files. Previously imported files remain in your Files as standalone copies. You can also disconnect from within GC AI's **Settings** page. ### Does GC AI use imported file content to train AI models? No. Imported documents are used solely for retrieval-augmented generation (RAG) within your organization's context. Document content is not used to train or fine-tune any AI models. # Introduction to Files Source: https://docs.gc.ai/docs/files/introduction Learn about GC AI Files and how they can help your team ## Overview Files are a powerful feature in GC AI that enables you to create permanent collections of documents accessible across all your chats. They serve as your team's document brain, allowing you to:* Upload and organize files and folders * Share documents with your team * Work with large document sets using smart, on-demand document access * Get cited responses with hover previews and in-document highlighting ## Smart Document Access When you attach files from Files to a chat, GC AI doesn't load all document content into memory at once. Instead, it uses specialized tools to access your documents on demand: * **Read** specific sections of a document as needed * **Search** across documents for relevant passages using keyword matching * **Query** document content using semantic search to find conceptually related information This approach lets you work with significantly more documents than would fit in a single context window. The AI intelligently accesses only the portions it needs for each response. ## Getting Started 1. Open the right sidebar 2. Click "My Files" or "Organization Files" 3. Click "Create Folder" 4. Name your folder and set sharing permissions 5. Upload files: you can drag and drop files, paste from clipboard, or use the `+` menu (tooltip: **Add files, skills, or sources**) and select **Add from computer** 6. Drag the folder from the sidebar into any chat, or use the `+` menu to select **Add from Files** (this opens the sidebar to **Files** and focuses search so you can type immediately) 7. Start asking GC AI questions about your documents ## Using Documents in Chat Once documents are attached to a chat, you'll see file badges showing which documents are available. The [context usage indicator](/docs/chat/context-window) shows how much context is being used. You can: * Ask questions and receive responses with [citations](/docs/files/citations) linking to your source documents * [Export](/docs/chat/how-to-download) your analysis as PDF, DOCX, or Markdown * [Branch](/docs/chat/interface-overview) the conversation to explore different analysis paths ## 🔗 Cloud Storage Integrations You can import files directly from cloud storage providers into Files. * **[Google Drive](/docs/files/google-drive)** - Browse and select files from your Google Drive using the Google Picker. Supports PDF, DOCX, and Google Docs. Files are imported as point-in-time snapshots with no continuous sync. * **SharePoint, OneDrive, Box, and Dropbox** - Connect these apps in [Agent Connectors](/guides/organizations/agent-connectors) to search and pull files in chat, or add them as a source in [Contract Intelligence](/guides/contract-intelligence/getting-started-with-contract-intelligence). Continuous folder sync is for Contract Intelligence Vaults, not the one-time Files picker. ## Legacy File Migration Previously uploaded files in chats will remain accessible in those conversations. For better organization and future access, we recommend re-uploading important files into Files. # File Organization Source: https://docs.gc.ai/docs/files/organization Learn how to organize your files and folders in Files # File Organization GC AI Files help you organize your legal documents in a structured, searchable system. With proper organization, you can quickly find and use your documents when needed. ## Folder Structure
* Create nested folders to organize documents by project or type * Use consistent naming conventions for folders and files * Search across all files regardless of folder location * Access multiple file spaces (My Files, Shared, Organization Files) in a single chat * Drag and drop files directly into chats, or use the `+` menu to select **Add from computer** or **Add from Files** (which opens the sidebar to **Files** and focuses search) * See file badges showing which documents are attached to your current chat ## Organization Types GC AI provides three main organization areas for your documents: 1. **My Files** - Your personal document storage, visible only to you 2. **Shared with me** - Documents others have shared with you 3. **Organization Files** - Team-wide document storage for collaboration ## Creating an Organized Structure To create a new folder: 1. Open the right sidebar 2. Select **My Files** or **Organization Files** 3. Select **Create Folder** 4. Name your folder using a clear, descriptive title 5. Upload your documents to the appropriate folder ## Sharing Documents Share your folders and files with team members: 1. Right-click on any file or folder 2. Select **Share** 3. Choose sharing options: * Specific individuals (by email) * Your entire organization * Private (keep to yourself) ## Document Updates When updating documents: * Delete or keep the previous version * Upload the new version to the same folder * Use GC AI to analyze differences between versions * Consider using version numbers in filenames (e.g., Policy\_v2.1) ## Search Capabilities GC AI's powerful search helps you find documents across your files: * Results appear instantly from all accessible files * Filter results by file type or collection
Create and document your organization system early. It's much harder to reorganize later when you have hundreds of documents. ## Google Drive Integration You can also import files directly from Google Drive. See the [Google Drive](/docs/files/google-drive) page for setup and usage details. # Search Capabilities Source: https://docs.gc.ai/docs/files/search Learn how to effectively search across your files # Search Capabilities GC AI provide powerful search functionality that helps you quickly find the documents you need within your files. The search system works across your entire document collection, regardless of folder structure. ## How Search WorksYou can search by: * **Filename**: Find documents by their names * **Content**: Locate specific text within your documents * **Semantic**: Discover documents with similar concepts, even if they use different terminology ## Using the Search Bar To search your files: 1. Open the right sidebar 2. Type at least 3 characters in the search bar 3. View results from all accessible Files 4. Drag any search result directly into your chat ## Quick Access from Chat You can open Files search directly from any chat: 1. Click the `+` button in the chat input (tooltip: **Add files, skills, or sources**) 2. Select **Add from Files** 3. GC AI opens the right sidebar to **Files** and focuses the search bar 4. Start typing right away to search ## In-Chat Document Search When documents are attached to a chat, GC AI can search within them using specialized tools: * **Keyword search:** GC AI can search across your attached documents for specific terms, phrases, or patterns * **Semantic query:** GC AI can find conceptually related passages even when different terminology is used * **Targeted reading:** GC AI can read specific sections of a document to answer detailed questions These searches happen automatically as part of the AI's response. You don't need to trigger them manually. Simply ask your question and GC AI will search the relevant documents. ## Search Techniques ### Basic Search Use simple keywords to find relevant documents: ``` quarterly report 2024 ``` This returns documents containing these terms. ### Semantic Search Find conceptually similar documents even when they use different terminology: ``` data processing or privacy agreement ``` This returns documents related to data privacy, even if they don't use these exact words. ## Search Results Search results display: * File name and location * Preview of matching content * File type indicator * Last modified date ## Drag and Drop Integration After finding documents through search: 1. Drag any search result directly into your chat 2. Ask GC AI questions about the document 3. Receive cited responses with references to the source material ## Limitations * Search requires at least 3 characters to activate * Results are limited to files you have permission to access * Search performance may vary with very large document collections ## Best Practices * Use specific, descriptive search terms * Try different phrasings if you don't find what you need * Save frequently used documents in organized folders * Use semantic search for concept-based queries * Use the `+` menu to quickly select **Add from computer** or **Add from Files** (which opens the right sidebar to **Files** and focuses search) # Sharing Source: https://docs.gc.ai/docs/files/sharing Learn how to share files, folders, and chats with your team For sharing within an organization, please see [here](https://docs.gc.ai/guides/getting-started/sharing-within-org). ## Sharing Files and Folders You can share files and folders by right-clicking and selecting "Share" or selecting the three-dot menu. Available sharing options: * Specific individuals (by email) * Your entire organization * Select **Move to Organization** to move the file to your team's Files * Private (keep to yourself) Files linked to a [project](/docs/chat/projects#sharing-and-visibility) also follow that project's access. If the project is shared with your organization, everyone in the organization can view the linked files. ## Sharing Chats You can share entire chat conversations with your organization: 1. Open the chat you want to share 2. Use the visibility selector to change the chat from **Private** to **Public** 3. Public chats are accessible to other members of your organization Chats inside a [project](/docs/chat/projects#sharing-and-visibility) also follow that project's access. If the project is shared with your organization, everyone in the organization can view those chats.
Organization administrators can enable or disable the chat sharing feature for the entire organization. If you don't see the sharing option, your admin may have disabled it. ## Best Practices * Use consistent naming conventions for shared folders * Consider creating a folder structure that mirrors your team's workflow * Regularly review and update sharing permissions as team members change * Share chats containing useful research or analysis to avoid duplicate work across your team # How to Ask Questions in GC AI for Word Source: https://docs.gc.ai/docs/gc-ai-for-word/how-to-ask-questions For a general overview, check out the [Getting Started with GC AI for Word](/guides/gcai-for-word/getting-started-with-gc-ai-for-word) guide. GC AI for Word uses the same chat service as the web app, with controls for working directly in your open document.  1. **Open the GC AI Add-in:** * Open the document you want to work with. * Select the **GC AI** button in the ribbon. This will open the GC AI panel, typically on the right side of your document. 2. **Locate the Input Box:** * At the bottom of the GC AI panel, find the text input box at the bottom of the screen. 3. **Type Your Question:** * Select inside the **"Ask anything"** box and type your question about the document's content. 4. **Submit Your Question:** * Press the `Enter` key on your keyboard or select the **send** button (the blue circle with an arrow icon) next to the input box. 5. **Review the Answer:** * GC AI will process your question using the document and any other relevant sources, then display the answer in the task pane. # How to Install GC AI for Word Source: https://docs.gc.ai/docs/gc-ai-for-word/how-to-install ## About the Add-in GC AI for Word is an [OfficeJS web add-in](https://learn.microsoft.com/en-us/office/dev/add-ins/overview/office-add-ins) — a lightweight web application that runs inside Microsoft Word's built-in sandbox. It is **not** a COM or VSTO add-in and does not install executables, modify the registry, or run native code on your machine. For details on our security practices, data handling, and compliance certifications, visit the [GC AI Trust Center](https://trust.gc.ai). ## Download Options You can download GC AI for Word through either the desktop Microsoft Word application or via web browser. ## Installation Instructions  1. Click the appropriate download link below for your region and preferred installation method 2. Follow the prompts to install the add-in 3. Once installed, you'll find GC AI in the Word ribbon under the "Add-ins" section**Make sure you have a current version of Microsoft Word installed and are**\ **signed in with your Microsoft account before attempting installation.** ### Desktop Installation Links Choose your region: * **United States** * [Download for Word Desktop (US)](ms-word:https://api.addins.store.office.com/addinstemplate/en-US/72b91f79-8944-477e-829b-43b793d5a4b5/WA200008468/none/GC%20AI%20for%20Word.docx?omexsrctype=1\&isexternallink=1) * **Canada** * [Download for Word Desktop (Canada)](ms-word:https://api.addins.store.office.com/addinstemplate/en-CA/72b91f79-8944-477e-829b-43b793d5a4b5/WA200008468/none/GC%20AI%20for%20Word.docx?omexsrctype=1\&isexternallink=1) ### Web Browser Installation Links Choose your region: * **United States** * [Microsoft AppSource (US)](https://appsource.microsoft.com/en-us/product/office/WA200008468?tab=Overview) * **Canada** * [Microsoft AppSource (Canada)](https://appsource.microsoft.com/en-ca/product/office/WA200008468?tab=Overview) Outside of these regions, please go to the [Microsoft AppSource store](https://appsource.microsoft.com/) and search "GC AI". # Current Limitations Source: https://docs.gc.ai/docs/gc-ai-for-word/limitations Current limitations for GC AI for Word GC AI for Word includes web research and slide generation, along with tools for reviewing and editing the document open in Word. The following limitations still apply. ### File Format Support * **Only `.docx` files are supported:** GC AI for Word requires Microsoft Word `.docx` format. Legacy `.doc` files are not supported and must be converted to `.docx` before use. * To convert `.doc` files to `.docx`, follow [Microsoft's conversion guide](https://support.microsoft.com/en-us/office/saving-doc-to-docx-or-dorm-0107099d-dc1e-4897-8851-f8c9f483f7cd). * **PDF Conversion Issues:** PDFs that have been converted to `.docx` files may result in formatting issues or unexpected behavior due to the conversion process. ### General Usage * As with any generative AI tool, double check outputs as hallucinations and errors can occur. * Always verify legal accuracy and implications before sending client communications. * Errors can occur while applying redlines and comments. * Changing the formatting text can disrupt the output responses of the tool. ### Context Window A [context window](/docs/chat/context-window) refers to the amount of text that the AI can analyze and consider at one time when processing your questions or requests. * **Document Scope:** GC AI uses the open document as context, subject to the model's context window. For very large documents, use focused prompts or select the relevant text. * **Complex Formatting:** While the add-in preserves most formatting, complex layouts, tables, and embedded objects may not be perfectly interpreted or replicated in the AI's suggestions and modifications. ### Feature Limitations * **Open Documents:** GC AI works with one open Word document at a time. You can attach other files or select a project for more context. * **Document Formatting:** You can format the document manually, but GC AI cannot reformat it in Word. Please share feedback through the thumbs down icon or contact [support@gc.ai](mailto:support@gc.ai). # Manually Installing the Word Add-in via XML Manifest (Windows) Source: https://docs.gc.ai/docs/gc-ai-for-word/manually-installing-word-add-in-via-manifest If your organization cannot deploy the GC AI Word Add-in through the Microsoft 365 Admin Center, you can install it manually using an XML manifest file. This method involves downloading the manifest, setting up a shared folder on your local machine, and registering it as a trusted add-in catalog in Word.This guide is for Windows users. The steps involve sharing a local folder via Windows network sharing. For Mac, see [Manually Installing the Word Add-in via XML Manifest (Mac)](/docs/gc-ai-for-word/manually-installing-word-add-in-via-manifest-mac). The manifest file is available directly at [https://word.getgc.ai/manifest.production.xml](https://word.getgc.ai/manifest.production.xml) (right-click and "Save As" to download) or as a [.zip download](https://docs-images-gcai.s3.us-east-2.amazonaws.com/documentation/GC+AI+for+Word/manifest.production.xml.zip).The live manifest URL may be updated at any time as we release new versions of the add-in. Changes to the manifest can cause breaking changes that require you to re-download the file and repeat the installation steps below. For a more stable experience, we recommend using the zip download in Step 3. ## Steps 1. Open your Documents folder  2. Create a new folder, you can name it anything you want, for this example I named it: *gc ai*  3. Copy this [file](https://docs-images-gcai.s3.us-east-2.amazonaws.com/documentation/GC+AI+for+Word/manifest.production.xml.zip) on the folder you created.  4. Go back to Documents > Right Click the folder you created (in this example: gc ai) > Select Properties. The folder Properties window will open > Go to the Sharing tab.  5. Click on the Share button.  6. You will see the Network Access window next > Look for your username in the dropdown list > Click on Add. 7. You should see your username added in the box. My username in this example is *LA-194*.  8. Click on Share > Another window opens > Click Done. 9. Close the Properties window as well. 10. Open Word, we will uninstall the current GC AI Add-in. Click on Add-ins on the upper right area.  11. You should see the GC AI add in in the menu > Click on Manage  12. Click on the three dot menu > Click on Remove. > You will be prompted to confirm the removal, accept it.  13. Go back to your Documents folder > Right click on the folder you created > Properties > Sharing > Copy the path to the folder for this example, the complete path to my gc ai folder is:  14. Go back to Word. Navigate to: File > Options  15. Click on Trust Center > Trust Center Settings  16. In the Trust Center Settings > Select Trusted Add-in catalogs > Copy the path to the folder you created in the Catalog URL field > Click Add Catalog.  17. You will see the URL added to the box in the window > Click OK > Click OK on the message that pops up and restart Word. 18. When you open Word again you will see the GC AI Add in on the bar.  As the last step, authenticate to GC AI and you're all set. Enjoy working with GC AI! # Manually Installing the Word Add-in via XML Manifest (Mac) Source: https://docs.gc.ai/docs/gc-ai-for-word/manually-installing-word-add-in-via-manifest-mac If your organization cannot deploy the GC AI Word Add-in through the Microsoft 365 Admin Center, you can install it manually on a Mac using an XML manifest file. This method places the manifest in Word's local sideload folder (`wef`), then opens the add-in from **Developer Add-ins** in Word.This guide is for Mac users. For Windows, see [Manually Installing the Word Add-in via XML Manifest (Windows)](/docs/gc-ai-for-word/manually-installing-word-add-in-via-manifest). The manifest file is available directly at [https://word.getgc.ai/manifest.production.xml](https://word.getgc.ai/manifest.production.xml) (right-click and **Save Linked File As…** to download) or as a [.zip download](https://docs-images-gcai.s3.us-east-2.amazonaws.com/documentation/GC+AI+for+Word/manifest.production.xml.zip).The live manifest URL may be updated at any time as we release new versions of the add-in. Changes to the manifest can cause breaking changes that require you to re-download the file and repeat the installation steps below. For a more stable experience, we recommend using the zip download. ## Before you start 1. Download the manifest XML (or unzip the zip download) and keep the file somewhere easy to find, such as your Desktop. 2. Fully quit Microsoft Word. In the Dock, right-click the Word icon and choose **Quit**. Confirm there is no light under the Word icon (that means Word is still running). ## Steps 1. Open **Terminal**. Press `Command` + `Space`, type `Terminal`, and press Return. 2. Paste this command and press Return. This moves you into Word's Documents folder (this folder should already exist if Word has been opened on the machine before): ```bash theme={null} cd Library/Containers/com.microsoft.Word/Data/Documents ``` 3. Type `open .` and press Return. This opens the folder in Finder. 4. In Finder, look for a folder named `wef` (all lowercase). If it does not exist, create it. If it already exists (common if you have installed other Word add-ins), open it and continue. 5. Drag your downloaded manifest XML file into the `wef` folder. The file should end in `.xml`. If you used the zip download, unzip it first and copy only the `.xml` file into `wef`. 6. Open Microsoft Word and open a blank document (or any document you already have). 7. Click **Add-ins** in the ribbon. 8. Under **Developer Add-ins**, select **GC AI**. 9. Sign in with your GC AI credentials when prompted. You should see the GC AI task pane open in Word. You're ready to draft, review, and redline with GC AI for Word. ## Updating the add-in When we publish a new manual-install build, replace the old manifest XML in the `wef` folder with the new file, then fully quit and reopen Word. If the add-in does not appear under **Developer Add-ins**, confirm the file is inside `wef` (not a nested folder) and that Word was fully quit before you relaunched it. ## Feedback If something in this flow is unclear or fails on your machine, tell us through your usual support channel, or use the thumbs-down feedback controls in the add-in. # Microsoft 365 Admin Setup Source: https://docs.gc.ai/docs/gc-ai-for-word/microsoft-365-admin Instructions for IT admins to deploy GC AI for Word. If your company requires IT administrator approval for Microsoft 365 add-ins, such as the GC AI add-in for Microsoft Word, please refer to Microsoft's guide, [Manage deployment of Microsoft 365 add-ins](https://learn.microsoft.com/en-us/microsoft-365/admin/manage/manage-deployment-of-add-ins?view=o365-worldwide), for instructions. To ensure you can use GC AI seamlessly within Microsoft Word, your IT admin may need to manage the deployment of the add-in. ## Architecture & Security GC AI for Word is an [OfficeJS web add-in](https://learn.microsoft.com/en-us/office/dev/add-ins/overview/office-add-ins). It runs as a sandboxed web application inside Microsoft Word's add-in iframe — it is **not** a COM or VSTO add-in. This means: * No native executables are installed on end-user machines. * No registry modifications. * All code runs within the browser-based OfficeJS runtime and is subject to Microsoft's add-in security model. For a comprehensive overview of our security posture, data handling practices, and compliance certifications, visit the [GC AI Trust Center](https://trust.gc.ai). ## Network Security Considerations If you're experiencing a white screen after installing the add-in, your organization's network security platform (such as Netskope, Zscaler, or similar web filtering software) may be blocking required connections. See our [Troubleshooting Guide](/docs/gc-ai-for-word/troubleshooting-guide) for detailed configuration steps. # Supported Microsoft Plans Source: https://docs.gc.ai/docs/gc-ai-for-word/supported-microsoft-plans Learn which Microsoft plans are compatible with GC AI for Word ## Overview GC AI for Word is designed to work seamlessly with a variety of Microsoft plans, providing powerful AI assistance directly within Microsoft Word. This guide outlines which Microsoft plans support GC AI for Word to help you determine compatibility for your organization.Before installing GC AI for Word, ensure your Microsoft plan is supported. If you're using an enterprise plan, you may need IT administrator approval for deployment. ## Supported Microsoft Plans The following table shows which Microsoft plans are compatible with GC AI for Word: | Microsoft Plans | GC AI for Word Support | | ---------------------------------------------------------------------------- | ---------------------- | | Microsoft 365 Personal/Family | ✅ Supported | | Microsoft 365 for Enterprise (Admin Add-in Deploy Must have Exchange Online) | ✅ Supported | | Microsoft 365 Business Basic/Standard/Premium (Cloud/Web Word is supported) | ✅ Supported | | Microsoft Office Home & Business 2024 | ❌ Not Supported | | Office LTSC | ❌ Not Supported | | Microsoft Office 2016 | ❌ Not Supported | | Microsoft Office 2019 | ❌ Not Supported | ## Installation Requirements For supported plans: * Ensure you have a current version of Microsoft Word installed * Sign in with your Microsoft account * For enterprise plans, Exchange Online must be enabled * Business plans require access to Word (cloud/web versions are supported) ## Getting Started Once you've confirmed your Microsoft plan is supported, follow our [installation guide](/docs/gc-ai-for-word/how-to-install) to get started with GC AI for Word. For enterprise deployments, IT administrators should review our [Microsoft 365 Admin Setup guide](/docs/gc-ai-for-word/microsoft-365-admin) for deployment instructions. ## Need Help? If you have questions about plan compatibility or need assistance with installation: * Contact your IT administrator for enterprise deployments * Reach out to [support@gc.ai](mailto:support@gc.ai) for assistance # Troubleshooting Guide Source: https://docs.gc.ai/docs/gc-ai-for-word/troubleshooting-guide Troubleshoot issues that prevent access to GC AI for Word ## Overview GC AI for Word may not load due to two main types of issues: * **Microsoft 365 configuration issues**: Your organization's Microsoft admin settings may prevent add-ins from loading. If you see specific error messages, refer to the [Microsoft 365 Configuration Issues](#microsoft-365-configuration-issues) section below. * **Security software blocking**: Network security platforms (Netskope, Zscaler, etc.) may block connections to GC AI or Microsoft Office domains. See the [Security Software Blocking](#security-software-blocking) section for domain allowlisting configuration. * **Playbook section stuck**: A playbook section may occasionally hang during a run. See [Playbook Issues](#playbook-issues) for steps to recover. ## Quick Troubleshooting Steps If the GC AI add-in is not loading or behaving unexpectedly, try these steps in order: 1. Close and reopen Microsoft Word 2. [Update Word to the latest version](https://support.microsoft.com/en-us/office/how-to-update-microsoft-365-or-office-for-windows-2ab296f3-7f03-43a2-8e50-46de917611c5) 3. **(Windows only)** Update Microsoft Edge WebView2 and Windows to the latest version. See [WebView2 (Windows)](#webview2-windows) below. 4. Uninstall and reinstall the GC AI add-in 5. Test if the add-in works in the [cloud version of Word](https://word.cloud.microsoft/en-us/) 6. Clear the add-in web cache using the **ⓘ** button in the taskpane 7. Sign in to your Microsoft account if prompted 8. Verify you are on a [supported Microsoft 365 plan](/docs/gc-ai-for-word/supported-microsoft-plans) 9. Ensure GC AI domains are [whitelisted on your network](/security/whitelisting) 10. Test on a different network or a different PC signed in to the same Microsoft account If these steps don't resolve the issue, continue with the detailed sections below. ## WebView2 (Windows) Microsoft Edge WebView2 powers the integrated web browser inside the GC AI add-in on Windows. If WebView2 is outdated or missing, the add-in taskpane may appear blank or fail to load entirely. WebView2 is normally updated automatically alongside Windows Update, but if you are running an older or unpatched version of Windows it may need to be updated separately. **To update Windows (recommended):** The simplest fix is to update Windows to the latest version, which will bring WebView2 up to date automatically: 1. Go to **Settings** → **Windows Update** 2. Click **Check for updates** and install all available updates 3. Restart your computer and reopen Microsoft Word **To update WebView2 separately:** If you are on an older version of Windows and cannot update, you can update WebView2 on its own: 1. Visit the [Microsoft Edge WebView2 download page](https://developer.microsoft.com/en-us/microsoft-edge/webview2/consumer/) and click **Download WebView2** to install the latest version. 2. Restart Microsoft Word after the update completes. ## Prerequisites Before troubleshooting, ensure you have: * **The latest version of Microsoft Word**: GC AI for Word requires that you use the latest version of Microsoft Word for full compatibility. Outdated versions may cause issues or prevent the add-in from loading. For detailed steps on updating, refer to [Microsoft's official guide on updating Office](https://support.microsoft.com/en-us/office/how-to-update-microsoft-365-or-office-for-windows-2ab296f3-7f03-43a2-8e50-46de917611c5).\ *Note: Your IT department may control updates. If you're unable to update, contact your administrator.* **How to check and update Word:** * **Windows**: 1. Open Microsoft Word 2. Go to **File** → **Account** (or **Office Account**) 3. Under **Product Information**, click **Update Options** → **Update Now** 4. If updates are available, they will download and install automatically 5. Restart Word after the update completes * **Mac**: 1. Open Microsoft Word 2. Go to **Help** → **Check for Updates** a. If you don't see this option, open the Mac App Store from your Dock or Finder. b. Select Updates on the left side menu, then select Update All, or click Update next to the apps you want to update. 3. If updates are available, follow the prompts to install them 4. Alternatively, open the **Microsoft AutoUpdate** app from your Applications folder 5. Restart Word after the update completes * **Word Online**: Word Online is automatically kept up to date, so no manual update is needed. If you're unable to update Word (e.g., updates are managed by your IT department), contact your IT administrator to request the latest version. * **A supported Microsoft 365 plan**: Confirm that your organization is on a [supported Microsoft 365 plan](/docs/gc-ai-for-word/supported-microsoft-plans) for GC AI for Word. * **Microsoft 365 for Enterprise**: Central (admin) deployment of the add-in requires that your plan includes Exchange Online. If you are using Enterprise and need your IT admin to centrally deploy GC AI for Word, ensure Exchange Online is active in your tenant. * If you require deployment via the admin center, email [support@gc.ai](mailto:support@gc.ai) for the production XML file. ## Symptoms Common signs that your add-in is blocked or misconfigured: * **White screen or blank taskpane** after installation → This is typically caused by security software blocking connections. See [Security Software Blocking](#security-software-blocking) for configuration steps. * **Unable to install the add-in**: This usually indicates an issue with your Microsoft 365 account or admin configuration. Confirm that your Microsoft 365 plan supports add-ins and that your account has the required permissions. If you are unsure, contact your IT administrator for assistance. ## Microsoft 365 Configuration Issues If you see specific error messages, follow these steps: **"Error loading add-in"** * See Microsoft documentation on [supported Microsoft 365 plans](/docs/gc-ai-for-word/supported-microsoft-plans) or refer to [Microsoft's official documentation](https://learn.microsoft.com/en-us/microsoft-365/admin/manage/manage-addins-in-the-admin-center) for add-in troubleshooting **"We couldn't get the information needed to start this add-in."** * See [Microsoft's documentation on this error](https://learn.microsoft.com/en-us/microsoft-365/admin/manage/manage-addins-in-the-admin-center) for resolution steps **"ADD-IN INFORMATION: Microsoft 365 has been configured to prevent individual acquisition and execution of Office Store Add-ins."** * This indicates your organization's Microsoft admin has restricted add-in installation * Please contact your IT administrator or Microsoft admin to request access to GC AI for Word ## Security Software Blocking If you're experiencing a white screen or blank taskpane, your organization's security software may be blocking connections to GC AI or Microsoft Office domains. The following sections help you and your IT team configure domain allowlisting. ### Required Domain Allowlisting Your IT team must allowlist the following domains in your security platform: ### GC AI Domains * `word.getgc.ai` * `*.getgc.ai` (wildcard for all GC AI subdomains) ### Microsoft Office Domains GC AI for Word requires access to Microsoft's infrastructure. Allowlist these domains: * `*.microsoft.com` * `*.office.com` * `*.office365.com` * `*.officeapps.live.com` * `*.onenote.com` * `*.outlook.com` * `*.sharepoint.com` For the full list of Microsoft 365 endpoints your network may need to allow, see [Microsoft 365 URLs and IP Address Ranges](https://learn.microsoft.com/en-us/microsoft-365/enterprise/urls-and-ip-address-ranges?view=o365-worldwide).**Important:** Both GC AI and Microsoft Office domains must be allowlisted. Blocking either will prevent the add-in from working. ### Configuration by Security Platform To allowlist domains in your security platform (Netskope, Zscaler, or similar): 1. Log in to your security platform's admin console 2. Navigate to web filtering or URL filtering policies (may be labeled "Policies," "Web Filtering," "URL Filtering," or "Cloud App Control") 3. Create or update your allowlist policy: * Add GC AI domains (`word.getgc.ai`, `*.getgc.ai`) and Microsoft domains to allowlist * Set the action to "Allow" or "Bypass" for these domains * Ensure Microsoft Office 365 domains aren't blocked elsewhere in the platform 4. Save and apply changes (allow several minutes for policy propagation) If your platform has both URL filtering and cloud app control, configure allowlisting in both areas. ### Zscaler: Microsoft One Click Configuration If your organization uses **Zscaler**, the fastest way to resolve Microsoft 365 add-in connectivity issues is to enable Zscaler's [Microsoft One Click Configuration](https://help.zscaler.com/zia/about-microsoft-one-click-options). This automatically: * Exempts Microsoft 365 traffic from SSL/TLS inspection * Configures firewall rules to allow Microsoft 365 traffic * Creates DNS control rules for Microsoft 365 destinations * Sets up cloud app control rules for Microsoft 365 applications (Teams, SharePoint, etc.) To enable the Microsoft-Recommended One Click Configuration in Zscaler: 1. Go to **Policy** → **URL & Cloud App Control** 2. Go to the **Advanced Policy Settings** tab 3. Select **Enable Microsoft-Recommended One Click Office 365 Configuration** 4. Click **Save** and activate the changesAfter enabling One Click, you still need to allowlist the GC AI domains (`word.getgc.ai`, `*.getgc.ai`) separately. The Microsoft One Click Configuration only covers Microsoft 365 domains. ### Verification Steps After allowlisting is configured: 1. Close Microsoft Word completely 2. Clear your browser cache (if using Word Online) 3. Reopen Microsoft Word 4. Click the GC AI add-in in the ribbon 5. The taskpane should load with the GC AI interface ### Additional Network Considerations ### SSL/TLS Inspection Some security platforms perform SSL/TLS inspection that can interfere with the add-in. If allowlisting doesn't resolve the issue: * Bypass SSL inspection for GC AI and Microsoft Office domains * Ensure your security platform's SSL certificates are trusted on user devices ### Proxy Settings If your organization uses a proxy server: * Verify proxy settings allow connections to the allowlisted domains * Check that authentication requirements don't block background requests ### Firewall Rules Ensure your network firewall allows: * Outbound HTTPS (port 443) traffic to the allowlisted domains * WebSocket connections if required by your security platform ## Playbook Issues If a playbook section is running for more than five minutes, it is likely stuck. To resolve this: 1. Click the 👎 button on the stuck section to report the error 2. Restart the add-in by closing and reopening the GC AI taskpane 3. Restart the playbook run ## Still Having Issues? If you've followed these steps and still experience problems: 1. Check the [GC AI status page](https://status.gc.ai/) for any ongoing outages or disruptions 2. Share this documentation with your IT department 3. Have them review security logs to identify blocked requests 4. Contact GC AI support at [support@gc.ai](mailto:support@gc.ai) with: * Description of the issue * Your security platform (Netskope, Zscaler, etc.) * Any relevant error messages or logs from your security platform ## Related Documentation * [Microsoft 365 Admin Setup](/docs/gc-ai-for-word/microsoft-365-admin) - For admin-level add-in deployment * [How to Install GC AI for Word](/docs/gc-ai-for-word/how-to-install) - Installation instructions * [Frequently Asked Questions](/guides/gcai-for-word/faq) - Common questions about GC AI for Word * [Whitelisting Requirements](/security/whitelisting) - Network domain and port requirements for GC AI products * [Zscaler Microsoft One Click Options](https://help.zscaler.com/zia/about-microsoft-one-click-options) - Zscaler's automated Microsoft 365 traffic configuration * [Microsoft 365 URLs and IP Address Ranges](https://learn.microsoft.com/en-us/microsoft-365/enterprise/urls-and-ip-address-ranges?view=o365-worldwide) - Full list of Microsoft 365 network endpoints # Company profiles Source: https://docs.gc.ai/docs/organizations/company-profiles Use company profiles in chats and projects Company profiles give GC AI context about a business. A profile can include its industry, jurisdictions, risk tolerance, preferred clauses, and legal name. You can create several profiles and share each profile with specific organization members. A profile is private until you share it. ## Company profiles in chat The company profile picker controls the current chat. Selecting a profile does not change your default.GC AI can apply the selected company's legal name, jurisdictions, regulations, and risk preferences. Select **No company profile** to start the chat without company context. ## Personal and project defaults The picker has two default settings: * **Your default** applies to your new chats when a project does not have its own default. * **Project default** applies to new chats in that project. It takes priority over your personal default. Defaults do not change when you select another profile for one chat. You must set or clear each default in the **Defaults** section.
A project member can use the project default in that project's chats. This access does not let the member view or edit the profile elsewhere. For setup steps, see [Create and manage a company profile](/guides/organizations/creating-a-profile). # Introduction to Organizations Source: https://docs.gc.ai/docs/organizations/introduction Learn about GC AI Organizations and how they enable team collaboration ## What is an Organization? An Organization in GC AI is a permissions setup and shared workspace for teams within one company. Each Organization has its own: * Shared database isolated from other organizations * Team collaboration features * Unified workspace for sharing content * Centralized team management ## Organization Features Organizations provide team-level features beyond individual accounts: * All company users share one unified workspace with organization-scoped data isolation * Team collaboration through shared files, skills, playbooks, and chats * [Company Profile](/docs/organizations/company-profiles) integration for organization-aware AI responses * Admin controls for chat sharing policies and web search approval settings * Content can be easily shared within the organization ## Privacy by Default Similar to other cloud-based collaboration software like Google Docs, content in GC AI is private by default: * Chats remain private unless you share them or add them to a shared project * Prompts are only visible to their creator * Company Profiles can be kept private or shared * Team members control what they share A project works like a shared folder: anyone who can view the project can also view its chats and linked files. See [Project sharing](/docs/chat/projects#sharing-and-visibility). # Organization Permissions Source: https://docs.gc.ai/docs/organizations/permissions Understanding permission levels and access control in GC AI Organizations ## Permission Levels GC AI Organizations have two main permission levels: ### Member * Create, update, and delete their own content * Access shared content they have permissions for * Share content with other team members * Connect their own accounts under [Agent Connectors](/guides/organizations/agent-connectors) ### Admin * All Member permissions * Invite new members to the organization * Remove members from the organization * Manage member permissions * Update organization details * Enable or disable public chat sharing for the organization (when disabled, users see a notice and sharing actions are blocked) * Enable or disable Google Drive import for all members * Manage Agent Connector policies for the organization * Opt in to Claude Fable 5 and opt out of AI model providers * Manage web search approval settings * Manage billing and seat settings ## Content Privacy By default, new content in GC AI is private: * Individual chats are only visible to their creator, unless you share them or add them to a shared project * Skills are private unless shared * Company Profiles can be managed privately * Content sharing requires an explicit action, including setting a project to Organization visibility ## Sharing Controls Users can control sharing through: * Individual sharing with specific members * Sharing with user groups * Organization-wide sharing options * Granular permission settings * Revocable access controls Access granted directly and through user groups is combined. When several grants apply, GC AI uses the highest access level. Group roles control group management and do not change access to shared resources. # Content Sharing Source: https://docs.gc.ai/docs/organizations/sharing Learn how to share content within your GC AI Organization ## Sharing Options You can share various types of content within your organization: * Chats * Projects (including the chats and files inside them) * Skills * Company Profiles * Files ## How to Share 1. Locate the content you want to share 2. Click the share button 3. Choose sharing options: * Share with specific team members * Share with a user group * Share with entire organization * Set permission levels ## Share Settings Content can be shared with: * Individual team members * User groups * The entire organization ### Chat Sharing Chats can be set to **Private** (default) or **Public** within your organization using the visibility selector. Organization admins control whether public chat sharing is available. When an admin disables chat sharing in **Settings** > **Organization**, users see a "Public sharing disabled" message explaining that their organization has turned off this feature. Sharing actions are blocked until an admin re-enables the setting. Chats inside a project also inherit that project's access. If the project is shared with your organization, everyone in the organization can view the chat through the project even when the chat itself is Private. See [Project sharing](/docs/chat/projects#sharing-and-visibility). ### Project Sharing Open a project and use **Share** to invite specific people or set visibility to **Organization**. Organization visibility shares the project, its files, and its chats with everyone in your organization. Edit access still requires an explicit grant. ## Privacy Controls * Review who has access to shared content * Modify sharing permissions at any time * Revoke access when needed * Monitor content usage # Team Management Source: https://docs.gc.ai/docs/organizations/team-management Learn how to manage your team members in GC AI Organizations ## Adding Team Members Organization admins can invite teammates. Members cannot send invitations. To add new members to your GC AI Organization, follow these steps: 1. Open the GC AI homescreen. 2. Open **Settings** and select the **Organization** tab. 3. In **Team Management**, choose **Invite**. 4. Enter one or more teammate email addresses. 5. Send invitations. You can paste multiple email addresses at once. GC AI removes duplicates automatically before sending. For more detailed instructions, see the guide on [How to Invite Teammates](/guides/organizations/how-to-invite-teammates). ## Managing Teams If you are an administrator in your GC AI Organization, you can: * View all organization members * Manage member permissions, such as designating other admins * Remove members from the organization * Export the member list in CSV or XLSX format * [Monitor team activity](https://app.gc.ai/metrics?default=organization) * Control organization-wide settings * Implement Single Sign-On (SSO) for secure team access (email [support@gc.ai](mailto:support@gc.ai) for instructions) ## Managing User Groups User groups organize people by practice area, division, region, or team. After you create a group, you can [share resources with everyone in it](/docs/organizations/sharing). ### Create a User Group 1. Open **Settings**. 2. Select **User groups**. 3. Select **Create group**. 4. Enter a unique name and an optional description. 5. Select **Create**. 6. Open the group and use **Search to add a member** to build the roster. When a non-admin creates a group, they become its owner. Organization admins can manage every group without joining it. ### Group Roles | Role | Permissions | | ----------- | ---------------------------------------------------------------------------------------- | | **Member** | Receives access granted to the group. | | **Manager** | Has member permissions and can add or remove members. | | **Owner** | Has manager permissions and can edit group details, manage owners, and delete the group. | If you are not an organization admin, you must promote another member before removing or demoting a group's last owner. Organization admins can leave a group without an owner and perform any group action without joining it. ### Group Details and Limits * Group names must be unique within the organization. * A person can belong to multiple groups. * Groups cannot contain other groups. ## Reviewing Join Requests If your organization allows join requests, admins can review them from **Settings → Organization**: 1. Open the **Join Requests** section. 2. Review the requester details. 3. Approve or reject the request. GC AI sends a confirmation email to the requester after the decision. ## Managing Seats After completing the initial seat provisioning for your organization, administrators can manage seat assignments directly from the [Organization settings page](https://app.gc.ai/settings/organization). ### What are Seats? Seats determine which team members have full access to GC AI features versus view-only access. Your organization has a specific number of seats based on your subscription plan. ### Seat Management Features From the Organization settings page, administrators can: * **View seat usage**: See how many seats are currently in use and how many are available * **Assign seats to users**: Provision full access for team members who currently have view-only access * **Swap seats between users**: Remove a seat from one user and assign it to another team member * **Monitor seat status**: Track which users have full access, trial access, or view-only access ### How to Manage Seats 1. Navigate to [**Organization settings**](https://app.gc.ai/settings/organization) 2. Locate the **Team Management** section 3. In the member table, find the user's seat badge in the **Seat Type** column 4. Select the badge to open seat actions 5. Choose the appropriate action: * **Provision Full Access Seat**: Assign a paid seat * **Provision Trial Seat**: Assign trial full access * **Revoke Seat**: Return the user to view-only access ### Removing Seats and Billing On team plans, seats stay part of your subscription and cannot be removed. **Revoke Seat** moves a user back to view-only access so you can reassign that seat later. On a team plan, revoking a seat does not change your subscription or issue a refund. ### Canceling an Individual Subscription To cancel an individual subscription, go to [Account settings](https://app.gc.ai/settings/account). ### Managing Your Subscription To update billing details for an individual or team plan, use the [billing portal](https://billing.gc.ai/p/login/dR603Zbfl3kWbaU7ss). Sign in with the billing email for the subscription, which is the email of whoever set it up. ### Seat Status Types * **Full Access**: User has a paid seat with complete access to all features * **Full Access (Trial)**: User has temporary full access during their trial period * **Full Access (Team Trial)**: User from a whitelisted domain with temporary full access * **View Only**: User can view shared content but has limited feature access ### Need More Seats? If you've used all available seats and need to add more team members with full access, contact the sales team at [sales@gc.ai](mailto:sales@gc.ai) to discuss expanding your subscription. ## Best Practices For effective team management in GC AI, consider these practices: * Regularly review your team members' access and seat assignments * Assign seats to users who need active access to create and edit content * Use view-only access for team members who only need to review shared content * Assign appropriate permission levels (Admin vs Member) * Document your team management procedures * Maintain clear communication channels within your team * Update your team structure and seat assignments as your organization evolves * Monitor seat usage to ensure you have capacity for new team members # Welcome to GC AI Source: https://docs.gc.ai/get-started/welcome AI for In-House Counsel
### Demo Overview: * Draft policies and generate legal documentation * Conduct parallel web research with the Research Agent * Review and analyze contracts with smart document access * Export as PDF, DOCX, Markdown, or generate PowerPoint slides ## Getting Started Transform your in-house legal workflow with GC AI's powerful capabilities designed specifically for legal professionals.## Core Solutions Discover how our AI solutions enhance your legal workflow. Start using GC AI's core features in minutes Explore our AI-powered legal assistance tools ## Security & Compliance Enterprise-grade security for legal professionals. Review and redline agreements directly in Microsoft Word Standardize contract review with your negotiation positions Ask questions across a portfolio of contracts Connect email, files, calendar, Slack, and CRM to chat Create and manage document collections for your team Parallel web research across multiple sources Export as PDF, DOCX, Markdown, CSV, XLSX, or PowerPoint Collaborate with your legal team securely Access worldwide legal support and jurisdictional coverage ## Resources Get the most out of your GC AI experience. Learn about our enterprise-grade security measures # File Organization Source: https://docs.gc.ai/guides/best-practice/file-organization Best practices for organizing and maintaining your files in GC AI ## Structure Planning Find the right plan for your legal team Explore GC AI's features at our homepage ### Folder Hierarchy * Create logical main categories for your legal documents * Use consistent naming conventions across all folders * Consider how your team accesses different document types * Plan for scalability as your document collection grows Example structure: ``` Legal/ ├── Contracts/ │ ├── Templates/ │ ├── Executed/ │ └── Negotiations/ ├── Policies/ │ ├── Current/ │ └── Archive/ └── Research/ ├── Memos/ └── References/ ``` ## Organization Strategies ### Document Naming * Use clear, descriptive names that identify content at a glance * Include relevant dates in a consistent format (YYYY-MM-DD) * Add version numbers for documents that change over time * Maintain consistency across all your files Example: ``` MSA_Acme_Corp_2024-03-15_v2.1 Policy_Data_Privacy_2024_Current Research_AI_Liability_CA_2024Q1 ``` ### Metadata Management * Tag documents with relevant categories for easier searching * Add descriptions that summarize key document information * Include key dates such as effective date and review date * Note related documents to create connections between files ## Access Management ### Permission Structure * Set appropriate access levels based on document sensitivity * Create sharing groups for teams that need similar access * Manage team permissions through the Organization settings * Review access regularly to maintain security ### Version Control * Track document versions with clear naming conventions * Maintain change logs to document what was updated * Archive old versions in dedicated folders * Document updates with comments for team awareness ## Best Practices ### Maintenance * Schedule regular organization reviews quarterly * Clean up unused files to reduce clutter * Update outdated content with current information * Consolidate duplicates to avoid confusion ### Team Coordination * Share organization guidelines with all team members * Train new team members on your files structure * Document your organization procedures for consistency * Maintain naming and folder conventions across the team ### Using Citations * Request explicit citations by asking GC AI to "provide citations" * Hover over citation badges to preview quoted text without leaving the chat * Click citations to open the source document with the relevant passage highlighted * Copy text with citations included using the copy button or text selection popover * See [Citations](/docs/files/citations) for full details ### Smart Document Access GC AI uses specialized tools to access your documents on demand: * **Read** specific sections of documents as needed * **Search** across documents for keywords and phrases * **Query** documents using semantic search for conceptually related content This on-demand approach lets you work with more documents than would fit in a single context window. Organize your documents well so the AI can efficiently find what it needs.
Create and document your organization system early. It's much harder to reorganize later when you have hundreds of documents. # Document Drafting and Editing in Chat Source: https://docs.gc.ai/guides/chat/document-drafting-and-editing Generate new documents and edit uploaded files directly from the GC AI web chat ## Overview You can draft full documents and edit existing files without leaving the GC AI chat. Ask the AI to create a contract from scratch, or upload an agreement and ask for specific revisions. Each proposed change appears as a diff you can accept or reject individually. ## Generating a New Document ### 1. Start a chat and describe what you need Type a request like: * "Draft an NDA between \[Company A] and \[Company B] with a two-year term and mutual obligations" * "Create a remote work policy for a 200-person company with employees in California and New York" * "Write a board memo summarizing our Q1 litigation exposure" The more context you provide (parties, jurisdiction, key terms, tone), the better the first draft. ### 2. Edit in Easy Edit GC AI generates a formatted Word document and automatically opens it in **Easy Edit**, so you can start editing right away. The document appears in a panel beside your chat with all the same tools available: revise clauses, draft new sections, add comments, and make manual edits with tracked changes. ### 3. Iterate Send follow-up messages to refine the document: * "Make the indemnification mutual" * "Add a section on data privacy obligations" * "Shorten the governing law section and use Delaware" GC AI applies each change as a tracked redline in the editor. ## Editing an Uploaded Document ### 1. Upload a file and open Easy Edit Click the **+** button in the chat input, select **Add from computer** or **Add from Files**, and choose the .docx document you want to edit. Drag-and-drop also works. Click the file to open it in **Easy Edit**, a live editor that opens in a panel beside your chat. GC AI also opens Easy Edit automatically when you ask it to revise or draft language in an uploaded document. ### 2. Ask for revisions Describe the changes you want: * "Review this NDA and suggest redlines to make the indemnification more favorable to us" * "Tighten the termination clause and add a 30-day cure period" * "Draft a force majeure clause and add it after section 12" ### 3. Apply changes as tracked redlines Each suggestion appears as a card showing the original and proposed text. For each one you can: * **Apply** it to the document as a tracked change * **Dismiss** it to keep the original * **Edit** the proposed text before applying When GC AI proposes several revisions, apply or dismiss them all at once. You can also edit the document by hand with the formatting toolbar. Tracked changes are on by default; switch to clean editing if you don't want markup. ### 4. Add comments and ask questions Ask GC AI to add comments to the document: the rationale for a change, a flag for the counterparty, or an internal note. While the editor is open, you can also ask questions about the document, and GC AI answers based on its current state, including your latest edits. ### 5. Save and download Your edits save back into your GC AI workspace automatically. Click **Download a copy** any time to save the .docx to your computer, with redlines preserved. ### 6. Keep iterating Send follow-up messages to request additional rounds of edits on the same document, or make manual tweaks in the editor between rounds.For the best results, be specific about what you want changed and why. "Make section 3 more favorable to us as the licensor" gives GC AI more to work with than "Fix section 3." Prefer to finish in Microsoft Word? Download a copy at any point and keep editing there, or use [GC AI for Word](/about/gcai-for-word) to work with GC AI inside Word directly. ## Supported Formats | Capability | Supported formats | | --------------------- | ---------------------------- | | Generate new document | Word (.docx) | | Edit in Easy Edit | Word (.docx) | | Read and analyze | Word, PDF, and other formats |Document drafting and editing is available to all GC AI users on the web at [app.gc.ai](https://app.gc.ai). # How to Create a Project Source: https://docs.gc.ai/guides/chat/how-to-create-a-project Set up a project to organize chats and files around a matter or initiative For a quick explainer of what projects are, see the [Projects](/docs/chat/projects) doc. ## 🆕 Create a New Project 1. Open the **Projects** page from the left sidebar (or go to the projects page [here](https://app.gc.ai/projects)) 2. Click **New Project** 3. Enter a name for your project 4. Add an optional description to help collaborators understand the project's purpose 5. Choose a visibility setting: * **Private** if only invited members should see the project, its files, and its chats * **Organization** if everyone in your org should be able to view the project, including its files and chats 6. Click **Create project** You are redirected to your new project page as its owner. ## 📎 Add Files to Your Project 1. Open your project 2. In the **Files** section on the right sidebar, click **Add** 3. Choose a source: * **Computer** to upload files from your device * **Folder** to upload an entire folder * **Google Drive** to import from your connected Drive * **Add from Files** to link files or folders already in your organization's file library 4. Select the files you want to add You can also drag and drop files directly onto the project page. All files you add are available to every chat in the project. ## ➡️ Move an Existing Chat into a Project 1. Open the chat you want to move 2. Click the chat menu (three dots) 3. Select **Add to project** or **Move to project** 4. Choose the destination project You can also drag chats from the left sidebar into the **Previous chats** section on the project page. To move multiple chats at once, use bulk select in the left sidebar and choose **Move to project** from the Actions menu. Only the chat creator can move a chat between projects. A chat can belong to one project at a time. ## 💬 Start a Chat in Your Project 1. Open your project 2. Type your message in the chat input at the top of the project's chat list 3. Press **Enter** to start the conversation The new chat automatically has access to all project files and custom instructions. ## ✏️ Set Custom Instructions 1. Open your project 2. In the **Instructions** section on the right sidebar, click to edit 3. Enter instructions that should apply to every chat in the project Custom instructions are useful for matter-specific context, preferred output formats, or standing directions. You need **Edit** access (or be the project owner) to edit instructions. ## 👥 Share Your Project 1. Open your project 2. Click the **Share** button in the project header 3. Add team members by name or email 4. Assign each member an access level: * **View** to view the project and use AI with its context * **Edit** to add and edit chats, files, and instructions 5. Toggle between **Private** and **Organization** visibility if needed Organization visibility shares the project, its files, and its chats with everyone in your organization. Edit access still requires an explicit grant. See [Sharing and visibility](/docs/chat/projects#sharing-and-visibility) for details. The Share dialog only lets you grant **View** or **Edit** to members. Sharing, managing members, changing visibility, and deleting a project require **Admin** access. Only the current Owner can transfer ownership. As the Owner you have Admin access by default. ## 🔁 Transfer Project Ownership 1. Open your project 2. Click **Share** 3. Open the access menu for the member who should become the new Owner 4. Choose **Transfer ownership** 5. Confirm the transfer The new Owner gets Admin access. You keep **Edit** access. Only the current Owner can transfer ownership. ## 📌 Pin a Project Click the pin icon on any project to keep it at the top of your project list. Pinned projects appear in a dedicated section for quick access. ## 🔗 Link a Folder 1. Open your project 2. In the **Files** section, click **Add** 3. Select **Add from Files** 4. Choose a folder to link All files in the linked folder become available to project chats. If new files are added to that folder later, they are automatically included. ## 🗑️ Delete a Project 1. Open your project 2. Click the project menu in the header 3. Select **Delete** 4. Confirm the deletion Deleting a project unlinks all chats and files. The underlying content is not deleted. Deleting requires Admin access, which the Owner has by default. For a full description of project features and access levels, see the [Projects reference](/docs/chat/projects). # Contract Intelligence FAQ Source: https://docs.gc.ai/guides/contract-intelligence/faq Frequently asked questions about Contract Intelligence and Vaults ## 🚀 I. The Basics ### 1. What is Contract Intelligence? Contract Intelligence is a product area in GC AI where you bring your documents into one place and work with the whole set at once. Connect a source (Google Drive, SharePoint, OneDrive, Box, or Dropbox) or upload files, and GC AI reads every document and pulls out the information you care about into a View: terms, dates, parties, amounts, and any custom columns you define. You can then filter, sort, query, and export that data, and ask questions across your entire portfolio in chat. There is no implementation project and no manual tagging. ### 2. Can I ask questions across all my contracts? Yes, this is the heart of Contract Intelligence. Every Vault has a chat sidebar where you ask plain-English questions about your entire document base. For example: "Show me every contract expiring before December 2026" or "Which vendor agreements have uncapped liability?" GC AI answers with a natural-language response drawn from every document, and filters the View to the relevant contracts at the same time. You get the answer in words and the documents behind it together. ### 3. Can I use a Vault for documents that are not contracts? Yes. Contract Intelligence works on any set of documents where you want the same information pulled from every one of them. Teams use it for policies, templates, leases, licenses, court decisions, and diligence sets. The columns are yours to define, so the product is not limited to contract terms. If you can describe what to pull in plain language, GC AI can pull it. ### 4. How is this different from uploading files to a GC AI chat? Chat is great for working with a few documents at a time, but there is a ceiling on how much fits into a single conversation. Contract Intelligence handles your entire portfolio: it pulls structured information from every document into a table and lets you ask questions across all of them at once. ## 📁 II. Setting Up a Vault ### 5. How do I create a Vault? Click **Create Vault** from the Contract Intelligence page. GC AI opens a guided chat that walks you through it: connect a source or upload files, name the Vault, and tell it what you want to use the Vault for. Describe your documents and the outcome you want, and GC AI drafts the columns to pull, with the extraction instructions already written, for you to review and adjust. ### 6. What document sources are supported? You can bring documents in two ways, and combine both in the same Vault: * **Connected sources:** Google Drive, SharePoint, OneDrive, Box, and Dropbox. More integrations are coming * **Direct upload:** drag and drop files, including whole folders, straight into the Vault Because you can mix connected sources with direct uploads, documents scattered across systems land in one place without moving or migrating anything. ### 7. Do you connect to my CLM or document management system? The connected sources above are what is available today, and the list is growing. If your system is not on it, you have two options. You can export the documents and upload them directly, which works for any system. You can also tell your account team which system you need, because customer demand is how we prioritize the next connectors. ### 8. What file formats are supported? PDF, Word (.doc and .docx), and plain text files. Connected sources also bring in Google Docs and Google Slides. Scanned and image-based PDFs work, because GC AI runs OCR on them and extracts the text. Standalone image files, PowerPoint files, spreadsheets, and email files (.msg and .eml) cannot be added to a Vault today. You can still upload those formats to a regular GC AI chat, which supports a wider set. ### 9. How do I add documents to a Vault? Connect a source and GC AI syncs its contents: the first sync starts right away, new files are picked up every 15 minutes, and you can trigger a manual re-sync at any time. Or upload files directly by dragging and dropping them, including whole folders. ### 10. How long does it take to process my documents? Rows appear in the View as each document finishes analyzing, so you can start working before the whole set is done. A large first sync of many thousands of documents can take a while to work through. Relationship mapping runs after the rows are populated, so the contract family timeline is the last thing to fill in. If you look at an amendment early and it is not yet linked to its master agreement, the scan is most likely still finishing. ### 11. How do I know when processing is finished? Watch the View. Rows appear as each document completes, so the table fills in as GC AI works through your set, and you can start using it before the whole scan is done. Once the rows have stopped appearing and the contract family timeline has populated, the scan is complete. ### 12. What if my source folder is messy, with drafts and duplicates? You do not need to clean it up first. GC AI detects the execution status of every agreement, so you can filter drafts and unsigned documents out of any View without touching the source folder. Near-duplicate detection is not automatic yet, so exact copies of the same agreement will appear as separate rows for now. Many teams start with their highest-value document set rather than everything at once, which keeps the first Vault focused and easier to judge. ## 📊 III. Working With the Table ### 13. What is a View? The View is the heart of a Vault: every row is a document, every column is a piece of information GC AI pulled out. You can filter and sort by any column, click into cells to see citations from the source document, edit values, customize which columns show, save named views, and export to CSV. ### 14. What is a column? A column is a single piece of information you want GC AI to pull from every document, like the parties, the effective date, the renewal term, or the governing law. You tell GC AI what to look for in plain language, and it fills in that column for every document with a citation back to the source. Columns have types that match the data: Text, Long Text, Date, Date Range, Number, Percentage, Currency, Duration, Yes/No, Single Select, Multi Select, Email, URL, and List. Every Vault also starts with a set of standard columns already in place, so you get a useful table from the first scan. ### 15. Can I track terms that are specific to my company, or is there a fixed list of clause types? There is no fixed taxonomy. Every column is yours to define: give it a label, pick a type, and write your own extraction instructions in plain language. If your agreements use a bespoke concept that no standard legal category covers, that is just another column. ### 16. Can I add or change columns later? Yes. Add or change columns after the initial setup, from the columns view or right in chat. Re-scanning updates the View with the new columns, and you choose when to apply the change. ### 17. Can I manage columns from chat? Yes. Ask GC AI to add, remove, or update columns in the chat sidebar, for example: "Add a column for breach notification timeline." ### 18. Can I track information that is not in the document itself? Not today. Every column is extracted from the text of the document, so internal process data such as the reviewing attorney, whether compliance review is complete, or an internal risk status cannot be stored as a column yet. Free-text notes columns and importing existing field tags from a connected system are both on the roadmap. There is a way to work around it now. Link the Vault to a GC AI [Project](/docs/chat/projects) and add your other material to that Project, then chat across both together. That combines what the contracts say with the internal context that lives elsewhere. ### 19. Can I edit a value? Yes. Click into any cell in the View to edit it directly, and you can revert to the original scanned value at any time. ### 20. Can I save views for my team? Yes. Save any combination of filters, sorts, and columns as a named view. Saved views live in the Vault, so you and your team can always come back to them ("Active NDAs," "Executed leases expiring this year"). Exploring with a filter or sort does not change a saved view unless you save it, so one person's work never overwrites the shared setup. ### 21. Can I export data from a Vault? Yes. Export the current filtered view to CSV, up to 10,000 rows per export. Filters and sort carry over, so you can export a specific subset of your portfolio. For a larger portfolio, filter or use a saved view to export in slices. ### 22. Can I search across several Vaults at once? Not today. Chat works against one Vault at a time, and you can attach a single Vault to a web or Word chat. If a set of documents belongs together, put it in one Vault so that relationship detection can connect the family, then use saved views to work with each slice, such as NDAs only or MSAs only. Attaching several Vaults to one Project is on the roadmap. ### 23. Can I use a Vault with a Project? Yes. Link a Vault to a GC AI [Project](/docs/chat/projects) and the Project's chat can query the Vault's documents in plain English. The chat returns a preview of matching contracts with a link to the full results in the Vault. Linking connects the two contexts, it does not grant access. Each person sees Vault results in the Project only if they already have access to that Vault. ## 🤖 IV. What GC AI Works Out for You ### 24. Does GC AI tell me whether a contract is signed? Yes, and it goes further than signed or unsigned. GC AI detects the execution status of every document automatically, with no tagging on your part, and assigns one of four values: * **Executed:** every party shows evidence of signing * **Partially Executed:** at least one party signed, but not all of them * **Unsigned:** the document is a final form with no signature * **Draft:** the document is still in negotiation Documents that are not agreements may show no status at all. You can filter to only executed agreements, see at a glance what is in force versus still in negotiation, and catch the partially executed agreements that are easy to miss. Status is detected on every scan, so it stays current as documents change. ### 25. How accurate is the extraction? Every value includes a citation back to the exact passage in the source document. Click a cell, choose **View source**, and the document opens in-app with the passage highlighted right where GC AI found the value. If something looks off, the source is right there so you can verify it, and you can correct any value inline. The point is not that a model never makes a mistake. The point is that you can check any answer in one click instead of taking it on faith. ### 26. How does document renaming work? GC AI automatically renames every document in your Vault using the standardized convention you prefer, like "Acme Corp - MSA - 2024-03-15" instead of "scan\_001.pdf." That name becomes the document's label in the View. You set the convention in plain language, and the default is counterparty, document type, and effective date. This names how documents appear in your Vault; your original files in the connected source stay as they are, with the original file name kept in its own column. ### 27. How do document relationships work? After GC AI scans your documents, it compares them within the Vault and connects the ones that belong together: an amendment to its master agreement, a statement of work to its MSA, a renewal to the original. High-confidence links appear right away in a contract family timeline. Others show up as suggestions with a short explanation, and you confirm, dismiss, or add your own. Once documents are linked, the Current Terms view rolls up the in-force value of each column across the family so you can see what governs today after all the amendments. ### 28. What if one file contains several agreements? If a single PDF actually holds several agreements (say, a master agreement with three amendments attached), GC AI splits them into separate rows in the View, so each agreement gets its own information and citations. ### 29. Does Contract Intelligence change my files or write back to my source systems? No, and that is by design. Contract Intelligence builds a full intelligence layer over your contracts without ever altering your source of record. It brings documents in, extracts the information you care about, links related agreements, and gives every document a clean name inside the Vault, all without tagging, moving, or modifying anything where your files actually live. Connecting a source is one-way: GC AI pulls documents in and picks up new ones automatically, and nothing flows back out. ## 🔒 V. Access and Security ### 30. Who can see my Vault? Vaults are private by default. The person who creates a Vault controls who else is added, with owner, editor, and viewer roles. You see the Vaults you have been added to, plus any Vaults shared with your whole organization. Being an organization administrator does not by itself grant access to a Vault. If you choose to share a Vault with your whole organization, every current and future member gets view access to everything in it. Edit and owner access are still granted person by person. ### 31. Can multiple people work in the same Vault? Yes. Vault owners can add members as editors (who can work with the data and columns) or viewers (who can view and explore). Editing the Vault name and description and deleting the Vault are limited to the owner. ### 32. Can I share a Vault with outside counsel or someone outside my organization? Not today. Everyone who works in a Vault needs a GC AI license, so access stays inside your organization. Access that does not require a seat is on the roadmap. ### 33. What about security? Vaults are private by default and scoped to your organization. Each Vault has its own access controls. Documents are stored in secure cloud storage with the same protections as all files in GC AI. ## 📈 VI. Limits and Scale ### 34. How many documents can one Vault hold? A single Vault holds up to 100,000 documents. If your portfolio is larger than that, or splits cleanly along business lines, your account team will help you plan how to divide it. Keep documents that relate to each other in the same Vault so that family detection can connect them. ### 35. Is there a limit on how long a document can be? There is no page limit. Individual files must be under 50MB, and beyond that page count is not something you need to think about. Long documents are split and reassembled behind the scenes with no effect on your results. ## ⚖️ VII. How It Compares ### 36. How does Contract Intelligence compare to our contract repository? A CLM does two jobs: it runs your contracting workflow (drafting, approvals, negotiation, and signature), and it stores and searches your signed contracts. Contract Intelligence goes directly at that second job, the repository. It reads your existing documents automatically with no manual tagging, detects what is executed, connects related agreements, saves views your whole team can rely on, and answers questions across the whole portfolio in plain language, with a citation on every value. Contract Intelligence does not run the drafting-to-signature workflow, so if you actively use a CLM for that, that part stays. It also reads your legacy documents, including contracts that were never entered into your CLM. ### 37. How is this different from a general-purpose AI like ChatGPT or Claude? GC AI uses leading models too, but the model is not the hard part. The hard part is the system around it: getting thousands of documents in, keeping them current, extracting the right information reliably, and letting you verify every answer with a citation. With a general tool you get an answer. With Contract Intelligence you get an answer you can verify, across your whole portfolio, that stays current, without building the plumbing yourself. ## 📅 VIII. Availability ### 38. When is Contract Intelligence available? Contract Intelligence is generally available. You can bring documents in through Google Drive, SharePoint, OneDrive, Box, Dropbox, or direct upload. # Getting Started with Contract Intelligence Source: https://docs.gc.ai/guides/contract-intelligence/getting-started-with-contract-intelligence Bring your documents into one place, extract what you care about, and ask questions across your whole portfolio Contract Intelligence lets you bring thousands of contracts, policies, and agreements into one place and work with the whole set at once. GC AI reads every document, pulls the information you care about into a sortable View with citations, connects related agreements, and lets you ask questions across your entire portfolio in plain language. ## Create a Vault 1. Open the **Contract Intelligence** page from the left sidebar 2. Click **Create Vault** 3. In the guided chat, connect a source or upload files, name the Vault, and say what you want to use it for (for example, "our vendor SaaS agreements, and I want to track renewals and off-market terms") 4. GC AI drafts the columns to extract, with the extraction instructions already written. Review them and adjust, or add your own by describing what you wantYou do not have to build your columns from scratch. Tell GC AI what you want to track and it drafts the whole table for you to refine. If you have something specific in mind, just describe it and GC AI adds that column too. ## Add documents You can bring documents into a Vault from wherever they live. ### Connect a source 1. Open your Vault and go to **Document Sources** 2. Click **Add source** 3. Choose a source: **Google Drive**, **SharePoint**, **OneDrive**, **Box**, or **Dropbox** 4. Connect the account and pick the folder (or scope) to bring in The first sync starts right away. New files are picked up on periodic syncs (about every 15 minutes), and you can trigger a manual re-sync any time from the Document Sources page. A Vault can pull from more than one source, so documents scattered across systems can be unified in one place without a migration. ### Upload files directly Drag and drop files, or whole folders, straight into the Vault. A Vault accepts PDF, Word (.doc and .docx), and plain text (.txt) files. Scanned and image-based PDFs work too, because GC AI runs OCR on them.Contract Intelligence accepts a narrower set of formats than GC AI chat. PowerPoint files, standalone images, spreadsheets, and email files (.msg, .eml) cannot be added to a Vault. A connected source can also bring in Google Docs and Google Slides. ## What happens after you add documents Rows appear in the View as each document finishes analyzing, so you can start working before the whole set is done. The View doubles as your progress indicator, filling in as GC AI works through the set. A large first sync of many thousands of documents can take a while to work through. Relationship mapping runs after the rows are populated, so the contract family timeline is the last thing to appear. If you open an amendment early and it is not yet linked to its master agreement, the scan is most likely still finishing. Two things happen automatically along the way: * **Documents are renamed.** GC AI gives every document a standardized name in your Vault, like "Acme Corp - MSA - 2024-03-15" instead of "scan\_001.pdf." You set the convention in plain language, and the default is counterparty, document type, and effective date. The original file name is kept in its own column * **Compound files are split.** If a single PDF holds several agreements, such as a master agreement with three amendments attached, GC AI separates them into their own rows so each gets its own values and citationsContract Intelligence never changes your source files. Connecting a source is one-way: GC AI pulls documents in and picks up new ones automatically, and nothing is written back. Renaming applies to how a document appears inside the Vault, not to the file in Google Drive or SharePoint. You do not need to tidy a messy folder before you connect it. Because GC AI detects execution status, you can filter drafts and unsigned documents out of any View without touching the source. Near-duplicate detection is not automatic yet, so exact copies of the same agreement appear as separate rows for now. ## Work in the View The View is the heart of a Vault: every row is a document, every column is a piece of information GC AI pulled out. * **Filter and sort** by any column * **Click a value** to see it, edit it inline, or open its citation. You can revert an edited value to the original scanned result at any time * **View source:** click **View source** on any value to open the document with the exact passage highlighted * **Execution status:** GC AI automatically detects whether each agreement is **Executed** (every party signed), **Partially Executed** (at least one party signed, but not all), **Unsigned** (a final form with no signature), or **Draft** (still in negotiation), so you can filter to only what is signed and in force. Documents that are not agreements may show no status at all * **Show, hide, and reorder** columns * **Export** the current filtered view to CSV, up to 10,000 rows per export. To export more, filter the view into smaller sets ### Work with columns A column is a single piece of information you want GC AI to pull from every document: the parties, the effective date, the renewal term, the governing law. You describe what to look for in plain language and GC AI fills that column in for every document, with a citation back to the source. There is no fixed list of clause types. Every column is yours to define, so a concept specific to your business is just another column. Columns take a type that matches the data: Text, Long Text, Date, Date Range, Number, Percentage, Currency, Duration, Yes/No, Single Select, Multi Select, Email, URL, and List. You can add or change columns at any time, from the columns view or from chat. Re-scanning fills in the new column across your documents, and you choose when to apply the change. To check how GC AI fills a column without leaving the View, right-click its header and select **View instructions**.Columns are extracted from the text of the document, so internal process data such as the reviewing attorney or a compliance status cannot be stored as a column today. To combine contract data with internal context, link the Vault to a [Project](/docs/chat/projects) and add that material to the Project, then chat across both. ### Save a view Save any combination of filters, sorts, and columns as a named view. Saved views live in the Vault, so you and your team can always come back to them (for example, "Active NDAs" or "Executed leases expiring this year"). Exploring with a filter or sort does not change a saved view unless you save it, so one person's work never overwrites the shared setup. ## Ask questions across your portfolio Every Vault has a chat sidebar. Ask a plain-English question about your entire document base and GC AI answers from the full set, then filters the View to the relevant contracts at the same time. For example: * "Show me every contract expiring before December 2026" * "Which vendor agreements have uncapped liability?" * "Which executed agreements auto-renew in the next 90 days?" You can also reshape the Vault from chat: add a new column ("Add a column for breach notification timeline") or adjust the view ("Hide governing law and sort by expiration date").Chat works against one Vault at a time, so searching across several Vaults at once is not supported yet. Keep documents that relate to each other in the same Vault so relationship detection can connect them, then use saved views to work with each slice. ## See how documents relate After GC AI scans your documents, it connects the ones that belong together: an amendment to its master agreement, a statement of work to its MSA, a renewal to the original. High-confidence links appear in a contract family timeline, and others show up as suggestions you can confirm, dismiss, or add. Open a document's **Related Documents** tab to see the family, and **Current Terms** to see the in-force value of each term across the whole family after all amendments. If a document cites hosted terms (for example an online EULA or marketplace terms page), that tab also lists those URLs and marks them as not in this vault. GC AI has not analyzed those pages. Add a copy to the vault if you want them in the analysis. ## Merge duplicate party names The same company often shows up under several names across a portfolio: "Acme Corp," "Acme Corporation," and plain "ACME." GC AI extracts each name as written, then collects them all on the **Entities** page, which you open from the **...** menu at the top right of the Vault. Select two or more entries that refer to the same organization and merge them, and the Vault displays and groups them as one party from then on. You can also ask the Vault chat where to find this: it takes you straight to the Entities page. ## Link a Vault to a Project Link a Vault to a GC AI [Project](/docs/chat/projects) and the Project's chat can query the Vault's documents in plain language, returning a preview of matching contracts with a link to the full results, so matter work can draw on your whole portfolio.Linking connects the two contexts, it does not grant access. A person chatting in the Project sees the Vault's documents only if they already have access to that Vault, either because they were added to it or because it is shared with the whole organization. Project members without Vault access simply get no Vault results. ## Share a Vault Vaults are private by default. The person who creates a Vault controls who else is added, with **owner**, **editor**, and **viewer** roles. Editors work with the data and columns, viewers can view and explore, and only the owner can rename or delete the Vault. You see the Vaults you have been added to, plus any Vaults shared with your whole organization. You can also share a Vault with your whole organization instead of naming people individually. Be deliberate about this one: it gives every current and future member of your organization **view** access to everything in that Vault. Edit and owner access still have to be granted person by person.Being an organization administrator does not by itself grant access to a Vault. An admin sees only the Vaults they were added to or that are shared with the whole organization. Everyone who works in a Vault needs a GC AI license, so a Vault cannot be shared with outside counsel or anyone outside your organization today. ## Limits * A single Vault holds up to **100,000 documents**. If your portfolio is larger, or splits cleanly along business lines, your account team can help you plan how to divide it. Keep documents that relate to each other in the same Vault so family detection can connect them * Individual files must be under **50MB**. There is no page limit, and long documents are split and reassembled behind the scenes with no effect on your results * CSV export returns up to **10,000 rows** per exportContract Intelligence is generally available. Documents come in through Google Drive, SharePoint, OneDrive, Box, Dropbox, or direct upload. For common questions, see the [Contract Intelligence FAQ](/guides/contract-intelligence/faq). # Frequently Asked Questions Source: https://docs.gc.ai/guides/gcai-for-word/faq Common questions about GC AI for Word ## Pricing & Subscription ### How much does GC AI for Word cost? GC AI for Word is included in your GC AI subscription. We have transparent pricing that gives you and your legal team everything they need to be successful all at one simple price (\$7k/seat/year for Teams and Enterprise, and \$5k/year for Solo plans). See our [pricing page](https://gc.ai/pricing) for details on what you get with your plan. ### Does the Microsoft subscription cost cover the add-in? The Microsoft subscription cost does not cover the GC AI add-in. GC AI for Word is included in your GC AI subscription pricing. For enterprise customers with governance around add-ins, please contact your organization administrator or see our [Microsoft 365 Admin Setup](/docs/gc-ai-for-word/microsoft-365-admin) guide or contact [support@gc.ai](mailto:support@gc.ai) for assistance. ## Functionality ### What are the known limitations of GC AI for Word? * **Open Documents:** GC AI works with one open Word document at a time. You can attach other files or select a project for more context. * **Document Formatting:** You can format the document manually, but GC AI cannot reformat it in Word. See our [limitations page](/docs/gc-ai-for-word/limitations) for the full list. ### Can it research the web? Yes. GC AI for Word uses the same chat service as the web app, including web search and the [Research Agent](/docs/chat/research). ### Can it read tracked changes? Yes, it can read and analyze tracked changes in your open document, so you can ask for a summary of your counterparty's redlines. ### Can it read comments? Yes, it can read comments and their authors in your open document. ### Can it make comments for me? Yes. Ask GC AI to add a comment, or generate one with a suggested redline. You can choose an internal or counterparty comment. ### Can I draft from scratch in GC AI in Word? Yes, GC AI can draft contracts for you from scratch but it's designed at customizing existing templates. ### Can I handoff between Word and the web application? Yes, GC AI lets you start your conversation in Word or on the web, and continue it in either place. See the Word icon in your Chat history. ### When should I use GC AI for Word vs the web application? Use GC AI for Word when you want to review, redline, or draft in one open document. Word and the web app share chat tools for voice input, research, files, projects, skills, playbooks, and slide generation. Use the web app when you want to open one Word document in Easy Edit beside your chat. Easy Edit lets you review, revise, and export that document. You can also [attach additional files](#how-do-i-attach-files-in-gc-ai-for-word) to a Word chat. ### Can it recognize multiple rounds of edits or only the initial first-round markup from the counterparty? GC AI for Word can see all the tracked changes and the dates they were made. ### Is the tool more helpful for simpler agreements like NDAs, or can it tackle more complex and much longer agreements? The tool is most helpful for simpler agreements but it can also handle more complex and longer agreements. The more complex the agreement, the more you have to prompt. ### Does this help if you want to merge two contracts, say a teaming agreement with a simple option agreement? Not yet. While GC AI for Word can help you analyze and edit individual contracts, it currently does not have the capability to merge multiple contracts together. ### What about document scrubs e.g. making sure that cross-references line up, using correct defined terms etc? You can ask GC AI to check cross-references, defined terms, numbering, and internal consistency. Review its suggested fixes before applying them. ### Does this tool correct sections referenced in other sections? E.g., "see Section 14(b) of the Agreement," except now the referenced Section is really 14(c)? You can ask GC AI to check cross-references and suggest corrections. Review each change before applying it. ### Can the AI directly trigger Outlook or an equivalent to prepare the email? GC AI for Word can draft and send an email from a connected Gmail or Outlook account. Set up [Agent Connectors](/guides/organizations/agent-connectors) in the web app. ### How do I attach files in GC AI for Word? Use the **Attach** (paperclip) button in the chat input, or drag and drop files directly into the task pane. You can drop files anywhere in the pane, and GC AI will attach them to your active chat. ## Privacy & Security ### If I send the document to a third party, will they know that I used GC AI? No, the Word document will only make changes or comments as you the author. No third party will know that it was used by GC AI. ### Does the Word document show a stamp/indicator that it was co-reviewed by GC AI? No, the Word document will only make changes or comments as you the author. No one will ever see that it was co-reviewed by GC AI. ### If multiple people on my team use GC AI, will the tone of comments be tailored to the person, given people have different styles? Use a saved skill to tell GC AI which tone and style to use for comments. ### If you update your company profile on your main account page to give added context for more helpful comments/responses in Word, do those updates feed into the Word plugin automatically? Yes, GC AI for Word makes use of the company profile you configure in the web application. ### Does it assimilate the comments back from your different departments? GC AI can summarize the comments in the open document by author, topic, or issue. ## Technical ### What file formats are supported? GC AI for Word only supports Microsoft Word `.docx` files. Legacy `.doc` files are not supported and must be converted to `.docx` format before use. You can convert `.doc` files to `.docx` by following [Microsoft's conversion guide](https://support.microsoft.com/en-us/office/saving-doc-to-docx-or-dorm-0107099d-dc1e-4897-8851-f8c9f483f7cd). Note: PDFs that have been converted to `.docx` files may result in formatting issues or unexpected behavior due to the conversion process. ### What models do you use? We use several different models from OpenAI, Anthropic, Google, and xAI for different parts of the GC AI for Word experience and are always evaluating new models to see how they can provide better performance for you. You do not pick a model in the add-in. Learn more about our AI models [here](/docs/chat/ai-models#ai-models). ### What information was GC AI trained on in order to provide the redline feedback? GC AI uses a combination of legal documents, contracts, and legal knowledge to provide redline feedback. The system is designed to understand legal terminology and standard contract provisions. ### Are there any known scale limits for GC AI (e.g., concurrent users, document size, etc.)? Very large documents may require focused prompts or a relevant text selection. For enterprise-scale usage, contact [support@gc.ai](mailto:support@gc.ai) for specific limits and recommendations. ### Once you reset a chat, can you go back to old chats for review? Yes. Reset starts a new chat. Your previous conversations remain available in chat history. ## Comparisons ### How does GC AI for Word interact with Microsoft CoPilot? Can I use both? Yes, you can use both GC AI for Word and Microsoft CoPilot. They are separate add-ins that can work independently. GC AI for Word is specifically designed for legal document review and contract analysis, while CoPilot provides general AI assistance. ### This seems similar to Lexion AI assist. How is this different or better than Lexion AI assist? GC AI for Word is specifically designed for in-house legal teams and provides specialized legal analysis, contract review, and redlining capabilities. Our focus is on legal professionals and their specific workflows. ### How much of this functionality is available organically in a tool like Co-Pilot, and how much of this is only available through GC AI? GC AI for Word provides specialized legal analysis, contract redlining, and legal-specific features that are not available in general-purpose AI tools like Co-Pilot. Our tool is specifically trained and optimized for legal work. ### How are you different from Ivo/Pincites/Spellbook? GC AI provides an all-in-one solution for your legal team that can do research, handle contracts, and all business-related tasks. Ask our sales team for head to head comparisons at [sales@gc.ai](mailto:sales@gc.ai). ### When is Playbooks launching? Playbooks is available in the web app and GC AI for Word. See [Playbooks](/about/playbooks). ### Can I bring my own playbook? Yes. Upload your existing playbook and GC AI converts it into a playbook you can apply to contracts you review. ### How can you feed it templates so it knows what your preferred terms are? Upload your template agreement or redlined agreements and GC AI can create a playbook from them. ### Do you have to work the NDA through with individual prompts every time or can you also generate a "NDA to do list" under which the AI completes the entire review with redlines and comments in one step? Use [Playbooks](/guides/playbooks/running-playbooks) to run a full review with redlines and comments in one pass. ### Can you upload a policy that includes the terms you would want in a contract - confidentiality clause, indemnification, severability, fees, etc. and have GCAI use that policy as its prompt or checklist when reviewing every contract? Yes. Create a playbook with your preferred terms and positions, then run it against each contract. ### How do I make a playbook if I don't have one? Start from an official playbook for MSAs, DPAs, or NDAs and customize it. You can also upload your template or redlined agreements and GC AI can build a playbook from them. We also offer professional services to help you create a playbook. ### Can I use AI to make a playbook? For example, could I give it 20 NDAs and have it make a playbook that says we do give x, we don't give y, etc.? Yes. The Playbook Builder Agent can build a structured playbook from the documents you upload and the positions you describe. See [Creating Playbooks](/guides/playbooks/creating-playbooks). ## Enterprise & Governance ### Big companies have governance around add-ins and the org admin can't "leave it open" for people to download. How do we handle this? For enterprise customers with strict governance policies around add-ins, please contact your organization administrator or reach out to [support@gc.ai](mailto:support@gc.ai). We can work with your IT team to ensure proper deployment and governance of GC AI for Word. ### What about Microsoft 365 admin requirements? GC AI for Word requires appropriate Microsoft 365 admin permissions for installation. Please refer to our [Microsoft 365 Admin guide](/docs/gc-ai-for-word/microsoft-365-admin) for detailed requirements and setup instructions. # Getting Started with GC AI for Word Source: https://docs.gc.ai/guides/gcai-for-word/getting-started-with-gc-ai-for-word Learn how to use GC AI for Word to assist with your documents. GC AI integrates directly into Microsoft Word, providing powerful AI assistance for document analysis and drafting.  ## Opening the Add-In See [How to Install GC AI for Word](/docs/gc-ai-for-word/how-to-install) for installation instructions. 1. Open your Word document. 2. Select the **Add-ins** button (a red fence icon) on the right of the menu ribbon. 3. Click the **GC AI** icon, and drag the icon onto the ribbon to pin the add-in for easy access. The GC AI task pane will open on the right side of your document. ## Initial Setup When you first open the add-in for a document, GC AI will analyze it to identify key information: * **Document Type:** The type of document (e.g., NDA, MSA, etc.). * **Parties:** The parties involved in the document. * **Company Profile:** (If applicable) Relevant company information for analysis. You may be prompted to confirm or select this information in the **Confirm Document Information** panel before proceeding. ## Using the Chat Interface Once initialized, you'll see the main chat interface:  1. **Chat Input:** Type your questions or requests into the "Ask anything" box at the bottom. 2. **Send:** Select the enter icon or press `Enter` to submit your query. 3. **Easy Prompt™:** Expand your skills with AI-powered suggestions to get better results - [learn more about using Easy Prompt™](/guides/prompting/using-easy-prompt). 4. **Skills:** Access a library of saved or custom skills. 5. **Reset Chat:** Click the refresh icon in the top right to clear the current chat history. 6. **Share Feedback:** Use the "Share feedback" button to provide input on the add-in. 7. **Menu:** Access additional options such as changing the Company Profile or Representing setting via the menu icon (hamburger icon) in the top left. 8. **Attach:** Use the paperclip button in the input to attach files to your chat.GC AI for Word uses the same chat service as the web app. You can use web search, the [Research Agent](/docs/chat/research), legal research, files, projects, skills, playbooks, and slide generation from Word. ## Attaching Files You can attach files to your Word chat in multiple ways: 1. Select **Attach** (paperclip) in the chat input. 2. Drag and drop files directly into the chat input. 3. Drag and drop files anywhere in the GC AI task pane. If you drop files while another chat is active, GC AI keeps those uploads pending and attaches them when you open the target chat. ## Interacting with Your Document GC AI provides powerful document analysis and editing capabilities directly within Word. Here's what you can do: ### Document Analysis * Ask questions about any part of your document and get instant answers * Identify and extract specific clauses, terms, or information * Get comprehensive risk analysis and issue spotting * Review comment summaries and stakeholder feedback ### Document Editing * Generate contextual redlines for the entire document or specific sections * Get AI-powered suggestions for clearer, more precise language * Draft new sections with customized requirements * Apply suggested changes with a single click * Compare different versions of clauses ### Comment Generation When generating AI feedback in Word, you can now differentiate between: * **Internal comments**: Candid risk assessments for your team's eyes only * **Counterparty comments**: Professionally worded feedback suitable for external sharing Simply select your preference from the dropdown menu when generating comments. This eliminates the need to manually edit comments for different audiences, streamlining your document review process.  ### Common Actions Here are some ways to start using GC AI for Word: 1. **"Review this document"** - Get a complete analysis with redlines and suggestions 2. **"Analyze this clause"** - Deep dive into a specific section's risks and implications 3. **"Draft a new section for..."** - Generate custom content based on your requirements 4. **"Spot potential issues"** - Identify risks, ambiguities, and areas of concern 5. **"Summarize all comments"** - Get a quick overview of document feedback 6. **"Suggest alternative language"** - Get clearer, more precise wording options # Best Prompting Practices Source: https://docs.gc.ai/guides/getting-started/best-practices Essential best practices for new GC AI users # GC AI Prompting Tips* Also check out our courses [here](https://gc.ai/classes) to become an expert at using GC AI. ## Treat Your AI Like a Smart, Fast, Occasionally Overeager Human Intern AI works for you. Think of it and talk to it like a smart human who wants to help you achieve your goals. To control AI's trained overeagerness, provide clear, detailed instructions and specific prompts. ## Use GC AI — a Dedicated Legal AI Tool * GC AI is built specifically for legal work. It uses leading models from OpenAI, Anthropic, Google, and xAI, configured with legal-specific reasoning, tone, and workflows. * General purpose AI tools disclaim heavily and are designed to refuse giving legal advice. * GC AI includes purpose-built features for legal work: a [Research Agent](/docs/chat/research) for parallel web research, smart [file tools](/docs/files/introduction) for document analysis, [export](/docs/chat/how-to-download) in multiple formats, [slides generation](/guides/prompting/creating-powerpoint-slides), and [voice input](/docs/chat/dictation). * If details and exact language matter — which is essential for legal work — use a specialized tool such as GC AI. ## Give Context Provide the GC AI with context around your question so it can orient its response and give more accurate, tailored answers. The more the AI knows about you, your company, your task, and why you're asking the question, the better it can respond. **Note:** In GC AI, you can provide your company context once in your [Company Profile](/docs/organizations/company-profiles). This context is automatically used to provide organization-aware responses. ### Opinion Overview (Official Prompt) Example Take a look at using our official prompt for analyzing and reviewing a new legal opinion.### Example: ❌ **Weak prompt:** "Review this deck." ✅ **Good prompt:** "\[After inputting your Company Profile.] I am drafting a slide deck on how to comply with the new AI Executive Order. We're working on training a new AI model. I want to ensure that the content is clear, actionable, and helpful for my company's engineering team." ## Be Specific in Both Questions and Expected Responses * The more specific your request, the more likely you are to get a specific, tailored answer. * Vague prompts yield generic answers. * Besides providing context, tell GC AI exactly what output you want. * When asking it to compare things, specify what you want compared (provision by provision, payment terms, limitation of liability, etc.). * Avoid pronouns and spell out acronyms. ### Example: ❌ **Weak prompt:** "Is this contract okay?" ✅ **Good prompt:** "Review the attached employment contract for a senior software engineer position. Highlight clauses that could pose significant risks, focusing on intellectual property rights and termination clauses. Specify if any clauses deviate from standard industry practices or could potentially lead to legal disputes." ## Tell GC AI the Number of Items * Specify the number of items you want in the response. * This is especially useful for laws or issues where you know the right number of factors in a multi-factor test. * Providing specific number goals increases your chances of getting a good response without follow-ups. ### Example: ❌ **Weak prompt:** "Summarize the attached letter." ✅ **Good prompt:** "Give me an 8-bullet overview of the attached letter from a US senator to our company." ## Provide Links or Documents When Available If you know the document you need GC AI to use, provide the link or upload the document. This prevents the AI from hallucinating citations or pulling in irrelevant sources when searching the web. ## Use Hashtags and Markdown Formatting Use hashtags (# for Heading 1, ## for Heading 2, ### for Heading 3) in your skills to structure information like headers in a document, making it easier for the AI to understand your requests. AI models are trained on Markdown-formatted text and perform better with structured content. Markdown supports asterisks for \*\*bold\*\* and underscores for \_italic\_ text. ## Iterate - One Step at a Time Break down complex, multistep tasks into smaller steps. First get GC AI to break down a document, then ask for next steps, then request an outline based on those steps. ## Start Fresh When Needed If GC AI is giving you unsatisfactory answers, start a new chat rather than continuing in the same conversation. This wipes the AI's memory of previous poor responses and allows you to ask in a different way. ## Ask for Emojis to Add Glanceability Request that GC AI use emojis to signify different things, making responses easier to understand at a glance. At GC AI, we use traffic lights (🔴, 🟡, 🟢) to signal high, medium, and low risk when analyzing contracts. ## Use Tables for Better Readability Tables make complex information easier to scan and understand. You can request the AI to format responses in tables and even export them to CSV for further analysis.### Example: ❌ **Weak prompt:** "Compare these three contracts." ✅ **Good prompt:** "Create a table comparing the key provisions (termination rights, payment terms, and liability caps) across these three vendor agreements. Include a column for recommendations on each provision." When asking GC AI to compare language across contracts, analyze clauses, or provide a breakdown of different regulations by state, request output in table format for easier reading. ## GC AI Reasons Automatically For complex questions, GC AI automatically applies a [structured 5-step reasoning process](/docs/chat/thinking) — scoping the question, systematically reviewing information, tracing patterns, checking for completeness, and reconciling findings. You don't need to ask it to "think step by step" — this happens automatically. ## Give the Model a Persona or Role GC AI can take on virtually any persona or role with proper instructions. This is particularly useful when you want it to take the counterparty's perspective to anticipate potential negotiation points in a transaction. ## Watch for Terms of Art When using specialized legal terminology or industry-specific terms, clarify what you mean. For example, "Revlon duties" has a specific meaning under Delaware corporate law. # First Steps with GC AI Source: https://docs.gc.ai/guides/getting-started/first-steps Getting Started with GC AI: Your First Prompt ## Initial Setup ### 1. Account Configuration * If you haven't signed up, please sign up [here](https://auth.getgc.ai/sign-up). * Add a [Company Profile](/guides/organizations/creating-a-profile) to allow GC AI to insert relevant information in your chats. * This creates a more seamless experience and saves you time during conversations. * If you enter your website, we will extract your company details for you.
![]()
Your chats and your documents are encrypted and secure. All your chats are private by default unless you choose to share them with your team or with us by sending feedback using thumb up or down. ### 2. Running Your Own Prompt 1. You can run your own prompts by simply typing in the text window — or use [voice input](/docs/chat/dictation) by selecting the microphone button (up to 3 minutes per recording). 2. For example, type "Provide a plain-language summary of GDPR's data processing requirements for a U.S.-based company" in the GC AI text window, then select **enter** or "↵". 3. Try [Easy Prompt™](/guides/prompting/using-easy-prompt) to automatically refine your prompt before sending. 4. The AI will process your prompt and you'll see a progress indicator as it works. This may take a few moments depending on the complexity of your request. You can send follow-up messages while the AI is still responding — they'll be queued automatically. ### 3. Using Skills 1. GC AI has [skills](/guides/prompting/official-skills) built by attorneys you can use as a starting point. 2. Type `/` in the chat box, search, and press Enter to attach a skill. See [Using Skills in Chat](/guides/prompting/using-skills-in-chat). 3. You can also click the `+` button, select **Skills**, and browse **My Skills**, **Shared with Me**, **Organization Skills**, and **GC AI Skills**. 4. Type your question next to the skill and send. You can attach multiple skills to combine their instructions. To learn more about building skills, see [How to Create and Use Skills](/guides/prompting/creating-skills). ### 4. Uploading a File (Optional) 1. **If you want to upload a file**, click the `+` button in the chat window (tooltip: **Add files, skills, or sources**) and select **Add from computer**, or drag and drop a file directly into the chat window. 2. To attach existing files from your workspace, select **Add from Files**. GC AI opens the right sidebar to **Files** and focuses the search bar. 3. If uploads are still in progress, GC AI shows upload indicators in the chat input and waits to send until uploads finish. 4. Once uploaded or selected, the file will be available in your chat. Any file you upload to GC AI is encrypted, private, and secure. Learn more about our security practices at [our security page](/security/overview). ### 5. Refining a Prompt 1. Once you have run a prompt, you can continue to refine by sending additional messages below the initial response. 2. For example, you can ask GC AI to go more in-depth on a certain topic or write an email to summarize the information. ### 6. Conclusion You've successfully run your first prompt! Here are some next steps to explore: * [Export your chat](/docs/chat/how-to-download) as PDF, DOCX, or Markdown * Try the [Research Agent](/docs/chat/research) for questions requiring current information * Connect the apps you already use with [Agent Connectors](/guides/organizations/agent-connectors) * Review a portfolio in [Contract Intelligence](/guides/contract-intelligence/getting-started-with-contract-intelligence) * Standardize reviews with [Playbooks](/guides/playbooks/creating-playbooks) * Browse [Academy](https://app.gc.ai/academy) classes from the left sidebar * [Branch a conversation](/docs/chat/interface-overview) to explore different directions * Generate [PowerPoint slides](/guides/prompting/creating-powerpoint-slides) from your analysisRemember that GC AI is a tool to augment, not replace, legal judgment. Always review outputs carefully. # Sharing within an Organization Source: https://docs.gc.ai/guides/getting-started/sharing-within-org Share a skill, chat, project, or company profile with your team Sharing your work within GC AI helps your team collaborate. You can share skills, chats, projects, and company profiles with specific teammates or your entire organization. ## How to Share Follow these steps to share items in GC AI: 1. Locate the item you want to share (e.g., a specific chat, a saved skill, or your company profile). 2. Select the **Share** button associated with that item. 3. Choose whether to share with specific individuals or the entire organization. 4. Confirm the sharing action. Your selected teammates will now have access to the shared item. A project works like a shared folder. If you set a project to **Organization**, everyone in your organization can view the project, its files, and its chats. See [Project sharing](/docs/chat/projects#sharing-and-visibility). ## Sharing Specific Items Here's how to share different types of items within GC AI: ### Sharing Skills 1. Navigate to your **Skills** section (note: you can only share skills that you have created). 2. Find the skill you want to share from your list *My skills*. 3. Scroll to the bottom of the right sidebar. 4. Select the **Share** button. 5. Choose whether you want to give edit or read-only access: a) Add specific team members to share the ability to edit your skill b) Enable read-only access for your entire organization ### Sharing Chats 1. Open the chat conversation you wish to share. 2. Select the **Share** button located at the top right of the chat interface. 3. In the sharing dialog: * Toggle **Share with organization** to grant access to everyone in the org. * Alternatively, enter the names or emails of specific team members to share with them individually. 4. Select **Save** or **Confirm** to apply the sharing settings. ### Sharing Company Profiles 1. Go to the **Company** section, usually found in the main navigation or settings menu. 2. Select the **Company Profile** you want to share. 3. Look for a **Share** button or option within the profile view. 4. Choose your sharing preference: * Enable **Share with organization** for organization-wide visibility. * Add specific collaborators by searching and selecting their names/emails. 5. Confirm the action. Shared profiles allow team members to utilize the defined company context in their own GC AI interactions. ### Sharing Projects 1. Open the project. 2. Select **Share** in the project header. 3. Invite specific teammates, or set visibility to **Organization**. 4. Organization visibility shares the project, its files, and its chats with everyone in your organization. Edit access still requires an explicit grant. For access levels and ownership, see [Projects](/docs/chat/projects#sharing-and-visibility). # Agent Connectors Source: https://docs.gc.ai/guides/organizations/agent-connectors Connect email, files, calendar, Slack, CRM, and more so GC AI can use your data in chat and take actions with your approval Agent Connectors links the apps you already use to GC AI. After you connect an account, GC AI can pull context from that app into chat and take actions in it on your behalf, with approval controls on every action type.You connect your own accounts, so GC AI can only access information you already have permission to see in each connected app. Your existing access controls in that app always apply. ## What you can do * **Use data in chat:** Search email threads, files, calendar, Slack, CRM records, and other connected apps without leaving the conversation * **Take actions:** Draft and send replies, schedule meetings, post updates, create tasks, and more, with per-action approval * **Control permissions:** Read actions default to **Always allow**; write and delete actions default to **Needs approval**. You can set any action to **Always allow**, **Needs approval**, or **Block** * **Connect from chat:** When an app is not connected, GC AI can show a connect card that takes you to the right connector in Settings ## Manage Agent Connectors (admins) 1. Open **Settings → Integrations**. 2. Find **Agent Connectors**. Admins can review which members have connected which apps, and disable individual connectors for the whole org, at **Settings → Policies → Connector policies**. ## Connect an app 1. Open **Settings → Integrations → Agent Connectors**. 2. Select **Connect** on the app you want. 3. Review the pre-connect summary (what the connector does and which tools it exposes). 4. Complete that provider's sign-in flow. You authorize your own account. Admins cannot connect Gmail, Outlook, Slack, or other apps on your behalf.Start with the apps you use every day (email, files, calendar, or Slack). Expand **Tools** after connecting to see the exact actions available for your account. ## Connect a connector Some connectors need setup in the provider before you authorize them in GC AI. See the per-connector setup guides: * [Microsoft 365 (Outlook, Teams, OneDrive, SharePoint, OneNote)](/guides/organizations/connectors/microsoft-365) * [USPTO](/guides/organizations/connectors/uspto) ## Use connected apps in chat Once an app is connected, ask GC AI in plain language. Examples: * "Find my latest email thread with Acme about the indemnity cap." * "Search my Drive for the Q3 board deck." * "Summarize the last five messages in my Slack thread with procurement." * "What meetings do I have tomorrow that mention the Series B?" * "Draft a reply to the counterparty's latest email and ask for their comments on section 4." * "Schedule a 30-minute follow-up with Jordan next Tuesday." * "Post to #legal that the MSA redline is ready for review." * "Summarize HubSpot activity for Acme this week." * "Find the OneNote page with our disclosure committee checklist and summarize the open questions." * "Summarize the Jira issues blocking the privacy review." * "Show me the latest updates on the Monday.com board for the policy refresh." * "Search my Airtable intake base for open NDAs and add a row for the Acme request." * "Add a Todoist task to send the signed MSA to procurement by Friday." * "Find the Ironclad workflow for Acme's MSA and summarize its approval status." ## Control what GC AI can do Under each connected app in Settings, expand **Tools**. Each action has its own permission: | Setting | Behavior | | ------------------ | --------------------------------------------------------------------------------------------------- | | **Always allow** | GC AI runs that action without asking each time. Read actions default to this setting. | | **Needs approval** | GC AI pauses and asks before running that action. Write and delete actions default to this setting. | | **Block** | GC AI cannot use that action | When an action needs approval, a card appears in the thread with **Approve**, **Always approve**, and **Deny**.Write and delete actions (such as sending messages, sending emails, or updating records) require approval by default. You can adjust permissions individually or in bulk in Settings. ## Disconnect or reconnect * **Disconnect** any connector in **Settings → Integrations** to revoke access immediately. * If a connector shows **Reconnect required**, authorization expired or was invalidated by the provider. Select **Reconnect** and sign in again. Users on an earlier connectors preview need to connect again individually. Connections do not carry over automatically. ## Available connectors GC AI currently supports these Agent Connectors: Gmail, Microsoft Outlook, Slack, Microsoft Teams, Microsoft OneNote, Google Drive, Microsoft OneDrive, Microsoft SharePoint, Google Calendar, Google Docs, Google Sheets, Box, Dropbox, HubSpot, Notion, Airtable, Confluence, Asana, Linear, Jira, GitHub, Monday.com, Todoist, Granola, USPTO, Agiloft, and Ironclad. Agiloft, Box, Ironclad, and Monday.com are in beta. Microsoft SharePoint availability varies by organization. Contact your GC AI account team if it does not appear in Settings. To request a new connector, contact your GC AI account team or email [support@gc.ai](mailto:support@gc.ai) with the app name and how your legal team would use it. ## How Agent Connectors differs from related features | Capability | What it does | | -------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | | **Agent Connectors** | Live use of your connected apps in chat (read and act), with per-action approval | | **Google Drive import** (legacy Integrations tile) | One-time import of selected files into GC AI via Google Picker. Does not continuous-sync Drive | | **External API** | Programmatic integrations with API keys (Zapier, custom apps). Not the in-app connect-and-chat workflow | ## Related * [Features overview](/about/features) * [Google Drive](/docs/files/google-drive) * [Invite teammates](/guides/organizations/how-to-invite-teammates) # Connect Microsoft 365 Source: https://docs.gc.ai/guides/organizations/connectors/microsoft-365 Admin consent, Graph permissions, and security answers for Outlook, Teams, OneDrive, SharePoint, and OneNote Microsoft 365 covers Outlook, Teams, OneDrive, SharePoint, and OneNote. These apps share one Microsoft Entra app. A tenant admin grants consent once. After that, each person connects their own Microsoft account in GC AI. GC AI then acts with that person's existing Microsoft access. It does not receive tenant-wide application access that bypasses the user's permissions.Microsoft lists every Graph permission on GC AI's app in one pass, not one list per connector. After you accept, the same Graph names appear in Entra under **Enterprise applications → GC AI → Permissions → Admin consent**. ## Grant tenant admin consent (admins)Org admins then set each connector to **Disabled**, **Read-only**, or **Full access** under **Settings → Policies**. Under a connected app, expand **Tools** to set each action to **Always allow**, **Needs approval**, or **Block**. Tools are grouped as **Read** (defaulting to **Always allow**) and **Write & delete** (defaulting to **Needs approval**). See [Agent Connectors](/guides/organizations/agent-connectors#control-what-gc-ai-can-do). ## Connect your account After admin consent is in place, each person connects their own account: 1. Open **Settings → Integrations → Agent Connectors**. 2. Select **Connect** on the Microsoft 365 app you want. 3. Complete Microsoft's sign-in flow for your account. Admins cannot connect Outlook, Teams, OneDrive, SharePoint, or OneNote on your behalf. You authorize your own account. Most organizations see Microsoft SharePoint in Settings. If you do not, contact your GC AI account team. Admin consent is for the shared Microsoft app, so SharePoint Graph permissions can still appear on Microsoft's screen even when the SharePoint tile is hidden. ## What ".All" means on delegated scopes Scopes such as `Sites.Read.All` and `ChannelMessage.Read.All` are **delegated**. GC AI can reach only the sites, files, chats, and teams the signed-in user can already open in Microsoft 365. `.All` means all of that user's existing access, not application-only access to the whole tenant. ## Permission justifications These are the delegated Microsoft Graph permissions GC AI requests for Microsoft 365 connectors. The first column is the Graph name you see in Entra. The line under it is the label Microsoft shows on the consent screen. Open **Settings → Integrations → Agent Connectors** and select **Connect** on a Microsoft 365 app (Outlook, Teams, OneDrive, SharePoint, or OneNote). The connect dialog says Microsoft requires a one-time admin approval. Use **Copy approval link** and send it to your Microsoft 365 admin, or select **Approve now** if you have that role. Complete Microsoft's admin consent screen. Compare the Graph names on that screen to the tables below. ## Security questions ### Which GC AI features use these permissions? In product terms, the Microsoft 365 connectors support: * **Microsoft Outlook:** search and read mail, drafts, send mail, calendar read/create/update, contact lookup * **Microsoft OneDrive:** browse, search, and read files; upload or save files when the user asks * **Microsoft SharePoint:** discover sites, search and retrieve documents; upload files, create Word documents, and edit Excel workbooks when the user asks * **Microsoft Teams:** search chats and channels; send messages when the user asks * **Microsoft OneNote:** search notebooks and pages; create or update notes when the user asks Users connect each app separately. A user who only connects Microsoft Outlook does not get Teams or SharePoint tools until they connect those apps. ### Can you support Sites.Selected instead of Sites.Read.All? Not as a drop-in replacement with current product behavior. `Sites.Selected` requires a tenant admin to pre-authorize specific SharePoint site IDs for the application. GC AI's SharePoint connector is built so each user can search and open sites and libraries they already have access to in Microsoft 365. Switching to `Sites.Selected` would mean every new site needs a separate admin grant, and would block open site discovery. If your tenant has a fixed, small set of sites and wants least-privilege site allowlisting, that is a reasonable follow-up for GC AI. It is a scoped change and needs a clear site list from your team. ### Why is Sites.ReadWrite.All required? The SharePoint connector includes user-initiated write features: upload a file to a library, create a Word document, and edit Excel content in SharePoint. `Sites.Read.All` alone cannot perform those writes. Access remains delegated to what the signed-in user can already do in SharePoint. If you want SharePoint read-only, a GC AI org admin can set Microsoft SharePoint to **Read-only** under **Settings → Policies**. That disables write tools. Full write features stay off until policy is changed. ### Does GC AI make any changes to SharePoint content? Only when the user asks for a write action: uploading a file, creating a Word document, or editing Excel in a SharePoint library. GC AI does not independently crawl or modify SharePoint content in the background. In Settings, write actions sit under the **Write & delete** tool group. That is the product label for write actions. GC AI does not expose a SharePoint delete-file action. ### Does GC AI write back, edit, update, or delete files or data in SharePoint sites? **Write / create / update:** Yes, when the user requests it (upload, create Word doc, Excel edits), subject to that user's per-action settings in GC AI. **Delete:** GC AI does not expose a SharePoint delete-file product action. We do not delete SharePoint files or sites as part of normal connector use. ### Is document content retained after processing, or fetched on demand? Content is fetched from Microsoft on demand when the user asks for it in chat, or when the user chooses to import or sync files into GC AI. It is not mirrored as a standing full copy of the user's SharePoint or OneDrive. For subprocessors and zero data retention, see [gc.ai/subprocessors](https://gc.ai/subprocessors) and [Zero data retention](/security/zero-data-retention). ### Can we grant only some of these permissions? Yes, with tradeoffs. After admin consent, a Microsoft admin can revoke individual Graph permissions on the GC AI enterprise app in Entra. A GC AI org admin can set a connector to **Disabled**, **Read-only**, or **Full access** under **Settings → Policies**. Users can set each action to **Always allow**, **Needs approval**, or **Block** under **Tools**. Tools that need a revoked scope become unavailable. For example, revoking Teams send scopes leaves Teams search in place and turns off posting. ## Related * [Agent Connectors](/guides/organizations/agent-connectors) * [Security overview](/security/overview) * [Zero data retention](/security/zero-data-retention) * [Subprocessor list](https://gc.ai/subprocessors) # Connect USPTO Source: https://docs.gc.ai/guides/organizations/connectors/uspto Create a USPTO Open Data Portal API key and connect it to GC AI USPTO is an API-key connector, not OAuth. You create a key in the USPTO Open Data Portal, then paste it into the GC AI connect modal. GC AI stores the key encrypted and does not show it to the assistant. ## Connect USPTO | Permission | GC AI feature | Why this access level | | --------------------------------------------------------------------------- | -------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | | `openid`
Sign you in | Microsoft sign-in | Standard OpenID Connect scope for the Microsoft sign-in flow. | | `offline_access`
Maintain access to data you have given it access to | Persistent connection | Standard OAuth scope so you are not prompted to sign in on every session. It does not expand data access beyond the other granted scopes. | | `User.Read`
Sign in and read user profile | Connected-account identity | Reads the signed-in user's name and email so GC AI can show which Microsoft account is connected. It does not grant directory-wide user access. || Permission | GC AI feature | Why this access level | | --------------------------------------------------------------- | ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ | | `Mail.Read`
Read user mail | Search and retrieve email | Users search mail and bring messages into chat for context. Read-only for message content. | | `Mail.ReadWrite`
Read and write access to user mail | Create and manage drafts | Required to create and update drafts in the user's mailbox. Broader than read. Sending mail uses `Mail.Send`. | | `Mail.Send`
Send mail as a user | Send email | Required to send mail as the user. Users can set send to **Needs approval** or **Block** in GC AI. | | `Calendars.Read`
Read user calendars | View schedule | Read-only calendar access for upcoming meetings and context. | | `Calendars.ReadWrite`
Have full access to user calendars | Create or update meetings | Read alone cannot create or update events. ReadWrite is required for scheduling actions on the user's behalf. | | `Contacts.Read`
Read user contacts | Contact lookup | Read-only. Used to resolve people the user already has in contacts when drafting email or scheduling. GC AI does not create, edit, or delete contacts. | | `MailboxSettings.Read`
Read user mailbox settings | Timezone and locale | Read-only mailbox settings so dates and times display correctly for the user. GC AI does not change mailbox settings. || Permission | GC AI feature | Why this access level | | -------------------------------------------------------------------------- | ---------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `Files.Read.All`
Read all files that user can access | Browse, search, and open files | Lets users pull OneDrive files they can already open, including files shared with them, into GC AI for review and analysis. | | `Files.ReadWrite.All`
Have full access to all files user can access | Upload or save generated documents | Required when a user asks GC AI to save an output back to OneDrive (the Upload file tool). Read alone cannot write files. Access stays limited to drives and files that user can already modify. | If your Entra **Admin consent** tab also lists `Files.Read` and `Files.ReadWrite`, those are the original OneDrive file scopes. They cover the signed-in user's own files. The OneDrive connector now requests `Files.Read.All` and `Files.ReadWrite.All`.| Permission | GC AI feature | Why this access level | | -------------------------------------------------------------------------- | ------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `Sites.Read.All`
Read items in all site collections | List sites, search libraries, retrieve documents | Delegated: limited to sites and files the signed-in user can already open in SharePoint. Required for site discovery and document search in chat. | | `Sites.ReadWrite.All`
Read and write items in all site collections | Upload files; create Word docs; edit Excel in libraries | Write counterpart to `Sites.Read.All`. Same delegated boundary: only sites and libraries the user can already modify in Microsoft 365. Org admins can set Microsoft SharePoint to **Read-only** in **Settings → Policies** to disable write tools. | | `Files.ReadWrite.All`
Have full access to all files user can access | Files across drives the user can access, including libraries | `Files.ReadWrite` covers the signed-in user's OneDrive. `Files.ReadWrite.All` is the Graph scope used when reading or writing files in SharePoint libraries and other drives the user can already access, including files shared with them. | | `Files.ReadWrite`
Have full access to user files | Create and edit Word and Excel in libraries | Used by SharePoint document-edit tools (create a Word doc, edit Excel). Complements the Sites and Files.All scopes above. || Permission | GC AI feature | Why this access level | | -------------------------------------------------------------------------- | ----------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `Team.ReadBasic.All`
Read the names and descriptions of teams | List teams the user belongs to | Read team names and basic properties the signed-in user can already see. | | `Channel.ReadBasic.All`
Read the names and descriptions of channels | List channels | Read channel names in teams the user can already access, so chat can find the right channel. | | `ChannelMessage.Read.All`
Read user channel messages | Search channel messages | Read channel messages in teams the user can already open. Used to pull thread context into chat. | | `ChannelMessage.Send`
Send channel messages | Post to a channel | Send a message as the user to a channel they already belong to. Users can set this action to **Needs approval** or **Block**. | | `Chat.Read`
Read user chat messages | Search 1:1 and group chats | Read the signed-in user's chat messages for context in GC AI. | | `Chat.ReadWrite`
Read and write user chat messages | Send chat messages | Write counterpart to `Chat.Read`. Required to send a chat as the user. | | `ChatMember.Read`
Read the members of chats | See who is in a chat | Read chat membership so GC AI can identify participants. | | `ChatMember.ReadWrite`
Add and remove members from chats | Update chat membership | Requested with the Teams connector. Add or update members in chats the user can already manage. Not used to create chats the user could not create in Teams. | | `TeamMember.Read.All`
Read the members of teams | See team membership | Read members of teams the user can already access, so search and addressing work. | | `TeamMember.ReadWrite.All`
Add and remove members from teams | Update team membership | Write counterpart for membership changes the user can already make in Teams. | | `User.Read.All`
Read all users' full profiles | Look up colleagues | Delegated people lookup when addressing a chat or matching a name in search. Limited to directory data Microsoft already exposes to that user. | | `Directory.Read.All`
Read directory data | Resolve directory objects for Teams | Microsoft Graph uses directory reads to resolve users, groups, and related objects when listing teams, chats, and members. Delegated: the signed-in user's existing directory visibility. | | `Group.ReadWrite.All`
Read and write all groups | Teams as Microsoft 365 Groups | Teams are Microsoft 365 Groups. This scope supports team and channel operations the connector exposes, limited to groups the user can already manage. Org admins who want Read-only Teams can set the connector to **Read-only** in **Settings → Policies**. || Permission | GC AI feature | Why this access level | | -------------------------------------------------------------------------------------- | ------------------------------------- | ------------------------------------------------------------------------------------ | | `Notes.Read.All`
Read all OneNote notebooks that user can access | Search notebooks, sections, and pages | Read notebooks the signed-in user can already open, and pull page content into chat. | | `Notes.ReadWrite.All`
Read and write all OneNote notebooks that user can access | Create notebooks, sections, and pages | Required when a user asks GC AI to capture a note. Read alone cannot create pages. |## What you can do With USPTO connected, you can ask GC AI in chat to: * Search patent applications in the Open Data Portal * Pull application status and bibliographic details by application number * Retrieve file-wrapper documents (for example, office actions and claims) into your GC AI files for review in the same conversation # Create and manage a company profile Source: https://docs.gc.ai/guides/organizations/creating-a-profile Create a company profile, select it for a chat, and set personal or project defaults. Company profiles give GC AI context about your business. A profile can include your industry, jurisdictions, risk tolerance, and contract preferences. You can create several profiles and share each profile with members of your organization. Create a key in the [USPTO Open Data Portal](https://data.uspto.gov/home). Open **Settings → Integrations → Agent Connectors**, select **Connect** on USPTO, and paste the key. ## Create a company profile 1. Open the company profile picker below the chat composer. 2. Select **New company profile**. 3. Enter the company details, or enter its website to generate a draft. 4. Review each generated field before you save the profile. 5. Select **Save**. Include the details that affect your legal work: * The company's legal name, address, industry, and jurisdictions * Its business model, customers, products, and services * Its risk tolerance and compliance requirements * Its preferred clauses, contract positions, and legal language * The teams or people involved in legal decisions ## Use a company profile in chat Select a company profile below the chat composer. Your selection applies to that chat and does not change your default.
GC AI can apply the company's legal name, jurisdictions, regulations, and risk preferences to its response. ## Set your personal default 1. Open the company profile picker below the chat composer. 2. Under **Defaults**, open **Your default**. 3. Select a company profile. The personal default applies to new chats when the selected project does not have its own default.
To clear the personal default, open **Your default** and select **No default**. ## Set a project default You need **Edit** or **Admin** access to set a project default. 1. Select the project in the chat composer. 2. Open the company profile picker. 3. Under **Defaults**, open **Project default**. 4. Select a company profile. New chats in the project use the project default instead of your personal default. You can select another profile for one chat. To clear the project default, open **Project default** and select **No project default**. ## Keep the profile current Update the profile after changes to the company's markets, products, legal positions, or risk tolerance. Your company data is encrypted, secure, and private. # How to Invite Team Members to Your Organization Source: https://docs.gc.ai/guides/organizations/how-to-invite-teammates Organization admins can invite colleagues to join your GC AI organization. Members cannot send invitations. This guide explains two methods: using a general invitation link and sending direct email invitations. ## Inviting with a General Invitation Link This method is useful if you want to share a single link with multiple people, allowing them to join your organization. ### 1. Create Your Invitation Link You'll first need to generate an invitation link for your organization. * In your [organization settings](https://app.gc.ai/settings/organization/invite), find the option to create an invitation link. * Generate the link. ### 2. Share the Link with Your Teammates Once you have the link, share it with the teammates you want to invite. They can use this link to join. ### How Your Teammates Join Using the Link When your teammate receives and uses the invitation link, they will need to: 1. Open the link provided. 2. Sign in to GC AI. If they are new to the platform, they will be prompted to create an account. 3. Select the option to **Join an existing organization**. 4. Paste the invitation link you shared into the **designated field**. 5. Confirm their choice to join the organization. ### Verify New Members After a teammate has completed these steps, you can refresh your organization's [**member list**](https://app.gc.ai/settings/organization) to see them included. ## Inviting Individual Team Members by Email If you prefer to invite specific individuals directly, you can send an invitation to their email address. ### 1. Send an Email Invitation * Navigate to the member management section within your [organization settings](https://app.gc.ai/settings/organization/invite). * Select the option to invite a new member. * Enter the email address of the team member you wish to invite. * Send the invitation. ### How Your Teammate Accepts the Email Invitation The person you invited will receive an email and will need to: 1. Open the invitation email. 2. Select the invitation link contained in the email. 3. Sign in to GC AI. This will finalize the process of them joining. 4. Accept the invitation to officially become a member of your organization. ### Verify New Members To confirm that they are now part of your organization, check the [**member list**](https://app.gc.ai/settings/organization) in your settings. *** # Analyzing Organization Usage Metrics Source: https://docs.gc.ai/guides/organizations/organization-usage-metrics Monitor and analyze your organization's GC AI usage with comprehensive analytics and reporting ## Overview The Organization Usage Metrics page gives you comprehensive analytics and insights into how your team uses GC AI. You can access this page at [https://app.gc.ai/metrics](https://app.gc.ai/metrics) to track usage patterns, monitor team performance, and optimize your AI workflows.
**Admin Access Required**: Organization-wide usage data is available to users with admin roles within their organization. Organizations can have multiple admin users who all have access to these metrics. User group owners and managers can also open this dashboard, scoped to the members of the groups they lead. Regular members see only their personal usage. ## Accessing Metrics  ### From Organization Settings To access metrics from your organization settings, follow these steps: 1. Navigate to **Settings** → **Organization** 2. Select **View Organization Usage Metrics** in the Quick Actions section 3. You'll be redirected to the metrics page with your organization pre-selected ### Direct Access You can also access the metrics page directly: 1. Visit [https://app.gc.ai/metrics](https://app.gc.ai/metrics) 2. Select your organization from the dropdown menu ## Key Features ### 📊 Organization Selection * **Personal Usage**: View your individual usage across all organizations (available to all users) * **Organization Usage**: Analyze team-wide metrics for specific organizations (admin users only) * **Multi-org Support**: Switch between different organizations where you have admin access * **Multiple Admins**: Organizations can have multiple admin users who all have access to the same metrics dashboard ### ⏰ Time Period Options You can choose from multiple predefined time ranges: Quick Selection: * Last 7 days * Last 30 days * Last 3 months * Last 6 months * Last 12 months * All time * This month * Year to date Custom Range: * Custom date range picker * Start and end date selection * Flexible period analysis ### 📈 Chart Types Each metric panel supports multiple visualization options: * **Bar Charts**: Compare values across categories * **Stacked Bar Charts**: Show composition and totals * **Line Charts**: Track trends over time * **Pie Charts**: Display proportions (member-based views) * **Tables**: Detailed data breakdowns ## Core Metrics ### 💬 Chat & Message Analytics #### Total Usage * **Messages Sent**: Total AI interactions across the organization * **Chats Created**: Number of conversation threads started * **Per-Member Breakdown**: Individual contribution analysis #### Detailed Views * **By Member**: See who's using GC AI most actively * **By Interval**: Daily, weekly, or monthly trends * **Time-based Analysis**: Identify usage patterns and peak activity ### 🌐 Web Page Analysis * **Pages Scraped**: Number of web pages processed * **Word Count**: Total content analyzed * **Usage Patterns**: Track research and information gathering ### 📁 File Management * **Files Uploaded**: Document processing volume * **Content Types**: Supported file formats * **Processing Statistics**: Success rates and processing times ## Word Add-in Metrics ### 📝 Microsoft Word Integration Track usage of the GC AI Word add-in: * **Word Messages**: AI interactions within Word documents * **Word Chats**: Document-specific conversations * **Redlines Applied**: AI-suggested edits implemented * **Drafts Applied**: AI-generated content incorporated ### Add-in Analytics * **Per-Member Usage**: Individual Word add-in activity * **Document Processing**: Track editing and drafting workflows * **Productivity Metrics**: Measure time saved through AI assistance ## Weekly Insights Email  ### 📧 Automated Weekly Reports Every Monday, GC AI automatically sends comprehensive insights emails to help you stay informed about your organization's usage: * **Admin Insights Email**: Sent to all admin users with organization-wide metrics and trends * **Personal Insights Email**: Sent to individual users with their personal usage summary * **AI-Generated Insights**: Each email includes personalized analysis and recommendations ### 📊 What's Included in Admin Emails The weekly admin insights email contains: * **Organization Overview**: Summary of the past week's activity * **Key Metrics**: Messages, chats, hours saved, and file analysis * **Trend Analysis**: Week-over-week changes and improvements * **Most Active Day**: Peak usage patterns and timing * **Member Rankings**: Top users by messages and chats with rank changes * **Activity Metrics**: Files analyzed, words read, and sites scanned * **Latest Resources**: Newsletter updates and [AI prompting classes](https://gc.ai/classes) ### 📈 What's Included in Personal Emails Individual users receive personalized insights including: * **Personal Summary**: AI-generated insights about their usage patterns * **Performance Metrics**: Messages, chats, and percentile rankings * **Time Savings**: Estimated hours saved through AI assistance. Time saved is calculated based on multiple factors: * 5 minutes saved per web message, estimated reading time for uploaded files and websites. * 3 minutes per Word redline. * 5 minutes per Word draft. These are conservative estimates based on customer feedback showing 5-100x time savings on tasks like research and document analysis. * **Activity Breakdown**: Files analyzed, words read, and sites scanned * **Growth Tracking**: Week-over-week progress and improvements ## Data Export & Sharing ### Export Options Each chart panel supports multiple export formats: * **PNG**: High-quality images for presentations * **SVG**: Scalable vector graphics * **JPG**: Compressed image format * **CSV**: Raw data for spreadsheet analysis * **XLSX**: Excel-compatible format with formatting ### Export Features * **Chart-specific Data**: Export only the data shown in each panel * **Member-filtered Exports**: Include only selected team members * **Time-period Filtering**: Export data for specific date ranges ## Advanced Features ### 🔍 Member Filtering * **Selective Analysis**: Focus on specific team members * **Role-based Views**: Analyze usage by team roles * **Performance Tracking**: Monitor individual productivity ### 📊 Column Layout * **Responsive Design**: 1-column (mobile) or 2-column (desktop) layouts * **Customizable Views**: Adjust layout based on screen size * **Optimized Display**: Best viewing experience for different devices ### 🔄 Real-time Updates * **Live Data**: Metrics update automatically * **Refresh Controls**: Manual refresh when needed * **Data Currency**: Information is current within a few hours ## Best Practices ### 📈 Regular Monitoring * **Weekly Reviews**: Check usage patterns and trends * **Monthly Analysis**: Identify optimization opportunities * **Quarterly Planning**: Plan resource allocation and training ### 🎯 Performance Optimization * **Usage Patterns**: Identify peak usage times * **Feature Adoption**: Track which capabilities are most used * **Training Needs**: Spot opportunities for team education ### 📚 Additional Resources * [Team Management Guide](/guides/organizations/how-to-invite-teammates) * [Best Practices for Organizations](/guides/organizations/creating-a-profile) * [GC AI for Word Documentation](/docs/gc-ai-for-word/how-to-install) ### 🔗 Related Features * [File Management](/docs/files/introduction) * [Chat Interface](/docs/chat/interface-overview) * [Organization Settings](/docs/organizations/company-profiles)The metrics page is continuously updated with new features and improvements. Check back regularly for enhanced analytics capabilities. # Creating a Playbook in GC AI Source: https://docs.gc.ai/guides/playbooks/creating-playbooks Learn how to create playbooks in chat, from GC AI templates, or from your own materials ## 💬 Option A: Create a Playbook in Chat (Recommended) The fastest way to create a high-quality playbook. Upload your documents, describe what matters to you, and GC AI's Playbook Builder Agent creates a structured playbook while you watch. Every playbook automatically goes through a quality review before it's finalized. ### How It Works 1. **Start a conversation and upload your documents.** Drop in your template, standard agreement, existing playbook document, or any combination. You can add supplementary materials too: redlined versions, counterparty examples, negotiation guides, or policy memos. 2. **Describe what matters.** Tell GC AI about your priorities, non-negotiables, and negotiation strategy in your own words. For example: "IP ownership is non-negotiable. We have flexibility on liability caps above 2x annual fees. Always require 60-day termination notice." 3. **Watch it build in real time.** Checks appear in a panel on the right side of the screen as the Builder Agent processes your documents. Each check includes positions, fallback language, and guidance derived from your materials and instructions. 4. **Automatic quality review.** Once the draft is complete, the Playbook Review Agent audits every check for issues: * Contradictions between checks (e.g., one check caps liability at fees paid while another implies uncapped indemnification) * Concessions hiding in a standard position that should be fallbacks * Missing negotiation middle ground between your strongest and weakest positions * Gaps in coverage for provisions expected in your agreement type * Guidance too vague for clear pass/fail during contract review * Missing fallback positions for commonly negotiated provisions Every check receives a grade (A, B, or C) with a rationale visible in the builder panel. 5. **Answer only what needs your judgment.** Issues that require a business decision are surfaced as specific questions, each linked to the relevant check. Click a question to jump directly to that check in the panel. You answer, GC AI applies the changes. 6. **Refine through conversation.** After the playbook is ready, keep editing in the same chat. Ask GC AI to update specific checks, add new ones, or adjust positions. Each change shows an approval card before it takes effect.You can also run the Review Agent on any existing playbook at any time. Ask GC AI to review a playbook for issues, and it will audit every check and surface anything that needs attention. ### What You Can Upload | Document type | Role | | ---------------------------------------------- | -------------------------------------------------------------------------------- | | Your contract template or standard form | Base document: the primary source for checks and positions | | Existing playbook document (Word, PDF) | Base document: digitizes your current playbook into structured checks | | Redlined contracts (your paper or third-party) | Supplementary: refines positions based on real negotiation patterns | | Counterparty examples | Supplementary: helps define what you'll encounter and where fallbacks are needed | | Negotiation guides or policy memos | Supplementary: adds nuance about escalation paths and risk tolerance |Start with one base document. You can add supplementary documents in the same conversation to refine the playbook further. ### Managing Playbooks in Chat Beyond creation, you can manage existing playbooks from any conversation: * **Review for issues:** Ask GC AI to audit a playbook and surface inconsistencies or gaps * **Edit:** Ask GC AI to update a playbook's title, description, guide, or individual checks * **View:** Ask GC AI to list your playbooks or show details of a specific one * **Duplicate:** Ask GC AI to copy a playbook as a starting point for a new one * **Delete:** Ask GC AI to delete a playbook you no longer need (requires your approval) ## 📋 Option B: Start from a GC AI Playbook Start quickly with one of four GC AI foundation playbooks. For the fastest way to create a playbook from your own materials, see [Option A](#option-a-create-a-playbook-in-chat) above. * SaaS Master Service Agreement * Mutual Non-Disclosure Agreement * Commercial Master Services Agreement (Non-SaaS) * Data Processing Agreement Built and fine-tuned by GC AI's solution attorneys with in-house legal experience, each GC AI Playbook offers contextual reasoning and redline suggestions. This is the quickest way to get started with Playbooks.### Customizing a GC AI Playbook in Microsoft Word 1. Open the GC AI Playbook you would like to customize 2. Click the three vertical dots (⋮) in the top right corner and select "Copy to My Playbooks" 3. Click the three vertical dots (⋮) again and select "Edit Playbook" * *This will automatically open the Playbook editor in the GC AI web app. This is a dedicated space in the GC AI web app to create, edit, and organize your Playbooks.* 4. Follow the steps in [Editing & Maintaining Your Playbook](/guides/playbooks/editing-playbooks) to customize the playbook to your preferred positions ### Customizing a GC AI Playbook in the Web App 1. Open the Main Menu in the top left of the GC AI web app 2. Click Playbooks 3. Open the GC AI Playbook you would like to customize 4. Click on "Copy and Customize" 5. Follow the steps in [Editing & Maintaining Your Playbook](/guides/playbooks/editing-playbooks) to customize the playbook to your preferred positions ## 🚀 Option C: Easy Playbooks
For the best experience creating playbooks from your own documents, we recommend [Option A: Create a Playbook in Chat](#option-a-create-a-playbook-in-chat-recommended) above. The Playbook Builder Agent offers real-time creation, automatic quality review, and conversational refinement. You can create a playbook by importing your company's existing playbook documents. GC AI will convert your materials into a structured playbook format. You can also import your contract templates to include your preferred language to your playbook. ### Creating from Your Own Materials 1. On the Playbooks home page in either the GC AI Word add-in or the Playbook editor in the GC AI web app, click "+ Create Playbook" * *Note: If starting from Word, this will automatically open the Playbook editor in the GC AI web app. This is a dedicated space in the GC AI web app to create, edit, and organize your Playbooks.* 2. Tell GC AI your starting point - whether you're creating a playbook from: * (a) an existing playbook document your team already uses, or * (b) your standard contract template 3. Tell GC AI the additional documents that you have, which can be used for the playbook creation process, including: * (a) redlines on your paper * (b) redlines on third-party paper * (c) other reference materials 4. Upload your playbook and/or other relevant documents (if any) * *For best results, limit your upload to 3-5 documents.* 5. Click "Create Playbook" in the bottom right corner GC AI will generate a structured playbook based on your uploaded materials. From there, you can review and refine your new playbook using the steps in [Editing & Maintaining Your Playbook](/guides/playbooks/editing-playbooks). ## 📝 Playbook Field Definitions When creating or editing a playbook, you'll encounter the following fields: ### General Playbook Fields *Fields that apply to the full playbook* | Field | What It Does | What to Include | | ----------------------------- | ---------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | | **Title** | Helps identify the playbook for users. | Enter a descriptive title for your playbook. | | **Additional context for AI** | Provides GC AI with the overall context of the playbook being created. | This field appears as you create a new playbook. Provide general context about the uploaded documents that applies to all files. | | **Description** | Explains the playbook's purpose and relevance to users. | Brief summary of what this playbook covers and when to use it. | | **Guide** | Provides instructions that apply to all checks in the playbook. | General guidance and instructions that GC AI should follow when reviewing contracts against this playbook. | ### Check-Level Fields *Fields that apply to individual checks* | Field | What It Does | What to Include | | --------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | | **Title** | Helps identify the check for users. | Enter a descriptive title for your check. | | **Internal Description** | Describes the specific provision or issue this check evaluates. | For internal reference only - A clear explanation of the specific provision or issue this check addresses. | | **Importance** | Provides users with a visual cue to the importance of the check. | High / Medium / Low | | **What are the scenarios in which GC AI should apply this position?** | Tells GC AI when to consider this position or fallback. | The conditions or scenarios where this check should apply or when this position is applicable. | | **Describe the rule, preference, or acceptable terms** | Directs GC AI on what to do when reviewing this position. | Guidance - Specific instructions on how GC AI should evaluate and respond to this provision. | | **Example language for GC AI to reference** | Provides sample language for GC AI to reference. | Preferred contract language for this position; GC AI will consider the substance rather than replacing text wholesale. | | **Comment Guidance** | Provides GC AI with pre-defined language to use when generating comments for a specific position. | Sample internal or external comments you want GC AI to reference when generating comments for this check. | | **Copy to another playbook** | Allows you to copy a specific check, and include it in another playbook. | Select the other playbooks in which you want to include this check. | # How to Download Your Playbook Source: https://docs.gc.ai/guides/playbooks/downloading-playbooks Learn how to download a playbook as a DOCX file from the GC AI web app You can download any playbook you've created as a DOCX file directly from the GC AI web app. The downloaded file includes your checks, fallback positions, and all other playbook details. ## How to Download a Playbook 1. Open a chat in the [GC AI web app](https://app.gc.ai/) 2. Click the **Add** button and add the playbook you want to download 3. Ask GC AI to **"download this playbook"** and send the message 4. GC AI will generate a downloadable version of your playbook 5. Click the download link to save the playbook as a **DOCX** file The exported DOCX includes your fallback positions, all checks, and the full structure of your playbook. # Editing & Maintaining Your Playbook Source: https://docs.gc.ai/guides/playbooks/editing-playbooks Learn how to update and maintain your playbooks over time ## ⏰ When to Update Your Playbook You may want to update your playbook when: 1. You start from a GC AI Playbook and want to customize it to your company's specific positions 2. Your company's standard position changes over time on a particular issue 3. As you review contracts, you notice provisions that aren't addressed in your current playbook * Note: [Smart Checks](/guides/playbooks/running-playbooks#smart-checks) can help with these playbook updates ## 🔧 What Can Be Edited Everything inside a playbook can be updated, including: * Playbook description * Guide * Individual checks, positions and fallbacks: * Check description * Position or Fallback title * What are the scenarios in which GC AI should apply this position * Describe the rule, preference, or acceptable terms * Example language for GC AI to reference ## 📝 How to Edit Your Playbook To edit a playbook: 1. Navigate to the Playbooks home page (either in the web app or from the Word add-in) 2. Select the playbook you want to edit 3. If you started in the MS Word add-in, click the three vertical dots (⋮) in the top right corner and select "Edit Playbook" * *Note: This will automatically open the Playbook editor in the GC AI web app.* 4. Click into each check to update any of the [Playbook fields](/guides/playbooks/creating-playbooks#playbook-field-definitions), as needed 5. Click "Save" to apply your changes # Playbooks FAQ Source: https://docs.gc.ai/guides/playbooks/faq Frequently asked questions about GC AI Playbooks ## 🚀 I. Getting Started ### 1. What is a playbook? A playbook is a standardized guide for contract review that captures your company's preferred positions, fallback terms, and negotiation considerations. Think of it as a structured checklist that GC AI applies consistently across contracts, flagging deviations, explaining why provisions matter, and suggesting approved redlines directly in Microsoft Word. ### 2. What is the difference between GC AI Playbooks and Easy Playbooks? **GC AI Playbooks** are pre-built, ready-to-use playbooks created by GC AI for common contract types. Today, these include NDAs, DPAs, MSAs for SaaS, and MSAs for commercial use. They allow you to start reviewing documents immediately without creating or configuring a playbook yourself. **Easy Playbooks** are customer-created playbooks. They let you generate a playbook from your own templates, previously negotiated agreements, or imported playbooks, and can be used for virtually any contract type. Simply upload your documents and GC AI will create a playbook you can reuse for future reviews. ### 3. Do I need to have a Playbook to use the Playbooks feature? No. We have four ready-to-use GC AI Playbooks you can apply to common document types (NDAs. DPAs, MSAs for SaaS and MSAs for commercial use). If you'd prefer to make a playbook from your template or your recently negotiated documents, you can also have GC AI create one that you can then use to review future contracts. ### 4. What types of contracts can Playbooks be used for? GC AI Playbooks support four common agreements, NDAs, DPAs, MSAs for SaaS and MSAs for commercial use. In addition, using Easy Playbooks customers can create playbooks for virtually any contract type by importing your own playbooks, templates, or negotiated agreements. ### 5. Can I customize a GC AI Playbooks to my company's positions? Yes. You can copy any GC AI Playbook into your own workspace and customize it to reflect your company's preferred positions, fallbacks, and guidance. All fields in the Playbook are fully editable, including individual checks, positions, fallback logic, and example language. GC AI offers [classes](https://app.gc.ai/academy), and a detailed user guide to help users quickly learn how to tailor Playbooks to their organization's specific negotiation approach. ## ✏️ II. Creating a Playbook ### 6. Can I create a Playbook from my existing internal playbook or templates? Yes. In addition to GC AI Playbooks, we offer Easy Playbooks. Using this, you can upload your existing playbook documents and/or contract templates, and GC AI will convert them into a structured Playbook. From there, you can review, edit, and refine each position, fallback, and guidance before using it in contract review. ### 7. How many documents should I upload when creating a Playbook from my own materials? For best results, we recommend uploading no more than three to five documents when using Easy Playbooks. This gives GC AI enough context to accurately extract your positions without introducing unnecessary variation. ### 8. What format can I use for my Playbook? Any format, so long as a human can understand it. What won't work is if you upload just a list of your fallback positions since you can't make a playbook unless you know what your preferred positions are. You can have specific language or general concepts in your playbooks. In general, GC AI will mark sections as complying with your playbook as long as the general concept complies, even if slightly different terms or language is used, unless you specifically include requirements that exact language is required. ### 9. Do I need exact clause language in my Playbook, or are examples sufficient? Exact clause language is not required. GC AI primarily evaluates whether the *substance* of a provision aligns with your Playbook. Example language helps guide the AI, but it will not replace contract text wholesale unless you instruct it to require exact wording. ## ⚙️ III. How Playbooks Work ### 10. What are checks in a Playbook? Checks are the specific provisions or aspects of a document GC AI will look for when reviewing against your playbook. Think of them as issues that you are telling GC AI to look for when reviewing the document. For example, if your playbook requires the governing law to be California, with your fallback being New York, the "check" is for governing law. In general, GC AI will mark sections as complying with your playbook as long as the general concept complies, even if slightly different terms or language is used, unless you specifically include requirements that exact language is required. ### 11. Can I include fallback positions in my Playbook? Yes. Your playbook can include conditional language that's implicated by certain contract language or context provided when running your playbook. When GC AI evaluates a contract, it will evaluate each check on the spectrum of how close the contract is to your preferred language. If the contract doesn't have your preferred language but it does have fallback language you've deemed acceptable, it will evaluate it as acceptable, and categorize the check as either "Pass" or "Fallback". GC AI can also understand and interpret contracts that have been marked up, and which contain track change redlines. When using Playbooks in advanced stages of negotiation, provide context of your deal stage when you run your playbook. This will allow GC AI to apply available fallback provisions when suggesting redlines in its playbook review. ### 12. Does GC AI work with marked-up contracts and track changes? Yes. GC AI can review contracts that include tracked changes and redlines. When reviewing contracts in later stages of negotiation, you can also provide context about deal stage so GC AI applies fallback positions appropriately when suggesting redlines. ## 🎯 IV. Running a Playbook & Results ### 13. How do I run a Playbook against a contract in Microsoft Word? Open your contract in Microsoft Word, launch the GC AI add-in, navigate to the **Playbooks** tab, select the Playbook you want to use, and click **Run playbook**. GC AI will analyze the document and generate results directly in Word. ### 14. What happens after I run a Playbook? After a Playbook run, GC AI generates: * A summary highlighting key findings and action items * Categorized results for each check * Detailed analysis explaining why provisions were flagged * Suggested redlines where changes are needed ### 15. What do the Playbook result categories mean? Each check that GC AI analyzes is categorized as one of the following: * **Pass**: The substance of the provision matches your preferred position. * **Fallback**: The provision is acceptable under certain conditions you've defined. * **Flag**: The provision conflicts with your playbook, is misaligned with your position, or is missing required information. ### 16. Does GC AI review for issues not addressed in my Playbook? Yes. Once your playbook run has completed, a summary is generated which will include issues not addressed by your playbook. For example, in a review of a markup of your first party MSA, this summary may include that your customer has marked up the MSA to include wholly new sections that create risk for your organization. In addition, GC AI has "Smart Checks", which are provisions detected in the document you are reviewing that aren't covered by your playbook. They help identify unexpected clauses or counterparty additions. You can save a Smart Check to your playbook for future reviews, to build out your playbook over time based on issues you encounter during contract review. ### 17. Do Playbooks learn from my acceptance or rejection of suggested edits? Not at this time. Suggested revisions are based on the specific language within your playbook. ### 18. Do the comments generated come from our specific playbook comments/language? The comments are currently generated by GC AI, just like when you use GC AI for Word. ## ✨ V. Suggested Redlines & Interaction ### 19. How do suggested redlines work in Playbooks? When GC AI identifies provisions that deviate from your Playbook, it suggests redlines directly in Word. You can apply them, copy them, edit them manually, regenerate them with AI, or dismiss them entirely. ### 20. Can I edit or regenerate a suggested redline before applying it? Yes. You can manually edit suggested redlines or ask GC AI to generate a new alternative before applying changes to your document. ## 🔧 VI. Editing, Sharing & Governance ### 21. How do I edit and maintain my Playbooks over time? All fields of your playbook are fully editable (including, adding or removing checks, changing positions or editing other relevant fields) on an ongoing basis following creation of your GC AI Playbook. You can edit via the web (Main Menu, Playbooks, then select the playbook to edit) or directly in GC AI for Word. ### 22. How does sharing Playbooks across my organization work? Playbooks are shared manually by the creator or administrator, in either the web app (Main Menu, Playbooks, then select the playbook and three dot menu to share) or directly in GC AI for Word. You can grant access to specific individuals or make a Playbook available to all GC AI license holders at your organization. Sharing is not automatic. ### 23. Are my Playbook results saved if I close Word or exit the GC AI add-in? The review chat stays in your chat history, so you can reopen that conversation later. Closing Word or the add-in does not restore the in-document review panel for that run. Start a new review if you need the Word-side results again. # Running a Playbook Against a Contract Source: https://docs.gc.ai/guides/playbooks/running-playbooks Learn how to review contracts using Playbooks To review a contract using Playbooks: 1. Open the contract you want to review in Microsoft Word 2. Open the GC AI add-in and confirm the document information 3. Click on the "Playbooks" tab 4. Select the playbook you want to run 5. Click "Run playbook" 6. A window will appear where you can provide additional context for GC AI, including: * **Whose paper** - Select whether this is your company's paper (First-party) or the counterparty's paper (Third-party) * **Additional context** - Optionally include details such as deal value, negotiation leverage, or specific concerns 7. Click "Run" ## 📊 Playbook Summary The very top of your playbook results is a visual dashboard showing a snapshot of the status of your checks. Below the dashboard, GC AI provides you with a summary of the contract review with the following sections: | Section | What the Section Describes | | --------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Key Findings** | High-level overview of provisions that need your attention - typically items requiring review rather than provisions already aligned with your playbook. | | **Other Issues Identified** | Provisions in the contract that your playbook doesn't cover. Consider updating your playbook to address these in the future. | | **Escalations Needed** | Terms requiring further approval based on your playbook's escalation rules (e.g., provisions that need General Counsel sign-off). | | **Immediate Action Items & Next Steps** | Specific actions you may need to take before proceeding. | ## 🔍 Smart Checks Smart Checks are provisions detected in the document you are reviewing that aren't covered by your playbook. They help identify unexpected clauses or counterparty additions. To save a Smart Check to your playbook for future reviews, click the "Save Check" button. This allows you to build out your playbook over time based on issues you encounter during contract review. ## 🏷️ Understanding Output Categories Each check that GC AI analyzes is categorized as one of the following: | Category | Meaning | | ------------ | ----------------------------------------------------------------------------------------------------------------- | | **Pass** | The substance of the provision matches your preferred position. | | **Fallback** | The provision is acceptable under certain conditions you've defined. | | **Flag** | The provision conflicts with your playbook, is misaligned with your position, or is missing required information. | ## 🤖 Reading the AI's Analysis For each check in your playbook, GC AI provides you with: * The check category (Pass, Fallback, or Flag) * An analysis of why the check was categorized that way * Suggested redlines (if needed) to amend the contract to reflect your playbook's position * You can also click "View Check" to see more detail about the check in your playbook ## ✏️ Working with Suggested Redlines When GC AI identifies a provision that deviates from your playbook, it will suggest redlines to amend the contract language to reflect the position outlined in your playbook. | Action | What It Does | | ----------------- | ----------------------------------------------------------- | | **Apply** | Inserts the redline into your document. | | **Copy** | Copies the suggested language to your clipboard. | | **Edit - Manual** | Allows you to modify the suggested redline before applying. | | **Edit with AI** | Generates a new AI suggested redline. | | **Dismiss** | Dismisses the suggested redlines. | | **Jump** | Navigates to the relevant provision in the contract. | # Sharing Playbooks Across Your Organization Source: https://docs.gc.ai/guides/playbooks/sharing-playbooks Learn how to share playbooks with your team ## 👥 Who Can Access Shared Playbooks The playbook administrator or the creator of a playbook controls who has access to that playbook. You can either: * **Share with specific people** - Grant access to individual users in your organization * **Make available to your organization** - Allow all GC AI license holders at your company to view and use the playbook ## 🔄 How Sharing Works Sharing is not automatic. The playbook creator must manually share the playbook with others, unless they choose to make it publicly available to all license holders when first creating the playbook. ### To Share a Playbook 1. Open the playbook you want to share 2. Click the three vertical dots (⋮) in the top right corner and click "Share playbook" 3. To share with specific individuals, add their email address in the "Add Users" section 4. To share with everyone at your organization, under the "Read-only Access" section, toggle from "Private" to "Organization". This will allow all current and future members of your organization to have view access to the playbookTo give someone edit access (not just view access), you must share the playbook with that specific user and grant them edit permissions. # Advanced Prompting Techniques Source: https://docs.gc.ai/guides/prompting/advanced-techniques Master complex legal AI interactions with advanced strategies and best practices ## Leveraging GC AI's Capabilities ### Use Your Files Upload and organize your documents in [files](/docs/files/introduction) to create permanent collections accessible across all chats. GC AI uses smart, on-demand document access — reading, searching, and querying your documents as needed rather than loading everything at once. ### Use the Research Agent When you need current information beyond your documents, the [Research Agent](/docs/chat/research) launches parallel subagents to search and analyze multiple web sources simultaneously. You'll see visual progress cards showing each active research thread. ## Visual Organization ### Using Emojis for Clarity * Add glanceability to responses with consistent visual patterns * Use traffic lights (🔴, 🟡, 🟢) for risk levels * Create standardized visual cues for different types of information ### Table Formatting ```markdown theme={null} | Clause | Risk Level | Comments | |--------|------------|----------| | IP Rights | 🔴 High | Needs revision | | Payment | 🟡 Medium | Review terms | | Notice | 🟢 Low | Standard | ``` ## Advanced Reasoning GC AI automatically applies a structured 5-step reasoning process for complex tasks — you don't need to ask it to "think step by step." For complex legal analysis, the AI will: 1. Scope the question and identify relevant areas 2. Conduct a systematic sweep of relevant information 3. Trace patterns and connections across sources 4. Account for completeness and edge cases 5. Reconcile findings into a coherent response For questions that need current information, multiple web sources, or verification against statutes and regulations, GC AI can combine this reasoning with [web search and the Research Agent](/docs/chat/research), which runs parallel subagents to search and synthesize authoritative sources.The built-in reasoning process activates automatically for complex tasks. You can focus on asking clear questions rather than engineering step-by-step instructions. ## Choosing the Right GC AI Interface ### When to Use the Web App Use the web application when you need to: * Use Easy Edit to open one Word document beside your chat, then review, revise, or export it * Use voice input ### When to Use GC AI for Word Use [GC AI for Word](/guides/gcai-for-word/getting-started-with-gc-ai-for-word) when you need to: * Make surgical, precise edits to documents * See red-line changes directly in your document * Edit documents in real-time with AI assistance * Work within your existing Word workflow * Collaborate on document drafts Web search and the Research Agent are available in both interfaces. See [Getting Started with GC AI for Word](/guides/gcai-for-word/getting-started-with-gc-ai-for-word) for other tools available in Word. ## Context Management Strategies ### Fresh Start Strategy * Start new chats for fresh perspective when topics change and to minimize the [context window](/docs/chat/context-window) * Avoid carrying over poor context that could confuse responses * Rephrase questions in new ways to get different angles * Build on successful approaches from previous conversations ### Managing Complex Questions When dealing with multifaceted legal issues: 1. Break down complex issues into manageable components 2. Address each component systematically 3. Synthesize findings into coherent conclusions 4. Verify conclusions against your legal knowledge ## Document Comparison Techniques ### Multi-Document Analysis GC AI uses on-demand document access — the AI reads, searches, and queries your documents as needed. This lets you work with larger document sets than traditional approaches. * See [file types](/docs/files/file-types) for supported formats * Focus on concepts rather than exact language matches * Create checklists first, then compare third-party documents against them * Use tables to organize differences clearly ### Version Control Analysis * Compare document versions systematically * Request tables showing original vs. new language * Ask for explanations of changes and their significance * Use emojis to indicate the magnitude of changes ## Extraction and Organization ### Structured Information Extraction * Specify exact columns you want in tables * Choose between summaries and exact language based on your needs * Export tables to Excel/CSV for further analysis * Use tactical formatting (like ALL CAPS) when AI isn't following instructions ### Working with Large Documents * Balance detail level with processing capacity * For complex analysis: focus on fewer documents with more detail * For simple extraction: handle more documents with basic yes/no answers * Start with broad requests, then refine iteratively ## Best Practices for Complex Tasks ### Iterative Refinement * Start with broad requests and gradually narrow focus * Build on previous outputs rather than starting over * Use "make it more specific" or "go deeper on X" for gradual improvements * Don't expect perfect results on the first attempt ### Providing Clear Context * Put important information at the beginning of your prompt * Avoid irrelevant details that can distract the AI * Be specific about what you're asking for * Give AI a persona or role when helpful (e.g., "pretend you're a risk-averse general counsel") ### Managing AI Limitations * Remember that AI struggles with complex math * Be aware of recency bias in responses * Watch the context usage indicator to monitor how much context is being used * Use conversation branching to explore different approaches without losing your original thread * Use the message queue to send follow-up questions while the AI is still responding * Redirect AI if it's going down the wrong path # Creating PowerPoint Slides Source: https://docs.gc.ai/guides/prompting/creating-powerpoint-slides How to make a downloadable PowerPoint presentation with GC AI. This feature creates slide decks pre-filled with content that you can further customize. ## How to Use 1. Enter a prompt describing the presentation you need, such as "Create PowerPoint Slides with..." 2. Specify details like the number of slides (between 3 and 15), topic, and audience 3. Download the resulting PowerPoint file 4. Customize as needed in PowerPoint: a. To customize your slide deck, go to the **Design** tab or the **Designer**: ## Example Prompts ### **For legal compliance presentations:** "Draft a presentation slide deck for the executive team, between 8-10 slides, summarizing the TCPA and recent updates from the FTC, focusing on the law's impact on our business's SMS messaging." [See this example chat in GC AI](https://app.gc.ai/shared/9453d264-3f10-4d05-80f3-3d8ad7001b3e/chat/26210365-b7f7-4d9b-9fad-8a92313b5bae). ## Tips * If you need to use the Research Agent for your presentation, gather that information first, then request slides based on your findings. * For branded slides, generate your content first, then apply your company's branding in PowerPoint since GC AI can not create branded slides yet. * Start a new chat with a focused prompt rather than trying to correct a chat with unclear responses. # How to Create and Use Skills Source: https://docs.gc.ai/guides/prompting/creating-skills Build reusable instructions that attach to any conversation in GC AI for consistent, high-quality results on recurring tasks. Skills are reusable instructions you attach to conversations in GC AI. Instead of retyping the same detailed request every time, attach a skill and keep your question short and focused while GC AI reads the full instructions separately. ## Why Use Skills? * **Consistency:** Handle similar tasks the same way every time, following specific guidelines or formats. * **Efficiency:** Skip repetitive typing for common requests like reviewing NDAs, summarizing meeting notes, or drafting standard clauses. * **Composability:** Attach multiple skills to a single conversation. A compliance checklist skill paired with a plain-language drafting skill, running together. * **Collaboration:** Share effective skills with your team to standardize workflows across your organization. ## How Skills Work in Chat Skills attach to conversations the same way files do. When you attach a skill: 1. It appears as a chip in your message, or as a compact badge above the box on a phone 2. GC AI reads the skill's instructions as dedicated context, separate from your question 3. Any Files linked to the skill are automatically included 4. The skill stays active across the conversation This means your question can be short ("Review this NDA") while the skill carries the detailed instructions ("Check these 16 specific provisions, present findings in a table with risk ratings, then flag unusual terms"). ### Attaching a Skill Type `/` in the chat box, search, and press Enter. See [Using Skills in Chat](/guides/prompting/using-skills-in-chat) for screenshots and phone behavior. You can also attach a skill from the **+** menu: 1. Click the **+** button in the chat box 2. Select **Skills** 3. Search or browse across four sections: **My Skills**, **Shared with Me**, **Organization Skills**, and **GC AI Skills** 4. Click a skill to attach it 5. Type your question and send You can attach multiple skills to combine their instructions. For example, attach a risk analysis skill and a jurisdiction-specific style guide at the same time. ### Clicking Skill Chips After sending a message with a skill attached, click the skill chip or badge to open it in the sidebar. From there you can view the skill's instructions, edit it, or share it. ## Creating Skills There are three ways to create a skill. ### Option A: Use the Skill Creator in Chat (Recommended) The fastest way to build a skill is through conversation. The Skill Creator is a GC AI skill that walks you through the process step by step. 1. Type `/` in the chat box and select **Skill Creator**. You can also click **+**, select **Skills**, and find **Skill Creator** in **GC AI Skills**. 2. Describe what you want the skill to do 3. GC AI interviews you about your goal, drafts the skill, and saves it to your library 4. Test the skill, then ask GC AI to refine it The Skill Creator knows six common patterns you can ask it to use: | Pattern | Good for | Example | | ------------- | ------------------------------- | -------------------------------------------------- | | **Checklist** | Systematic reviews with scoring | Risk heatmap by clause category | | **Role** | Adopting a specific perspective | M\&A-style risk identification | | **Template** | Structured output formats | Executive summary with fixed sections | | **Workflow** | Multi-pass processes | Three-pass vendor contract review | | **Style** | Tone and formatting rules | Memos written for non-lawyers | | **Drafting** | Clause generation with context | Clause, rationale, fallback, and jurisdiction note | ### Option B: Create from the Skill Library 1. Open the **Skill Library** from the sidebar or navigation 2. Click **Create skill** 3. Fill in the **Name**, **Description**, and **Instructions** fields 4. Optionally attach files that the skill should carry 5. Click **Save**Click **Easy Prompt** next to the Instructions label to have GC AI optimize your instructions before saving. Easy Prompt now factors in any attached skills, so it tailors its suggestions to work alongside them. ### Option C: Create from the Chat Sidebar 1. Open the **Skills** tab in the right sidebar during a chat 2. Click the **+** button 3. Fill in the form and save ## Editing Skills Through Chat When GC AI suggests changes to one of your skills during a conversation, you see a side-by-side comparison of the original and proposed versions before anything is saved. From there you can: * **Approve** the changes as-is * **Edit** the proposed version manually before saving * **Deny** the changes if they miss the mark This means you can iterate on skills without leaving your conversation. ## Elements of a Good Skill An effective skill is clear, specific, and provides sufficient context. Key elements to include: 1. **Clear goal:** State precisely what you want GC AI to do. * *Vague:* "Review this contract." * *Clear:* "Review the attached MSA and identify clauses that deviate from our standard template, focusing on indemnification, limitation of liability, and payment terms." 2. **Context:** Provide necessary background: document type, relevant parties, specific laws or regulations, your company's requirements or risk tolerance. 3. **Output format:** Specify how you want results presented: "Provide the output as a bulleted list," "Generate a redlined version," "Summarize key risks in a short paragraph." 4. **Role (optional):** Ask GC AI to adopt a specific role: "Act as experienced in-house counsel specializing in SaaS contracts." 5. **Constraints (optional):** Tell GC AI what not to do: "Do not include recommendations for alternative wording, only identify deviations." ## Skill Organization The Skill Library organizes skills into four sections: | Section | What's in it | | ----------------------- | ----------------------------------------------- | | **My Skills** | Skills you created | | **Shared with Me** | Skills others have shared with you directly | | **Organization Skills** | Skills visible to everyone in your organization | | **GC AI Skills** | Curated templates from the GC AI team | All sections are searchable. Search works across skill names, descriptions, and instructions. ## Reference Files Skills can carry files. When you attach a skill that has linked files, those files are automatically included in the conversation. This is useful for skills that reference standard templates, company policies, or example documents: the files travel with the skill every time it's used, so you never need to re-upload them. To link files to a skill, add them in the skill form when creating or editing. # Formatting Tips Source: https://docs.gc.ai/guides/prompting/formatting-tips How to format prompts for better AI responses ## The Rich Text Composer The chat input preserves rich text pasted from Word, Google Docs, and email. You can paste headings, lists, tables, and links without rebuilding the structure. ### Keyboard Shortcuts Standard shortcuts work in the composer: | Action | Mac | Windows | | ------------ | ------ | ---------- | | Bold | ⌘B | Ctrl+B | | Italic | ⌘I | Ctrl+I | | Undo | ⌘Z | Ctrl+Z | | Redo | ⇧⌘Z | Ctrl+Y | | Send message | ⌘Enter | Ctrl+Enter |Press Enter to add a new line. Press ⌘Enter (Mac) or Ctrl+Enter (Windows) to send your message. ## Why Formatting Matters Structured prompts produce better responses. When you use headings, lists, and tables, the AI can distinguish between separate questions, follow multi-step instructions in order, and preserve the structure you set in its reply. ### Example: Unformatted vs. Formatted **Plain text prompt:** > Review this MSA. Check the indemnification section, the limitation of liability, and the termination provisions. For each one tell me if it favors us or the vendor and suggest redlines. **Formatted prompt using the composer:** > **Review this MSA and evaluate the following sections:** > > 1. **Indemnification** — Does it favor us or the vendor? > 2. **Limitation of Liability** — Does it favor us or the vendor? > 3. **Termination Provisions** — Does it favor us or the vendor? > > For each section, suggest specific redlines to improve our position. The formatted version makes it clear there are three separate analyses requested, each with the same two-part ask. ## Tables in Prompts Use the table grid picker in the toolbar to insert a table. Tables are useful for: * Providing structured data for the AI to analyze (pricing terms, obligation trackers, comparison matrices) * Requesting structured output ("fill in this table with your findings") * Organizing multi-variable comparisons Once a table is in the composer, you can add or remove rows and columns using the table controls that appear. ## Pasting Formatted Content When you paste text from Word, Google Docs, email, or a webpage, the composer preserves the formatting (bold, lists, headings, tables). If the pasted content exceeds 6,000 characters, it is automatically uploaded as a file attachment instead.The rich text composer is available on the web at [app.gc.ai](https://app.gc.ai). Markdown syntax still works if you prefer typing it directly. # Official Skill Library Source: https://docs.gc.ai/guides/prompting/official-skills A collection of ready-to-use skills for common legal tasks and scenarios ## Introduction The Skill Library includes a curated collection of proven skills for common legal workflows. These templates are designed to help you get started quickly and achieve consistent, high-quality results from GC AI. Official skills are common workflows that have been created and refined by our team of in-house lawyers to simplify the use of GC AI across many legal domains. You can access GC AI Skills in three ways: 1. Type `/` in the chat box and search across your skills and GC AI Skills. See [Using Skills in Chat](/guides/prompting/using-skills-in-chat). 2. Browse the complete library in the **GC AI Skills** category within the Skill Library 3. Search across all skills from the **Skills** search bar after opening it from the **+** menu in chat.### Search Functionality The Skill Library now includes powerful search capabilities that help you find the exact prompt you need instantly: Type `/` in the chat box to search. You can also click the **+** button, select **Skills**, and use the sidebar search bar.
## Skill Syntax Official skills are written in Markdown format, which provides clear structure and formatting. You can learn more about Markdown syntax at the [Markdown Guide](https://www.markdownguide.org/cheat-sheet/). The Markdown format allows for: * Clear section headers using `#` symbols * Bulleted lists using `-` or `*` * Numbered lists using `1.`, `2.`, etc. * Code blocks using triple backticks \`\`\` * Links using `[text](url)` This structured format helps the AI better understand the components and intent of your skill's instructions, leading to more accurate and useful responses. ## Official Skills ### Action Items from Client Alert A prompt to summarize and generate action items from a client alert or news article. ``` Please review this client alert or article for me. # Client Alert CLIENT_ALERT_LINK # Task Please give me: 1. The key takeaways from the article and law or other development it describes. 2. Your assessment of whether this applies to my company. 3. Action items for me or my legal team from it. 4. Ask me for any documents or policies for my company that might be needed to be updated based on your answer to 3. ``` ### Approval Cover Email Aka: "Should I Sign This?" This prompt generates a cover email for someone you are asking to sign an agreement. It gives context and the key commitments, and it flags risk. Note that the prompt generally concludes with a "yes" because it assumes that you want the person to sign. ``` # Background I am attaching a draft agreement. I need a cover email for when I send the agreement to an executive for final approval and signature. # Draft Agreement Attached. Use citations. # Task - What the Email Should Include I'd like to provide the target exec with an email that explains 1. a short paragraph on what the agreement is and why we are asking for signature (including which party we are - eg if we are a customer or the vendor), 2. the major things our company is committing to under this agreement, and the major things we receive (commercial terms) 3. risks of which they should be aware (for example, if the agreement is difficult to terminate or there are unusual legal terms). 4. A final recommendation of why it's good or not good to sign. Include something they might doubt and ask me about. ``` ### Commercial Contract Overview A prompt that gives you a thorough overview of a contract, assesses risks, is custom to your requirements, and provides suggested actions and guidance. Example: [Solo Subscription Terms Review](https://app.gc.ai/shared/532c1377-e648-43d5-af0d-f7abeef064cd/chat/6dca180a-fc3e-4bd4-9e2d-5d93c43357bd) ``` CONTRACT: Attached # Instructions 1. Review the attached CONTRACT thoroughly. 2. First draft an overview as follows: ## Contract Overview - Summarize the contract's purpose - List the parties - State the Effective Date and Duration 3. Then you MUST ask me the following questions and wait for a response before proceeding: a. Do you want this reviewed from one party’s perspective? If so, please name the party. b. Are there any provisions in addition to the ones stated in the "Contract Criteria" table that I should review? c. What categories of the limitation of liability clause would you like uncapped? d. What categories would you like the counterparty to indemnify for? 4. Then create a table: "Contract Criteria" where you analyze the following key provisions: a. Payment Terms b. Auto-Renewal c. Term d. Termination e. IP Ownership f. Confidentiality g. Limitation of Liability h. Indemnification i. Governing Law j. Assignment k. Artificial Intelligence l. Warranties m. Warranty Disclaimer n. Waiver o. Feedback p. Force Majeure q. Severability r. Order of precedence 5. Pay special attention to: - Net 30 payment terms - No auto-renewal clause - No termination for convenience by counterparty - Company should receive a full refund for termination for breach - IP ownership where the party sending data continues to own that data - Mutual limitation of liability - Indemnification for counterparty - Governing law (New York, Delaware, or California) with no arbitration - Assignment restrictions (only to affiliate or successor in interest) - No training AI with the data - any unusual or standout clauses 6. For each provision in the "Contract Criteria" table: - Extract the exact quote, including section/subsection name and number. - Analyze how the quote aligns with our requirements or may be problematic. - Assign an emoji: 🟥 (needs action), 🟨 (may need action, unclear), or 🟩 (does not need action). - Provide specific action needed, proposed language, or guidance. 7. Use the following format for the table: | Provision | Contract Quote | Analysis | Action | |-----------|----------------|----------|--------| 8. When proposing language changes, use~~strikethrough~~ for deletions and **bold** for additions. 9. Ensure all quotes are accurate and analysis is thorough and objective. 10. Present your review in the following order: a. Introductory paragraph b. Contract Criteria table ``` ### Comms Improver (land your message) This prompt reviews an email or memo to a stakeholder or customer and makes it better and more clear. Try it and watch clients love you more! 😎 Example: [Email asking for Policy Approval](https://app.gc.ai/shared/532c1377-e648-43d5-af0d-f7abeef064cd/chat/9018502a-1b2d-466d-ad07-c5bf1683c2cd) ``` I'd like your help landing my message well with stakeholders. # Task I'm going to give you a draft communication. Please analyze it and give me recommendations based on my target audience. If I don't tell you my target audience, ask me. # Existing Draft Message [PASTE_YOUR_EMAIL_DRAFT_HERE] # Things to Look for 1. Is the message clear? 2. How's the tone? Does it channel effective lawyer and business person? 3. Is the structure good? Is the bottom line upfront? If not, should I reorder the communication? 4. Did I use clear words and avoid bring wordy? E.g. "At the present time" --> "Now", or "It's possible what we could" --> "We could" 5. Call-to-action clarity - how clear is it what the person needs to do in response to this communication? # Recommendations Give me recommendations based on the above. # Potential New Draft Give me what a new draft would look like with your recommendations above. ``` ### Compare Agreement Versions (Table) Use this prompt to compare versions of an agreement. Understand what changed, in an easy table format. Or, tweak the prompt to compare similar agreements or any type, by concept. Examples: * [Avalara Site Terms of Use v 4.0 versus v 3.0](https://app.gc.ai/shared/532c1377-e648-43d5-af0d-f7abeef064cd/chat/411f8949-b934-4dba-a13f-4245a9f4d425) * [Snowflake Security Addendum 2024 v 2025](https://app.gc.ai/shared/532c1377-e648-43d5-af0d-f7abeef064cd/chat/969a1e53-b2ff-434a-9838-963d4acabb3f) * [Costco v. Nike's Supplier Codes of Conduct](https://app.gc.ai/shared/532c1377-e648-43d5-af0d-f7abeef064cd/chat/7b55ebff-51c1-4957-beea-2a09d6612d2d) ``` Please give me a table of the differences between these two agreements. Give me column 1 being the original (NAME OF FILE), column 2 the new one (NAME OF FILE), and an explanation of the differences. Use citations. Is this overall a major update? Explain. ``` ### Contract QA A prompt to QA a contract. Example: [Asset Purchase Agreement Quality Assessment](https://app.gc.ai/shared/21/chat/63b20c10-868a-4cdd-aac7-53bdbc440bdf) ``` CONTRACT: Attached # Instructions 1. Review the attached contract thoroughly. 2. Provide an introductory paragraph explaining the basic purpose and function of the contract. 3. Create a table with the following columns: - Emoji: Representing the criterion or issue - Criterion: Name of the criterion or issue - Assessment: Use 🚨 (needs review), 🟨 (potential issue), or ✅ (compliant) - Evidence: Exact elements, provisions, or quotes from the contract supporting your assessment and section numbers 4. Evaluate the contract based on these criteria: a. Spelling: Identify any spelling mistakes b. Grammar: Point out any grammatical issues c. Definitions: Check if capitalized terms are properly defined d. Trailing Off: Identify any abruptly ending sentences or sections 5. For each issue found, add a new row to the table. Look very hard for as many issues as possible. 6. After addressing the above criteria, identify any unusual or standout elements in this agreement, especially compared to similar agreements. 7. Create a separate table for these additional findings, using the same column structure as above. 8. Ensure your review is extremely thorough and comprehensive. 9. Format your response as follows: # Contract Overview [Introductory paragraph explaining the contract's basic purpose and function] # Primary Criteria Review | Emoji | Criterion | Assessment | Evidence | |-------|-----------|------------|----------| | [Emoji] | [Criterion Name] | [Assessment Emoji] | "[Exact quote or reference]" | # Additional Findings | Emoji | Issue | Assessment | Evidence | |-------|-------|------------|----------| | [Emoji] | [Issue Description] | [Assessment Emoji] | "[Exact quote or reference]" | 10. Ensure all information is accurate and based solely on the content of the attached contract. ``` ### Counterparty Reads Your Contract A prompt to review a contract from the perspective of a counterparty. Examples: * [Counterparty Hubspot Contract Negotiation Points](https://app.gc.ai/shared/21/chat/1d085b14-ee14-4b9e-97f4-58f459209ad9) * [Carta - Counterparty MSA Critique](https://app.gc.ai/shared/21/chat/e86378da-5545-44b0-af41-71586273f1a6) ``` Take the role of the legal counsel for the other party for my company's contract attached or linked below. LINK_TO_CONTRACT # Task Review the contract from the perspective of the legal counsel of the other party. 1. Create a table of the top 5 issues that you would want changed or negotiated, an explanation for each, and the exact language and section number giving rise to the issue. 2. Pretend you are the other side, and write me an email negotiating those 5 issues. Be detailed in your email. ``` ### DPA Checklist Review A prompt to review a Data Processing Agreement (DPA) against a checklist. Examples: * [Okta DPA Review](https://app.gc.ai/shared/3/chat/2d30eb2a-55d0-4a7c-856c-bdbc03aeddf9) * [Superhuman DPA Analysis](https://app.gc.ai/shared/21/chat/cd90458a-b348-4d73-a7ff-9d42ec087479) ``` # DPA Requirements Checklist 1. [ ] The type of personal data and categories of data subject 2. [ ] The duration of the processing 3. [ ] The nature and purpose of the processing 4. [ ] The obligations and rights of the controller 5. [ ] An obligation that the processor must only act on the written instructions of the controller (unless required by law to act without such instructions) 6. [ ] An obligation that the processor must ensure that the personnel used by the processor for processing the data are subject to a duty of confidence 7. [ ] An obligation that the processor must take appropriate measures to ensure the security of processing 8. [ ] An obligation that the processor can only engage a sub-processor with the prior consent of the data controller and a written contract and must ensure it flows down these obligations to any sub-processor 9. [ ] An obligation that the processor remains responsible for any processing of the subprocessor 10. [ ] An obligation that the processor must assist the data controller in complying with requests from data subjects exercising their right to access, rectify, erase, or object to the processing 11. [ ] An obligation that the processor must assist the data controller in meeting its GDPR obligations in relation to the security of processing, the notification of personal data breaches and to conduct data protection impact assessments 12. [ ] An obligation that the processor must delete or return all personal data to the controller as requested at the end of the contract 13. [ ] An obligation that the processor must demonstrate its compliance with these obligations and submit to audits and inspections by the controller (or by a third party mandated by the controller). 14. [ ] An obligation that the processor must provide the controller with whatever information it needs to ensure that they are both meeting their obligations under the GDPR and must inform the controller when, in its opinion, the controller’s instruction would breach Union or Member State law. 15. [ ] A statement that the data processor can only act on the written instructions of the controller. 16. [ ] A statement that the data processor can not use a sub-processor without the prior written authorization of the controller. 17. [ ] A statement that the data processor must cooperate with authorities. 18. [ ] A statement that the data processor must ensure the security of its processing in accordance with the requirement to take appropriate technical and organizational measures. 19. [ ] A statement that data processor must keep records of its processing activities (unless exempt). 20. [ ] A statement that the data processor must notify the controller about any personal data breaches in accordance with the rules on personal data breach notification. # Task Review the attached DPA according to the checklist above and provide your answer in the form of a Markdown table titled ## DPA Review with the following columns: 1. Requirement: the checklist item from above. Use **bold** font here. 2. Exact Quotes: Relevant exact quotes/language from the attached DPA that relate to the requirement. There can be multiple quotes from different sections. Use Section References. 3. Satisaction & Reasoning: Explanation of why the quotes/language satisfies or does not satisfy the requirement. End it with the following emojis: ✅ if the language from the DPA satisfies the requirement or ❌ if there is no relevant quote to satisfy the requirement or the language does not satisfy the requirement After the table, do a sweep of all the suggested actions and provide a section titled ## Action Items with suggested language to use to remediate the issues. ``` ### Generate Board Minutes or Consent A prompt to create minutes for a company board meeting. Example: [Appointing Ally McBeal](https://app.gc.ai/shared/21/chat/09e91185-63eb-46cf-a0e7-4213d322fde0) ``` Please help me put together board minutes under Delaware law for my company based on the following. My goal is that for board meetings I can just input this basic info, press a button, and have draft minutes that would have the correct basic starting language, formatting, etc. # Questions Ask me the following questions. 1. Is this a draft by unanimous written consent (UWC), or are these minutes of a live meeting? 2. If it was a live meeting, please ask: (a) who are the attendees? (b) where was the meeting held (zoom, our HQ, another place), (c) what was the meeting start time and date? 3. If live meeting, ask me, what are the topics to be discussed at the meeting? If UWC, what are things to be approved? 4. If live meeting, for each topic you provided in 3, who lead the discussion? # Document to create based on Questions Then once you have my answers, create a document that includes A. If a live board meeting, the attendees, location, date, and time indicated by the user in 2 B. For either UWC or minutes of live meeting, standard lead-ins based on what user said in response to 1 above. C. For UWC, a roman numeral header for each topic given to you in response to 3. For minutes of a live meeting, a roman numeral header of the topic, then in the body, a sentence saying ""[Person Leading discussion provided in 4 above] lead the group in a discussion of .." D. Omnibus resolutions F. For UWS, the Signature Area. For meeting minutes, a signature area that has a place for the signature of the Corporate Secretary, acting as secretary for the meeting. # Lead In to Use for UWC ""[COMPANY NAME] ACTION BY UNANIMOUS WRITTEN CONSENT OF THE BOARD OF DIRECTORS Pursuant to Section 141(f) of the Delaware General Corporation Law (the “DGCL”) and the bylaws of Replit, Inc., a Delaware corporation (the “Company”), the undersigned, constituting all of the sitting members of the board of directors of the Company (the “Board”) sufficient to constitute a quorum of the total votes of the directorships on the Board pursuant to [RELEVANT ARTICLE] of the Company’s Amended and Restated Certificate of Incorporation (the “Charter”), hereby adopt the following resolutions:"" # Omnibus Resolutions to Use for Both ""Omnibus Resolutions RESOLVED: That the officers of the Company are hereby authorized to take any and all such further action, to execute, deliver and file any and all such further agreements, instruments, documents, certificates and communications and to pay such expenses, in the name and on behalf of the Company or such officer, as any such officer may deem necessary or advisable and may approve to effectuate the purposes and intent of the resolutions hereby adopted, the taking of such actions, the execution, delivery and filing of such agreements, instruments, documents, certificates or communications and the payment of such expenses by any such officer to be conclusive evidence of such officer’s authorization hereunder and the approval thereof. RESOLVED: That any and all actions taken by the directors or officers of the Company to carry out the purposes and intent of the foregoing resolutions prior to their adoption are approved, adopted, ratified and confirmed."" # Signature Area to Use for UWC (*NOT* Meeting Minutes) ""IN WITNESS WHEREOF, the undersigned has executed this Action by Unanimous Written Consent of the Board of Directors as of the date set forth beside such person’s signature. This action shall be filed with the minutes of the proceedings of this Board of Directors and shall be effective as of the date the last signature is obtained. Any copy, facsimile or other reliable reproduction of this action may be substituted or used in lieu of the original writing for any and all purposes for which the original writing could be used, provided that such copy, facsimile or other reproduction be a complete reproduction of the entire original writing."" ``` ### Internal Company Policy Creator A wizard prompt that guides you through creating any kind of internal company policy. Example: [Crafting Secondaries Policy](https://app.gc.ai/shared/21/chat/3c9003db-9d37-41f2-ad5e-fc6bd40a4a8d) ``` # Context I need help creating an internal company policy. # Task First ask me what kind of policy I want to write and what specific points you want to hit in the policy. Then ask me 3-5 clarifying questions about what I want to include in that company policy and what jurisdictions. Then keep asking me clarifying questions and doing research and reflecting on your own knowledge until you have enough to draft an outline of the policy. Then draft an outline of the policy. Then ask me for feedback on the outline. Then draft 1 section at a time and ask for feedback before moving on. Finally when all the sections have been completed and I am happy with each one, combine them all into one message. If you are about to be cut off - tell the user to just write continue. ``` ### Lease Abstract A prompt to extract and summarize the relevant terms in a lease in a table format Examples: * [Commercial Lease Abstract](https://app.gc.ai/shared/532c1377-e648-43d5-af0d-f7abeef064cd/chat/9da2095d-c167-4dd2-8732-1e01fcf4412c) * [Lease Abstract](https://app.gc.ai/shared/532c1377-e648-43d5-af0d-f7abeef064cd/chat/08a041c9-8470-4fd3-9567-7e60a65d6257) * [Industrial Lease Abstract](https://app.gc.ai/shared/532c1377-e648-43d5-af0d-f7abeef064cd/chat/f61929d0-561c-491b-90aa-cf4f49680918) ``` LEASE_DOCUMENT: [ATTACHED] # Instructions 1. Analyze the attached LEASE_DOCUMENT and draft a one-sentence summary setting forth the parties, date, term, and property leased. 2. Then, create a comprehensive lease abstract in table format based on the attached lease document. The table should have three columns: - Term - Summary - Section Reference 3. For each term, provide: - A concise yet thorough summary of the relevant lease language - The exact section reference in both a citation and the name of the relevant section (e.g., Section 3.2(ii)) 4. Analyze and extract information for ONLY THE SPECIFIED PROVISIONS IN THIS LIST: a. Basic Information: - Date of lease execution - Parties (landlord and tenant) - Premises type (office, retail, industrial, etc.) - Premises square footage - Base Rent - Additional Rent b. Term Structure: - Lease term (duration) - Commencement date - Expiration date - Renewal options (including notice periods and renewal term length) - Security deposit d. Rights and Options: - Rights of First Offer (ROFO) - Rights of First Refusal (ROFR) - Purchase options - Expansion options - Termination options e. Assignment and Subletting: - Assignment provisions - Change of control language - Subletting restrictions - Consent requirements f. Other Key Provisions: - Guarantor information - Environmental indemnifications - Bankruptcy provisions - Notice information (include full notice method and address) g. Unusual Provisions: - Any non-standard or unusual clauses 5. For each provision, include the exact citation to the lease document using the format after quoting or referencing specific language. 6. If any requested information is not found in the lease, indicate "Not specified in lease" in the summary column. 7. Present the information in a clean, well-formatted table that is easy to read and reference. ``` ### MSA Commercial Basics A prompt to review a vendor agreement for commercial basics. Examples: * [Notion MSA Review](https://app.gc.ai/shared/532c1377-e648-43d5-af0d-f7abeef064cd/chat/b4610bde-c6c5-4a00-b85d-3cf090067e9d) * [Workday US MSA Review](https://app.gc.ai/shared/532c1377-e648-43d5-af0d-f7abeef064cd/chat/22ba98f0-bf6c-42b8-add0-ebe596f99d1f) * [Avalara MSA Review](https://app.gc.ai/shared/532c1377-e648-43d5-af0d-f7abeef064cd/chat/727b3eaf-2a30-44f3-80fb-b6c3b17e0a25) ``` VENDOR_AGREEMENT: LINK_OR_ATTACHED # Instructions 1. Review the VENDOR_AGREEMENT thoroughly. 2. Analyze the following 8 key provisions from the perspective of us as the customer: a. Payment Terms b. Invoices c. Auto-Renewal d. Term and Termination e. Effect of Termination f. Limitation of Liability g. Indemnification h. Intellectual Property Rights 3. Create a table with the following columns: | Provision | Contract Quote | Analysis | Action | 4. For each provision: - Extract the exact quote, including section/subsection name and number. - Analyze how the quote aligns with our requirements. - Assign an emoji: 🚨 (needs action), 🟨 (may need action, unclear), or ✅ (does not need action). - Provide specific action needed, proposed language, or guidance. 5. Pay special attention to: - Net 45 payment terms - Payment by check or ACH, not credit card - No auto-renewal clause - Term ≤ 1 year, no vendor termination for convenience - Buyer not responsible for payment if vendor breaches or terminates for convenience - Uncapped liability for data breaches, IP infringement, gross negligence - Broad vendor indemnification (confidentiality, data protection, contract breaches) - Ownership or broad, perpetual licenses for customizations and deliverables 6. Present the analysis in the specified table format. 7. After the main table, create a second table titled "Proposed Alternative Language" with the following columns: | Provision | Current Language | Proposed Language | Justification | 8. In this second table, for any provisions marked 🚨 or 🟨 in the main table: - Include the current problematic language - Propose alternative language that better aligns with our interests. - Provide a brief justification for the proposed changes 9. Ensure all quotes are accurate and analysis is thorough and objective. ``` ### NDA Review A prompt to review an NDA for a new vendor. Examples: * [Kaiser MNDA Review](https://app.gc.ai/shared/532c1377-e648-43d5-af0d-f7abeef064cd/chat/754270da-c5c1-4e68-a650-72778d94cb43) * [Sanmina NDA Review](https://app.gc.ai/shared/532c1377-e648-43d5-af0d-f7abeef064cd/chat/7c5d2f14-14dc-4326-bd59-81f3b4e482df) * [RFP Telephony NDA Review](https://app.gc.ai/shared/532c1377-e648-43d5-af0d-f7abeef064cd/chat/709bb886-5404-4c48-a847-4a28569ce2ab) ``` # Task Follow these steps: First, carefully read the entire NDA attached, and answer the 16 questions listed below. For each answer: - Provide exact quotes from the NDA, including section references (names and/or numbers when possible) - Use 3 or more sentences to analyze the risk if there is moderate or high risk or explain why there is low risk. - Assign a risk level using one of these emojis: - 🚨 High risk, needs closer review - 🟡 Moderate risk - 🟢 Low risk Present your answers in a table with the following columns: - Question - Answer - Exact quote with reference - Risk assessment - Risk level Be risk-conscious in your assessment. If you cannot find information related to a specific question, state so. If the question is asking you to confirm the lack of a particular term then it's low risk when it's not found. Here are the questions to answer: 1. Signing Parties: Confirm the legal names of all parties and that my company is one of the signatories, and that the party is written to include affiliates of that party. 2. What is the nature of the NDA? Is it mutual or one-way, and if one-way, whose information does the NDA apply to? If one-way, it is high risk, tell me to review it. 3. How does the NDA define confidential information? 4. What are the exceptions to confidential information? 5. What's the duration of the confidentiality obligation? How does it terminate? 6. What law governs the NDA? We prefer US law. 7. What, if any, limits are there on what the recipient may do with the confidential information (often called the purpose)? 8. Is there a destruction requirement when the contract ends? 9. Any exclusion from the destruction requirement for standard data retention or backup processes? 10. What does the NDA say about remedies for a breach? 11. Is the existence of NDA itself confidential? 12. Confirm there is NOT a transfer of IP. 13. Confirm there is NOT attorney's fees. We do not want attorney's fees. 14. Confirm there is NOT Indemnification. 15. Confirm there is NOT residual knowledge provision. 16. Confirm there is NOT a non-solicitation obligation on either party. Then read it again with an eye towards identifying any terms or provisions that are atypical for a standard NDA other than any already flagged above. Are there any atypical, peculiar or unusual terms for an NDA? Include all that you find that you didn't already flag in the first table. Be very thorough and think carefully. If you do find such a provision, explain it, and mark it as at least medium risk. This is important to get right. For each one that you find, create a new row in a new table with the following columns: - Provision - Why it's atypical - Exact quote with reference - Risk assessment - Risk level ``` ### New Bill or Regulatory Rule - Summarize A prompt to get a summary of a new bill or regulatory rule and then help create an email for stakeholders with action items. Examples: * [Illinois HPA - Bill Impact](https://app.gc.ai/shared/21/chat/1cc9ce39-ed29-457e-9bbf-29067d241a00) * [Louisiana House Bill No. 577](https://app.gc.ai/shared/21/chat/dcc24fdd-d3af-48e5-b10a-e5f2afafe25b?messageId=37009d38-8b36-4f9e-aeb4-b0252847d2c7) * [Utah AI Act Overview](https://app.gc.ai/shared/21/chat/f83f026d-fdb1-43b7-9cc5-3f83300faae8) * [OSHA Heat - Proposed Rule](https://app.gc.ai/shared/21/chat/3201e80c-21a8-422b-adb7-e42c5afc97c5) ``` A new bill, regulatory rule, or guidance ("the doc") came out that may affect our business. It's attached. 1. Please first ask me if I know if the doc has taken effect yet. If I answer "I don't know," then please look it up. Otherwise, please proceed with what I told you. 2. Then give me an 8-bullet summary of the doc. In your response, ask me if I'd like an overview for my business stakeholders. 3. If I agree that I want an overview, give me an email to send to stakeholders about the bill. Make the email detailed and have three sections: (a) an intro, (b) the bullet summary, and (c) 3-5 action items for the business from it. ``` ### Opinion Overview A prompt to summarize a legal opinion. Examples: * [FTC's New Stance on MLM Legalities](https://app.gc.ai/shared/21/chat/70ea3d2b-9a16-4b77-ae5c-c425f42ab573) * [Keebah v Warner Bros - Sign In Wrap - 9th Cir](https://app.gc.ai/shared/21/chat/d7a45d5b-d228-4f2a-bd89-862438e04924) * [Supreme Court CFPB Ruling](https://app.gc.ai/shared/21/chat/41afdc00-4cbe-4d2e-99c4-2855679c163f) ``` Give me an overview of this opinion to orient me to it. I want 1. What court it's from, what date, and who the parties are 2. A three-bullet summary of it 3. Four interesting quotes from it 4. An email draft I could use to send to the executive team with four bullet points for implications for our company ``` ### RFP Generator A prompt to generate a custom RFP for outside counsel. Asks you for the type of matter and some other factors, then generates an RFP you can send out to firms to bid on your matter. Examples: * [RFP - Smith v YourCo Employment Litigation](https://app.gc.ai/shared/21/chat/8d6d9dbd-502c-4ccb-8ca5-df3f1e295ace) * [RFP for Trademark Portfolio for GC AI](https://app.gc.ai/shared/21/chat/c3b2a893-b000-44fa-8ad6-8617ee1c2900) ``` Help me draft an RFP for outside counsel to represent our company. I’d like you to ask me some questions and then use my answers to fill in the template below. # Questions to Ask Me & Instructions Based on My Answers 1. Who is the contact at your company for the RFP? (their name & email). a. Use that contact as needed in the RFP. 2. What matter are you looking for outside counsel to help with specifically? a. Use this {MATTER NAME} 3. What type of matter is it? For example, litigation, a corporate matter, an IP portfolio, a regulatory matter, ongoing employment work, ongoing corporate work). a. Depending on user’s answer - include in RFP: What are 3 similar [TYPE OF MATTER] your firm has handled? 4. What are the gnarliest questions or strategic questions that you are thinking will be an issue in this case or matter? For example, whether and when to settle, whether to argue an affirmative defense, executive personalities, keeping your investors pleased, ensuring no disruption to your internal team, getting the absolute highest quality, etc? a. Based on the users answers, i. fill in the {BACKGROUND} section ii. Develop 2 custom questions 5. Do you want to ask the firm to do anything special in terms of pricing such as an alternative fee arrangement such as a flat rate by phase of litigation, type of IP filed, regulatory matter handled, or just discounted hours? a. Based on the answers fill in the {PRICING EXPLANATION} portion # Template to Fill in Using My Answer ## RFP to be our counsel for {Matter Name} Hello, we are delighted to invite your firm to participate in on our RFP for {MATTER NAME}. At {COMPANY NAME}, we collaborate deeply with our outside counsel partners to win both on the merits and on the quality, efficiency, and smarts we bring to the matter. Ultimately our goal is the success of COMPANY, and we are at our best when our outside counsel have that same spirit and commitment to our matters. We’ve prepared questions for you below and look forward to your answers. If you have questions about the process, please email {EMAIL ADDRESS} ## Engagement Requirements * Abide by our Outside Counsel Guidelines. Certain provisions may not be applicable to this particular engagement. * Run a conflicts check and confirm that no conflicts exist. Note: We consider conflict waiver requests on a case by basis; no advance or blanket conflict waivers. * If other service providers are needed (for example for e-discovery), agree to use our service provider or software that we select if we choose to have that work done by a party other than your firm. ## Written Responses Required 1. Legal name of your firm, address of headquarters office, and address of each office at which services will be provided. 2. Any business or personal relationships the bidder has with Company or any of its management. 3. Name and contact information of the attorney responsible for this relationship. 4. Name, contact information and bio for each member of the proposed team. Explain why each individual has been proposed. 5. Descriptions of at least 3 similar matters worked by members of the team, approach taken, and disposition. 6. Provide a 2-page narrative stating what you see to be the key issues and challenges in this matter, and what will be the strategy and approach you will use to address these issues and challenges. [a] 7. Agree to abide by the engagement requirements as stated above. 8. Please provide three references from clients for whom you have handled a similar matter. 9. {Custom Question One} 10. {Custom Question Two} ## Pricing proposal We welcome creativity in fees you propose or structure for this arrangement, and ideally this is a win-win for both us and your firm. {PRICING EXPLANATION} If we agree to alternative pricing or you propose a structure this RFP, hourly work may not be performed on this matter without specific written approval from the company. In case hourly rates are approved, please provide the standard hourly rate for each team member that will be working on this matter along with the corresponding discounted rate that you propose to offer us for each member of the team. ## Terms and conditions Please submit an electronic version of your proposal to {CONTACT NAME} at the email address: {CONTACT EMAIL} All information provided by us in connection with this RFP, including the fact that this RFP process itself is underway, shall be considered privileged, confidential, and proprietary information of our company and must not be disclosed to individuals outside of your firm without prior written approval from us. All documentation and/or ideas submitted by your firm shall become the property of us. Please note that we may be currently represented by counsel in this matter and you are not authorized to contact them to discuss this RFP. Should you have any questions regarding this RFP process, please contact {CONTACT NAME} at {CONTACT EMAIL}. Do not contact any other company employee concerning this RFP. Failure to adhere to this requirement will be grounds for disqualifying your proposal. We may accept any proposal received without further negotiations or discussions or after further interviews with the finalist law firms. Initial proposals in response to this RFP should, therefore, set forth the most favorable terms and conditions that you are prepared to offer. Please also provide succinct responses that clearly answer each question. Brevity and clarity are appreciated. This RFP does not bind us to any obligations, or impose liability for any costs or expenses incurred by your firm in responding to the proposal or traveling to an interview in connection with this RFP. We, in our sole discretion, may or may not make an award, and reserves the right to reject any and all responses received. We also reserves the right to terminate the engagement at any time without cause or if we are not satisfied with the performance of the bidder. ## Evaluation Criteria While we encourage each bidder to submit its best proposal in terms of fees, we will award the matter to the bidder in our sole discretion based upon a combination of experience, proposed team, strategy/approach, and the greatest overall value. ``` ### SaaS AI Terms - Top 5 Issues A prompt to review the terms of a SaaS AI product. Example: [HubSpot AI Terms Review](https://app.gc.ai/shared/532c1377-e648-43d5-af0d-f7abeef064cd/chat/57febbe8-8c58-43d4-8ffc-2f0ac6a97f87) ``` Please review the legal terms for a SaaS product we are considering buying. I'd like you to provide a table of the top 5 issues that you might highlight in these terms as risky or unusual for customers of this product that I should be aware of. I am most interested in whether and how this service can use my company's data for AI model training or learning. # Opening Paragraph Give me a general assessment of whether this vendor has thought about the use of AI and data. Does the contract show they are concerned about this with their customers? # Table to be provided after the paragraph The columns should be: item, why it's risky, the exact quote in the terms of use that you are relying on for that assessment, and then an emoji representing if it's something I should further review (✅ for review not needed; 🟨 for consider reviewing; ❌ for this must be reviewed by a lawyer). # Link to terms ``` ### SaaS AI Terms (expanded) - What Can Vendor Do with Data? A prompt to review the terms and privacy policy of a SaaS vendor to see if they can use your company data for AI model training. Example: [Tealium AI Terms Review](https://app.gc.ai/shared/532c1377-e648-43d5-af0d-f7abeef064cd/chat/4283cd95-0e0a-4ffb-b575-9fb5c6e5bdf1) ``` # Context I’d like to understand whether a SaaS vendor can train an AI or ML model on data that my company inputs into their platform as a customer of theirs. ## Subscription Terms / Agreement [INSERT TERMS LINK HERE] ## Privacy Policy [INSERT PRIVACY POLICY LINK HERE] # Tasks 1. Use a table to write down your thoughts and gather the necessary information (including quotes) for each question from the terms and privacy policy. 2. Based on the supporting questions come up with a final answer. ## Supporting Questions * What does the subscription agreement allow the vendor to do with my company’s information or data? * Does the subscription agreement allow use of data to “improve” the services of the vendor, if so what kind? * What does the privacy policy allow the vendor to do with my company’s information or data? * Does the privacy policy allow use of data to “improve” the services of the vendor, if so what kind? * Does either agreement explicitly address AI, ML, or the training of a model? If so, what does it say? * Would clickstream or other automatically collected data about my company’s interactions with the platform be allowed to be used for training an AI model? * Would text or other information my company inputs to the vendor's platform be able to be used for training an AI model? * Does any provision mention use of anonymized or de-identified data and how it can be used? ## Table of Supporting Questions Step by step, answer the following questions, in a table, where each question is a row and the columns are (i) the question title (ii) the exact quote used to develop your answer, the agreement it came from, and its section number (iii) your answer, reasoned through step-by-step (iv) an emoji representing your answer 🚨 to represent if I need to review more closely because it indicates the company can use my information for AI training, 🟨 if it is unclear, and ✅ if there is no risk because it indicates they cannot use my information for AI training. Be risk-conscious. ## Final Answer Based on all the information above, answer the question, “Can this vendor train on our company’s data, and if yes or maybe, how and what kind?” Provide a breakdown of your reasoning before giving your final answer. ``` ### Teach Me (Explain a Concept in 3 Levels) This prompt explains a concept of your choosing in three ways: (a) law firm style, (b) in-house style with the practical effect, and (c) for your business or other non-legal stakeholders. Try it! You can also tweak to add an audience. Examples: * [The Magnuson–Moss Warranty Act](https://app.gc.ai/shared/532c1377-e648-43d5-af0d-f7abeef064cd/chat/53365ff0-a023-466d-9066-685fdafed449) * [FDAMA (Food and Drug Administration Modernization Act)](https://app.gc.ai/shared/532c1377-e648-43d5-af0d-f7abeef064cd/chat/4ab4c559-b45b-4e03-a380-bef6b834d75e) * [The Patentability of Software](https://app.gc.ai/shared/532c1377-e648-43d5-af0d-f7abeef064cd/chat/34280a34-2505-4163-926c-6d4fc6bcff2b) * [California's Sexual Harassment Training Requirement Under Govt Code 12950.1](https://app.gc.ai/shared/532c1377-e648-43d5-af0d-f7abeef064cd/chat/67584b6e-ea14-4142-a8fc-366a643f61dc) ``` Legal Topic: [INSERT YOUR TOPIC HERE] # Task For the above a legal topic, I'd like you to educate me about it with explanations for three different audiences, in decreasing levels of complexity. I'd like you to look up articles and sources on the topic when needed. Below are the audiences. Ask me the topic, then go. For each audience, write 4-6 sentences in prose. # Three Audiences 1. Start off explaining like it I am a senior partner at a law firm who practices in the topic. Use and link to case and/or statutory citations that you find, and in general assume a very high level of sophistication. 2. Then I want you to explain assuming that you are writing for a smart group of in-house lawyers who are great and sophisticated lawyers. They want the legal framework with some legal nuance, plus the practical effect of the law. 3. Then assume you're explaining it for business people at our company who are not lawyers. They care about the law as applied to us. Use no more than a 12th grade reading level. # Follow Up After you provide the three explanations, ask me if I'd like you follow up or learn more, or perhaps if I'd like you to provide more analysis or help me work through the implications. ``` ### Vendor Privacy Policy First Pass A prompt to review a vendor privacy policy. Examples: * [Snowflake Privacy Policy Flags](https://app.gc.ai/shared/21/chat/94a736c2-0a22-495f-886f-cd824a8125f9) * [Zip Privacy Policy Flags](https://app.gc.ai/shared/532c1377-e648-43d5-af0d-f7abeef064cd/chat/cb938bb8-c6d8-422f-b096-3b187aeb664c) ``` # Context We are bringing on a new vendor, and I've been asked to review the privacy policy to determine if it's acceptable for our company's data to be used as the vendor describes. # Task Please create a table of the attached privacy policy with 5 rows. Each row is a quote from a provision notable for being a yellow or red flag, and the table's columns are based on the fields below. # Paragraph before the table Explain what this vendor does as a business and will likely do for our company. # Columns for Table 1. Provision name. 2. Exact quote of notable provision. 3. Reasoning of why this quote is notable. 4. Flag (🟨 for yellow flag, potentially unacceptable as defined below, or otherwise risky. 🟥 for red flag, definitely unacceptable as defined below or otherwise very risky.) # Policy to review LINK ``` # Using Personas and Roles Source: https://docs.gc.ai/guides/prompting/personas-and-roles Leveraging AI personas for different legal perspectives ## Built-In Perspective GC AI already has a built-in perspective as an experienced in-house lawyer. Your [Company Profile](/docs/organizations/company-profiles) further shapes this perspective with your organization's specific context, industry, and risk tolerance. For many tasks, you don't need to assign a persona — GC AI will already respond from an informed, in-house legal perspective. ## Custom Role Assignment When you want a different perspective, you can assign a specific role. Useful personas to try: * Opposing counsel * Regulatory auditor * Business stakeholder * Risk analyst * Compliance officer ### Benefits of Role Assignment * Multiple perspectives on issues * Anticipate counterarguments * Identify potential challenges * Enhanced risk analysis ## Implementation Strategies ### Setting the Role
```markdown Basic theme={null} Act as opposing counsel reviewing our draft agreement. ``` ```markdown Detailed theme={null} Take on the role of opposing counsel from a Fortune 500 tech company. Review our SaaS agreement draft with particular attention to data privacy and liability provisions. ``` ### Role-Specific Considerations 1. Define expertise level 2. Specify industry context 3. Set jurisdictional scope 4. Outline key concernsSwitch roles during analysis to get comprehensive perspectives on complex issues. # Using Easy Prompt Source: https://docs.gc.ai/guides/prompting/using-easy-prompt How to enhance your GC AI interactions with Easy Prompt ## What Is Easy Prompt? Easy Prompt transforms your basic prompts into more effective, AI-readable formats. You get better responses from GC AI with minimal effort.## How to Use Easy Prompt 1. Enter your basic prompt (e.g., "Analyze this new court ruling"). 2. Select the **Easy Prompt** button. 3. Review the expanded prompt that GC AI generates. 4. Edit the expanded prompt to fit your specific needs. 5. If the expanded prompt isn't what you wanted, use the **undo** option to revert to your original text. 6. Save useful prompts for future use.
Easy Prompt works best when you start with a clear, specific request that GC AI can build upon. ## Easy Prompt Example ### Basic Request to Enhanced Prompt ❌ **Basic prompt:** "Review this contract." ✅ **EasyPrompt enhanced:**![]()
Use formatting like `**bold**` and `*italic*` to emphasize key points in your skills. ## Document References with Easy Prompt When using Easy Prompt with documents: * Provide direct links when available * Upload specific documents for analysis * Specify exactly which parts of the document you want analyzed * Include document type and purpose in your prompt # Using Skills in Chat Source: https://docs.gc.ai/guides/prompting/using-skills-in-chat Type / to attach a skill as a chip, then keep the question short. Skills are reusable instructions you attach to a conversation. Keep the question short. GC AI reads the skill's full instructions, plus any files linked to the skill, as dedicated context. For how to write and share skills, see [How to Create and Use Skills](/guides/prompting/creating-skills). For ready-made starting points, see the [Official Skill Library](/guides/prompting/official-skills). ## Attach a skill with / 1. Click in the chat box 2. Type `/` 3. Start typing a skill name to filter the list 4. Press Enter or click a skill 5. Type your question next to the skill and sendAn empty chat box also says **Type / for skills**. On desktop, the skill appears as a chip in your message. Keep typing after it. Type `/` again to attach another.
On a phone, attached skills appear as compact badges above the box. If you attach a GC AI Skill that copies supporting files into the chat, wait until those files finish attaching before you send. ## Attach a skill from the + menu You can still browse skills from the **+** button. 1. Click the **+** button in the chat box 2. Select **Skills** 3. Search or browse **My Skills**, **Shared with Me**, **Organization Skills**, and **GC AI Skills** 4. Click a skill to attach it The sidebar shows descriptions. Use it when you want to read before you pick. ## After you send Click the skill chip or badge to open it. From there you can read the instructions, edit the skill, or share it. ## Create a skill from chat Type `/` and select **Skill Creator** from **GC AI Skills**. Describe the workflow you want. GC AI asks follow-up questions, drafts the skill, and saves it to your library. See [How to Create and Use Skills](/guides/prompting/creating-skills) for the full create and edit flow. # Client Communications Source: https://docs.gc.ai/guides/usage/client-communications Using GC AI to enhance client and stakeholder communications ## Communication Strategy ### 🎯 Effective Communication 1. **Audience Analysis** * Identify stakeholder type * Assess technical knowledge * Consider business context * Determine key concerns 2. **Message Crafting** * Clear objectives * Appropriate tone * Concise content * Action items ## 📝 Content Development ### Communication Types
```markdown Basic theme={null} ✓ Status updates ✓ Project briefs ✓ Risk assessments ✓ Action requests ``` ```markdown Advanced theme={null} ✓ Legal opinions ✓ Strategy documents ✓ Board presentations ✓ Policy updates ``` ### Document Structure ```mermaid theme={null} graph TD A[Context] --> B[Key Points] B --> C[Analysis] C --> D[Recommendations] D --> E[Next Steps] ``` ## 🔍 Best Practices ### Communication Guidelines 1. **Clarity** * Clear language * Defined terms * Logical structure * Key takeaways 2. **Professionalism** * Appropriate tone * Consistent formatting * Error-free content * Timely deliveryUse templates for consistent communication structure across different stakeholders. ## 📊 Response Management ### Response Framework ``` 1. Initial Assessment ├── Urgency level ├── Required expertise ├── Resource needs └── Timeline 2. Response Development ├── Draft preparation ├── Internal review ├── Refinement └── Final approval ``` ## 🤝 Stakeholder Engagement ### Engagement Strategies * Regular updates * Proactive communication * Clear escalation paths * Feedback collection ### Meeting Preparation 1. **Pre-Meeting** * Agenda creation * Material preparation * Background research using the [Research Agent](/docs/chat/research) * Key point identification 2. **Presentation Creation** * Generate [PowerPoint slides](/guides/prompting/creating-powerpoint-slides) directly from your research and analysis * Export findings as PDF or DOCX for distribution 3. **Follow-up** * Meeting summary * Action items * Timeline updates * Resource allocationGC AI uses your [Company Profile](/docs/organizations/company-profiles) to provide organization-aware responses tailored to your business context, ensuring communications reflect your company's tone and priorities. ## 📈 Tracking & Improvement ### Performance Metrics * Response times * Client satisfaction * Issue resolution * Communication effectiveness ### Quality Control ``` ✓ Internal review process ✓ Consistency checks ✓ Accuracy verification ✓ Format compliance ```Always verify legal accuracy and implications before sending client communications. # Contract Review Source: https://docs.gc.ai/guides/usage/contract-review How to effectively use GC AI for contract review and analysis ## Contract Review Process ### 🔍 Initial Analysis 1. **Document Preparation** * Upload clean PDF/Word document * Ensure OCR for scanned documents * Check document formatting 2. **Basic Review Prompt** ``` Context: Initial review of [contract type] Task: Provide high-level analysis of: - Key obligations - Important dates - Material provisions - Risk areas Format: Bulleted summary with section references ``` ## 📋 Detailed Review ### Key Areas Analysis```markdown Standard theme={null} ✓ Parties and definitions ✓ Term and termination ✓ Payment provisions ✓ Performance obligations ``` ```markdown Advanced theme={null} ✓ Liability provisions ✓ Indemnification ✓ Insurance requirements ✓ Governing law ``` ### Risk Assessment ```mermaid theme={null} graph TD A[Upload Contract] --> B[Initial Review] B --> C[Risk Identification] C --> D[Detailed Analysis] D --> E[Recommendations] ``` ## 🔄 Review Workflow ### Step-by-Step Process 1. **Initial Scan** * Basic terms review * Party identification * Key dates * Critical provisions 2. **Deep Analysis** * Risk assessment * Compliance check * Market comparison * Issue spottingUse the "Compare to Template" feature to identify deviations from your standard terms. ## 📊 Reporting ### Output Formats * Executive summaries * Detailed analysis * Risk matrices * Redline comparisons ### Export Options * [Export](/docs/chat/how-to-download) your review as PDF, DOCX, or Markdown * Export comparison tables as CSV or XLSX for further analysis * Generate [PowerPoint slides](/guides/prompting/creating-powerpoint-slides) summarizing your review findings ### GC AI Features for Contract Review * **[Research Agent](/docs/chat/research):** Research current regulations, case law, or market standards relevant to your contract * **[Playbooks](/about/playbooks):** Standardize reviews with AI-powered playbooks that apply your negotiation positions automatically * **[GC AI for Word](/about/gcai-for-word):** Review and redline contracts directly inside Microsoft Word ### Sample Report Structure ``` 1. Executive Summary ├── Key Terms ├── Major Risks ├── Required Actions └── Timeline 2. Detailed Analysis ├── Term-by-Term Review ├── Risk Assessment ├── Compliance Check └── Recommendations ``` ## 🤝 Collaboration ### Team Review Process * Share analysis with team * Track comments * Document decisions * Maintain audit trailAlways verify AI analysis against your company's specific requirements and risk tolerance. # Document Analysis Source: https://docs.gc.ai/guides/usage/document-analysis Leverage GC AI for comprehensive document analysis ## Document Analysis Features ### 📄 Supported Documents```markdown Text-Based theme={null} ✓ PDF files ✓ Word documents ✓ Plain text ✓ Markdown ``` ```markdown Structured theme={null} ✓ Contracts ✓ Agreements ✓ Policies ✓ Reports ``` ## 🔍 Analysis Types ### Content Analysis 1. **Text Analysis** * Key term extraction * Concept identification * Pattern recognition * Semantic analysis 2. **Structure Analysis** * Document organization * Section hierarchy * Format consistency * Reference mapping ### Advanced Features ```mermaid theme={null} graph LR A[Upload] --> B[Parse] B --> C[Analyze] C --> D[Extract] D --> E[Report] ``` ### Tracked Changes & Comments Support GC AI automatically detects and analyzes: * **Tracked Changes**: Review all edits, additions, and deletions in DOCX and PDF files * **Comments**: Extract and summarize feedback from multiple reviewers * **Redlines**: Analyze proposed modifications and revision historyThis feature works seamlessly with documents that contain tracked changes from Microsoft Word or other document editors that export to PDF/DOCX formats. **Important:** GC AI can only read comments and redlines/tracked changes from PDF and Word files uploaded since August 18, 2025. Documents uploaded before this date will not have their comments and tracked changes accessible for analysis. ### Table Redline Limitations GC AI has limitations when applying redlines to content within tables, depending on the document, they may not work. The system now provides: * **Updated Prompt**: Updates prompt to let user know up front that redlines may not apply correctly in a table. * **Proactive Warnings**: You'll see warning messages before attempting to apply redlines to table content * **Manual Workaround**: A new copy button in the action toolbar allows you to extract the most recent version of the raw text, so you can apply the redline manually This ensures you're aware of potential issues and have alternative methods to work with table content effectively.  ## 🎯 Analysis Techniques ### Effective Prompting ``` Context: Analyzing [document type] Focus areas: 1. [specific aspect] 2. [key elements] 3. [critical points] Output: [desired format] ``` ### Analysis Frameworks * IRAC method * Risk assessment matrix * Compliance checklist * Impact analysisUse structured prompts to get consistent, formatted outputs for easier review. ## 📊 Output and Export Options ### Report Types 1. **Summary Reports** * Executive overview * Key findings * Action items * Recommendations 2. **Detailed Analysis** * Section-by-section review * Risk assessment * Compliance analysis * Comparative analysis ### Export Formats * **Chat Export:** PDF, DOCX, or Markdown for full conversations or individual messages * **Table Export:** CSV, XLSX, PDF, DOCX, or Markdown for data tables * **Slides:** Generate PowerPoint presentations from your analysis * See [How to Download](/docs/chat/how-to-download) for details ### Additional Features * **[Research Agent](/docs/chat/research):** Combine document analysis with parallel web research for comprehensive context * **[Context Usage Indicator](/docs/chat/context-window):** Monitor how much context your documents are using * **Smart Document Access:** GC AI reads, searches, and queries your documents on demand rather than loading everything at once ## 🔄 Workflow Integration ### Process Steps 1. Document upload 2. Initial analysis 3. Detailed review 4. Team collaboration 5. Final outputAlways validate AI analysis against source documents and expert knowledge. ## 🔐 Best Practices ### Quality Control * Verify source material * Cross-reference findings * Document assumptions * Track changes ### Security Considerations * Check sharing settings * Manage access control * Maintain audit trails * Secure sensitive dataAlways review AI-generated analysis for accuracy and completeness. # Access Control Source: https://docs.gc.ai/security/access-control Learn about GC AI access control and authentication features ## Authentication System Updated: April 17, 2026 GC AI uses WorkOS to provide enterprise-grade authentication: * Individual secure accounts * Organization-level administration * Account-specific login restrictions * Multi-factor authentication support * SSO (available now - please reach out to [support@gc.ai](mailto:support@gc.ai) for instructions) ## Coming Soon We're actively working on expanding our access control features: * Enhanced role-based access control * Advanced audit logging * Custom security policies ## Security Maintenance Our ongoing security processes include: * Regular security audits * Annual penetration testing * Comprehensive incident response plans * Mandatory employee security training * Continuous monitoring and updatesContact [security@gc.ai](mailto:security@gc.ai) for specific security-related inquiries or to request additional information about our security features. # Data Protection Source: https://docs.gc.ai/security/data-protection Understanding how GC AI protects and handles your data ## Data Usage Policies Updated: April 17, 2026 GC AI maintains strict policies on how your data is handled and protected: ### Service Improvement We use data in two limited ways to improve our service: 1. **Direct Feedback Processing** * Limited to GC AI Engineering and R\&D team access 2. **Anonymized Analytics** * All data is de-identified and aggregated ## Data Processing Agreement GC AI offers a comprehensive Data Processing Agreement (DPA) that outlines: * Detailed privacy protections * Specific data handling procedures * Confidentiality obligations * Data retention policies * Security measures You can review our DPA at [https://gc.ai/dpa](https://gc.ai/dpa). ## Data Residency GC AI and all our servers are located exclusively in the United States. # Security Overview Source: https://docs.gc.ai/security/overview Learn about GC AI security architecture ## Enterprise-Grade Security Updated: April 17, 2026 GC AI implements comprehensive security measures to protect your data and maintain compliance with industry standards: * End-to-end encryption using AES-256 at rest and TLS 1.2+ in transit * Organization-scoped data isolation ensuring each organization's data is logically separated * SOC-2 compliant vendors for all data processing and storage operations * SOC-2 Type II certification (report available upon request with NDA) * US-based infrastructure with all servers located exclusively in the United States This security architecture matches the standards set by leading enterprise cloud providers like Google Cloud. ## LLM Provider Security GC AI works with leading LLM providers and maintains zero data retention arrangements with its AI providers. For the full, current list of subprocessors and which have zero data retention in place, see our [subprocessor list](https://gc.ai/subprocessors). # SSO Setup Source: https://docs.gc.ai/security/sso-setup Set up Single Sign-On for your GC AI organization using SAML or OIDC ## 🔐 What is SSO? Single Sign-On (SSO) lets your team sign in to GC AI using your organization's existing identity provider (IdP). GC AI supports SSO through [WorkOS](https://workos.com/docs/sso), which is compatible with any IdP that supports SAML or OIDC protocols. ## 📋 Prerequisites Before you begin SSO setup: * You must be an **Admin** in your GC AI organization * Your organization must use an IdP that supports SAML or OIDC (e.g. Okta, Azure AD, OneLogin, Google Workspace, JumpCloud) * You need access to your IdP's admin console to create a new application * Domain verification must be completed before SSO can be enabled You can also invite your IT admin into your organization on a trial seat to complete the SSO setup. Just provide their email to [support@gc.ai](mailto:support@gc.ai) and we will add them. ## 🌐 Step 1: Verify Your Domain 1. Navigate to [Organization Settings](https://app.gc.ai/settings/organization). 2. Scroll down to **Domain verification**. 3. Select **Generate Link** and open the link. It directs you to the domain verification process. 4. Complete domain verification by following the on-screen instructions.## 🔗 Step 2: Generate the SSO Configuration Link 1. Navigate back to [Organization Settings](https://app.gc.ai/settings/organization). 2. Select **SSO Setup** from the dropdown menu. 3. Select **Generate Link** and open the link. ## 🏢 Step 3: Select Your Identity Provider Select your IdP from the list (Okta, Azure AD, OneLogin, etc.) and follow the on-screen instructions to connect it. ### Custom SAML or OIDC If your IdP is not listed, select **Custom OIDC** or **Custom SAML** depending on the protocol your organization uses.
For Custom OIDC: 1. Provide an **IdP name**. 2. Copy the **Redirect URI** from the "Create an Application" step and add it to your IdP. 3. Add the required **claims** to your auth token as shown on screen. 4. Enter your **Client ID**, **Client Secret**, and **Discovery Endpoint** from your IdP.
For Custom SAML: 1. Provide an **IdP name**. 2. Copy the **ACS URL** and **SP Entity ID** from the setup screen into your IdP's SAML application configuration. 3. Configure the required **attribute mappings** in your IdP. At minimum, these attributes must be included in the SAML assertion: * `id` - A unique user identifier * `email` - The user's email address * `firstName` - The user's first name * `lastName` - The user's last name 4. Upload your IdP's **metadata XML** or manually enter the **SSO URL** and **X.509 certificate**. ## ✅ Step 4: Test the Connection After completing the configuration, select **Test Connection** to verify everything works. A successful test confirms that your IdP and GC AI can communicate properly. If the test fails, see the troubleshooting section below. ## 🔧 Common Setup Issues ### SAML Test Connection Fails If you run a test of your SAML SSO connection and it does not pass, the most common causes are: **Missing or incorrect attribute mappings** Your IdP must send the required attributes (`id`, `email`, `firstName`, `lastName`) in the SAML assertion. If any are missing or mapped to the wrong field names, the connection test fails. How to fix: 1. Open your IdP's admin console and navigate to the GC AI SAML application. 2. Check the **attribute statements** (sometimes called "attribute mappings" or "parameters"). 3. Verify each required attribute is mapped to the correct user field in your directory. 4. Save and re-run the test. **Incorrect ACS URL or Entity ID** If the ACS URL or SP Entity ID in your IdP does not match what GC AI provided during setup, the SAML handshake fails. How to fix: 1. Go back to the SSO configuration link in GC AI and copy the **ACS URL** and **SP Entity ID** exactly as shown. 2. Paste them into your IdP's SAML application settings, replacing any previous values. 3. Save and re-run the test. **Certificate or metadata issues** An expired or incorrect X.509 certificate prevents GC AI from validating the SAML response. How to fix: 1. Download a fresh copy of your IdP's **metadata XML** or **X.509 certificate**. 2. Re-upload it in the GC AI SSO configuration. 3. Save and re-run the test. ### OIDC Test Connection Fails **Invalid Client ID or Client Secret** If the credentials entered during setup don't match what your IdP issued, authentication fails. How to fix: 1. Open your IdP's admin console and locate the GC AI OIDC application. 2. Copy the **Client ID** and **Client Secret** directly from your IdP. 3. Re-enter them in the GC AI SSO configuration. 4. Save and re-run the test. **Incorrect Discovery Endpoint** The discovery endpoint URL must point to your IdP's OpenID Connect discovery document (usually ending in `/.well-known/openid-configuration`). How to fix: 1. Verify the discovery endpoint URL in your IdP's documentation. 2. Confirm it is accessible by opening it in a browser. You should see a JSON document. 3. Update the URL in the GC AI SSO configuration and re-run the test. ### Domain Verification Not Completing If domain verification stalls or fails: 1. Confirm you added the required DNS TXT record to your domain's DNS settings. 2. DNS changes can take up to 48 hours to propagate. Wait and try again. 3. Verify the TXT record value matches exactly what GC AI provided (no extra spaces or characters). ### Still Having Trouble? If you've worked through the steps above and the connection test still fails, email [support@gc.ai](mailto:support@gc.ai) with: * Your organization name * The IdP you are using (e.g. Okta, OneLogin, Azure AD) * A screenshot of the test result or error message Our team can review your configuration and help resolve the issue. # Whitelisting Requirements Source: https://docs.gc.ai/security/whitelisting Network configuration requirements for GC AI products. To ensure full functionality of GC AI products (Web App and Word Add-in), your network firewall or proxy must allow outbound connections to the following domains and ports. ## Quick Summary * **Ports:** 443 (HTTPS & WSS) * **Protocols:** TLS 1.2+, Secure WebSockets (WSS) * **Method:** Whitelist by **Domain Name** (DNS) is required due to dynamic IP usage by our cloud providers. ## Required Domains ### Application Core These domains are essential for the application to load and function. | Domain | Purpose | | --------------- | -------------------- | | `app.gc.ai` | Main Web Application | | `word.getgc.ai` | Word Add-in Frontend | ### File Storage & Processing Required for uploading documents and viewing processed files. | Domain | Purpose | | ------------------------ | -------------------------------------------------------- | | `storage.googleapis.com` | Secure file uploads and downloads (Google Cloud Storage) | ## WebSocket Requirements The GC AI Word Add-in requires **Secure WebSockets (WSS)** over port **443** to communicate in real time with our AI engine. Please ensure your network allows outbound **WSS** traffic to the following domains: * `app.gc.ai` * `word.getgc.ai` ## Troubleshooting If you encounter specific error messages, they may indicate that certain domains are blocked. | Error Message / Symptom | Probable Cause | Resolution | | ------------------------------------------------------------------------------ | --------------------------------------- | ------------------------------------------- | | **"There was an error uploading your file"** or **"HTTP error"** during upload | Connection to cloud storage is blocked. | Ensure `storage.googleapis.com` is allowed. | ## Security Software (Zscaler, Netskope, etc.) Organizations using security platforms like Zscaler or Netskope may need additional configuration beyond domain allowlisting. These platforms can block Microsoft 365 add-in traffic through SSL/TLS inspection, URL filtering, or cloud app control policies. **Zscaler users:** Zscaler offers a [Microsoft One Click Configuration](https://help.zscaler.com/zia/about-microsoft-one-click-options) that automatically exempts Microsoft 365 traffic from SSL/TLS inspection and configures the necessary firewall, DNS, and cloud app control rules. Enabling this is the fastest way to resolve add-in connectivity issues in Zscaler environments. For detailed troubleshooting steps, including domain allowlisting by security platform, SSL/TLS inspection bypass, and proxy configuration, see the [GC AI for Word Troubleshooting Guide](/docs/gc-ai-for-word/troubleshooting-guide#security-software-blocking). ## Additional Resources For a comprehensive list of Microsoft 365 endpoints that may also need to be reachable from your network, refer to the official Microsoft documentation: * [Microsoft 365 URLs and IP Address Ranges](https://learn.microsoft.com/en-us/microsoft-365/enterprise/urls-and-ip-address-ranges?view=o365-worldwide) # Zero Data Retention Source: https://docs.gc.ai/security/zero-data-retention GC AI has established Zero Data Retention (ZDR) agreements with key AI providers, Anthropic and OpenAI, demonstrating our commitment to enterprise-level security. Google also maintains a strict no-training policy on customer data through its dedicated Gemini API service. ## Understanding Zero Data Retention (ZDR) ZDR ensures robust data security by contractually guaranteeing that the AI provider uses data only for processing your immediate task and does not store it. This eliminates risks of data breaches or unauthorized access, ensuring your information is used solely for the task and is not stored, minimizing exposure and maintaining the integrity of your AI workflows. ## Provider Data Handling * **Anthropic**: Zero Data Retention agreement (data is not stored or used for training) * **OpenAI**: Zero Data Retention policy (data is not stored or used for training) * **Google**: Dedicated Gemini API service with no training on customer data GC AI promotes the ethical and responsible use of LLMs, and we are committed to partnering with our providers to develop even stronger privacy-preserving solutions. # Get Support Source: https://docs.gc.ai/support How to get help with GC AI, including email support and troubleshooting resources. ## Product Help The fastest way to get an answer is to ask GC AI itself. In any chat at [app.gc.ai](https://app.gc.ai), ask a question about the product, like "How do I create a project?" or "How do playbooks work?" GC AI answers from our product documentation and links you to the exact pages.
### How it works When you ask how to use the product, GC AI searches our documentation for you and answers from what it finds: * It looks across every page on [docs.gc.ai](https://docs.gc.ai). * It picks the pages that best match your question. * It pulls out the part that answers you and replies in plain language. * It links you to the exact pages, so you can read more whenever you want. ## Support in the Word add-in You can chat with GC AI right inside your document. To reach support, open **Settings** in the add-in, find **Help & Resources**, and select **Contact Support**. That opens a chat where you can ask your question and get an answer from our AI assistant, with the support team on standby.
## Report a chat problem If something goes wrong inside a chat, use **Report chat** in the chat header menu. See [How to Report a Chat](/docs/chat/how-to-report-a-chat) for step-by-step instructions, including how to add a screenshot. ## Contact Support Email us at [support@gc.ai](mailto:support@gc.ai). Include: * A short description of the issue * What you expected to happen * What actually happened * Any error messages, screenshots, or relevant chat / document links We typically respond within one business day. ## Check for Outages Before contacting support, check the [GC AI status page](https://status.gc.ai/) for ongoing incidents. ## Self-Serve Help * [Welcome and getting started](/get-started/welcome) * [Account FAQ](/docs/account/account-faq): sign-in, password reset, and SSO * [GC AI for Word troubleshooting](/docs/gc-ai-for-word/troubleshooting-guide): add-in install and loading issues * [Whitelisting requirements](/security/whitelisting): domains and ports for IT and network allowlists