DocsGetting StartedWhat is TruIntel?
Documentation

TruIntel Platform Documentation

All the necessary documentation for the TruIntel services is found here.

Getting Started

What is TruIntel?

TruIntel is an AI Engine Optimization (AEO) platform that helps businesses monitor, analyze, and improve how AI assistants perceive and recommend their brand. Traditional SEO focuses on Google — AEO focuses on ChatGPT, Claude, Gemini, Perplexity, and Google AI Overview.

AI Visibility Monitoring

Track how AI platforms mention your brand across ChatGPT, Claude, Gemini, Perplexity, and Google AI Overview.

SEO Analytics

PageSpeed, keyword rankings, backlinks, on-page audits, and competitor SEO comparison.

AI-Powered Insights

Weekly AI-generated reports with actionable tasks using a 4-step Gemini pipeline.

Traffic Classification

Classify website visitors as human, AI agent, bot, or synthetic in real time.

Lead Verification

Score and verify form submissions to filter fake leads and improve sales efficiency.

CMS & Content Generation

Generate, optimize, and publish AI-optimized content directly to your website.

Quick Start Guide

Get up and running with TruIntel in under 5 minutes. Follow these steps to start monitoring your AI visibility.

1

Create your account

Sign up at app.truintel.ai using email/password or Google OAuth. Verify your email with a 6-digit OTP code.

2

Set up your organization

Create or join an organization. Organizations can have multiple brands and team members with different roles.

3

Add your brand

Enter your brand name, website URL, industry, and a brief description. TruIntel uses this to intelligently track AI mentions.

4

Add tracking queries

Add search queries that potential customers might ask AI assistants about your industry. TruIntel will monitor how AI platforms respond to these queries.

5

Connect Google Search Console (optional)

Link your GSC account for enhanced keyword tracking, real search data, and position monitoring.

AI Query Suggestions

Not sure what queries to track? TruIntel will suggest relevant queries based on your brand, industry, and competitors using AI-powered analysis.

Authentication

TruIntel supports multiple authentication methods to keep your account secure.

MethodDescriptionDetails
Email & PasswordTraditional sign-up with email verification6-digit OTP sent to your email for verification
Google OAuthOne-click sign-in with your Google accountPopup-based flow, no password needed
Team InvitationsJoin via invitation link from team adminAccept invitation to join existing organization
Password RecoveryReset password via email OTPOTP-based verification for security

Token Security

Access tokens (JWT) are stored in an in-memory closure and persisted to localStorage for session continuity. Tokens are proactively refreshed 2 minutes before expiry. Refresh tokens rotate on each use with automatic retry and deduplication to prevent race conditions.

Onboarding Walkthrough

After creating your account, TruIntel guides you through a multi-step onboarding process to set up your brand monitoring.

1

Organization Setup

Name your organization. This is the top-level entity that contains all your brands, team members, and billing.

2

Brand Details

Add your brand name, website domain, industry category, and a description that helps AI understand your brand context.

3

Topics & Queries

TruIntel suggests relevant tracking queries based on your industry. You can accept suggestions, modify them, or create custom queries grouped by topics.

4

Competitor Discovery

TruIntel automatically discovers competitors in your industry. Review and confirm competitors to track — their AI visibility will be compared against yours.

5

GSC Connection

Optionally connect Google Search Console for real keyword data, click-through rates, and position tracking.

Teams & Roles

TruIntel supports multi-user organizations with role-based access control.

RolePermissionsUse Case
OwnerFull access — manage billing, team, brands, settings, and all featuresAccount creator, primary admin
AdminManage team members, brands, and settings (no billing)Team leads, managers
MemberAccess assigned brands and features (read + limited write)Analysts, marketers, SEO specialists

Invite team members by email from Settings → Team. They will receive an invitation link that expires after 7 days. You can also switch between organizations if you belong to multiple.

AI Visibility Monitoring

Overview & Visibility Score

AI Visibility Monitoring is TruIntel's core feature. It tracks how AI platforms — ChatGPT, Claude, Gemini, Perplexity, and Google AI Overview — mention, recommend, and rank your brand when users ask questions relevant to your industry.

Your Visibility Score (0–100) is a composite metric calculated from four weighted components:

Visibility Score

40%
30%
20%
10%
Recognition Rate (40%)
Position Strength (30%)
Sentiment (20%)
Citation Quality (10%)
ComponentWeightWhat It Measures
Recognition Rate40%Percentage of queries where AI mentions your brand
Position Strength30%Where your brand appears in AI responses (1st mention vs last)
Sentiment20%Whether AI describes your brand positively, neutrally, or negatively
Citation Quality10%Whether AI links to your website as a source

Score Interpretation

80–100: Excellent (Emerald) — AI strongly recognizes your brand. 60–79: Good (Amber) — Solid presence with room to improve. 40–59: Fair (Orange) — Limited AI presence, action needed. 0–39: Poor (Red) — Brand is rarely mentioned by AI.

Platform Tracking

TruIntel monitors your brand across 5 major AI platforms simultaneously. Each platform is queried with your tracking queries to check for brand mentions, positioning, and sentiment.

ChatGPT

ChatGPT

OpenAI GPT-5.2 via Responses API with web search enabled. The most widely used AI assistant.

Claude

Claude

Anthropic Claude Sonnet 4.5 via Messages API with web search tool. Known for nuanced, balanced responses.

Gemini

Gemini

Google Gemini 3 Flash with Google Search grounding. Integrated into Google's ecosystem.

Perplexity

Perplexity

Perplexity Sonar with built-in source citations. A search-first AI with real-time web access.

Google AI Overview

Google AI Overview

Google's AI-generated summary at the top of search results, extracted via SearchAPI.io. Critical for SEO visibility.

Each platform check extracts: whether your brand was mentioned, mention position (1st, 2nd, 3rd, etc.), mention type (recommended, listed, discussed, compared), competitor mentions and their positions, sentiment (positive, neutral, negative), brand attributes, source citation URLs, and the full AI response text for review.

Query Performance Matrix

The Query Performance Matrix is a heatmap showing how each of your tracking queries performs across all 5 AI platforms. Rows represent queries, columns represent platforms, and cells are color-coded by mention status and position.

  • Green cells — your brand is mentioned (darker = higher position)
  • Gray cells — your brand is not mentioned for that query on that platform
  • Click any cell to drill down into the full AI response
  • Sort by overall performance, individual platform, or query name
  • Filter by topic, business value, or query intent type

Business Value Scoring

Assign a business value (1–5) to each query to prioritize which queries matter most. High-value queries with low visibility are your biggest optimization opportunities.

Brand Perception & Sentiment

TruIntel analyzes the sentiment and attributes that AI platforms associate with your brand. This reveals how AI "perceives" your brand — what qualities it highlights and whether the tone is positive or negative.

  • Brand Attributes — themes and qualities AI associates with your brand (e.g., "innovative", "affordable", "reliable")
  • Sentiment Distribution — breakdown of positive, neutral, and negative mentions across all platforms
  • Mention Types — branded (your name), unbranded (your category), and competitor (mentions alongside competitors)
  • Trend tracking — see how perception shifts over time with weekly snapshots

Share of Voice

Share of Voice (SoV) measures your brand's proportion of total AI mentions compared to competitors for the same set of queries. A higher SoV means AI recommends you more frequently than competitors.

The SoV analysis includes a query × platform heatmap matrix, per-query SoV percentage, competitor breakdown showing who gets the most mentions, and trend analysis showing how your share changes over time.

Citation & Source Tracking

When AI platforms cite sources in their responses, TruIntel tracks which domains are being referenced and whether your website is among them.

  • Source Domains — which websites AI cites most frequently in your industry
  • Source Types — editorial, earned media, owned content, UGC, corporate, marketplace
  • Gap Analysis — identify high-authority sources that cite competitors but not you
  • URL-level tracking — see exactly which pages on each source domain are cited
  • Platform-specific sources — which platforms cite which sources

Improve Your Citations

Getting cited by high-authority sources in your industry directly improves your AI visibility. Use the gap analysis to find sources that mention competitors but not you, then create content or PR outreach targeting those sources.

Check Frequency & Types

TruIntel runs visibility checks automatically based on your plan:

PlanQueries / BrandTotal QueriesDaily PriorityPlatforms
Starter ($49/mo)10105 platforms
Lite ($129/mo)25505 platforms
Pro ($349/mo)401205 / brand5 platforms
Enterprise (Custom)50200+10 / brand5 platforms
Check TypeWhenWhat RunsPlans
Weekly Full CheckMonday 2:00 AM ISTALL queries × ALL 5 platformsAll paid plans
Daily Priority CheckTue–Sun 2:00 AM ISTTop high-value queries onlyPro (5/brand), Enterprise (10/brand)
Manual Full CheckOn-demandAll queries × all 5 platformsAll paid plans
Single Query RecheckOn-demand1 query × all 5 platformsAll paid plans

After every visibility check, TruIntel runs a post-check processing pipeline:

  1. Response Analysis — AI analyzes each platform response for brand mentions, position, and sentiment
  2. Domain Classification — cited source domains are categorized (corporate, editorial, UGC, earned, marketplace, etc.)
  3. Alert Generation — automatic alerts for visibility drops (>= 5pt), competitor overtakes, and negative mentions
  4. Insight Generation — weekly 4-step Gemini AI pipeline: Trend Analysis → Competitor Analysis → Strategy → Action Tasks
  5. Dashboard Cache Refresh — real-time score updates across the platform

SEO Module

SEO Dashboard

The SEO Dashboard provides a comprehensive overview of your website's search health. It aggregates data from PageSpeed checks, keyword rankings, backlink analysis, and on-page audits into a single health score.

SEO Health Score

Aggregate score combining page speed, domain authority, SSL status, and technical health with last checked and next update timestamps.

Domain Authority & Trust

DA and Trust Score tracked over time with competitor comparison bar chart.

Page Speed

Mobile and desktop Lighthouse scores side-by-side with Core Web Vitals breakdown.

Backlinks & Referring Domains

Total backlinks, referring domains count with change indicators.

  • Site Health Stats Bar — pages crawled, issues found, avg response time, avg page score, broken links
  • Search Performance Card — GSC data with interactive line chart (clicks, impressions, CTR, avg position)
  • Top Pages by Inbound Links — pages with most internal links pointing to them
  • Quick Wins Section — dynamic alerts for PageSpeed < 50, SSL expiration, broken links, image issues
  • Images Preview — table of images missing alt text with inline fix button
  • Competitor SEO Card — top 5 competitors with DA, trust score, backlinks, and referring domains
  • DA & Trust vs Competitors Chart — horizontal bar chart comparing your domain against competitors

Free SEO Checks (All Plans)

TruIntel includes 10 free SEO checks with all paid plans, run automatically monthly and available on-demand:

  1. PageSpeed Insights — mobile + desktop performance scores via Lighthouse
  2. Core Web Vitals — LCP, FID, CLS field data from Chrome UX Report
  3. SSL Certificate — validity, expiry date, and issuer verification
  4. Structured Data — JSON-LD schema detection and validation
  5. Meta Tag Audit — title, description, Open Graph, and Twitter Cards
  6. Robots.txt & Sitemap — accessibility, format, and coverage checks
  7. Mobile-Friendly Assessment — responsive design and viewport validation
  8. Readability Analysis — Flesch reading ease and Gunning Fog index scores
  9. Content Quality — heading structure, link density, image optimization
  10. Technology Detection — CMS, frameworks, CDN, and analytics tool identification

SEO Monitoring Schedule

TaskWhenPlans
Monthly full SEO (free + paid checks)1st of each month, 4:00 AM ISTAll paid
Weekly SEO (DA, backlinks, competitors)Every Monday, 3:00 AM ISTAll paid
Daily GSC keyword syncDaily at 5:00 AM ISTAll paid (if GSC connected)
SEO report cleanupQuarterlyReports older than 180 days deleted

PageSpeed & Core Web Vitals

TruIntel measures your site's performance using Google Lighthouse methodology. Both mobile and desktop scores are tracked with detailed metric breakdowns.

MetricWhat It MeasuresTarget
LCP (Largest Contentful Paint)Loading — time until largest visible element renders< 2.5 seconds
FID (First Input Delay)Interactivity — time until page responds to first user action< 100 milliseconds
CLS (Cumulative Layout Shift)Visual stability — how much the layout shifts during loading< 0.1
FCP (First Contentful Paint)Time until first content (text, image) appears< 1.8 seconds
TTI (Time to Interactive)Time until page is fully interactive< 3.8 seconds
TTFB (Time to First Byte)Server response time< 800 milliseconds

Performance trends are tracked over time so you can measure the impact of optimizations. Each metric shows color-coded status: green (good), amber (needs improvement), or red (poor).

Keyword Rankings

Track your keyword positions in Google search results. TruIntel combines data from Google Search Console (if connected) and third-party ranking APIs for comprehensive keyword tracking.

  • Position Distribution — breakdown of keywords in Top 3, Top 10, Page 2, and below
  • Position Changes — track which keywords improved or declined with delta indicators
  • Search Volume & Difficulty — see estimated monthly searches and competition level
  • Filter tabs: Improved, Declined, Top 10, All keywords
  • Keyword History Chart — position trends for individual keywords over time
  • AI-powered keyword suggestions based on your content and industry
  • Position alerts — get notified when important keywords move significantly

Google Search Console Integration

Connect GSC for real click-through rate data, actual impressions, and search queries you rank for. Without GSC, TruIntel uses third-party ranking data which may not include long-tail keywords.

On-Page Technical Audit

TruIntel's self-hosted BFS crawler scans your website and identifies technical SEO issues. Issues are categorized by severity: critical, warning, and informational.

CategoryWhat's CheckedExamples
Meta TagsTitle, description, Open Graph, Twitter cardsMissing title, description too long, duplicate meta
HeadingsH1-H6 hierarchy, usage, lengthMultiple H1s, missing H1, skipped heading levels
ContentWord count, readability, keyword usageThin content, keyword stuffing, missing alt text
LinksInternal links, external links, broken linksBroken links, orphan pages, excessive redirects
TechnicalSSL, robots.txt, sitemap, structured dataMissing sitemap, noindex on important pages
PerformanceImage optimization, render-blocking resourcesUnoptimized images, large JavaScript bundles

The audit provides a Readability Score, Content Quality Score, and Search Visibility Score. Each issue includes a clear recommendation for how to fix it.

Competitor SEO Comparison

Compare your SEO metrics against competitors. See how your domain authority, keyword rankings, and backlink profile stack up.

  • Domain Authority comparison chart
  • Competitor top keywords with dropdown selector
  • Keyword overlap analysis — shared vs unique keywords
  • SEO metrics comparison (backlinks, referring domains, DA)
  • Track multiple competitors simultaneously

Keyword Suggestions

TruIntel provides AI-powered keyword suggestions based on your content, industry, and existing keyword rankings. Suggestions include search volume, difficulty score, and relevance indicators.

  • AI-generated keyword ideas based on your domain and industry
  • Search volume and keyword difficulty metrics
  • Relevance scoring to prioritize the best opportunities
  • One-click add to your tracking keyword list
  • Monthly suggestion limits based on plan tier (20–500/month)

Image Optimization

Audit your website's images for SEO best practices including file size, format, alt text, and compression opportunities.

  • Detect oversized images that slow down page load
  • Check for missing or poor-quality alt text
  • Recommend format conversions (e.g., PNG to WebP)
  • Identify images without proper dimensions specified
  • Compression recommendations with estimated savings

Keyword Gap Analysis

Keyword Gap Analysis compares your keyword rankings against competitors to find opportunities. Identify keywords that competitors rank for but you don't — these represent your biggest growth opportunities.

Pro Feature

Keyword Gap and Backlink Gap analysis are available on Pro and Enterprise plans. They provide competitive intelligence that helps you prioritize content creation and link building efforts.

On-Page SEO Checker

The On-Page SEO Checker performs a page-by-page audit of your website, identifying specific issues with actionable fix recommendations categorized by severity (critical, warning, info).

Crawl Visualization

The Crawl Visualization tool displays your website's link structure as an interactive directed acyclic graph (DAG). It uses React Flow to render pages as nodes and internal links as edges, helping you identify orphan pages, deep pages, and crawl issues.

  • Interactive graph with zoom, pan, and node selection
  • Detail panel showing page metadata, links, and issues
  • Orphan page detection — pages with no internal links pointing to them
  • Crawl depth visualization — see how deep pages are from the homepage
  • Toolbar with layout options and filtering controls

Google Search Console Integration

Connect your Google Search Console account for enhanced keyword tracking with real search data.

1

Navigate to Settings → Integrations

Go to the Integrations tab in your Settings page.

2

Click "Connect Google Search Console"

A Google OAuth popup will appear. Sign in and grant read-only access to your GSC data.

3

Select your property

Choose the GSC property (website) you want to connect from the dropdown list.

4

Data sync begins

TruIntel will automatically sync your keyword data daily at 5:00 AM IST. Initial sync pulls 90 days of history, then maintains a 28-day rolling window.

  • Tracks: clicks, impressions, CTR, and average position per keyword
  • Keywords enriched with search volume data via DataForSEO
  • Position changes calculated with 7-day comparison window
  • Available to all paid plans — data refreshed daily
  • View GSC data in the Search Performance page with advanced filters

Privacy

TruIntel only requests read-only access to your GSC data. OAuth tokens are encrypted with Fernet encryption and stored securely. You can disconnect at any time from Settings → Integrations.

AI Insights

How Insights Work

TruIntel generates weekly AI-powered insight reports using a 4-step Gemini Flash pipeline. Each report analyzes your visibility data, competitor movements, and industry trends to produce actionable findings and tasks.

1

Step 1: Trend Analysis

Identifies what's changing in your AEO landscape — visibility score movements, platform shifts, emerging queries, and sentiment changes.

2

Step 2: Competitor Analysis

Analyzes what competitors are doing differently — which platforms mention them more, what content strategies they're using, where they're gaining ground.

3

Step 3: Strategy Generation

Recommends specific actions based on gaps and opportunities — content creation, source targeting, platform optimization, and brand positioning.

4

Step 4: Task Generation

Converts strategy into concrete, actionable tasks with impact scores, categories, and priority levels that you can track to completion.

Automatic Generation

Reports are generated every Monday at 6 AM automatically. You can also trigger a manual generation at any time from the Insights page. Generation typically takes 30–60 seconds.

Findings & Evidence

Each insight report contains 5–10 findings. Every finding includes:

  • Finding Title — a clear, concise description of what was observed
  • Impact Score — how significant this finding is for your brand (1–10)
  • Evidence — data points and specific examples supporting the finding
  • Category — trend, competitor, opportunity, risk, or achievement
  • Related Tasks — actionable items generated from this finding

Findings are ranked by impact score so you can focus on what matters most. Each finding maps to one or more tasks, creating a clear path from insight to action.

Task Lifecycle

Tasks generated by the insights pipeline follow a simple lifecycle. Each task has a status, category, priority, and impact score.

StatusDescriptionAction
TodoNew task awaiting actionReview and start working on it
DoneTask completed with optional notesMark complete, add notes about what was done
DismissedTask not applicable or not actionableDismiss with reason (not relevant, already done, etc.)

Tasks can be viewed in two modes: Split View (list on left, detail on right) or Kanban Board (columns for todo, done, dismissed). Filter tasks by status, category (earned/owned), or group.

Closed-Loop Impact Tracking

When you mark a task as done, TruIntel will track whether your visibility score improves in the following week. This creates a feedback loop that helps identify which actions actually improve your AI visibility.

Reports

Brand Reports

TruIntel generates comprehensive weekly and monthly brand reports that consolidate your AEO performance, SEO health, traffic intelligence, and lead verification data into executive-ready summaries.

Each report contains 8 sections:

  1. Executive Summary — high-level overview with key metrics and trends
  2. AEO Performance — visibility score changes, platform breakdown, and recognition rate
  3. Platform Analysis — per-platform performance with ChatGPT, Claude, Gemini, Perplexity, and Google AI Overview
  4. Competitor Benchmarking — how you compare against tracked competitors
  5. SEO Health — domain authority, keyword rankings, backlink profile, and technical audit status
  6. Traffic Intelligence — visitor classification, bot detection, and traffic trends
  7. Leads — lead verification summary, conversion funnel, and quality distribution
  8. Findings — key insights and recommendations from the AI analysis pipeline

Report Export

Reports can be exported as multi-page A4 PDFs using html2canvas and jsPDF. The PDF preserves all charts, tables, and visualizations from the report detail page.

Automatic Generation

Weekly reports are generated every Monday at 9:00 AM IST. Monthly reports are generated on the 2nd of each month at 6:00 AM IST. You can also manually trigger a report from the Reports page.

Weekly Email Reports

TruIntel sends weekly email reports every Monday (after brand reports are generated) to all organization members. The email includes a visibility summary, score changes, and key alerts for the past week.

Available to All Plans

Weekly email reports, weekly brand reports, and monthly brand reports are included with all paid plans. Configure email frequency in Settings → Notifications.

Traffic Classification

Overview

TruIntel's Traffic Classification system analyzes every visitor to your website and classifies them into one of four categories. This helps you understand your real traffic, identify AI agent visits, and filter malicious bots.

CategoryDescriptionExamples
HUMANReal human visitors browsing your websiteChrome/Safari users, mobile visitors
GOOD_AGENTLegitimate AI agents and crawlers fetching contentChatGPT browser, Claude, Perplexity, Googlebot, Bingbot
BAD_BOTMalicious or unwanted automated trafficScrapers, spam bots, credential stuffers
SYNTHETICTraffic from automated tools that mimics human behaviorHeadless browsers, automated testing, click fraud

Classification Score

Every visitor receives a Classification Score (0–100) based on four weighted signals:

Classification Score

45%
30%
15%
10%
Behavior Analysis (45%)
Browser Fingerprint (30%)
User Agent (15%)
Network Analysis (10%)
  • Behavior Analysis (45%) — mouse movements, scroll patterns, click timing, page dwell time
  • Browser Fingerprint (30%) — canvas fingerprint, WebGL, installed fonts, timezone, screen resolution
  • User Agent (15%) — user-agent string parsing, known bot patterns, header consistency
  • Network Analysis (10%) — IP reputation, hosting provider detection, datacenter vs residential IP

Installation

TruIntel uses a two-part tracking system for complete traffic intelligence. The client-side script runs in the browser to detect real humans, headless browsers, and browser-based bots. The server-side middleware intercepts AI crawlers (GPTBot, ClaudeBot, PerplexityBot, etc.) that never execute JavaScript. Deploy both for the most accurate classification.

Client-Side ScriptServer-Side Middleware
Runs inBrowser (visitor's device)Your server (every HTTP request)
DetectsHumans, headless browsers, browser botsAI crawlers, search bots, social preview bots
MethodBehavior analysis + browser fingerprintUser-Agent string matching + heuristics
Payload size~5 KB gzipped, asyncZero client impact (server-only)
Required?YesStrongly recommended
EndpointHandled by tracker.js automaticallyPOST /api/v1/i/e (fire-and-forget)
1

Find your Brand ID

Open your TruIntel dashboard → Settings → Integrations. Copy the Brand ID shown under your brand. Each brand has a unique ID.

2

Install the client-side script

Choose your framework below and paste the snippet into your site. The config object (window.TruIntel) must load before the tracker script. Works on every page automatically.

3

Add server-side middleware (strongly recommended)

Install middleware to catch AI crawlers that skip JavaScript. Without this, visits from GPTBot, ClaudeBot, PerplexityBot, and 50+ other AI agents will be invisible.

4

Verify installation

Visit your website in a browser, then check the Traffic page in TruIntel. Your visit should appear within 10 seconds. Test server-side with the curl command in the Verification section below.

Replace YOUR_BRAND_ID

Every code snippet on this page uses YOUR_BRAND_ID as a placeholder. Replace it with your actual Brand ID from Settings → Integrations before deploying. Using the wrong ID means traffic will not appear in your dashboard.


Client-Side Script

The client-side script classifies visitors using behavior analysis (mouse movements, scroll patterns, click timing), browser fingerprinting (canvas, WebGL, fonts, timezone), and user-agent parsing. It loads asynchronously, never blocks rendering, and sends data in fire-and-forget mode. No cookies are set and no personally identifiable information (PII) is collected.

Signal CollectedPurposePII?
Mouse movement patternsDistinguish humans from headless browsersNo
Scroll depth & timingDetect automated scroll behaviorNo
Session ID (random UUID)Group pageviews into sessionsNo
Visitor ID (random UUID)Identify returning visitors (no cross-site tracking)No
Browser fingerprint (canvas hash)Detect headless/spoofed browsersNo
Page URL & referrerAttribute traffic sourcesNo
Screen resolution & timezoneDetect datacenter-based botsNo
User-agent stringIdentify browser/OS and known botsNo

Performance

The tracker script is ~5 KB gzipped, loads with async (non-blocking), and rate-limits to 100 requests/minute per IP. It has zero impact on your Core Web Vitals (LCP, FID, CLS). No cookies are set — fully compatible with cookie-consent banners.

HTML

Add this snippet inside the <head> tag on every page you want to track. Both script tags are required — the first sets the config, the second loads the tracker.

index.html
<!-- TruIntel Traffic Tracking -->
<script>
  window.TruIntel = {
    brandId: 'YOUR_BRAND_ID',
    apiUrl: 'https://api.truintel.ai/api/v1'
  };
</script>
<script async src="https://api.truintel.ai/api/v1/traffic/tracker.js"></script>

React

Create a tracker component and render it once at the root of your app (App.tsx or main layout). The cleanup function removes the script on unmount to prevent duplicates in development mode.

TruIntelTracker.tsx
import { useEffect } from 'react';

export function TruIntelTracker() {
  useEffect(() => {
    window.TruIntel = {
      brandId: 'YOUR_BRAND_ID',
      apiUrl: 'https://api.truintel.ai/api/v1'
    };
    const s = document.createElement('script');
    s.async = true;
    s.src = 'https://api.truintel.ai/api/v1/traffic/tracker.js';
    document.head.appendChild(s);
    return () => { document.head.removeChild(s); };
  }, []);
  return null;
}

// Usage in App.tsx:
// import { TruIntelTracker } from './TruIntelTracker';
// function App() { return <><TruIntelTracker /><Router>...</Router></>; }

Next.js

Use the Next.js Script component for optimized loading. The config must use beforeInteractive to ensure it loads before the tracker. Works with both App Router (app/layout.tsx) and Pages Router (_app.tsx).

app/layout.tsx
import Script from 'next/script';

export default function RootLayout({ children }) {
  return (
    <html>
      <head>
        {/* Config MUST load before tracker.js */}
        <Script id="truintel-config" strategy="beforeInteractive"
          dangerouslySetInnerHTML={{
            __html: `window.TruIntel={brandId:'YOUR_BRAND_ID',apiUrl:'https://api.truintel.ai/api/v1'};`,
          }} />
        <Script src="https://api.truintel.ai/api/v1/traffic/tracker.js"
          strategy="afterInteractive" />
      </head>
      <body>{children}</body>
    </html>
  );
}

Vue

Use lifecycle hooks to inject the script in your root App.vue or main layout component. The script is cleaned up on component unmount.

App.vue
<script setup>
import { onMounted, onUnmounted } from 'vue';

let script = null;

onMounted(() => {
  window.TruIntel = {
    brandId: 'YOUR_BRAND_ID',
    apiUrl: 'https://api.truintel.ai/api/v1'
  };
  script = document.createElement('script');
  script.async = true;
  script.src = 'https://api.truintel.ai/api/v1/traffic/tracker.js';
  document.head.appendChild(script);
});

onUnmounted(() => {
  if (script) document.head.removeChild(script);
});
</script>

Nuxt

Add to your nuxt.config.ts to inject the script globally on every page. Nuxt handles the script loading order automatically.

nuxt.config.ts
export default defineNuxtConfig({
  app: {
    head: {
      script: [
        {
          innerHTML: "window.TruIntel={brandId:'YOUR_BRAND_ID',apiUrl:'https://api.truintel.ai/api/v1'};",
        },
        {
          src: 'https://api.truintel.ai/api/v1/traffic/tracker.js',
          async: true,
        },
      ],
    },
  },
});

Svelte / SvelteKit

For SvelteKit, add to src/app.html inside the <head> tag. Alternatively, use <svelte:head> in your root +layout.svelte for dynamic injection.

src/routes/+layout.svelte
<svelte:head>
  {@html `<script>window.TruIntel={brandId:'YOUR_BRAND_ID',apiUrl:'https://api.truintel.ai/api/v1'};</script>`}
  {@html `<script async src="https://api.truintel.ai/api/v1/traffic/tracker.js"></script>`}
</svelte:head>

Angular

Add the script tags directly to your src/index.html inside the <head> tag. This is the simplest approach and works for all Angular versions.

src/index.html
<!-- Inside <head> -->
<script>
  window.TruIntel = {
    brandId: 'YOUR_BRAND_ID',
    apiUrl: 'https://api.truintel.ai/api/v1'
  };
</script>
<script async src="https://api.truintel.ai/api/v1/traffic/tracker.js"></script>

WordPress

Add to your theme's functions.php file. If you use a child theme, add it there instead so updates don't overwrite it. Alternatively, use a plugin like "Insert Headers and Footers" or "WPCode" to inject without editing theme files.

functions.php
// Add to your theme's functions.php
function truintel_tracking_script() {
  echo '<!-- TruIntel Traffic Tracking -->
<script>
  window.TruIntel = {
    brandId: "YOUR_BRAND_ID",
    apiUrl: "https://api.truintel.ai/api/v1"
  };
</script>
<script async src="https://api.truintel.ai/api/v1/traffic/tracker.js"></script>';
}
add_action('wp_head', 'truintel_tracking_script');

Script Load Order

The config script (window.TruIntel = {...}) MUST load before tracker.js. If the tracker loads first, it will not find the config and silently fail. In frameworks like Next.js, use strategy="beforeInteractive" for the config and strategy="afterInteractive" for the tracker.

Single-Page Apps (SPA)

The tracker script automatically detects client-side route changes (pushState/replaceState and popstate events). No extra configuration is needed for React Router, Vue Router, Next.js App Router, or any other SPA routing library. Each route change is tracked as a new pageview.


Server-Side Middleware

AI crawlers like GPTBot, ClaudeBot, and PerplexityBot typically don't execute JavaScript — they fetch raw HTML and parse it directly. The client-side script alone cannot detect them. Server-side middleware inspects the User-Agent header on every incoming request and forwards matching bot traffic to TruIntel's classification API. The API call is fire-and-forget: it runs asynchronously and never blocks or slows down the response to the visitor.

Best practice: use both

The client-side script handles humans and browser-based bots (scoring via behavior + fingerprint). The server-side middleware catches headless AI crawlers (scoring via user-agent + network). Together they give you complete visibility. Without middleware, 30-60% of AI agent traffic is invisible.

Next.js Middleware

Create middleware.ts at the root of your Next.js project (next to package.json, not inside src/). The matcher config excludes static assets, images, and API routes from bot detection.

middleware.ts
import { NextResponse } from 'next/server';
import type { NextRequest } from 'next/server';

const BRAND_ID = 'YOUR_BRAND_ID';
const TRUINTEL_API = 'https://api.truintel.ai/api/v1/i/e';

// AI crawlers — expand from Pattern Catalog for 90+ patterns
const AI_CRAWLERS = [
  'GPTBot','ChatGPT-User','OAI-SearchBot','ChatGPT-Agent',
  'ClaudeBot','Claude-Web','Claude-SearchBot','anthropic-ai',
  'Google-Extended','GoogleOther','Gemini-Deep-Research',
  'bingbot','BingPreview','Copilot','AzureAI-SearchBot',
  'PerplexityBot','Perplexity-User',
  'Meta-ExternalAgent','Meta-ExternalFetcher',
  'Applebot','Applebot-Extended',
  'GrokBot','xAI-Grok','Bytespider',
  'DeepseekBot','MistralAI-User','Amazonbot',
  'CCBot','Diffbot','YouBot','FirecrawlAgent',
];
const OTHER_BOTS = [
  'Googlebot','DuckDuckBot','YandexBot','Baiduspider',
  'Slackbot','Twitterbot','LinkedInBot',
  'facebookexternalhit','WhatsApp','Discordbot',
];
const ALL = [...AI_CRAWLERS, ...OTHER_BOTS];

function isBot(ua: string): boolean {
  if (!ua) return true;
  const lower = ua.toLowerCase();
  if (ALL.some(p => lower.includes(p.toLowerCase()))) return true;
  if (lower.includes('bot/') || lower.includes('spider/')
      || lower.includes('crawler/')) return true;
  if (lower.includes('mozilla/5.0') && lower.includes('applewebkit')) return false;
  return true;
}

export function middleware(req: NextRequest) {
  const ua = req.headers.get('user-agent') || '';

  if (isBot(ua)) {
    const ip = req.headers.get('x-forwarded-for')?.split(',')[0]?.trim() || '';

    // Fire-and-forget — never blocks or slows the response
    fetch(TRUINTEL_API, {
      method: 'POST',
      headers: { 'Content-Type': 'application/json', 'X-Forwarded-For': ip },
      body: JSON.stringify({
        brand_id: BRAND_ID,
        page: req.nextUrl.pathname + req.nextUrl.search,
        user_agent: ua,
        referrer: req.headers.get('referer') || null,
        is_new_session: true,
        is_new_visitor: true,
      }),
    }).catch(() => {});
  }

  return NextResponse.next();
}

// Exclude static assets, images, and API routes
export const config = {
  matcher: [
    '/((?!_next/static|_next/image|favicon.ico|api/|.*\\.(svg|png|jpg|jpeg|gif|webp|ico|css|js|woff|woff2)$).*)',
  ],
};

Express.js

Create a middleware file and register it with app.use(). Place it early in your middleware chain (before route handlers) so every request is checked.

truintel-middleware.js
const BRAND_ID = 'YOUR_BRAND_ID';
const TRUINTEL_API = 'https://api.truintel.ai/api/v1/i/e';

const AI_CRAWLERS = [
  'GPTBot','ChatGPT-User','OAI-SearchBot','ChatGPT-Agent',
  'ClaudeBot','Claude-Web','Claude-SearchBot','anthropic-ai',
  'Google-Extended','GoogleOther','Gemini-Deep-Research',
  'bingbot','BingPreview','Copilot',
  'PerplexityBot','Meta-ExternalAgent','Applebot',
  'GrokBot','Bytespider','DeepseekBot','Amazonbot',
  'CCBot','Diffbot','YouBot','FirecrawlAgent',
];
const OTHER_BOTS = [
  'Googlebot','DuckDuckBot','YandexBot','Slackbot',
  'Twitterbot','LinkedInBot','facebookexternalhit','Discordbot',
];
const ALL = [...AI_CRAWLERS, ...OTHER_BOTS];

function isBot(ua) {
  if (!ua) return true;
  const lower = ua.toLowerCase();
  if (ALL.some(p => lower.includes(p.toLowerCase()))) return true;
  if (lower.includes('bot/') || lower.includes('spider/')
      || lower.includes('crawler/')) return true;
  if (lower.includes('mozilla/5.0') && lower.includes('applewebkit')) return false;
  return true;
}

function truintelMiddleware(req, res, next) {
  const ua = req.headers['user-agent'] || '';
  if (isBot(ua)) {
    const ip = (req.headers['x-forwarded-for'] || '').split(',')[0].trim()
        || req.socket?.remoteAddress || '';
    fetch(TRUINTEL_API, {
      method: 'POST',
      headers: { 'Content-Type': 'application/json', 'X-Forwarded-For': ip },
      body: JSON.stringify({
        brand_id: BRAND_ID,
        page: req.originalUrl || req.url,
        user_agent: ua,
        referrer: req.headers['referer'] || null,
        is_new_session: true,
        is_new_visitor: true,
      }),
    }).catch(() => {});
  }
  next();
}

module.exports = truintelMiddleware;

// Usage: const truintel = require('./truintel-middleware');
//        app.use(truintel);

Django

Create a middleware class and add it to your MIDDLEWARE list in settings.py. The API call runs in a background thread so it never blocks request processing.

truintel_middleware.py
import threading, json, urllib.request

BRAND_ID = 'YOUR_BRAND_ID'
TRUINTEL_API = 'https://api.truintel.ai/api/v1/i/e'

AI_CRAWLERS = [
    'GPTBot','ChatGPT-User','OAI-SearchBot','ChatGPT-Agent',
    'ClaudeBot','Claude-Web','Claude-SearchBot','anthropic-ai',
    'Google-Extended','GoogleOther','Gemini-Deep-Research',
    'bingbot','BingPreview','Copilot',
    'PerplexityBot','Meta-ExternalAgent','Applebot',
    'GrokBot','Bytespider','DeepseekBot','Amazonbot',
    'CCBot','Diffbot','YouBot','FirecrawlAgent',
]
OTHER_BOTS = [
    'Googlebot','DuckDuckBot','YandexBot','Slackbot',
    'Twitterbot','LinkedInBot','facebookexternalhit','Discordbot',
]
ALL_PATTERNS = AI_CRAWLERS + OTHER_BOTS

def is_bot(ua):
    if not ua:
        return True
    lower = ua.lower()
    if any(p.lower() in lower for p in ALL_PATTERNS):
        return True
    if any(x in lower for x in ['bot/', 'spider/', 'crawler/']):
        return True
    if 'mozilla/5.0' in lower and 'applewebkit' in lower:
        return False
    return True

def _send(data, ip):
    try:
        req = urllib.request.Request(
            TRUINTEL_API, json.dumps(data).encode(),
            headers={'Content-Type': 'application/json', 'X-Forwarded-For': ip},
            method='POST'
        )
        urllib.request.urlopen(req, timeout=5)
    except Exception:
        pass

class TruIntelCrawlerMiddleware:
    def __init__(self, get_response):
        self.get_response = get_response

    def __call__(self, request):
        ua = request.META.get('HTTP_USER_AGENT', '')
        if is_bot(ua):
            forwarded = request.META.get('HTTP_X_FORWARDED_FOR', '')
            ip = forwarded.split(',')[0].strip() if forwarded else request.META.get('REMOTE_ADDR', '')
            data = {
                'brand_id': BRAND_ID,
                'page': request.get_full_path(),
                'user_agent': ua,
                'referrer': request.META.get('HTTP_REFERER'),
                'is_new_session': True,
                'is_new_visitor': True,
            }
            threading.Thread(target=_send, args=(data, ip), daemon=True).start()
        return self.get_response(request)

# settings.py:
# MIDDLEWARE = ['yourapp.truintel_middleware.TruIntelCrawlerMiddleware', ...]

FastAPI

Add middleware using Starlette's BaseHTTPMiddleware. The API call runs in a background thread to keep the async event loop unblocked.

truintel_middleware.py
import threading, json, urllib.request
from starlette.middleware.base import BaseHTTPMiddleware
from starlette.requests import Request

BRAND_ID = 'YOUR_BRAND_ID'
TRUINTEL_API = 'https://api.truintel.ai/api/v1/i/e'

AI_CRAWLERS = [
    'GPTBot','ChatGPT-User','OAI-SearchBot','ChatGPT-Agent',
    'ClaudeBot','Claude-Web','Claude-SearchBot','anthropic-ai',
    'Google-Extended','GoogleOther','Gemini-Deep-Research',
    'PerplexityBot','Meta-ExternalAgent','Applebot',
    'GrokBot','Bytespider','DeepseekBot','Amazonbot','CCBot',
]
OTHER_BOTS = [
    'Googlebot','DuckDuckBot','YandexBot','Slackbot',
    'Twitterbot','LinkedInBot','facebookexternalhit','Discordbot',
]
ALL_PATTERNS = AI_CRAWLERS + OTHER_BOTS

def _is_bot(ua):
    if not ua:
        return True
    lower = ua.lower()
    if any(p.lower() in lower for p in ALL_PATTERNS):
        return True
    if any(x in lower for x in ['bot/', 'spider/', 'crawler/']):
        return True
    if 'mozilla/5.0' in lower and 'applewebkit' in lower:
        return False
    return True

def _send(data, ip):
    try:
        req = urllib.request.Request(
            TRUINTEL_API, json.dumps(data).encode(),
            headers={'Content-Type': 'application/json', 'X-Forwarded-For': ip},
            method='POST'
        )
        urllib.request.urlopen(req, timeout=5)
    except Exception:
        pass

class TruIntelMiddleware(BaseHTTPMiddleware):
    async def dispatch(self, request: Request, call_next):
        ua = request.headers.get('user-agent', '')
        if _is_bot(ua):
            forwarded = request.headers.get('x-forwarded-for', '')
            ip = forwarded.split(',')[0].strip() if forwarded else (str(request.client.host) if request.client else '')
            data = {
                'brand_id': BRAND_ID,
                'page': str(request.url.path) + ('?' + str(request.url.query) if request.url.query else ''),
                'user_agent': ua,
                'referrer': request.headers.get('referer'),
                'is_new_session': True,
                'is_new_visitor': True,
            }
            threading.Thread(target=_send, args=(data, ip), daemon=True).start()
        return await call_next(request)

# main.py:
# from truintel_middleware import TruIntelMiddleware
# app.add_middleware(TruIntelMiddleware)

Flask

Use Flask's before_request hook to check every incoming request. Import and call init_truintel(app) in your main app file.

truintel_middleware.py
import threading, json, urllib.request
from flask import request

BRAND_ID = 'YOUR_BRAND_ID'
TRUINTEL_API = 'https://api.truintel.ai/api/v1/i/e'

AI_CRAWLERS = [
    'GPTBot','ChatGPT-User','OAI-SearchBot','ChatGPT-Agent',
    'ClaudeBot','Claude-Web','Claude-SearchBot','anthropic-ai',
    'Google-Extended','GoogleOther','Gemini-Deep-Research',
    'PerplexityBot','Meta-ExternalAgent','Applebot',
    'GrokBot','Bytespider','DeepseekBot','Amazonbot','CCBot',
]
OTHER_BOTS = [
    'Googlebot','DuckDuckBot','YandexBot','Slackbot',
    'Twitterbot','LinkedInBot','facebookexternalhit','Discordbot',
]
ALL_PATTERNS = AI_CRAWLERS + OTHER_BOTS

def _is_bot(ua):
    if not ua:
        return True
    lower = ua.lower()
    if any(p.lower() in lower for p in ALL_PATTERNS):
        return True
    if any(x in lower for x in ['bot/', 'spider/', 'crawler/']):
        return True
    if 'mozilla/5.0' in lower and 'applewebkit' in lower:
        return False
    return True

def _send(data, ip):
    try:
        req = urllib.request.Request(
            TRUINTEL_API, json.dumps(data).encode(),
            headers={'Content-Type': 'application/json', 'X-Forwarded-For': ip},
            method='POST'
        )
        urllib.request.urlopen(req, timeout=5)
    except Exception:
        pass

def init_truintel(app):
    @app.before_request
    def track_bots():
        ua = request.headers.get('User-Agent', '')
        if _is_bot(ua):
            forwarded = request.headers.get('X-Forwarded-For', '')
            ip = forwarded.split(',')[0].strip() if forwarded else (request.remote_addr or '')
            data = {
                'brand_id': BRAND_ID,
                'page': request.full_path,
                'user_agent': ua,
                'referrer': request.referrer,
                'is_new_session': True,
                'is_new_visitor': True,
            }
            threading.Thread(target=_send, args=(data, ip), daemon=True).start()

# app.py:
# from truintel_middleware import init_truintel
# init_truintel(app)

Go (net/http)

Create an HTTP middleware handler. The API call runs in a goroutine so it never blocks the response. Wrap your router with TruIntelMiddleware(router).

truintel.go
package main

import (
	"bytes"
	"encoding/json"
	"net/http"
	"strings"
)

const brandID = "YOUR_BRAND_ID"
const truintelAPI = "https://api.truintel.ai/api/v1/i/e"

var aiCrawlers = []string{
	"GPTBot","ChatGPT-User","OAI-SearchBot","ChatGPT-Agent",
	"ClaudeBot","Claude-Web","Claude-SearchBot","anthropic-ai",
	"Google-Extended","GoogleOther","Gemini-Deep-Research",
	"PerplexityBot","Meta-ExternalAgent","Applebot",
	"GrokBot","Bytespider","DeepseekBot","Amazonbot","CCBot",
}
var otherBots = []string{
	"Googlebot","DuckDuckBot","YandexBot","Slackbot",
	"Twitterbot","LinkedInBot","facebookexternalhit","Discordbot",
}

func isBot(ua string) bool {
	if ua == "" { return true }
	lower := strings.ToLower(ua)
	for _, p := range append(aiCrawlers, otherBots...) {
		if strings.Contains(lower, strings.ToLower(p)) { return true }
	}
	for _, x := range []string{"bot/", "spider/", "crawler/"} {
		if strings.Contains(lower, x) { return true }
	}
	if strings.Contains(lower, "mozilla/5.0") && strings.Contains(lower, "applewebkit") {
		return false
	}
	return true
}

func TruIntelMiddleware(next http.Handler) http.Handler {
	return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
		ua := r.UserAgent()
		if isBot(ua) {
			ip := strings.Split(r.Header.Get("X-Forwarded-For"), ",")[0]
			if ip == "" { ip = strings.Split(r.RemoteAddr, ":")[0] }
			go func() {
				body, _ := json.Marshal(map[string]interface{}{
					"brand_id": brandID,
					"page": r.URL.RequestURI(),
					"user_agent": ua,
					"referrer": r.Referer(),
					"is_new_session": true, "is_new_visitor": true,
				})
				req, _ := http.NewRequest("POST", truintelAPI, bytes.NewReader(body))
				req.Header.Set("Content-Type", "application/json")
				req.Header.Set("X-Forwarded-For", ip)
				http.DefaultClient.Do(req)
			}()
		}
		next.ServeHTTP(w, r)
	})
}

// Usage: http.ListenAndServe(":8080", TruIntelMiddleware(router))

AI Crawler Coverage — 90+ Patterns

The examples above show the most common patterns. TruIntel's Pattern Catalog includes 90+ crawler signatures across OpenAI, Anthropic, Google, Microsoft, Meta, Apple, xAI (Grok), ByteDance, Perplexity, DeepSeek, Mistral, Amazon, Cohere, Common Crawl, and dozens of AI search engines. For the complete and always-updated list, use the one-click copy in your TruIntel dashboard (Traffic → Install Script).

Existing middleware?

If you already have middleware (auth, CORS, logging), just add the TruIntel middleware to your chain. It calls next() immediately after the fire-and-forget API call — it never modifies the request or response. Order doesn't matter since it's non-blocking.


Verification & Testing

After installing both scripts, verify that traffic data is flowing correctly into your TruIntel dashboard.

1

Verify client-side

Open your website in a browser. Open DevTools → Network tab and filter by "tracker.js". You should see the script load successfully (200 status). Then filter by "/i/" to see the tracking beacon requests.

2

Check the dashboard

Go to TruIntel → Traffic. Your visit should appear in the Live Traffic Feed within 10 seconds, classified as HUMAN with a high confidence score.

3

Test server-side with curl

Run the curl command below from your terminal. This simulates a GPTBot visit. Check the Traffic page — you should see it classified as GOOD_AGENT within a few seconds.

4

Test edge cases

Visit from a mobile device, try incognito mode, and verify that each visit appears correctly classified. Check that static assets (images, CSS) are NOT being tracked.

Terminal
# Simulate GPTBot visiting your homepage
curl -s https://yoursite.com/ \
  -H "User-Agent: Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko) GPTBot/1.0"

# Simulate ClaudeBot
curl -s https://yoursite.com/ \
  -H "User-Agent: ClaudeBot/1.0 (https://anthropic.com)"

# If your middleware is working, both visits appear in TruIntel
# within seconds, classified as GOOD_AGENT

What to expect

After successful installation: browser visits appear as HUMAN (score 80-100), known AI agents appear as GOOD_AGENT, headless browsers appear as SYNTHETIC (score 20-40), and scrapers/spam bots appear as BAD_BOT. It typically takes 24-48 hours to build a meaningful traffic profile.


Content Security Policy (CSP)

If your site uses Content Security Policy headers, you need to allow the TruIntel tracker script and its API endpoint. Add these directives to your CSP header:

CSP Header
Content-Security-Policy:
  script-src 'self' https://api.truintel.ai;
  connect-src 'self' https://api.truintel.ai;

CSP and nonce-based policies

If you use nonce-based CSP (script-src 'nonce-xxx'), you need to add the nonce attribute to both TruIntel script tags. The async tracker script must also be whitelisted. Alternatively, add https://api.truintel.ai to your script-src allowlist.


Troubleshooting

IssueCauseSolution
No data appears in dashboardWrong Brand ID or script not loadingCheck DevTools → Console for errors. Verify Brand ID matches Settings → Integrations. Ensure both script tags are present.
Script loads but no beacon sentwindow.TruIntel config missing or loads after tracker.jsThe config script must be placed BEFORE the tracker script tag. In Next.js, use beforeInteractive for config.
CSP error in consoleContent Security Policy blocks tracker script or API callsAdd https://api.truintel.ai to script-src and connect-src in your CSP header.
Ad blocker blocks trackerBrowser ad blocker or privacy extension blocks third-party scriptsExpected behavior — ad-blocked visitors won't be tracked client-side. Server-side middleware still catches bots. Human traffic from ad-block users is typically 10-15%.
Double-counted pageviewsScript loaded twice (e.g., in both layout and page component)Ensure the tracker script is loaded only ONCE at the root layout level. Check React StrictMode (dev only — not an issue in production).
Static assets appearing as visitsServer-side middleware runs on image/CSS/JS requestsAdd path exclusions to your middleware. In Next.js, use the matcher config. In Express, check req.path for file extensions before calling isBot().
Server-side events not appearingMiddleware not registered or API endpoint wrongVerify the middleware is in your middleware chain. The endpoint is /api/v1/i/e (not /api/v1/traffic/middleware). Test with the curl command above.
All traffic shows as BOTServer behind a proxy that strips User-Agent headersEnsure your reverse proxy (Nginx, Cloudflare) forwards the original User-Agent header. Check X-Forwarded-For is set for correct IP attribution.
CORS errors in consoleBrowser blocks cross-origin API requestThe tracker uses fire-and-forget beacons — CORS should not apply. If you see CORS errors, verify you're using the async script tag, not a direct fetch() call.
Rate limit errors (429)More than 100 requests/minute from a single IPThis usually indicates a bot loop or misconfigured middleware. Check for recursive middleware calls or scripts that re-inject themselves.

Edge Cases

ScenarioSolution
Single-page app (SPA) with client-side routingThe tracker automatically detects pushState/popstate route changes. No extra config needed for React Router, Vue Router, Next.js, etc.
Server-side rendering (SSR) / Static site generation (SSG)The client-side script runs only in the browser — SSR-rendered pages won't cause double tracking. Server-side middleware catches bots during SSR requests.
Behind Cloudflare / CDN / reverse proxyEnsure the proxy forwards the original User-Agent and X-Forwarded-For headers. Cloudflare does this by default. Cached CDN responses won't trigger middleware, which is correct behavior.
Behind Vercel / Netlify / similar platformNext.js middleware runs on the edge (before cache). Vercel automatically provides the real IP via x-forwarded-for. No extra config needed.
Multiple brands on one domain (e.g., /brand-a, /brand-b)Use different Brand IDs for each section. Set window.TruIntel.brandId dynamically based on the URL path. For middleware, use the URL path to determine which Brand ID to send.
Subdomains (blog.yoursite.com, app.yoursite.com)Each subdomain can use the same or different Brand ID. Install the script separately on each subdomain. Middleware runs per-deployment, so deploy it on each subdomain's server.
TypeScript strict mode (no window.TruIntel)Add a type declaration: declare global { interface Window { TruIntel?: { brandId: string; apiUrl: string } } } in a .d.ts file or at the top of your component.
Google Tag Manager (GTM)Add both script tags as a Custom HTML tag in GTM. Set the trigger to "All Pages" with firing priority higher than other tags. Alternatively, paste directly in your HTML for more reliable loading.
Iframes / embedded contentThe tracker runs in the parent page context. Content inside iframes on a different origin will not be tracked. Same-origin iframes may be tracked — add data-ti-ignore to the iframe to exclude it.
Testing in development (localhost)The tracker works on localhost. Traffic from localhost appears in your dashboard labeled with the localhost origin. Use this to verify your installation before deploying to production.

Privacy & Performance

Data CategoryCollectedNOT Collected
IdentityRandom session/visitor UUIDsNames, emails, phone numbers, login credentials
BrowsingPage URLs on your domain, referrer domainBrowsing history, cross-site tracking, form data
DeviceBrowser type, OS, screen resolution, timezoneIP address (only forwarded, not stored long-term), precise geolocation
BehaviorMouse movement patterns, scroll depth, click timingKeystrokes, passwords, clipboard content, screenshots
NetworkUser-agent stringCookies, localStorage, session tokens
  • Script size: ~5 KB gzipped (loads async, non-blocking)
  • Beacon size: ~200 bytes per event (fire-and-forget POST)
  • Rate limit: 100 requests/minute per IP (client-side), no limit on server-side middleware
  • Zero cookies set — no cookie-consent banner interaction required
  • No impact on Core Web Vitals (LCP, FID, CLS) — verified via Lighthouse
  • Server-side middleware adds 0ms latency — API call runs asynchronously in background

GDPR & Compliance

TruIntel does not collect personally identifiable information (PII). No cookies are set. Visitor UUIDs are randomly generated and cannot be traced back to individuals. The tracker is designed to be compliant with GDPR, CCPA, and ePrivacy Directive without requiring cookie consent. If your legal team requires explicit consent for any analytics, wrap the script tags in your consent management flow.

Dashboard & Analytics

The Traffic Dashboard provides real-time visibility into your website visitors.

Live Traffic Feed

Real-time stream of incoming visitors with classification, location, and device info.

Agent Breakdown

Pie chart showing which AI agents and bots visit your site (ChatGPT, Googlebot, etc.).

Traffic Trends

Daily/weekly traffic trends with classification breakdown over time.

Threat Analysis

Identify and monitor potentially harmful bot patterns and traffic spikes.

Use the Rules Manager to create whitelist/blacklist rules for specific IPs, user agents, or patterns. Browse the built-in Pattern Catalog for known bot signatures.

Lead Verification

Installation

TruIntel's lead verification works by automatically intercepting form submissions on your website. A single script detects all <form> elements, captures submission data along with behavioral signals, and scores each lead in real time. No backend changes are required — the same tracker script used for traffic classification also handles lead verification.

One script, two features

If you've already installed the TruIntel tracker script for Traffic Classification, lead verification is already active. The same script handles both traffic tracking and form interception. No additional installation is needed — just verify that forms are being detected on the Leads page.

How It Works

Auto-Detects Forms

Automatically finds all <form> elements on the page, including forms added dynamically after page load (via MutationObserver).

Captures Behavior

Records time on page, scroll depth, mouse movement, form fill time, and field interaction patterns before submission.

Scores in Real-Time

Analyzes email quality, behavior patterns, identity consistency, traffic source, and device fingerprint. Returns a 0-100 score within seconds.

Zero Interruption

The form still submits normally to your backend. TruIntel intercepts the submit event, captures data, then lets the native submission proceed.

What Data Is Captured

Data PointSourceUsed For
Form field values (name, email, company, phone, message)Form input elementsIdentity analysis, email validation, company domain matching
Page URL and referrerBrowser locationTraffic source scoring, landing page relevance
Time on page before submissionTracker timerBot detection (bots submit instantly, humans take 10+ seconds)
Form fill timeFirst field focus → submit clickBot detection (bots fill forms in <1 second)
Scroll depth before form interactionScroll listenerEngagement scoring (bots rarely scroll)
Mouse movement patternsMouse event trackingBot detection (bots have no or linear mouse paths)
Field interaction orderFocus/blur eventsBot detection (bots fill fields top-to-bottom instantly)
Browser fingerprint + user-agentCanvas hash, screen infoDevice reputation scoring

Passwords are never captured

Input fields with type="password" are automatically excluded from data capture. The tracker also excludes fields named "password", "passwd", "secret", "token", and "credit_card". Sensitive field values are never sent to TruIntel's API.

Installation Steps

1

Find your Brand ID

Go to Settings → Integrations in your TruIntel dashboard. Copy the Brand ID shown under your brand.

2

Install the tracking script

Choose your framework below and paste the snippet. The script must load on every page that has forms you want to track. If you've already installed it for Traffic Classification, skip this step.

3

Submit a test form

Fill out a form on your site with realistic data (real email, full name). Submit it and check the Leads page in TruIntel — the submission should appear within a few seconds with a score and status.

4

Review the score breakdown

Click on the test lead in TruIntel to see the full score breakdown: email analysis, behavior signals, identity match, traffic source quality, and device reputation.

Script Installation

This is the same script used for Traffic Classification. If you've already installed it, lead verification is already active.

HTML

Paste inside the <head> tag on every page that has forms you want to track.

index.html
<!-- TruIntel Lead Verification -->
<script>
  window.TruIntel = {
    brandId: 'YOUR_BRAND_ID',
    apiUrl: 'https://api.truintel.ai/api/v1'
  };
</script>
<script async src="https://api.truintel.ai/api/v1/traffic/tracker.js"></script>

React

Add once in your App.tsx or root layout component. The tracker persists across route changes and detects dynamically rendered forms.

TruIntelTracker.tsx
import { useEffect } from 'react';

export function TruIntelTracker() {
  useEffect(() => {
    window.TruIntel = {
      brandId: 'YOUR_BRAND_ID',
      apiUrl: 'https://api.truintel.ai/api/v1'
    };
    const s = document.createElement('script');
    s.async = true;
    s.src = 'https://api.truintel.ai/api/v1/traffic/tracker.js';
    document.head.appendChild(s);
    return () => { document.head.removeChild(s); };
  }, []);
  return null;
}

// Usage: <TruIntelTracker />

Next.js

Add to your root layout (app/layout.tsx for App Router, _app.tsx for Pages Router).

app/layout.tsx
import Script from 'next/script';

export default function RootLayout({ children }) {
  return (
    <html>
      <head>
        <Script id="truintel-config" strategy="beforeInteractive"
          dangerouslySetInnerHTML={{
            __html: `window.TruIntel={brandId:'YOUR_BRAND_ID',apiUrl:'https://api.truintel.ai/api/v1'};`,
          }} />
        <Script src="https://api.truintel.ai/api/v1/traffic/tracker.js"
          strategy="afterInteractive" />
      </head>
      <body>{children}</body>
    </html>
  );
}

Vue

Add to your root App.vue or main entry component.

App.vue
<script setup>
import { onMounted, onUnmounted } from 'vue';

let script = null;

onMounted(() => {
  window.TruIntel = {
    brandId: 'YOUR_BRAND_ID',
    apiUrl: 'https://api.truintel.ai/api/v1'
  };
  script = document.createElement('script');
  script.async = true;
  script.src = 'https://api.truintel.ai/api/v1/traffic/tracker.js';
  document.head.appendChild(script);
});

onUnmounted(() => {
  if (script) document.head.removeChild(script);
});
</script>

Nuxt

Add to your nuxt.config.ts to inject the script globally on every page.

nuxt.config.ts
export default defineNuxtConfig({
  app: {
    head: {
      script: [
        {
          innerHTML: "window.TruIntel={brandId:'YOUR_BRAND_ID',apiUrl:'https://api.truintel.ai/api/v1'};",
        },
        {
          src: 'https://api.truintel.ai/api/v1/traffic/tracker.js',
          async: true,
        },
      ],
    },
  },
});

Angular

Add to src/index.html inside the <head> tag.

src/index.html
<!-- Inside <head> -->
<script>
  window.TruIntel = {
    brandId: 'YOUR_BRAND_ID',
    apiUrl: 'https://api.truintel.ai/api/v1'
  };
</script>
<script async src="https://api.truintel.ai/api/v1/traffic/tracker.js"></script>

Svelte / SvelteKit

Add to src/app.html inside the <head> tag, or use <svelte:head> in your root layout.

src/routes/+layout.svelte
<svelte:head>
  {@html `<script>window.TruIntel={brandId:'YOUR_BRAND_ID',apiUrl:'https://api.truintel.ai/api/v1'};</script>`}
  {@html `<script async src="https://api.truintel.ai/api/v1/traffic/tracker.js"></script>`}
</svelte:head>

WordPress

Add to your theme's functions.php, or use a plugin like "Insert Headers and Footers" or "WPCode" to inject without editing theme files.

functions.php
// Add to your theme's functions.php
add_action('wp_head', function() {
  ?>
  <script>
    window.TruIntel = {
      brandId: 'YOUR_BRAND_ID',
      apiUrl: 'https://api.truintel.ai/api/v1'
    };
  </script>
  <script async src="https://api.truintel.ai/api/v1/traffic/tracker.js"></script>
  <?php
});

Script Load Order

Replace YOUR_BRAND_ID with your actual Brand ID from Settings → Integrations. The config object (window.TruIntel) must load before the tracker script — otherwise forms will not be tracked.


Excluding Forms

By default, TruIntel tracks all form submissions on the page. To exclude specific forms from being tracked, add the data-ti-ignore attribute to the <form> element.

example.html
<!-- This form will NOT be tracked -->
<form action="/login" method="POST" data-ti-ignore>
  <input type="email" name="email" />
  <input type="password" name="password" />
  <button type="submit">Log in</button>
</form>

<!-- This form WILL be tracked -->
<form action="/contact" method="POST">
  <input type="text" name="name" placeholder="Full name" />
  <input type="email" name="email" placeholder="Work email" />
  <textarea name="message"></textarea>
  <button type="submit">Send</button>
</form>
Form TypeAuto-BehaviorAction Needed
Contact / inquiry formsTracked automaticallyNone — these are your leads
Login / sign-in formsAuto-skipped (detected by action URL and field names)None
Registration / sign-up formsTracked automaticallyAdd data-ti-ignore if you don't want sign-up tracking
Search forms (GET method)Tracked automaticallyAdd data-ti-ignore to exclude
Newsletter subscription formsTracked automaticallyKeep or exclude based on your preference
Internal admin formsTracked automaticallyAdd data-ti-ignore to exclude
Checkout / payment formsTracked automaticallyAdd data-ti-ignore — payment fields should not be tracked
Password reset formsAuto-skippedNone

Auto-skipped patterns

Forms with action URLs containing "login", "signin", "sign-in", "auth", or "password" are automatically skipped. Forms with only password-type fields are also auto-skipped. You only need data-ti-ignore for other forms you want to exclude.


Edge Cases & Advanced Scenarios

ScenarioHow TruIntel Handles It
Dynamically rendered forms (React, Vue, Angular)The tracker uses MutationObserver to detect forms added to the DOM after initial page load. Forms rendered by JavaScript frameworks are detected automatically — no extra config needed.
AJAX / fetch-based form submissionsIf your form uses preventDefault() and submits via fetch/axios, TruIntel's submit event listener fires first and captures the data. The form data is captured regardless of how the submission is handled.
Multi-step / wizard formsTruIntel captures the final submission (the actual form submit event). Intermediate "Next" buttons that don't trigger a form submit are not tracked. If each step is a separate <form>, each submission is tracked individually.
Forms inside modals or drawersForms in modals, popups, slide-out drawers, and dialog elements are detected when they're added to the DOM. Works with all UI libraries (Material UI, Chakra, Radix, Headless UI, etc.).
Third-party form builders (HubSpot, Typeform, Jotform)Embedded iframes from third-party builders cannot be tracked (cross-origin restriction). HubSpot forms embedded as JavaScript (not iframe) may be detected. For best results, use native HTML forms.
File upload forms (multipart/form-data)File inputs are detected but file contents are never uploaded to TruIntel. Only the filename and file size are recorded for scoring purposes.
Forms submitted by pressing EnterEnter-key submissions trigger the same submit event as clicking a button. They are tracked identically.
Multiple forms on one pageEach form is tracked independently. If a page has a contact form, newsletter signup, and search form, each gets its own score and lead entry when submitted.
SPA route changesThe tracker re-scans for forms on every route change (detects pushState/popstate). Forms on dynamically loaded pages are found automatically.
Forms with custom validation (e.g., Zod, Yup)The tracker listens for the native submit event. If validation prevents the form from submitting (e.preventDefault without re-dispatching), the submission is not tracked. If the form eventually submits, it's tracked normally.
Honeypot fields for spam preventionHoneypot fields are captured like any other field. Bots that fill honeypots will receive a low lead score due to behavioral analysis detecting non-human patterns.
reCAPTCHA / hCaptcha formsCAPTCHA widgets don't interfere with form tracking. The tracker captures form data on submit, regardless of CAPTCHA status.

Troubleshooting

IssueCauseSolution
Form submissions not appearing in Leads pageScript not loading, wrong Brand ID, or form has data-ti-ignoreCheck DevTools → Network for tracker.js. Verify Brand ID. Remove data-ti-ignore if accidentally added. Ensure the form has a submit event (not just a button click handler).
Score shows 0 for all leadsForm submitted too quickly (bot-like behavior) or from localhostSubmit the form naturally: spend 10+ seconds on the page, move the mouse, scroll, then fill the form slowly. Localhost submissions may score low due to missing referrer data.
Duplicate lead entriesForm submits twice (double-click or script re-injection)Ensure the tracker script is loaded only once. Check for double form submission in your own code. React StrictMode causes double mounts in dev only — not an issue in production.
Login forms being tracked despite auto-skipForm action URL doesn't match auto-skip patternsAdd data-ti-ignore to the form element manually. The auto-skip only catches common patterns like /login, /signin, /auth.
Sensitive data appearing in lead detailsNon-password sensitive fields not excludedAdd data-ti-ignore to forms containing sensitive data. For individual fields, use autocomplete="off" or type="password" to exclude them from capture.
Third-party iframe form not trackedCross-origin iframe restrictionForms inside iframes from different domains cannot be accessed by the tracker (browser security policy). Use the provider's native webhook integration or TruIntel's API endpoint to submit lead data directly.
Form tracked but fields are emptyForm uses a non-standard submission pattern (e.g., FormData API with no DOM elements)The tracker reads values from form input elements at submit time. If your form uses virtual/controlled inputs without DOM form elements, consider using TruIntel's API endpoint to submit lead data directly.
Lead score seems inaccurateInsufficient behavioral data or disposable email usedEnsure the tracker script loads early (in <head>) so it captures the full session behavior. Test with a real business email — disposable email providers (mailinator, guerrillamail) receive low email scores.

Privacy & Sensitive Data

  • Password fields (type="password") are NEVER captured — automatically excluded
  • Fields named "password", "passwd", "secret", "token", "credit_card", "cvv", "ssn" are auto-excluded
  • Credit card numbers are detected and redacted before transmission (pattern matching)
  • File contents are never uploaded — only filename and size are recorded
  • All data is transmitted over HTTPS (TLS 1.3) and encrypted at rest
  • Lead data is retained for 90 days by default — configurable in Settings → Data Retention
  • No cookies are set — the tracker uses sessionStorage for session-scoped data only
  • GDPR: Lead data containing PII (email, name, phone) is processed under "legitimate interest" — consult your legal team for your specific jurisdiction

Payment & checkout forms

Always add data-ti-ignore to payment forms, checkout forms, and any form that collects credit card numbers, bank account details, or other financial information. While the tracker auto-excludes password fields and detects credit card patterns, explicit exclusion is the safest approach for PCI compliance.

Lead Scoring Formula

Every form submission on your website receives a Lead Score (0–100) that indicates how likely it is to be a genuine, high-quality lead.

Lead Score

40%
25%
15%
10%
10%
Behavior (40%)
Email Analysis (25%)
Identity (15%)
Traffic Source (10%)
Device (10%)
SignalWeightWhat's Analyzed
Behavior40%Time on page, scroll depth, mouse movement, form fill time, click patterns
Email25%Domain reputation, disposable email detection, MX record validation, format quality
Identity15%Name consistency, phone format, company domain match, social presence signals
Traffic Source10%Referrer quality, UTM parameters, landing page relevance, session history
Device10%Browser fingerprint, screen resolution, timezone consistency, device reputation

Status Thresholds

Leads are automatically categorized into three status levels based on their score:

StatusScore RangeAction Recommended
VERIFIED ✓80–100High confidence — route directly to sales team
REVIEW ⚠50–79Moderate confidence — manual review recommended
REJECTED ✗0–49Low confidence — likely fake or bot submission

The Leads Dashboard shows conversion funnel, score distribution charts, and trend analysis. You can manually override lead status, bulk-update statuses, and export lead data for CRM integration.

API Integration

Integrate lead verification into your forms using TruIntel's public API endpoint:

API Endpoint
POST https://api.truintel.ai/api/v1/leads/verify

# Rate limit: 20 requests/minute per IP
# No authentication required (uses brand ID)

# Request body:
{
  "brand_id": "your-brand-id",
  "email": "[email protected]",
  "name": "John Doe",
  "company": "Acme Inc",
  "phone": "+1234567890",
  "page_url": "https://yoursite.com/contact",
  "referrer": "https://google.com",
  "user_agent": "Mozilla/5.0 ..."
}

The API returns a score, status (verified/review/rejected), and detailed signal breakdown. Use this to pre-filter form submissions before they reach your CRM.

CMS & Content Generation

5-Step Content Pipeline

TruIntel CMS generates high-quality, SEO-optimized content using a 5-step AI pipeline powered by Gemini Flash.

1

Research

AI searches the web for your topic, gathering sources, competitor content, and current trends to inform the content.

2

Outline

Creates a structured outline with headings, subheadings, and key points to cover. You can review and adjust before proceeding.

3

Draft

Writes the full content based on the outline, incorporating SEO keywords, internal linking opportunities, and your brand voice.

4

SEO Optimization

Optimizes the title tag, meta description, heading structure, and adds schema markup (FAQPage, Article, WebPage).

5

Quality Check

Validates content quality — checks for factual accuracy, readability, SEO compliance, and brand consistency.

Content generation uses credits from your credit pool. You can poll generation progress in real-time — each step shows its status as it completes.

Content Editor

TruIntel CMS includes a full-featured rich text editor built on TipTap for creating and editing content.

Rich Text Editing

Headings, bold, italic, lists, blockquotes, links, and more with a familiar toolbar.

Image Support

Insert images with alt text. Drag-and-drop or paste from clipboard.

Code Blocks

Syntax-highlighted code blocks for technical content.

SEO Sidebar

Real-time meta title/description editing with character counting and preview.

The editor also includes AI Assist — select text and choose to rewrite, expand, or shorten it using AI. Schema markup (FAQPage, Article, WebPage) is auto-generated based on content structure.

3-Tier Publishing

TruIntel publishes content to Cloudflare's global edge network using a 3-tier fallback system for maximum compatibility with your existing website.

TierMethodBest For
Tier 1Clone your reference page and replace the content areaSites with consistent page templates — content looks exactly like your existing pages
Tier 2Wrap content in your extracted brand header, footer, and CSSSites where page cloning isn't possible — maintains brand look and feel
Tier 3Standalone template with your brand colors and fontsFallback — clean, professional page when site extraction fails

Published content is stored in Cloudflare KV and served globally via Workers. Sitemaps are auto-generated and search engines are pinged on publish. You can unpublish content at any time.

Domain Setup

Connect your custom domain to publish TruIntel-generated content on your own website.

1

Add your domain

Enter the domain where you want to publish content (e.g., blog.yoursite.com).

2

Verify DNS

Add a CNAME record pointing to TruIntel's Cloudflare proxy. DNS propagation typically takes 5–30 minutes.

3

Brand Template Extraction

TruIntel crawls your site to extract header, footer, CSS, colors, fonts, and logo for consistent publishing.

4

Start Publishing

Your domain is ready. Published content will be served from Cloudflare's edge network worldwide.

Page Optimization

The CMS Optimization feature scans your existing website pages and identifies issues that can be fixed to improve SEO and AI visibility.

  • AI-powered page scanning identifies issues across meta tags, headings, content, and structured data
  • Preview fixes before applying — see exactly what will change
  • Batch fix multiple issues at once with progress tracking
  • Undo support — revert any fix to its original state
  • Credit usage tracking for optimization operations

Site Scanning

The CMS site scanner crawls up to 200 pages per scan using a 5-phase pipeline:

1

BFS Crawl

Breadth-first crawl with httpx that respects robots.txt directives.

2

Brand Template Extraction

Extracts your site's colors, fonts, header, footer, and CSS for consistent publishing.

3

AI Page Analysis

Gemini Flash analyzes each page for topics, summary, and tone.

4

Content Gap Analysis

Identifies content gaps and missing topics compared to competitors.

5

Actionable Recommendations

Generates prioritized recommendations for content creation and optimization.

Content Refresh

TruIntel automatically refreshes published content monthly (1st of each month at 3:00 AM IST). The refresh detects stale or outdated sections and regenerates them to keep your content current and competitive.

Automatic Updates

Content refresh is fully automatic — no credits are consumed. TruIntel monitors industry changes and updates your published articles to maintain accuracy and AI citation potential.

Plus (AI Content)

Content Templates

TruIntel provides AI-powered content generation templates organized into three categories.

Content Templates

Blog posts, articles, FAQ pages, product descriptions, and landing page copy optimized for AI visibility.

Technical SEO Templates

Schema markup, meta tag optimization, robots.txt analysis, and structured data generation.

Backlink Templates

Guest post pitches, link-building outreach emails, and resource page suggestions.

Each template follows a step-based wizard: select template → configure options (target queries, custom context, tone) → generate → preview and download. Output is available in Markdown format with copy and download actions.

Credit System

Content generation and CMS operations consume credits. Each article or content piece generated costs 1 credit. Credits are drawn from two pools in order:

PoolSourceResetUse
Plan CreditsIncluded with subscription planResets on 1st of each monthCMS operations, content generation, Plus content
Extra CreditsOne-time top-up purchasesNever expire, never resetOverflow when plan credits are exhausted
PlanMonthly CreditsExtra Credit Price
Starter50$2.00 / credit
Lite150$1.75 / credit
Pro500$1.50 / credit
Enterprise1,000$1.00 / credit

You can also purchase top-up credit packs at discounted rates:

PackCreditsPricePer Credit
Starter Pack50$10$0.20
Growth Pack150$25$0.167
Pro Pack400$50$0.125

Credit balance and usage history are visible in Settings → Billing. Top-up purchases are processed via Razorpay and never expire.

Query Management

Creating & Managing Queries

Tracking queries are the questions and search terms that TruIntel monitors across AI platforms. These are the queries your potential customers might ask AI assistants about your industry.

  • Add queries individually or in bulk (CSV upload)
  • Each query can be assigned a business value (1–5) for prioritization
  • Queries are classified by intent: informational, commercial, transactional, navigational, or comparison
  • Set status: active (being tracked), suggested (AI recommendation), or inactive (paused)
  • Assign to topics for organized grouping
  • Set country/locale for region-specific monitoring
  • Toggle priority flag for priority checks (available on higher plans)

Topics & Organization

Group related queries into Topics for better organization and analysis. Topics appear as filter options throughout the visibility dashboard.

  • Create, edit, and delete topics from the Topics Management modal
  • Bulk-create topics from AI suggestions based on your industry
  • Each query belongs to one topic
  • Filter visibility data by topic to focus on specific areas
  • Topics help the AI insights engine group related findings

AI Query Suggestions

TruIntel uses AI to suggest relevant tracking queries based on your brand, industry, competitors, and existing queries. Suggestions are refreshed periodically and can be accepted individually or in bulk.

Best Practices

Start with 10–20 high-intent queries that directly relate to your product or service. Gradually expand to broader industry queries. Focus on queries where you have a reasonable chance of being mentioned — very generic queries may have low brand recognition.

Source Tracking

Source Types & Domains

When AI platforms respond to queries, they often cite source domains. TruIntel tracks which domains are referenced and categorizes them by type.

Source TypeDescriptionExamples
EditorialNews outlets and publicationsForbes, TechCrunch, Reuters
EarnedThird-party reviews and mentionsG2, Capterra, industry blogs
OwnedYour own website and propertiesyoursite.com, blog.yoursite.com
UGCUser-generated content platformsReddit, Quora, Stack Overflow
CorporateCompany and organizational sitesCompany websites, about pages
MarketplaceE-commerce and listing platformsAmazon, Product Hunt, app stores

A donut chart on the Sources page shows the distribution of source types. Click any source to see URL-level detail and which platforms cite it.

Source Gap Analysis

Gap Analysis identifies high-authority sources that cite your competitors but not you. These represent your biggest opportunities for improving AI visibility.

Actionable Insight

If a source domain is frequently cited by AI in your industry but never references your brand, getting featured on that source (through PR, guest posts, or partnerships) can significantly boost your visibility score.

Prompt Research

Overview

Prompt Research is an AI-powered research tool that lets you explore how AI platforms discuss your industry in real time. Enter a seed topic and TruIntel generates 20–30 relevant search prompts organized into 5–8 topic clusters, then queries all 5 AI platforms and analyzes responses for brand mentions, sources, and sentiment.

  • Enter a seed topic → AI generates 20–30 search prompts in 5–8 topic clusters
  • Queries all 5 AI platforms simultaneously and analyzes responses
  • Discover what AI says about your industry, competitors, or specific topics
  • Identify brand mentions, source citations, and sentiment across platforms
  • Find new query opportunities for your visibility tracking
  • No per-plan limit on research sessions — available to all paid plans

Best Practice

Use Prompt Research before setting up tracking queries. It helps you discover how AI platforms discuss your industry and which queries surface your brand versus competitors. Great for validating content strategies and finding market angles.

Competitors

Competitor Tracking

TruIntel automatically discovers and tracks competitors in your industry. You can also manually add competitors by entering their domain.

  • Auto-discovery during onboarding based on industry and AI mentions
  • Manual add/remove with domain validation
  • Per-competitor visibility scores and sentiment
  • Ranking chart comparing your brand against competitors
  • Sentiment distribution (positive/neutral/negative) per competitor
  • Score change indicators showing who's improving or declining

Comparison Metrics

The Competitors page and Overview dashboard show how you stack up against competitors across multiple dimensions.

MetricWhat It Shows
Visibility ScoreOverall AI visibility (0–100) compared side by side
Recognition RateHow often each brand is mentioned in AI responses
Average PositionWhere brands appear in AI responses (1st, 2nd, 3rd, etc.)
SentimentPositive vs negative perception across platforms
Share of VoiceProportion of total AI mentions per competitor
Platform BreakdownWhich platforms favor which competitors

Notifications & Alerts

Alert Types

TruIntel monitors your brand continuously and sends alerts when significant events occur.

Alert TypeTriggerSeverity
Visibility DropScore drops >= 5 pointsHIGH (>= 10pt) / MEDIUM (5–10pt)
Competitor OvertakeA competitor gets more AI mentions than your brandMEDIUM
Negative MentionNegative sentiment detected in AI responsesHIGH (>= 3 mentions) / MEDIUM (1–2)
Score MilestoneVisibility score crosses 50, 75, or 90LOW (positive)
Integration ErrorGSC token revoked or integration disconnectedHIGH

Alerts appear in the notification bell in the top bar, on the dedicated Notifications page, and optionally via email. HIGH and CRITICAL alerts trigger email notifications automatically. Each alert can be marked as read or resolved. Filter alerts by All, Unread, Read, or Critical tabs.

Configuration

Customize which alerts you receive and how from Settings → Notifications.

  • Toggle individual alert types: Weekly Reports, Visibility Drops, Competitor Detected, Check Completed, Traffic Anomaly
  • Choose email frequency: Instant (send immediately), Daily Digest (once per day), Weekly Digest (once per week)
  • HIGH/CRITICAL severity alerts always trigger email notifications
  • View and manage all alerts on the Notifications page with pagination (20 per page)
  • Bulk mark all as read with one click

Settings & Account

Profile

Manage your personal account details from Settings → Profile.

  • Update your name, avatar, and email address
  • Change your password (current password required)
  • Logout from all devices (revokes all refresh tokens)
  • View and switch between organizations you belong to

Team Management

Manage your team from Settings → Team. Invite new members, change roles, and remove members.

  • View all current team members with their roles and join dates
  • Invite new members by email — they receive an invitation link valid for 7 days
  • Change member roles (Owner, Admin, Member)
  • View pending invitations and resend or cancel them
  • Remove team members (Owner/Admin only)

Billing & Subscription

View your current plan, manage subscriptions, and purchase credits from Settings → Billing.

  • Current plan name, renewal date, and status
  • Usage metrics — brands used, queries tracked, checks performed
  • Payment history with downloadable receipts
  • Upgrade or downgrade plan via Razorpay checkout
  • Credit balance across Plan Credits and Extra Credits pools
  • One-click credit top-up with custom amounts

API Keys

Generate API keys for programmatic access to your TruIntel data from Settings → API Keys.

  • Generate new API keys with optional description/label
  • Copy keys to clipboard (keys are only shown once at creation)
  • Delete keys to revoke access immediately
  • API keys inherit the permissions of the creating user

Support

Submit support tickets and track their status from Settings → Support.

  • Create support tickets with category, subject, and description
  • View ticket history with status tracking (open, in progress, resolved)
  • Receive email updates when ticket status changes

Plans & Pricing

Plan Comparison

TruIntel offers a 7-day free trial and four paid subscription tiers to fit businesses of all sizes. The free trial includes 1 brand, 5 queries, and 1 competitor to help you evaluate the platform.

Starter

$49/mo

  • 1 Brand, 10 queries
  • All 5 AI platforms (ChatGPT, Claude, Gemini, Perplexity, Google AI)
  • 1 Competitor Tracking
  • 750 GSC Keywords
  • 20 Keyword Suggestions / month
  • 10K Site Audit Pages
  • Monthly Backlink Tracking
  • 1 Month Keyword Rank History
  • 5 PageSpeed Checks / month
  • Traffic Analytics (1K retention)
  • 200 Lead Verifications / month
  • 50 AI Credits / month
  • Weekly AI-Powered Insights
  • Email Support

Lite

$129/mo

  • Everything in Starter, plus:
  • 2 Brands, 25 queries / brand (50 total)
  • 3 Competitors Tracked
  • 2,000 GSC Keywords
  • 50 Keyword Suggestions / month
  • 50K Site Audit Pages
  • 3 Months Keyword Rank History
  • Traffic Analytics (5K retention)
  • 1,000 Lead Verifications / month
  • 150 AI Credits / month
  • 2 Team Members

Pro

$349/mo

  • Everything in Lite, plus:
  • 3 Brands, 40 queries / brand (120 total)
  • 5 Competitors Tracked
  • 5,000 GSC Keywords
  • 200 Keyword Suggestions / month
  • 100K Site Audit Pages
  • Weekly Backlink Tracking
  • 12 Months Keyword Rank History
  • 15 PageSpeed Checks / month
  • Daily Priority Monitoring (5 / brand)
  • Advanced Backlink Analytics
  • SERP Features Analysis
  • Keyword Gap / Overlap Analysis
  • Traffic Analytics (25K retention)
  • 2,000 Lead Verifications / month
  • 500 AI Credits / month
  • 3 Team Members
  • Priority Support

Enterprise

Custom

  • Everything in Pro, plus:
  • 4+ Brands, 50 queries / brand (200+ total)
  • 10 Daily Priority Queries / brand
  • 10,000+ GSC Keywords
  • 500 Keyword Suggestions / month
  • 200K+ Site Audit Pages
  • 30 PageSpeed Checks / month
  • Traffic Analytics (50K retention)
  • 5,000+ Lead Verifications / month
  • 1,000 AI Credits / month
  • 10+ Team Members
  • Dedicated Account Manager

Free 7-Day Trial

All new accounts start with a 7-day free trial that includes 1 brand, 5 queries, and 1 competitor. No credit card required to start — upgrade to a paid plan anytime during or after the trial.

Feature Limits by Plan

FeatureStarter ($49)Lite ($129)Pro ($349)Enterprise
Brands1234+
Queries / Brand10254050
Total Queries1050120200+
AI Platforms5555
Competitors Tracked1355
Team Members12310+
Daily Priority Checks5 / brand10 / brand
AI Credits / mo501505001,000
GSC Keywords7502,0005,00010,000+
Keyword Suggestions / mo2050200500
Keyword Rank History1 month3 months12 months12 months
Site Audit Pages10K50K100K200K+
Top Organic Keywords50100200500
Backlink TrackingMonthlyMonthlyWeeklyWeekly
Advanced Backlink Analytics
SERP Features Analysis
Keyword Gap / Overlap
PageSpeed Checks / mo551530
Traffic Log Retention1K5K25K50K
Lead Verifications / mo2001,0002,0005,000+
CMS Publishing
AI-Powered Insights
SupportEmailEmailPriorityDedicated

Payment & Billing

TruIntel processes payments securely, supporting credit cards, debit cards, UPI, and net banking.

  • Subscriptions are billed monthly with automatic renewal via Razorpay
  • Upgrade or downgrade your plan at any time — changes take effect immediately
  • Credit top-ups are one-time purchases that never expire
  • View complete payment history in Settings → Billing
  • Receipts are downloadable for each payment
  • Failed payments trigger automatic retry and email notification
  • India billing: 18% GST (IGST) is automatically added for Indian customers, detected via IP geolocation

SERP Simulator

Overview

The SERP Simulator lets you preview how your web pages appear in search engine results before publishing. It provides real-time scoring and optimization suggestions for Google, Bing, and social media previews.

Google Preview

See how your page looks in Google search results with title, description, URL, and rich snippets.

Bing Preview

Preview your page appearance in Bing search results.

Social Preview

Preview Open Graph and Twitter Card appearance when shared on social media.

SEO Score

Real-time CTR-based scoring with title length, description quality, and keyword analysis.

Rich Snippet Support

The SERP Simulator supports previewing 7 types of rich snippets that can appear in search results:

  • FAQ Snippets — expandable question and answer dropdowns
  • How-To Snippets — step-by-step instruction previews
  • Recipe Snippets — cooking time, ratings, and ingredients
  • Video Snippets — thumbnail, duration, and upload date
  • Event Snippets — date, location, and ticket information
  • Product Snippets — price, availability, and ratings
  • Sitelink Snippets — additional page links beneath the main result

Configure your SERP preview using the input panels: Basic Info, Keywords, Media, Rich Snippets, SERP Features, and Advanced settings. Use the meta fetcher to auto-populate fields from any URL.

Platform Schedule & AI Models

Automated Schedule

TruIntel runs automated tasks on a fixed schedule (all times in IST — Indian Standard Time):

TimeDayTaskPlans
12:00 AM1st of monthMonthly credit resetAll paid
12:30 AMDailyExpired trials checkAll
1:00 AMDailyExpired subscriptions checkAll
2:00 AMMondayWeekly full visibility checksAll paid
2:00 AMTue–SunDaily priority checksPro, Enterprise
3:00 AMMondayWeekly SEO checks (DA, backlinks, competitors)All paid
3:00 AMDailyDaily traffic aggregationAll paid
3:00 AM1st of monthMonthly CMS content refreshAll paid
3:30 AMDailyDaily lead aggregationAll paid
4:00 AM1st of monthMonthly full SEO checks (free + paid)All paid
4:00 AMSundayWeekly traffic cleanupAll
5:00 AMDailyGSC keyword syncAll paid (if connected)
5:00 AMSundayInvitation cleanup (expired)All
6:00 AMMondayWeekly insight generationAll paid
6:00 AM2nd of monthMonthly brand reportAll paid
8:00 AMMondayWeekly email reportsAll paid
9:00 AMMondayWeekly brand reportsAll paid
Every 10 minAlwaysCleanup stuck CMS generationsAll
QuarterlyJan/Apr/Jul/OctInsight report cleanup (> 90 days)All
QuarterlySEO report cleanup (> 180 days)All

AI Models Used

TruIntel uses multiple AI models across the platform for different purposes:

PlatformModelPurpose
OpenAIGPT-5.2ChatGPT visibility monitoring
AnthropicClaude Sonnet 4.5Claude visibility monitoring
Google AIGemini 3 FlashGemini monitoring + Insights pipeline + Reports
Google AIGemini 3.1 FlashTopic suggestions, query generation, competitor discovery
Google AIGemini 2.0 FlashCMS content generation + AI writing assist
PerplexitySonarPerplexity visibility monitoring
OpenRouterKimi K2.5Response analysis, intent/domain classification
SearchAPI.ioGoogle SERPGoogle AI Overview extraction
DataForSEOVarious APIsSEO data (DA, backlinks, keywords, competitors)

App Pages Reference

Analytics App (68 Routes)

The TruIntel Analytics App (app.truintel.ai) contains 68 distinct routes organized into the following categories. All pages are lazy-loaded with React.lazy() and Suspense for optimal performance.

Overview

/overview

Main dashboard with 7 key metrics (visibility score, recognition rate, mentions, avg position, citation rate, sentiment, queries), platform breakdown, query heatmap, competitor ranking, top sources, latest insight report, task summary, traffic overview, lead overview, and TruPlus generations.

Visibility

/visibility

AI visibility monitoring with score gauge, platform performance, query mentions, brand attributes, and source tracking.

Queries

/queries

Manage tracking queries with search, filtering, topic assignment, priority toggle, and bulk operations.

Query Detail

/queries/:queryId

Deep-dive into a specific query with AI response analysis, competitor mentions, citations, and position tracking.

Prompt Research

/prompt-research

AI-powered prompt research to discover what AI platforms say about your industry and competitors.

Sources

/sources

Source domain tracking with type breakdown, donut chart, gap analysis, and URL-level detail.

Competitors

/competitors

Competitor management with cards, ranking chart, sentiment distribution, and score tracking.

Insights

/insights

Weekly AI insight reports with findings tab, tasks tab (split view + kanban), and impact tracking.

Finding Detail

/insights/:findingId

Detailed view of a specific insight finding with evidence, impact score, and related tasks.

Tasks

/tasks

Standalone task management with kanban board, split view, filtering by status/category, and impact tracking.

Reports

/reports

Brand weekly and monthly reports with 8-section executive summaries covering AEO, SEO, traffic, and leads.

Report Detail

/reports/:reportId

Full report view with rich visualizations, competitor benchmarking, and PDF export via html2canvas + jsPDF.

SEO Dashboard

/seo

SEO health overview with domain authority, page speed, technical checks, keywords summary, and backlinks.

PageSpeed Detail

/seo/pagespeed

Lighthouse scores with Core Web Vitals (LCP, FID, CLS), performance trends, and optimization tips.

Keywords Detail

/seo/keywords

Keyword ranking tracking with position changes, filter tabs, history chart, and AI suggestions.

Keyword Suggestions

/seo/keyword-suggestions

AI-powered keyword discovery with search volume, difficulty, and relevance scoring.

Backlinks Detail

/seo/backlinks

Backlink profile with referring domains, toxic detection, competitor comparison, and opportunities.

Audit Detail

/seo/audit

On-page SEO audit results with issues by severity, readability scores, and technical recommendations.

Page Audit Detail

/seo/audit/page

Individual page audit breakdown with meta tags, headings, content, links, and technical checks.

Competitor SEO

/seo/competitors

SEO comparison with competitor DA, keyword overlap, and top keywords analysis.

Image Optimization

/seo/images

Image audit with file size, format, alt text, and compression recommendations.

Keyword Gap

/seo/keyword-gap

Keyword gap analysis between your domain and competitors — find keywords they rank for that you don't.

Backlink Gap

/seo/backlink-gap

Backlink gap analysis showing domains that link to competitors but not to you.

On-Page SEO Checker

/seo/onpage-checker

Page-by-page SEO audit with actionable fix recommendations and severity categorization.

Crawl Visualization

/seo/visualization

Interactive site crawl graph (DAG) showing page relationships, link structure, and orphan pages.

Traffic

/traffic

Traffic classification dashboard with live feed, agent breakdown, trends, threat analysis, and rules manager.

Leads

/leads

Lead verification dashboard with scoring, funnel visualization, status management, and export.

Lead Detail

/leads/:leadId

Individual lead profile with score breakdown, behavior signals, email analysis, and verification details.

Plus

/plus

AI content generation hub with template categories, credit display, and generation launch.

Plus Generate

/plus/generate

Step-based content generation wizard with template selection, configuration, and preview.

Plus History

/plus/history

Generated content history with filtering, search, and publish/archive actions.

Blog Post

/plus/blog-post

AI-generated blog posts optimized for AI visibility and SEO with keyword targeting.

FAQ Page

/plus/faq-page

AI-generated FAQ content with FAQPage schema markup for rich results.

Structured Answer

/plus/structured-answer

Generate structured answers optimized for AI assistant citations and featured snippets.

Website Copy

/plus/website-copy

AI-generated website copy for landing pages, product pages, and service descriptions.

Schema Markup

/plus/schema-markup

Generate JSON-LD structured data (Article, FAQPage, WebPage, HowTo, Product, etc.).

Meta Tags

/plus/meta-tags

AI-optimized title tags and meta descriptions with character counting and preview.

OG Tags

/plus/og-tags

Generate Open Graph and Twitter Card meta tags for social sharing optimization.

Directory Listing

/plus/directory-listing

Generate optimized business directory listings for improved local and AI visibility.

Outreach Templates

/plus/outreach-templates

AI-generated guest post pitches, link-building emails, and PR outreach templates.

Citation Plan

/plus/citation-plan

Generate a strategic citation plan identifying high-authority sources to target for backlinks.

SERP Simulator

/tools/serp-simulator

Preview how your pages appear in Google, Bing, and social media search results with real-time scoring.

Brands

/brands

Multi-brand management with brand cards, stats, and add/edit/delete operations.

Settings

/settings

Multi-tab settings: Profile, Team, Billing, Notifications, Integrations, Support.

Notifications

/notifications

Alert center with filtering by type/severity, mark read/resolve, and pagination.

Choose Plan

/choose-plan

Plan selection page with comparison table, pricing cards, and Razorpay checkout.

Custom Plan

/custom-plan

Enterprise custom plan inquiry form for tailored pricing and features.

Onboarding

/onboarding

Multi-step brand setup: Organization → Brand → Topics → Competitors → GSC.

CMS Module (16 Pages)

The CMS module is integrated into the main TruIntel app under the /cms/* route prefix. It is protected by CMSProtectedRoute (requires authentication + CreditsProvider) and plan-gated behind the "cms" feature flag.

Dashboard

/cms/dashboard

Overview of generated content, recent scans, and optimization activity.

Content Library

/cms/content

Browse all generated content with filtering by type and status.

Create Content

/cms/content/new

Start new content generation from templates or custom prompts.

Content Editor

/cms/content/:id/edit

TipTap rich text editor with SEO sidebar, AI assist, and auto-save.

Optimization

/cms/optimization

AI-powered page issue detection with fix preview and batch operations.

Edit Pages

/cms/edit-pages

List of published pages with quick edit actions.

Visual Page Editor

/cms/edit-page

Full-screen visual editor for modifying specific elements on published pages.

Domain Setup

/cms/onboarding

Connect custom domains, verify DNS with CNAME records, and extract brand templates.

CMS Settings

/cms/settings

Brand template management, re-extraction, SEO files (robots.txt, sitemap), and domain configuration.

CMS Competitors

/cms/competitors

Monitor competitor content strategies and publishing activity.

CMS Tasks

/cms/tasks

CMS-specific task management for content optimization and backlink improvements.

Backlink Fixes

/cms/backlink-fixes

Backlink optimization tasks with fix recommendations and progress tracking.

Robots.txt

/cms/robots-txt

View and manage your site's robots.txt file for crawler directives.

Sitemap

/cms/sitemap

View and manage your XML sitemap with published page entries.

Upgrade Plus

/cms/upgrade

Upgrade prompt for accessing premium CMS features and additional credits.

Credit History

/cms/credits

Credit usage log with balance tracking across Plan Credits and Extra Credits pools.