ChatGridAI Setup Guide

Internal knowledge often exists but is hard to access, hard to control, and too expensive to deploy broadly. ChatGridAI brings your company documents into chat so your team gets reliable answers — without interrupting colleagues.

Quick Start Guide

Your goal: Get your team asking questions in Google Chat or Teams — and getting instant, accurate answers from your own company documents.

Here's everything you need to make that happen.

< 30 min
Total setup time
🛠
5 steps
To get your team live
💳
$0
No credit card needed

Nothing here is permanent. Nothing you do during setup can affect production systems or incur unexpected charges. You're using your own OpenAI account, and everything can be changed or deleted later.

Before you start, make sure you have:

Google Workspace or Microsoft 365 account OpenAI account with billing — get one here Admin access to install chat apps (check with IT)

Here's exactly what you'll do:

1
Sign up for ChatGridAI
2 min

Go to chatgridai.com and click "Sign in with Google Workspace" or "Sign in with Microsoft". Your 14-day free trial starts instantly — 10 seats included, no credit card.

2
Create your OpenAI API Key & Vector Store
5 min

Think of ChatGridAI as a remote control for your OpenAI account, embedded inside Google Chat or Teams. You create the resources below on OpenAI's platform — you own them, you control them, and all AI costs go directly to your OpenAI account.

API Key: platform.openai.com/api-keys → "Create new secret key" → Copy it (starts with sk-)

Vector Store: platform.openai.com/storage → "Create vector store" → Name it → Copy the ID (starts with vs_)

3
Create a group and paste your keys
5 min

A group is a department (e.g., HR, IT, Engineering). Each group gets its own AI with its own docs and members.

Dashboard → Groups → Create Group → Click your new group → Configuration tab → Edit

  • Paste your API Key
  • Select model — gpt-4o-mini recommended (best balance of quality and cost)
  • Paste your Vector Store ID
  • Click Save
4
Add your team members
3 min

Tell ChatGridAI who should have access. Only these people can talk to the AI in this group.

Same group page → Users tab → Enter email addresses (Google) or display names (Teams) → Click "Add"

5
Install the chat bot
5 min

Connect ChatGridAI to your team's chat platform so everyone can @mention the bot.

Google Chat: Dashboard → Workspace Overview → Click "Install Bot" → Follow prompts

Microsoft Teams: Dashboard → Workspace Overview → Click "Install Teams App" → Follow prompts

🎉

You're live!

Open Google Chat or Teams → Start a new message with the ChatGridAI bot → Ask it anything.

Your team can now @mention ChatGridAI in any conversation to get instant, document-backed answers.

What to try first

After setup, send one of these messages to the ChatGridAI bot to see it in action:

HR
"What's our parental leave policy?"
IT
"How do I set up VPN on macOS?"
Engineering
"What's the auth flow for our internal API?"

If you haven't uploaded documents yet, the AI will respond using general knowledge. Upload your docs (Section 4.4) to get answers specific to your company.

What happens next:

  • Team members you added can @mention ChatGridAI in any chat
  • Each question uses tokens from your OpenAI account (typically fractions of a cent per question)
  • You can see all activity in Dashboard → Analytics
  • Add more groups, docs, or members anytime — no downtime, no restarts
1 What is ChatGridAI

ChatGridAI connects Google Chat or Microsoft Teams to OpenAI, turning your existing chat into an intelligent AI trained on your company's documents.

Core Features

  • Works in your existing chat: Google Chat or Teams — no new apps to learn
  • Learns your company knowledge: Upload PDFs, Word docs, procedures — AI references them when answering
  • You control costs: Use your own OpenAI API key — all AI costs billed directly to your OpenAI account
  • Multi-group setup: Different teams get different AI configurations with separate knowledge bases

Pricing Model

You pay two separate things:

  1. OpenAI API costs: Billed directly to your OpenAI account (~$0.15-$10 per 1M tokens depending on model)
  2. ChatGridAI platform fee:
    • 14-day free trial (10 seats, no credit card required)
    • After trial: Minimum 20 seats ($100/month)
    • Sold in packs: 5 seats for $25/month (always $5 per seat)
    • Details: Section 7 — Billing

How It Works

1

User asks question in Google Chat or Microsoft Teams

2

ChatGridAI authenticates with your OpenAI API key

3

OpenAI searches your Vector Store (uploaded documents)

4

Response generated using your selected model (GPT-4o, GPT-4o-mini, or GPT-3.5-turbo)

5

Answer returned to user in chat

6

All costs billed to your OpenAI account

Key point: ChatGridAI is a bridge connecting your chat platform to your OpenAI account. You maintain full control and ownership of your data and API costs.

Supported Platforms

  • Google Chat: Direct messages, group chats, spaces (requires Google Workspace)
  • Microsoft Teams: Direct messages, group chats, channels (requires Microsoft 365)

Security

  • Your documents: Stored only in OpenAI Vector Stores, NOT on ChatGridAI servers
  • Your conversations: Stored in OpenAI threads, NOT on ChatGridAI servers
  • Your API key: Encrypted in HashiCorp Vault, never visible in full after setup
  • Access control: Domain-verified users only, explicit group membership required

Bottom line: ChatGridAI cannot read, reuse, or train on your conversations or documents. Your data stays in your OpenAI account.

2 Login & Registration

ChatGridAI uses your existing Google Workspace or Microsoft Teams account for authentication. No separate username/password to remember.

Step-by-Step Process

  1. Visit chatgridai.com
  2. Click "Sign in with Google Workspace"
  3. Redirected to Google's OAuth 2.0 authentication page
  4. Sign in with your company Google Workspace account (must be @yourcompany.com, NOT @gmail.com)
  5. Grant ChatGridAI permission to access:
    • Your email address
    • Basic profile information
    • Company domain verification
  6. Automatically redirected to ChatGridAI dashboard

What We Collect

  • Email address: Used for account identification, notifications, and audit logs
  • Company domain: (e.g., yourcompany.com) — Used to group your organization's users together
  • OAuth tokens: Temporary authentication tokens
    • Refreshed automatically when needed
    • Expires after 2 hours of inactivity
    • Stored as secure httpOnly cookies (not accessible via JavaScript)

Automatic Trial Setup

When you register for the first time:

  • 14-day free trial starts immediately
  • No credit card required
  • 10 user limit during trial period
  • Full feature access — unlimited groups, file uploads, analytics
  • Default "Unassigned" group created automatically
  • You're added as admin with full permissions

Domain Verification

Only verified Google Workspace domains can register.

We verify through Google's OAuth that your email belongs to a legitimate company domain. Personal Gmail accounts (@gmail.com) are rejected.

Why: ChatGridAI is designed for business teams, not individual consumers.

What Happens After Login

  1. Redirected to dashboard at /dashboard
  2. See workspace overview showing:
    • Company name (extracted from domain)
    • Trial status and days remaining
    • User count (starts at 1 — you)
    • Group count (starts at 1 — Unassigned group)
  3. Quick setup guide appears (optional — can skip)
  4. Ready to create groups and configure OpenAI settings

Step-by-Step Process

  1. Visit chatgridai.com
  2. Click "Sign in with Microsoft"
  3. Authenticate through Azure Active Directory
  4. First-time registration only: Company name form appears
    • Enter your company name (e.g., "Acme Corporation")
    • 2-100 characters allowed
    • Letters, numbers, spaces, hyphens, periods, apostrophes only
  5. Click "Complete Registration"
  6. Automatically redirected to ChatGridAI dashboard

What We Collect

  • Display name: Your full name from Azure Active Directory
  • Email address: Your corporate Microsoft email
  • Azure AD Object ID: Unique identifier for your account (used for chat message routing)
  • Tenant ID: Your organization's Azure AD tenant identifier (ensures users from same org are grouped)
  • Company name: Provided during first registration (used for display purposes)
  • OAuth tokens: Temporary authentication tokens (same as Google — 2 hour expiry, httpOnly cookies)

Synthetic Domain

We create an internal domain identifier from your company name:

Example: "Acme Corporation" becomes "acmecorporation.teams"

Why: Provides consistent internal identification. This is NOT your actual Microsoft domain and doesn't affect anything external.

Automatic Trial Setup

Same as Google Workspace:

  • 14-day free trial
  • 10 user limit
  • Full feature access (unlimited groups, file uploads, analytics)
  • Default "Unassigned" group created
  • You're admin

Security Features

JWT Token Verification:

  • Microsoft's public keys fetched from https://login.microsoftonline.com/common/discovery/v2.0/keys
  • Token signature validated using RS256 algorithm
  • Token expiration checked (max 1 hour old accepted)
  • Audience claim validated (must match our Client ID)
  • Issuer claim validated (must be Microsoft's tenant-specific issuer)
  • "Not before" (nbf) claim validated

Secure Cookies:

  • HttpOnly flag (not accessible via JavaScript — prevents XSS attacks)
  • Secure flag in production (HTTPS only)
  • SameSite=Lax (CSRF protection)
  • 2 hour expiration

What Happens After Login

Same flow as Google Workspace — redirected to dashboard with workspace overview.

After initial registration, login is faster:

Google Workspace Users

  1. Click "Sign in with Google Workspace"
  2. Google recognizes you're already authenticated
  3. Immediately redirected to dashboard (no additional screens)

Microsoft Teams Users

  1. Click "Sign in with Microsoft"
  2. Azure AD recognizes you're already authenticated
  3. No company name form (only shown on first registration)
  4. Immediately redirected to dashboard

Session Persistence

  • Authenticated session lasts 2 hours of activity
  • Automatic token refresh when you interact with dashboard
  • After 2 hours of inactivity: must login again
  • Closing browser: session maintained (cookie persists)

Logout

Dashboard → Click your name/profile → "Logout"

  • httpOnly cookie cleared
  • Redirected to homepage
  • Must re-authenticate to access dashboard again

What We Store

  • Email address
  • Domain/Tenant ID
  • OAuth tokens
  • Trial dates
  • Subscription status

What We Don't Store

  • Passwords (we never see them — OAuth handles authentication)
  • Google/Microsoft account credentials
  • Your chat messages (stored only in OpenAI threads)
  • Document contents (stored only in OpenAI Vector Stores)

Data Location

  • ChatGridAI database: User metadata, group config, trial status
  • HashiCorp Vault: Encrypted OpenAI API keys
  • OpenAI systems: Your documents, chat history, embeddings

See full details: Privacy Policy

3 Dashboard

The dashboard is your management interface for ChatGridAI. Access it at /dashboard after logging in. The dashboard has a left sidebar with 5 sections:

1

Workspace Overview

Landing page showing your company name, subscription plan, user count, and group count. Has quick action buttons to jump to other sections. During trial period, displays banner with days remaining and upgrade button.

2

Groups

Where you create and manage groups. Configure each group with OpenAI API settings, upload files to train the AI, and assign team members. Each group gets its own AI configuration with separate knowledge base. Detailed setup instructions in Section 4.

3

Team Members

View all users in your workspace. Assign users to different groups or remove them. Search and filter capabilities. Details in Section 5.

4

Analytics

View token usage and OpenAI costs over time. See which groups and users consume the most tokens. Export data for your records. Details in Section 6.

5

Billing

Manage your ChatGridAI subscription. Upgrade from trial to paid plan, change billing cycle, or cancel subscription. This is separate from OpenAI billing. Details in Section 7.

Mobile: Click hamburger menu (top left) to open the sidebar. All features work on mobile devices.

4 Group Setup

Why these settings matter: When you configure a group, you connect ChatGridAI to your OpenAI account. Everything flows through the API Key and Vector Store ID you set here — chatting, file processing, AI responses. This determines how your AI behaves, what it knows, and what it costs.

Dashboard → Click "Create Group" → Enter group name → Group created.

Group shows "Setup Incomplete" status until you configure OpenAI settings and add users.

4.2.1 OpenAI API Key

Why: Authenticates every interaction. Without it, nothing works. All costs billed to this key's OpenAI account.

Get it:

  1. Go to platform.openai.com/api-keys
  2. Click "+ Create new secret key"
  3. Name it descriptively (e.g., "ChatGridAI - Customer Support Group")
  4. Copy immediately (starts with "sk-", only shown once)
  5. Paste into ChatGridAI → Configuration tab → Click "Edit" next to OpenAI API Key → Save

One key or separate keys?

  • One key for all groups: Simpler management, all costs in one place, can't track per-group
  • Separate keys per group: Track costs per department, better budget control, more keys to manage

Cost management:

You pay OpenAI directly based on usage. Set spending limits in your OpenAI account: platform.openai.com/account/billing/limits

Security:

  • Key encrypted in HashiCorp Vault (not our database)
  • Never displayed in full after saving (only first 5 and last 6 characters shown)
  • If lost, create new key in OpenAI and update in ChatGridAI

4.2.2 Model Selection

Determines intelligence level and cost per interaction. More capable models understand complex questions better but cost more.

GPT-4o (Most Capable)
  • Input: $2.50 / 1M tokens
  • Output: $10.00 / 1M tokens
  • Use when: Quality critical, complex reasoning needed
GPT-3.5-turbo
  • Input: $0.50 / 1M tokens
  • Output: $1.50 / 1M tokens
  • Simple FAQ-style questions only
  • Note: Older model, not as capable as 4o-mini

How to select: Configuration tab → Model dropdown → Select → Click "Save".

Changes apply to new conversations immediately.

Learn more: OpenAI Models Documentation

4.2.3 Vector Store ID

Why: This is where your documents live. When users ask questions, the AI searches this Vector Store to find relevant information from your uploaded files. Without a Vector Store, the AI can't access any company-specific knowledge.

How it works:

  1. You upload document to Vector Store
  2. OpenAI processes and indexes the content
  3. User asks question in chat
  4. AI searches Vector Store for relevant chunks
  5. AI uses found information to answer

Where to create:

  1. Go to platform.openai.com/storage
  2. Click "Create vector store"
  3. Name it descriptively (e.g., "HR Policies and Benefits")
  4. Click "Create"
  5. Copy the Vector Store ID (starts with "vs_")
  6. Paste into ChatGridAI → Configuration tab → Click "Edit" next to Vector Store ID → Save

Tip: Keep one vector store per group. HR documents shouldn't appear when Engineering searches for technical docs.

4.2.4 Setup Complete Status

Green checkmark appears when OpenAI API Key is saved. If still showing "Setup Incomplete," check your API key configuration.

Configure how your AI behaves and responds. Instructions define the AI's personality, expertise, and response style.

How Training Works

Original Instructions: Your instructions (write from scratch or use template)

Improved Instructions: AI-enhanced version (after clicking "Improve Instructions")

Process:

  1. Write instructions or select template
  2. Click "Improve Instructions" to get AI-enhanced version (optional)
  3. Click "Train with Original" OR "Train with Improved"
  4. Instructions are saved to your group configuration
  5. All future conversations use these instructions

Cost note: "Improve Instructions" uses tokens from your API key to rewrite instructions (~$0.01 per rewrite). "Train" buttons have no token cost — they just update your group config.

Templates

10 pre-built instruction templates for common use cases: Sales, HR, Tech Support, Marketing, Finance, Operations, Customer Success, Legal, Project Management.

How to use: Template dropdown → Select template → Instructions populate in Original Instructions → Edit as needed → Train

Learn more: OpenAI Documentation

Direct Upload

Click "Choose Files to Upload" → Select files (multiple allowed) → Files upload automatically.

Supported formats: PDF (.pdf), Word (.docx, .doc), Text (.txt), Markdown (.md), CSV (.csv), PowerPoint (.pptx), HTML (.html)

File size limit: 50MB per file

Important: File content is NOT stored on ChatGridAI servers. Only metadata is saved. Content lives in OpenAI's systems.

Platform Sync (Cloud Storage)

Connect cloud storage to browse and upload files directly:

  • Google Drive, Microsoft OneDrive, Microsoft SharePoint
  • Dropbox, Microsoft OneNote, Atlassian Confluence

Auto-conversions: Google Docs → .docx, Sheets → .xlsx, Slides → .pptx, OneNote → .pdf, Confluence → .html

Note: Files are not continuously synced. You must manually browse and re-upload if files change. This avoids unnecessary OpenAI costs.

Confluence/OneNote note: Currently converted to HTML/PDF because these platforms don't offer direct file downloads via API. For Confluence, if you need PDF format, you can manually download pages as PDF from Confluence web interface (page menu → Export → PDF) and upload via ChatGridAI or directly to OpenAI Vector Store. Once Confluence/OneNote add PDF export to their APIs, we'll automatically update.

Upload Directly in OpenAI (Alternative)

You can upload files directly to your Vector Store without using ChatGridAI:

  1. Go to platform.openai.com/storage
  2. Click on your Vector Store
  3. Click "Add files" or drag and drop
  4. Upload files (up to 512MB per file)

Files work identically — AI can access them. Won't appear in ChatGridAI's file list. This is always an option if you prefer managing files directly in OpenAI.

Add user:

  • Google Workspace: Enter email address (user@company.com)
  • Microsoft Teams: Enter display name (John Smith)
  • Click "Add" → User assigned to group

Remove user:

  • Click "Remove" next to user
  • User moved to "Unassigned" group
  • Cannot use AI until reassigned

Trial limit: 10 users maximum during 14-day trial.

5 Team Members

The Team Members section shows all users in your workspace. View who's assigned to which groups, reassign users, and manage team access in one place.

What You See

Stats Cards (Top of Page)

  • Total Members: All users across all groups
  • Active Groups: Groups that have at least one member
  • Unassigned: Users currently in "Unassigned" group only

Members Table

Table displays all users with these columns:

  • Checkbox: Select individual users for bulk actions
  • User: Email address (Google Workspace) or Display Name (Microsoft Teams). Admin users show "(Admin)" label.
  • Delete: Button to permanently remove user from system (Enterprise/Professional plans only, 2 deletes per month for Professional). Cannot delete admin users.
  • Current Group: Which group the user is currently assigned to
  • Assign to Group: Dropdown to reassign user to different group

Search and Filter

Tools above the table:

  • Search box: Type to filter by email/name. Updates table in real-time.
  • Group filter dropdown: Show only members of specific group. Combines with search filter.
  • Sort columns: Click "User" or "Current Group" column headers to sort ascending/descending. Arrow shows current sort direction.

Reassigning Users

Individual Reassign

Click dropdown in "Assign to Group" column → Select new group → User immediately moved to that group. Their chat thread stays intact.

Bulk Reassign

  1. Check boxes next to users you want to move
  2. Bulk actions bar appears showing "X selected"
  3. Select target group from "Move to group..." dropdown
  4. Click "Reassign Selected" button
  5. Confirm in popup
  6. All selected users moved to new group

Removing Users

Move to Unassigned (Free)

Select users → Bulk reassign dropdown → Choose "Unassigned" → Click "Reassign Selected". Users moved to Unassigned group. They cannot use the AI until reassigned to configured group.

Permanent Deletion (Paid Plans Only)

Delete Credits System:

When you purchase seats, you receive monthly delete credits equal to your seat count divided by 5 (rounded down):

  • 20 seats (minimum) = 4 delete credits/month
  • 25 seats = 5 delete credits/month
  • 30 seats = 6 delete credits/month
  • 50 seats = 10 delete credits/month
  • Credits reset at start of each billing cycle
  • Unused credits do NOT roll over

How to delete users:

  1. Check boxes next to users
  2. "Delete Selected" button appears (red)
  3. Click "Delete Selected"
  4. System shows remaining delete credits
  5. Two confirmation popups (permanent action warning)
  6. Users permanently removed from system
  7. Delete credits deducted

Restrictions:

  • Cannot delete admin users
  • Must have at least one admin in workspace
  • Trial users cannot delete (no credits during trial)
  • If no credits remaining, wait until next billing cycle or buy more seats

Select All

Checkbox in table header (left side) → Selects/deselects all visible users in current filtered view. If you're filtered to specific group, only those users get selected.

Mobile View

Table converts to card layout on mobile devices. Each user = separate card showing all same information. All actions (reassign, delete, select) work identically.

6 Analytics

View OpenAI token usage and estimated costs. All costs billed directly to your OpenAI account — ChatGridAI tracks and displays the data only.

Overview Stats (Last 30 Days)

  • Total Tokens: Combined input and output tokens across all groups
  • Total Cost: Estimated OpenAI costs in USD
  • Active Groups: Groups with usage activity
  • Avg Per Day: Average daily token consumption

Usage by Group Chart

Doughnut chart showing token distribution across groups. Only displays groups with usage activity (groups with zero tokens not shown). Click any segment to see user breakdown for that group in the chart below.

Top Users Chart

Bar chart showing top 8 users by token consumption within selected group. Displays username only (part before @ in email). Updates when you click different group in the doughnut chart above. Shows "No user activity yet" if group has no usage.

How Data is Tracked

Every time a user sends a message in Google Chat or Microsoft Teams:

1

Message sent to OpenAI API

2

OpenAI returns usage data

Prompt tokens, completion tokens, total tokens

3

ChatGridAI logs the data

Recorded with group ID, user email, and timestamp

4

Cost calculated

Total tokens × $0.000002 (approximate rate, varies by model)

5

Data appears immediately

Visible in the Analytics section right away

Cost Calculation

Estimated costs in ChatGridAI are approximate. For exact billing, check platform.openai.com/usage.

Actual costs vary by model selected in group configuration:

GPT-4o
  • Input: $2.50 / 1M tokens
  • Output: $10.00 / 1M tokens
GPT-3.5-turbo
  • Input: $0.50 / 1M tokens
  • Output: $1.50 / 1M tokens

Empty State

If no usage data exists yet, charts display "No usage data yet" or "No user activity yet". Start chatting with the AI in Google Chat or Microsoft Teams to generate analytics data.

Mobile View

Charts stack vertically on mobile devices. All data remains visible and interactive.

7 Billing & Seat Management

Two separate bills: You pay OpenAI directly for API usage, and ChatGridAI for platform access. These are independent.

Pricing

Trial (14 days, free)

  • 10 seats included
  • No credit card required
  • Unlimited groups
  • Unlimited file uploads
  • Full analytics access
  • No delete credits (can only move users to Unassigned)

Paid Plan

Seat Packs: 5 seats for $25/month ($5 per seat)

  • Minimum purchase: 4 packs (20 seats) = $100/month
  • Each pack = 5 seats for $25
  • Always exactly $5 per seat
  • Scale up by purchasing additional packs as needed
  • Billed monthly via Stripe
  • Unlimited groups
  • Unlimited file uploads
  • Full analytics

Delete Credits

Monthly delete credits = your total seat count divided by 5 (rounded down)

  • 20 seats (minimum) = 4 delete credits/month
  • 25 seats = 5 delete credits/month
  • 30 seats = 6 delete credits/month
  • 50 seats = 10 delete credits/month

Current Subscription Card

Dashboard Billing section shows:

  • Subscription Status: Active Trial, Active, Cancelling, Expired, or Inactive
  • Total Seats: Your current seat count
  • Delete Credits: Remaining credits this billing cycle / Monthly allowance
  • Next Billing: Date and amount of next charge
  • Billing Cycle: Monthly (annual not currently supported)

Upgrading from Trial

  1. Click "Upgrade" button (appears in yellow trial banner or Billing section)
  2. Redirected to Stripe Checkout (secure payment processor)
  3. Enter payment details (credit/debit card)
  4. Select quantity (minimum 4 packs = 20 seats = $100/month)
  5. Confirm payment
  6. Redirected back to dashboard
  7. Subscription activated immediately
  8. Trial banner disappears
  9. Delete credits become available (4/month for minimum 20 seats)

Adding More Seats

When you have an active paid subscription:

  1. Dashboard → Billing → Click "Add Seats" button
  2. Redirected to Stripe Checkout
  3. Adjust quantity (1–20 seat packs)
  4. Each pack = 5 seats = $25/month
  5. Confirm purchase
  6. Seats added immediately
  7. Delete credits recalculated automatically
  8. Prorated charge for current billing period

Reducing Seats

Important: You must have fewer users than your new seat limit before reducing seats.

  1. Dashboard → Billing → Click "Billing Portal"
  2. Stripe customer portal opens
  3. Click "Update plan" → Adjust seat pack quantity down
  4. If current users > new seat limit: Change rejected
    • Warning: "You have X users but new limit is Y seats. Remove Z users first."
    • Go to Team Members → Move excess users to Unassigned or delete them
    • Try reducing seats again
  5. If users ≤ new limit: Change scheduled for end of current billing period
  6. Delete credits recalculated at next billing cycle

Delete Credits Explained

How it works: Your monthly delete credits equal your total seat count divided by 5 (rounded down).

Why Delete Credits Exist

Delete credits prevent abuse while allowing reasonable user turnover. When you remove a user, their seat becomes available for reassignment. Delete credits let you permanently remove users who have left your organization.

Credit Reset Schedule

  • Credits reset at start of each billing cycle
  • Unused credits do NOT roll over
  • Reset date shown in Billing section
  • If you add seats mid-cycle, credits recalculate immediately
  • If you reduce seats, credits recalculate at next billing cycle

What If I Run Out of Credits?

Two options:

  1. Wait until next billing cycle (credits reset automatically)
  2. Buy more seats (adds more credits immediately via formula)

Alternative: Move users to "Unassigned" group (free, doesn't use credits, user can't access AI until reassigned)

Billing Portal

Click "Billing Portal" button to access Stripe customer portal where you can:

  • Update payment method
  • View payment history
  • Download invoices
  • Adjust seat pack quantity (add/remove seats)
  • Cancel subscription

Cancellation

  1. Click "Billing Portal"
  2. Scroll to bottom → Click "Cancel subscription"
  3. Confirm cancellation
  4. Subscription marked "Cancelling"
  5. Access continues until end of current billing period
  6. No refunds for partial months
  7. After period ends:
    • Cannot send messages in Google Chat or Microsoft Teams
    • Dashboard becomes read-only (view only, no edits)
    • All data preserved (groups, users, configuration, analytics)
    • Reactivate anytime by subscribing again

Status Indicators

  • Active: Subscription active, will auto-renew
  • Cancelling: Subscription active until period end, will not renew
  • Active Trial: In 14-day trial period
  • Expired: Trial or subscription ended, access disabled until renewed
  • Inactive: No active subscription or trial

Seat Management Best Practices

  • Start small: Use trial to test with 10 users, buy seat packs as needed
  • Monitor usage: Analytics section shows which users are active
  • Plan for turnover: Delete credits = ~20% monthly turnover (2 deletions per 10 seats)
  • Move vs Delete: Move inactive users to Unassigned (free, reversible) vs permanent deletion (uses credits)
  • Timing matters: Add seats anytime (prorated), reduce at billing cycle end (avoid early removal)

Pricing Examples

Small Team
  • 20 seats — $100/month
  • 4 delete credits/month
Medium Team
  • 30 seats — $150/month
  • 6 delete credits/month
Large Team
  • 50 seats — $250/month
  • 10 delete credits/month
Enterprise
  • 100 seats — $500/month
  • 20 delete credits/month

All payments processed by Stripe. ChatGridAI does not store credit card details. PCI DSS compliant.

8 Actions & Webhooks

Actions let employees submit structured requests directly from chat — without filling in forms or switching apps. The AI collects the details through conversation, shows the employee a summary to confirm, then fires a signed webhook to any external system you configure (Jira, ServiceNow, an HR platform, a custom API, etc.).

Who should set this up: Actions require a developer or IT admin to configure the webhook endpoint and JSON template. The conversation experience for employees is seamless once set up — they just chat naturally.

How It Works (Employee Perspective)

1

Employee makes a request in chat

e.g. "I need to take next Friday off" or "My laptop won't connect to VPN"

2

AI collects any missing details

Asks follow-up questions naturally to gather required fields. Already-provided details are not asked again.

3

Summary card shown for confirmation

The AI presents a formatted summary. Employee replies confirm to submit or cancel to dismiss. Nothing is sent without explicit confirmation.

4

Webhook fires to your system

A signed JSON payload is delivered to your configured URL. The ticket, request, or task appears in your system automatically.

8.1 Enable Actions for a Group

Actions are configured per group. To enable them:

  1. Open the dashboard and select your group
  2. Go to the JSON Builder section in the sidebar
  3. Create at least one template (see Section 8.2)
  4. Go to the Webhooks section and enter your webhook URL
  5. Toggle Actions enabled on

Actions are off by default. Enabling them adds the request-submission capability to the AI for that group only. Other groups are unaffected.

8.2 Creating Templates (JSON Builder)

A template defines two things: what fields the AI should collect from the employee, and what JSON payload gets sent to your webhook when they confirm.

Step 1 — Create a new template

In the JSON Builder, click + New. Give it a display name (e.g. "Vacation Request") and a slug is generated automatically (e.g. vacation_request). The slug is what the AI uses internally to identify the request type.

Step 2 — Define mandatory fields

Add the fields the AI needs to collect. Each field has a name and a collection mode:

  • Required — AI will infer from context if possible, otherwise ask
  • Always ask — AI must ask the employee explicitly, even if the answer seems obvious (use for dates, names, anything that must be confirmed)
  • Ask if known — AI asks but proceeds if the employee doesn't know
  • Auto-fill (name) — Automatically populated from the employee's display name. Never shown to or asked of the employee.

Example fields for a leave request:

  • request_type — Required (annual, sick, unpaid)
  • start_date — Always ask
  • end_date — Always ask
  • is_paid — Required
  • employee_name — Auto-fill (name)

Step 3 — Build the payload

Use the Row Builder to define key/value pairs, or switch to Raw JSON to paste your own structure. Use {{mustache}} variables to inject values collected from the conversation.

Example payload for a Jira Service Management request:

{
  "summary": "{{title}}",
  "description": "{{description}}",
  "request_type": "{{fields.request_type}}",
  "start_date": "{{fields.start_date}}",
  "end_date": "{{fields.end_date}}",
  "is_paid": "{{fields.is_paid}}",
  "requested_by": "{{user.email}}",
  "source": "{{platform}}",
  "action_id": "{{action_id}}"
}

8.3 Variable Reference

The following variables are available in your JSON template. Empty optional fields are automatically stripped from the payload before delivery.

Variable Value
{{event_type}}Always action.created
{{action_id}}Unique UUID for this submission (use for idempotency in your system)
{{timestamp}}ISO 8601 UTC timestamp of submission
{{title}}Short summary generated by the AI (e.g. "Annual Leave 14–18 April")
{{description}}Full description of the request
{{intent}}The template slug matched (e.g. vacation_request)
{{user.email}}Employee email address (Google Chat). Empty on Teams.
{{user.name}}Employee display name (Teams). Empty on Google Chat.
{{platform}}teams or google_chat
{{group.name}}Name of the group the employee belongs to
{{group.id}}Numeric group ID
{{fields.FIELD_NAME}}Any field collected during the conversation. Replace FIELD_NAME with your field name (e.g. {{fields.start_date}}).

8.4 Webhook Configuration

Go to the Webhooks section in the dashboard sidebar to configure delivery settings for the selected group.

Webhook URL

The HTTPS endpoint that receives the payload. Must return a 2xx status code to be considered a successful delivery. ChatGridAI retries up to 3 times on 5xx errors with exponential backoff before marking the delivery as failed.

Signing secret (recommended)

If provided, every request includes an X-ChatGridAI-Signature header containing an HMAC-SHA256 signature of the payload. Verify this on your server to confirm the request is genuine and hasn't been tampered with.

The signature is computed as:

HMAC-SHA256(secret, "{timestamp}.{body}")

Where timestamp is the value of the X-ChatGridAI-Timestamp header and body is the raw JSON string.

Bearer token (optional)

If your endpoint requires authentication, enter a token here. It is sent as Authorization: Bearer <token> on every request.

Custom headers (optional)

Add any additional HTTP headers your endpoint requires (e.g. X-Api-Key). Values are stored encrypted and never shown in full after saving.

8.5 Testing & Delivery Logs

Test button

Use Send test event in the Webhooks section to fire a sample payload to your endpoint immediately. The response status code and body are shown inline so you can confirm delivery before going live.

Delivery history

The Webhooks section shows the last 50 deliveries across all groups — timestamp, group, request title, HTTP status, and success/failure status. Use this to diagnose failed deliveries without needing server-side logging.

Failed deliveries: If a delivery fails after 3 attempts, the draft is reset to ready. The employee can reply confirm in chat to trigger a retry without re-entering any details.

8.6 End-to-End Example — Leave Request to Jira Service Management

This example walks through a complete setup connecting an HR leave request to Jira Service Management.

1. Create the template in JSON Builder

  • Display name: Leave Request
  • Slug: leave_request (auto-generated)
  • Fields: request_type (Required), start_date (Always ask), end_date (Always ask), is_paid (Required), employee_name (Auto-fill name)

2. Build the JSON payload

{
  "fields": {
    "project": { "key": "HR" },
    "issuetype": { "name": "Leave Request" },
    "summary": "{{title}}",
    "description": {
      "type": "doc",
      "version": 1,
      "content": [{
        "type": "paragraph",
        "content": [{ "type": "text", "text": "{{description}}" }]
      }]
    },
    "customfield_10001": "{{fields.request_type}}",
    "customfield_10002": "{{fields.start_date}}",
    "customfield_10003": "{{fields.end_date}}",
    "customfield_10004": "{{fields.is_paid}}",
    "customfield_10005": "{{fields.employee_name}}",
    "reporter": { "emailAddress": "{{user.email}}" }
  }
}

3. Configure the webhook

  • URL: https://your-domain.atlassian.net/rest/api/3/issue
  • Bearer token: Your Jira API token (Base64 encoded email:token)
  • Custom header: X-Atlassian-Token: no-check

4. Send a test event, then go live

Click Send test event and confirm a 201 response from Jira. Enable Actions for the group. Employees can now submit leave requests directly from Teams or Google Chat.

What the employee sees: They type "I want to take annual leave from April 14th to 18th." The AI asks whether it's paid leave, then shows: "Annual Leave 14–18 April • Type: annual • Paid: yes • Reply confirm to submit or cancel to dismiss." One reply later, the Jira ticket exists.

8.7 Example — IT Request to ServiceNow

This example creates an incident in ServiceNow when an employee reports an IT issue.

1. Create the template

  • Display name: IT Support Request
  • Slug: it_request
  • Fields: issue_description (Always ask), urgency (Required — low / medium / high), affected_system (Ask if known), employee_name (Auto-fill name)

2. JSON payload

{
  "records": [{
    "short_description": "{{title}}",
    "description": "{{description}}\n\nIssue: {{fields.issue_description}}\nAffected system: {{fields.affected_system}}",
    "urgency": "{{fields.urgency}}",
    "caller_id": "{{user.email}}",
    "category": "software",
    "subcategory": "{{intent}}",
    "u_source": "ChatGridAI ({{platform}})",
    "u_chatgridai_id": "{{action_id}}"
  }]
}

3. Configure the webhook

  • URL: https://your-instance.service-now.com/api/now/table/incident
  • Bearer token: ServiceNow Basic Auth token (Base64 user:password) or OAuth token
  • Custom headers: Accept: application/json and Content-Type: application/json

Urgency mapping: ServiceNow uses numeric urgency values (1 = High, 2 = Medium, 3 = Low). If your ServiceNow instance requires numbers, either map them in a middleware layer or instruct the AI via system instructions to collect urgency as 1, 2, or 3.

8.8 Example — Generic REST API / Custom Endpoint

If you have your own internal system or want to use a middleware like Zapier, Make, or n8n, use a generic webhook setup. This is the most flexible option.

1. Create the template

Define whatever fields make sense for your use case. The JSON payload can be any valid JSON structure — nested objects, arrays, flat key/value pairs.

2. Minimal payload (everything available)

{
  "event": "{{event_type}}",
  "id": "{{action_id}}",
  "submitted_at": "{{timestamp}}",
  "platform": "{{platform}}",
  "group": "{{group.name}}",
  "user": {
    "email": "{{user.email}}",
    "name": "{{user.name}}"
  },
  "request": {
    "type": "{{intent}}",
    "title": "{{title}}",
    "description": "{{description}}",
    "fields": {
      "field_one": "{{fields.field_one}}",
      "field_two": "{{fields.field_two}}"
    }
  }
}

3. Using with Zapier / Make / n8n

Point the webhook URL at your Zapier Catch Hook, Make webhook module, or n8n Webhook node. ChatGridAI sends the payload; your automation tool handles routing it to Slack, email, Google Sheets, or any downstream system. Use the signing secret to verify requests are genuine before processing them.

4. Verifying the signature (Node.js example)

const crypto = require('crypto');

function verifySignature(req, secret) {
  const timestamp = req.headers['x-chatgridai-timestamp'];
  const signature = req.headers['x-chatgridai-signature'];
  const body = req.rawBody; // raw string, not parsed

  const expected = 'sha256=' + crypto
    .createHmac('sha256', secret)
    .update(`${timestamp}.${body}`)
    .digest('hex');

  return crypto.timingSafeEqual(
    Buffer.from(signature),
    Buffer.from(expected)
  );
}

Use {{action_id}} as an idempotency key. If your endpoint receives the same action_id twice (e.g. due to a network retry), discard the duplicate. ChatGridAI also enforces idempotency on its side, but defence in depth is good practice.

? Common Questions

No. ChatGridAI installs as a separate bot in your workspace. It doesn't modify any existing chats, channels, or settings. Users interact with it by @mentioning it — it never sends unsolicited messages or accesses conversations it's not invited to.

The AI generates answers based on documents you've uploaded to the Vector Store. Answer quality depends directly on your uploaded content. You can improve accuracy by:

  • Uploading more comprehensive, up-to-date documents
  • Writing clearer AI instructions in the Training tab (e.g., "Only answer from uploaded documents. If unsure, say so.")
  • Using a more capable model (GPT-4o instead of GPT-4o-mini) for nuanced topics

The AI will never fabricate policy or make up information that contradicts your uploaded docs — if the answer isn't in the documents, you can instruct it to say "I don't have that information."

Each group in ChatGridAI represents a department or team. Groups are completely isolated:

  • Separate documents: HR's employee handbook doesn't appear when engineering asks about APIs
  • Separate instructions: Each group's AI can have different behavior and tone
  • Separate members: Only assigned users can access that group's AI
  • Separate tracking: Usage and costs are tracked per group in Analytics

A user is assigned to one group at a time. Admins can reassign users between groups at any point.

You have full control over both cost lines:

  • ChatGridAI fee: Fixed $5/seat/month. You choose how many seats. No hidden charges. Cancel anytime.
  • OpenAI API costs: Billed directly to your OpenAI account based on usage. You can set hard spending limits at platform.openai.com/account/billing/limits.

For a team of 10 using GPT-4o-mini, typical OpenAI costs run $10–30/month. You see exact usage in both the ChatGridAI Analytics dashboard and your OpenAI billing page.

No. ChatGridAI is a bridge — it routes messages between your chat platform and your OpenAI account. Your documents and conversations live in OpenAI's systems, not ours.

  • ChatGridAI cannot read your documents or conversations
  • ChatGridAI cannot reuse or train on your data
  • Your OpenAI API key is encrypted in HashiCorp Vault and never displayed in full
  • Deleting a group or cancelling removes all references — your OpenAI data remains yours

For full details, see our Privacy Policy.

Those are great general-purpose tools, but they weren't designed to solve the specific problem ChatGridAI addresses:

  • Cost: ChatGPT Team is $25–30/seat/month. ChatGridAI is $5/seat + only the OpenAI tokens you actually use — making company-wide deployment 3–5x cheaper.
  • Scoping: General tools give every user the same AI. ChatGridAI lets you create separate assistants per department, each with its own documents and rules.
  • Control: You choose the model, set spending limits, track per-user usage, and can change AI behavior per group — all from one dashboard.
  • Integration: ChatGridAI lives inside your existing Google Chat or Teams — no new app for your team to learn or switch to.

No sections match your search. Try different keywords.