1
Company
2
Sign In
3
Setup
🧠
Heartbeat AI
Knowledge Retrieval Platform
Find Your Company
Enter your company name to get started
Don't have an account? Sign up
Terms · Privacy
Sign in to continue
Sign in with your Google account
🔒 Your administrator has configured secure sign-in using Google.
🔐
Two-Factor Authentication
Enter the 6-digit code from your authenticator app
Code expires in 5 minutes
⚙️
Company Setup
First-time configuration
You're the first user for this company. Enter your name, choose an AI provider, and sign in with Google to become the administrator.
⚡ Quick Start — Use Google Gemini (recommended)
Click to auto-fill Gemini settings. You'll just need your API key.
Custom Provider Name
Model Name *
API Key
Advanced Settings (optional)
⚡ Embedding Model — Required
An embedding model converts your documents into searchable vectors.
For Ollama use nomic-embed-text. For OpenAI use text-embedding-ada-002.
Embedding Provider
Embedding Model Name *
Embedding API Key
Embedding Base URL
Sign in with Google to complete setup
AI Model
Knowledge Base
0
Search:
Loading…

Settings

Configure AI models, users, company info, and vector store for your tenant.

🤖 AI Models
ProviderModelRoleTemp
📂 Document Containers

Containers let you group documents and filter RAG queries to a specific collection.

NameColor
Container Name
Colour
👥 Team Members
NameEmailRole
🏢 Company Info
Company Name
Description
Logo URL
📖 User Guide Knowledge Base

Index the built-in user guide into your AI knowledge base so the chat assistant can answer "how do I…" questions about the platform.

🗄️ Vector Store
ChromaDB Collection Name
Use Remote Vector Store (e.g. Vertex AI)
Vector Config (JSON)
Migrate to Dedicated Database

Move your vector embeddings from the shared database to your own dedicated PostgreSQL server with pgvector. This gives you full control over your data and independent scaling.

Host
Port
Database Name
Username
Password
Billing & Subscription
Loading billing info...
📊 Analytics Dashboard

Usage trends, top queries, and activity breakdown for the last 30 days.

Loading analytics...
💬 Embeddable Chat Widget

Create widget keys to embed a chat assistant on your website. Visitors can ask questions answered by your AI knowledge base.

LabelKeyContainerOriginsStatus
Embed Snippet — copy and paste into your website

                
              
🔗 Integrations

Connect external services to automatically sync knowledge into your AI.

📁
Google Drive
Browse and sync documents from Google Drive into your RAG knowledge base
Synced Files
FileContainerChunksLast SyncedStatus
💬
Slack
Install a bot that answers questions in your Slack workspace using your RAG knowledge base
How to use:
• Mention @HeartbeatAI in any channel to ask a question
• Send a direct message to the bot for private queries
• The bot responds in threads to keep channels clean
Default Bot Settings
Used when no channel-specific config matches
Customize how the bot responds. Leave blank to use the default platform prompt.
Channel Configurations
Route specific Slack channels to different knowledge bases
🟦
Microsoft Teams
Install a bot that answers questions in your Teams workspace using your RAG knowledge base
How to use:
• Mention @HeartbeatAI in any Teams channel to ask a question
• Send a direct message to the bot for private queries
• The bot responds in threads to keep channels organized
Bot Settings
Customize how the bot responds. Leave blank to use the default platform prompt.
💳
Customer Stripe
Connect your Stripe account to send invoices and collect payments from invoice forms
Stripe Secret Key
Publishable Key (optional)
Webhook Secret (optional)
📊
QuickBooks Online
Sync customers, invoices, and payments from QuickBooks into your RAG knowledge base
Select data to sync:
Synced Data
Entity TypeRecordsChunksLast SyncedStatus
🔐 Security

Manage two-factor authentication and other security settings.

🔑
Two-Factor Authentication (TOTP)
Add an extra layer of security to your account using an authenticator app

MFA is not enabled. Enable it to require a 6-digit code from your authenticator app when logging in.

Scan this QR code with your authenticator app (Google Authenticator, Authy, etc.), then enter the 6-digit code to verify.

QR Code

MFA is enabled. You will be prompted for a code from your authenticator app when logging in.

⚠️
Delete My Account
Permanently delete your account and all associated data. This cannot be undone.
Compliance Policies

SOC 2 compliance policy documents. Admins can view and export to PDF. Superadmins can edit content.

Loading policies...
RAG Indexing

Index all policies into the AI knowledge base so users can ask compliance questions in the chat, Slack, and Teams. The policies will appear in a protected "Compliance Policies" container that cannot be modified via file uploads.

Superadmin only. Changes trigger RAG re-indexing.

📄 Interactive Pages

AI-generated interactive HTML pages saved from your chat sessions. Click Open to view in a new tab.

Loading pages…
🤖 Worker Agents
Worker Name
Model
System Prompt
Workers 0
Add your first worker above to build a pipeline.
Workers (parallel) ▼ Supervisor
👑 Supervisor Agent
Supervisor Name
Model
System Prompt
🤖
Worker → Supervisor Pipeline
Add worker agents on the left, configure the supervisor, then enter a task above. Workers process in parallel, then the Supervisor synthesizes a unified response.
Save all agent responses as a shared chat session

Superadmin — Tenant Management

Create, configure, and enable/disable company tenants on this platform.

-
Total Companies
-
Active
-
Total Users
-
Revenue
▶ System Health & Usage
-
Database Size
-
DB Pool (used/total)
-
Active Sessions
-
Total Embeddings
-
Vector Storage
Database Tables (by size)
Loading...
Company Usage Breakdown
Company Tier Users Docs Queries/Mo Embeddings Storage
Errors (last 24h)
▶ Security & Configuration
Platform Environment Variables

Click any value to update it. Changes are applied to Cloud Run and take effect on the next instance.

Variable Description Status Value
Loading...
Data Retention Cleanup

Purge expired sessions, email logs older than 90 days, and usage events older than 1 year.

API Key Rotation Guides
Stripe Keys
  1. Go to Stripe Dashboard → API Keys
  2. Click Roll key on your Secret key → copy the new key
  3. Click the edit button next to STRIPE_SECRET_KEY above and paste the new key
  4. For webhooks: go to Developers → Webhooks, click your endpoint, copy the signing secret
  5. Update STRIPE_WEBHOOK_SECRET above
  6. Test by making a test purchase on the signup page
Google OAuth Client ID
  1. Go to GCP Console → APIs → Credentials
  2. Click your OAuth 2.0 Client ID
  3. To rotate: create a new OAuth client, update the client ID in App Settings (database), and update authorized redirect URIs
  4. Note: The OAuth Client ID is stored in the app_settings table, not an env var. Update it via direct DB access if needed.
  5. Add your custom domain to Authorized JavaScript origins and redirect URIs
Gmail App Password
  1. Go to Google Account → App Passwords
  2. Revoke the existing app password
  3. Create a new one (select "Mail" and "Other")
  4. Copy the 16-character password
  5. Update GMAIL_APP_PASSWORD above
  6. Also update GMAIL_USER if the sender email changed
Sentry DSN
  1. Go to sentry.io → create a free account
  2. Create a new project (Platform: Python, Framework: FastAPI)
  3. Copy the DSN from Settings → Client Keys
  4. Paste it into SENTRY_DSN above
  5. Errors will automatically appear in your Sentry dashboard
Custom Domain Setup
  1. Register your domain (e.g. app.heartbeat-ai.com) with any registrar
  2. Go to GCP Console → Cloud Run
  3. Click your heartbeat-ai service
  4. Go to the Integrations or Custom domains tab
  5. Click Add mapping and enter your domain
  6. Add the DNS records shown (CNAME or A record) at your registrar
  7. Wait for SSL certificate provisioning (5-15 minutes)
  8. Update ALLOWED_ORIGINS above to include your new domain, e.g.: https://app.heartbeat-ai.com,https://heartbeat-ai-643555112985.us-central1.run.app
  9. Update APP_BASE_URL to your custom domain
  10. Update Google OAuth authorized origins to include the new domain
reCAPTCHA Keys
  1. Go to Google reCAPTCHA Admin
  2. Select your site or register a new one (reCAPTCHA v2 checkbox)
  3. Add your custom domain to the list of authorized domains
  4. Copy the Site Key → update RECAPTCHA_SITE_KEY
  5. Copy the Secret Key → update RECAPTCHA_SECRET_KEY
Google Drive Integration (OAuth Client Secret)
  1. Go to GCP Console → APIs → Credentials
  2. Click your existing OAuth 2.0 Client ID (same one used for Sign-In)
  3. Copy the Client Secret → update GOOGLE_OAUTH_CLIENT_SECRET above
  4. Ensure Google Drive API is enabled in API Library
  5. Add your app's callback URL to Authorized redirect URIs: https://your-domain/integrations/drive/callback
Slack Bot Setup
  1. Go to Slack API → Your Apps
  2. Click Create New App → choose From scratch
  3. Name it "Heartbeat AI" (or your brand) and select your workspace
  4. Under OAuth & Permissions, add Bot Token Scopes: chat:write, app_mentions:read, channels:history, groups:history, im:history
  5. Add Redirect URL: https://your-domain/integrations/slack/callback
  6. Under Event Subscriptions, enable events and set Request URL: https://your-domain/integrations/slack/events
  7. Subscribe to bot events: app_mention, message.im
  8. From Basic Information, copy:
  9. Client ID → SLACK_CLIENT_ID
  10. Client Secret → SLACK_CLIENT_SECRET
  11. Signing Secret → SLACK_SIGNING_SECRET
Microsoft Teams Bot Setup
  1. Go to the Azure Portal → Create a Bot
  2. Create a new Azure Bot resource with a new or existing App Registration
  3. In the App Registration, go to Certificates & secrets and create a new Client Secret
  4. Under Channels, enable the Microsoft Teams channel
  5. Set the Messaging endpoint to: https://your-domain/integrations/teams/messages
  6. Under Authentication → Redirect URIs, add: https://your-domain/integrations/teams/callback
  7. From the App Registration Overview, copy:
  8. Application (client) ID → MSTEAMS_APP_ID
  9. Client Secret value → MSTEAMS_APP_SECRET
All Companies
Loading companies…
Add New Company
Company Name *
Logo URL
Description
Collection Name (leave blank for auto)
Module Manager
Loading modules…
Add New Module
Module Name *
Shortname (slug) *
Icon (emoji)
Display Order
Description
📦
COMING SOON

This module is currently under development. Stay tuned!

Heartbeat AI — User Guide

Your comprehensive guide to the AI-powered knowledge retrieval platform. From uploading your first document to building dynamic form modules — everything you need is right here.
Designed & built by Umais Siddiqui — the mastermind behind Heartbeat AI
🛡️

Part 1 — Super Admin Implementation

Super Admin

1.1 — Platform Overview

As a Super Admin you have full control over the entire Heartbeat AI platform. You manage companies, provision modules, configure billing, and oversee all system-level settings.

  • Access the Super Admin panel from the top nav (shield icon)
  • View all registered companies, their subscription tiers, and user counts
  • Toggle modules on/off per company and manage global settings

1.2 — Company Management

Create and configure companies that will use the platform:

  1. Navigate to Super Admin → Companies
  2. Click + New Company and fill in company name, admin email, and tier
  3. The company admin receives a welcome email with login instructions
  4. Set the Membership Tier (Free, Pro, Lifetime) to control feature access

1.3 — Module Activation

Enable or disable modules for each company:

  1. Go to Super Admin → Module Manager
  2. Toggle individual modules (Chat, Pages, Agents, Dynamic Forms) per company
  3. Mark modules as "Developed" or "Coming Soon" to control visibility
  4. Set display order to customize the navigation menu
💡 Pro Tip: Use the "Coming Soon" flag to preview upcoming modules in the nav without exposing unfinished functionality to users.

1.4 — AI Model Provisioning

Configure which AI models are available across the platform:

  1. Go to Super Admin panel or Settings → Models
  2. Add API keys for OpenAI, Anthropic, Google Gemini, NVIDIA, Ollama, or custom providers
  3. Set default chat and embedding models per company
  4. Models appear in the sidebar dropdown for users to select during chat
  5. Each company needs one embedding model (config role: "embedding") — recommended: gemini-embedding-001 (Google) or text-embedding-3-small (OpenAI). See Part 2, Section 2.3 for full list and base URLs.
🔐 Security Note: API keys are stored encrypted and never exposed to the frontend. Only the model name and provider are visible to users.

1.5 — Billing & Stripe Integration

The platform integrates with Stripe for payment processing:

  • Stripe checkout sessions are created automatically during company signup
  • Webhook events confirm payment and activate the company account
  • View payment status and email logs in the Super Admin dashboard

1.6 — Integration Credentials Setup

The platform supports several third-party integrations. As Super Admin, you manage the platform-level credentials. Tenant-level credentials are managed by each company admin.

Google Drive (Platform-Level)

  1. Go to Google Cloud Console → same project as your Google Sign-In
  2. Enable the Google Drive API
  3. Go to OAuth consent screen → add the https://www.googleapis.com/auth/drive.readonly scope
  4. Copy your OAuth Client Secret and set it as GOOGLE_OAUTH_CLIENT_SECRET in the Superadmin → Platform Config panel
  5. Add your callback URL: {APP_BASE_URL}/integrations/drive/callback to Authorized Redirect URIs

Slack Bot (Platform-Level)

  1. Go to Slack API → Your Apps and create a new app
  2. Under OAuth & Permissions, add scopes: chat:write, app_mentions:read, channels:history, groups:history, im:history
  3. Under Event Subscriptions, enable events and set the request URL to {APP_BASE_URL}/integrations/slack/events
  4. Subscribe to bot events: app_mention, message.im
  5. Copy Client ID, Client Secret, and Signing Secret → set as env vars in Platform Config
  6. Add redirect URL: {APP_BASE_URL}/integrations/slack/callback

QuickBooks Online (Platform-Level)

  1. Go to Intuit Developer Portal and create an app
  2. Under Keys & credentials, select Production (or Sandbox for testing)
  3. Copy Client ID and Client Secret
  4. Add redirect URI: {APP_BASE_URL}/integrations/quickbooks/callback
  5. Set QUICKBOOKS_CLIENT_ID and QUICKBOOKS_CLIENT_SECRET in Platform Config

Customer Stripe Invoicing (Tenant-Level)

Each company admin configures their own Stripe keys — no platform-level env vars needed:

  1. Tenant admins go to Settings → Integrations → Customer Stripe
  2. They enter their own sk_live_... secret key
  3. Optionally add Publishable Key and Webhook Secret
  4. Payments flow directly to their Stripe account — the platform never handles funds
🔒 Security: All API keys and secrets are stored server-side and never exposed to the frontend. Rotate credentials regularly and use the Platform Config panel to update env vars without redeploying.

Troubleshooting Common Issues:

  • "OAuth client secret not configured" — Check that the env var is set in Platform Config and the service has been redeployed
  • "Token refresh failed" — The user may need to re-authorize. Disconnect and reconnect the integration
  • "Invalid redirect URI" — Ensure the callback URL in the provider's console exactly matches APP_BASE_URL + /integrations/{service}/callback
  • "Webhook signature invalid" — Verify the signing/webhook secret matches between the provider and your config
  • "QuickBooks 401 error" — Token expired. QB tokens expire after 1 hour; the platform auto-refreshes them, but if the refresh token expires (100 days), the user must reconnect
🏢

Part 2 — Company Admin Guide

Admin

2.1 — Getting Started

After your company is provisioned, sign in with your Google account:

  1. Visit the Heartbeat AI login page and select your company
  2. Click Sign in with Google — your email must match the admin email on file
  3. You'll land on the Chat module by default with full admin privileges

2.2 — Knowledge Base Setup

Build your AI knowledge base by uploading documents:

  1. Go to Settings → Containers and create categories (e.g., "HR Policies", "Product Docs")
  2. Click the 📂 Files icon in the sidebar to open the Knowledge Base
  3. Upload PDFs, Word docs, Excel files, images, or plain text
  4. Files are automatically chunked, embedded, and stored in the vector database
  5. Assign each file to a container for organized retrieval
💡 Pro Tip: Use meaningful container names. When users chat, they can filter by container to narrow AI responses to specific document sets — like asking HR questions only from "HR Policies".

2.3 — AI Model Configuration

Configure the AI models your team will use:

  1. Go to Settings → Models
  2. Add models with their API keys — supported providers: OpenAI, Anthropic (Claude), Google Gemini, NVIDIA NIM, Ollama (local), and custom OpenAI-compatible endpoints
  3. Mark one model as the default for new conversations
  4. Add an embedding model (config role: "embedding") — this is required for document uploads and AI search

Supported Embedding Models

You need exactly one embedding model configured. Below are the recommended options:

Provider Model Name Base URL Dimensions
Google Gemini gemini-embedding-001 https://generativelanguage.googleapis.com/v1beta/openai/ 768
OpenAI text-embedding-3-small (leave blank — uses OpenAI default) 1536
OpenAI text-embedding-3-large (leave blank — uses OpenAI default) 3072
OpenAI text-embedding-ada-002 (leave blank — uses OpenAI default) 1536
Ollama (Local) nomic-embed-text http://localhost:11434/v1 768
⚠️ Important: Do NOT use chat models (e.g., gemini-2.0-flash, gpt-4o, claude-3) as your embedding model — they will fail with a 404 error. Only use models specifically designed for embeddings.
💡 Note: Google retired text-embedding-004 in late 2025. If you were using it, switch to gemini-embedding-001. Re-upload your documents after changing embedding models — existing embeddings are not compatible across different models.

2.4 — Team Management

Add and manage your team members:

  1. Go to Settings → Users
  2. Invite users by email — they must use Google Sign-In with that email
  3. Set roles: Admin (full access) or User (module access only)
  4. Remove users or change roles at any time

2.5 — Dynamic Forms Module

Create custom data-collection forms that auto-vectorize into your knowledge base:

  1. Open the Dynamic Forms module from the navigation menu
  2. Click + New to create a Module Instance (e.g., "HR Onboarding")
  3. In the Config tab, assign a RAG container, chat model, and embedding model
  4. Switch to Forms tab and click + New Form
  5. Use the drag-and-drop form builder to add fields: Text, Textarea, Number, Email, Date, Dropdown, Multi-select, Radio, Checkbox, File
  6. Save the form — it's immediately available for users to fill out
ℹ️ How Auto-Vectorization Works: When a user submits a form, the data is automatically converted to natural language, chunked, embedded, and stored in your vector database. This means you can later ask the AI questions about submitted data — "Who joined in January?" or "List all engineers with Python skills".

2.6 — Permission Management

Control who can access each Dynamic Forms instance:

  1. Open a module instance and go to the Access tab
  2. Grant access to individual users with User or Editor level
  3. Admins automatically have access to all instances
  4. Regular users only see instances they've been explicitly granted access to

2.7 — QR Code Strategy

Every form submission generates a unique QR code:

  • QR codes link to a public detail page for the entry
  • Scans are logged with IP, timestamp, and user agent for audit
  • Use QR codes for employee badges, event check-ins, asset tracking, or document verification
  • QR images include your company logo overlay for branding
💡 Pro Tip: Print QR codes on badges or ID cards. When scanned, they instantly display the employee's profile data from the form submission — no app install needed.

2.8 — Company Branding

Customize your company's appearance:

  1. Go to Settings → Company
  2. Update your company name, logo URL, and primary color
  3. The logo appears on QR codes and public-facing pages
  4. Branding is applied across all shared content (pages, QR scans, exports)

2.9 — Analytics Dashboard

View usage trends and insights for your company:

  1. Go to Settings → Analytics
  2. See KPI cards at the top: total queries (30 days), active users, widget queries, and top container
  3. Query Volume — bar chart showing daily query counts over the last 30 days
  4. Top Queries — most frequently asked questions this month
  5. Most Active Users — team members sorted by query count
  6. Model Usage — breakdown of which AI models are used most
💡 Tip: Use the Top Queries chart to identify knowledge gaps — if users keep asking questions the AI can't answer, upload more documents covering those topics.

2.10 — Embeddable Chat Widget

Add an AI chat assistant to your website so visitors can ask questions answered by your knowledge base:

  1. Go to Settings → Widget
  2. Click + Create Widget Key and fill in:
    • Label — a name for this widget (e.g. "Main Website")
    • Allowed Origins — restrict which domains can use the widget (leave blank for any)
    • System Prompt — optional custom instructions for the AI
    • Welcome Message — greeting shown when the chat opens
    • Starter Prompts — suggested questions for visitors
  3. After creation, click the </> button to copy the embed snippet
  4. Paste the <script> tag into your website's HTML — a floating chat button appears
  5. Widget queries count against your monthly quota
🔐 Security: Use the Allowed Origins field to restrict the widget to your own domains. You can disable or delete a key at any time to instantly stop access.

2.11 — User Guide & Help Mode

Make the platform self-explaining by indexing the user guide into your AI:

  1. Go to Settings → Company
  2. Scroll down to User Guide Knowledge Base
  3. Click Index User Guide — this stores the guide content in your RAG knowledge base
  4. In the Chat view, click the ? button next to the input to enter Help Mode
  5. While in Help Mode, your questions are answered from the user guide (e.g. "How do I upload a document?")
  6. Click ? again to return to normal document search
💡 Tip: The chat welcome screen also shows help-related starter questions. Click one to instantly learn about a feature.

2.12 — Google Drive Integration

Connect Google Drive to automatically sync documents into your RAG knowledge base:

  1. Go to Settings → Integrations
  2. Click Connect Google Drive and authorize access with your Google account
  3. Once connected, click Browse Drive to see your files
  4. Use the search bar to find specific files, or click folders to navigate
  5. Select files with checkboxes and click Sync Selected
  6. Synced files are chunked, embedded, and added to your AI knowledge base
  7. Use the ↻ button on synced files to pull the latest version from Drive
💡 Tip: Synced files use the "google_drive" container by default. You can filter by this container in Chat to search only Drive documents.
📝 Supported formats: Google Docs, Google Sheets, PDFs, Word documents (.docx), Excel files (.xlsx), plain text, and CSV files.

2.13 — Slack Integration

Install a Slack bot that answers questions using your company's RAG knowledge base:

  1. Go to Settings → Integrations
  2. Click Add to Slack and install the bot in your workspace
  3. Once connected, the bot is ready to use in your Slack workspace
  4. Mention @HeartbeatAI in any channel followed by your question
  5. Or send a direct message to the bot for private queries
  6. The bot responds in threads to keep channels clean
💡 Tip: Slack queries count against your monthly query quota, just like regular chat queries and widget queries.

2.14 — Contract Signatures

Create contract forms with digital signature capture and automatic PDF generation:

  1. Open any Dynamic Forms module instance and click + New Form
  2. Set Form Type to Contract
  3. Write your contract body template in the text area — use {{field_key}} placeholders (e.g. {{client_name}}, {{date}}) to insert submitted values
  4. Add your form fields: client name, date, terms, etc.
  5. Click + Signature to add a signature capture field (only one per form)
  6. Save the form — it's ready for use

How signing works:

  1. Users fill out the form and draw their signature on the canvas pad
  2. On submit, the signature is captured as an image and stored with the entry
  3. Admins can Download PDF from the entry detail — the PDF contains the contract body with field values filled in, a table of all submitted data, the signature image, and a signed-by footer
  4. Admins can Send Contract to email the signed PDF to the signer
  5. Contracts are auto-vectorized into RAG — ask the AI "show me contracts signed by John" or "find the latest NDA"
💡 Tip: Write your contract template with clear section headers and {{placeholders}} for all variable data. The PDF generator fills in submitted values automatically.

2.15 — Customer Stripe Invoicing

Send invoices with Stripe payment links directly from your forms:

Step 1: Connect Stripe

  1. Go to Settings → Integrations → Customer Stripe
  2. Enter your Stripe Secret Key (starts with sk_live_ or sk_test_)
  3. Optionally enter your Publishable Key and Webhook Secret
  4. Click Connect Stripe

Step 2: Create an Invoice Form

  1. In any Dynamic Forms module, click + New Form
  2. Set Form Type to Invoice — default fields (client name, email, amount, description, due date) are auto-added
  3. Customize fields as needed and save

Step 3: Send Invoices

  1. Fill and submit the invoice form with client details and amount
  2. Open the entry detail and click Create Payment Link — a Stripe payment link is generated
  3. Click Send Invoice — the client receives an email with a "Pay Now" button
  4. Track payment status: Pending → Paid
  5. Use Mark Paid for manual/offline payments
📝 Note: Each company uses their own Stripe API key — payments go directly to your Stripe account. Heartbeat AI never touches your funds.
💡 Tip: Invoice entries are vectorized into RAG so you can ask the AI "what invoices are unpaid?" or "how much did Acme Corp pay this month?"

2.16 — QuickBooks Integration

Sync your QuickBooks Online data into the AI knowledge base for financial Q&A:

Connecting QuickBooks:

  1. Go to Settings → Integrations → QuickBooks Online
  2. Click Connect QuickBooks — you'll be redirected to Intuit's authorization page
  3. Sign in to your QuickBooks account and authorize the connection
  4. After authorization, you'll be redirected back — status shows "Connected"

Syncing Data:

  1. Select which data types to sync: Customers, Invoices, Payments
  2. Click Sync Now — data is pulled from QuickBooks, converted to text, and embedded into your RAG knowledge base
  3. The synced data table shows record counts, chunk counts, and last sync time
  4. Re-sync anytime to pull the latest data

Querying Financial Data:

  1. Go to Chat and ask questions like:
    • "Who are our top 5 customers by balance?"
    • "Show me all unpaid invoices"
    • "What payments came in last month?"
    • "How much does Acme Corp owe us?"
  2. Optionally filter by the quickbooks container to scope queries to QB data only
💡 Tip: Sync regularly to keep your AI's financial knowledge up to date. QB data is stored in the "quickbooks" container so you can scope chat queries to it.
👤

Part 3 — End User Guide

User

3.1 — Signing In

Access Heartbeat AI with your Google account:

  1. Visit the platform URL provided by your admin
  2. Enter your company name and click Sign in with Google
  3. Your email must be registered by an admin — if not, you'll see an "Unauthorized" message
  4. Once signed in, the navigation menu shows your available modules

3.2 — AI Chat

Ask questions and get AI-powered answers from your company's knowledge base:

  1. Click 💬 Chat in the navigation menu
  2. Select an AI model from the sidebar dropdown (e.g., GPT-4, Claude, Gemini)
  3. Optionally filter by Container to scope answers to specific document sets
  4. Type your question and press Enter or click Send
  5. The AI retrieves relevant passages from your documents and generates an answer with source citations
💡 Pro Tip: Be specific in your questions. Instead of "Tell me about policies," try "What is the vacation policy for employees with more than 2 years of tenure?" — the more specific, the better the AI's response.

3.3 — Interactive Pages

Create and interact with AI-generated content:

  • Ask the AI to create quizzes, surveys, forms, or reports in the chat
  • When the AI generates HTML content, click Save as Page to store it
  • Open the 📄 Pages module to view and manage saved pages
  • Share pages via public links — visitors provide their name and email before accessing
  • Quiz scores and form submissions are automatically captured

3.4 — Multi-Agent Pipeline

Leverage multiple AI workers for complex tasks:

  1. Open the 🤖 Agents module
  2. Add worker agents — each with its own model, system prompt, and document scope
  3. Submit a task and all workers process it in parallel
  4. A Supervisor agent synthesizes their outputs into a unified, comprehensive response
  5. Great for getting diverse perspectives or comparing model outputs

3.5 — Dynamic Forms & Data Entry

Fill out forms and contribute to the knowledge base:

  1. Open a Dynamic Forms module instance you have access to
  2. In the Forms tab, click a form to fill it out
  3. Complete all required fields and click Submit
  4. Your submission is auto-vectorized — the AI can now answer questions about your data
  5. View your entries in the Entries tab with search and filters

3.6 — QR Codes

Every form submission gets a unique QR code:

  • Click the QR button on any entry to view or download the QR code
  • Share or print the QR code — anyone scanning it sees the entry details
  • All scans are logged for audit purposes

3.7 — AI Insights & Module Chat

Ask questions about data within a Dynamic Forms module:

  1. Open a module instance and switch to the AI Chat tab
  2. Ask questions like "How many entries were submitted this month?" or "List all employees in Engineering"
  3. The AI searches only within that module's vectorized data for precise answers

3.8 — Reporting & Export

Export your data for analysis or sharing:

  • Excel Export: Click 📥 Excel in the Entries tab to download a spreadsheet of all entries
  • PDF Export: Click 📄 PDF for a formatted report
  • AI Report: Use the AI to generate narrative reports and insights from your data
  • Chat responses can be exported as Excel, PDF, or sent via email
🔒

Part 4 — Best Practices & Security

Security

4.1 — Data Privacy

Heartbeat AI is designed with multi-tenant data isolation:

  • Each company's data is completely isolated — no cross-company data leakage
  • Documents, embeddings, chat history, and form data are all company-scoped
  • API keys are stored server-side and never sent to the browser
  • Google Sign-In provides secure, passwordless authentication
🔐 Security Note: All data is transmitted over HTTPS. The platform runs on Google Cloud with enterprise-grade infrastructure. Your documents are processed in-memory and only the vector embeddings are stored permanently.

4.2 — Optimizing AI Queries

Get the best results from your AI interactions:

  • Use specific questions — "What is the return policy for electronics?" beats "Tell me about returns"
  • Filter by container — narrow the scope to relevant document sets for faster, more accurate results
  • Choose the right model — GPT-4/Claude for complex analysis, faster models for simple lookups
  • Upload quality documents — clean, well-structured documents produce better embeddings
  • Organize containers logically — separate topics into distinct containers for precision
💡 Pro Tip: For the best RAG results, prefer text-based PDFs over scanned images. If you must upload scanned documents, the platform uses OCR (Tesseract + PyMuPDF) to extract text, but native text PDFs will always produce superior embeddings.

4.3 — Access Control Best Practices

  • Follow the principle of least privilege — only grant users access to the modules they need
  • Use the Admin role sparingly — most team members should be Users
  • Review user access lists periodically and remove inactive accounts
  • Use Dynamic Forms permissions to control who can see sensitive data modules

4.4 — Document Management Tips

  • Keep documents up to date — outdated docs lead to stale AI answers
  • Use descriptive file names — they're included in the vector metadata
  • Delete and re-upload documents when major changes occur (re-vectorizes automatically)
  • Monitor your vector store size in Settings → Vector Store

4.5 — Platform Architecture

For the technically curious, Heartbeat AI is built with:

  • Backend: FastAPI (Python) with SQLAlchemy ORM on PostgreSQL + pgvector
  • AI: Multi-provider support (OpenAI, Anthropic, Google, NVIDIA, Ollama) with RAG pipeline
  • Embeddings: pgvector for similarity search with cosine distance
  • Infrastructure: Google Cloud Run with auto-scaling and Cloud SQL
  • Auth: Google OAuth 2.0 with server-side session management
  • Payments: Stripe Checkout with webhook verification
📬

Contact & Support

Report an Issue

Encountered a bug or have a suggestion? Send it directly to the development team.
Your Name *
Your Email *
Subject *
Message *
Heartbeat AI
Created by Umais Siddiqui · AI-Powered Knowledge Platform · © 2025
📋

Dynamic Forms

Build forms, collect data, and query with AI

0 forms
💬
Ask questions about your data
Try queries like:
Instance Name
Description
Record Label (e.g. Student, Client, Invoice)
RAG Container (Category)
Auto-vectorize Submissions
Chat Model
Embedding Model
Loading…
✏️ Edit Model Configuration
Provider
Model Name
API Key (leave blank to keep current)
Base URL
Temperature — controls creativity (0 = focused, 1 = creative, 2 = very random)
0.30
System Prompt — leave blank to use the platform default
📧 Send as Email
Recipient Email *
Subject
Attachment Format
📁 Upload Document
📄
Drop your file here
or browse — PDF, DOCX, XLSX, CSV, TXT, Images
Max file size: 50 MB. Images will be OCR processed.
0%
Container *
Manage Access —
🔍 Extracted Text
Text extracted from your image via OCR. Use the buttons below to copy, download, or work with the text.
💾 Save Conversation
Title
Visibility
📚 Saved Chats
Conversation
Submissions
Loading…
📋 Submission Detail
✨ Add AI Model
Provider
Custom Provider Name
Any provider that supports the OpenAI /v1/chat/completions API — set the Base URL below.
Model Name *
Role
API Key
Base URL (optional)
API Version (Azure)
👤 Add User
First Name *
Last Name *
Email *
Role
📝 Form Builder

Choose an example above to see step-by-step instructions.

The form builder lets you create any type of form — from simple data collection to contracts with digital signatures to invoices with Stripe payment links.

Form Name *
Description
Form Type
Start from a Template (or build from scratch below)
Contract Body Template
Use {{field_key}} placeholders — they'll be replaced with submitted values in the PDF.
Enable sequential multi-party signing
After the receiver signs, each signer below will be emailed in order.
Fields
0 fields
Fill Form
📨 Bulk Send

Upload a CSV file to send this form to multiple recipients at once. Each recipient will receive a personalized signing link.

Preview (0 recipients)
📋 Entry Detail
✍ Counter-Sign Contract
This PIN protects the executed contract link. Share it privately with the receiver.
📷 Scan QR Code
Point your camera at a QR code...
+ New Module Instance
Instance Name *
Description