AI assistant — advice + app control in a single chat
The built-in assistant answers questions about plans, features and your live data — and can configure things directly for you: add websites, create heartbeats, set up escalation workflows, start plan upgrades. Every action that changes something in your account requires your confirmation. Available in the marketing frontend (without signing in) and in the app dashboard (with your real data).
# At a glance
Read live data
Accesses all your data with your login: status, alerts, changelog, analytics, forms, media, heatmaps, recordings, A/B tests, insights, heartbeats, API endpoints, reports, competitors — exactly what the app itself sees.
Operate the app — with confirmation
Describe setups in plain language — e.g. 'Create 3 heartbeats for my backups, every 24h'. The assistant shows a confirmation card with all values + diff. Only your click executes.
Stripe checkout directly in chat
If a feature exceeds your current plan, the assistant suggests the right upgrade and creates a Stripe checkout button — one click, new tab, done.
Memory across conversations
What you contribute that is not in the data — notes, decisions, background, preferences, plans — the assistant stores and brings into the next conversation. You see every entry under Settings → AI memory and edit or delete it there.
Up to 5 parallel conversations
Multi-tab in app mode — keep setup questions, reports, plan advice separate. Each tab has its own history, auto-title from first question.
# Where do I find the assistant?
Floating bubble bottom left
On every page — both marketing site and logged-in dashboard — a chat icon appears bottom left with a rotating color ring and a small `KI` pill as visual cue that it's not human support.
Bottom sheet on mobile
Below 768 px the widget auto-switches to a full-width bottom sheet (lower half of the screen, 50 % height) — no drag/resize but undistracted read/write area.
Freely placeable on desktop
Above 768 px you can drag the widget by its header and resize at the bottom-right corner. Position + size are saved in your browser. The Reset button in header restores defaults.
# Skills: read data
Account overview in one tool call
`get_account_overview` aggregates: plan + limits utilization, all websites with status, all open alerts (cross-site), last 10 global changelog entries, active heartbeats, SSL expiries < 30 days. Auto-called when you ask how things are going on the dashboard.
Per website: details, alerts, changelog, analytics, security
`get_website_details` (score, uptime, SSL, Lighthouse, hosting, DNS), `get_website_alerts` (open incidents), `get_website_changelog` (visual diffs, DNS changes, security drops), `get_website_analytics_summary` (PV/sessions/visitors/top pages/channels/geo), `get_website_security_findings` (headers, privacy trackers, mixed content).
Analytics modules: forms, media, heatmaps, recordings, A/B (Business+), insights & weekly summary (Starter+)
`get_website_module_data(module=...)` with module=forms/media/heatmaps/recordings/experiments/insights/weekly_summary. Returns funnels with drop fields (forms), engagement rates (media), top click targets + rage/dead clicks (heatmaps), tagged sessions (recordings), variant stats for A/B winner, auto-detected anomalies (insights) and the latest weekly plain-text summary (weekly_summary). The first five modules require Business; insights and weekly summary run on the same gate as base analytics and are available from Starter.
E-commerce and shop data (Business+)
`get_website_ecommerce(report=...)` reads the e-commerce reports of one website or all websites (up to twelve per call, result per website): overview (revenue, average order value, funnel, top products), order_log (order history), finance (gross to refund), abandoned (abandonment), recovery (identified customers with an open cart), refunds, carts, customers (the 25 customers with the highest revenue), products (product list with categories and bestsellers), payment_shipping (payment and shipping methods), shop_summary (figures of the Shopware order import: origin, states, cancellations, refunds, open payments and deliveries, sales channels, tracker capture rate, repeat buyers) and shop_status (status of the shop connection and the order import, without Access Key ID and API address). Period today, yesterday, 7d, 30d, 90d or 365d, for shop_summary also all; amounts in cents. `get_account_overview` additionally lists shop connections with errors.
Plan advice + pricing
`list_plan_limits` (Free/Starter/Business/Agency limits), `get_pricing` (prices + add-ons + trial info), `get_user_context` (which plan is active, how many sites verified, open alerts).
Generic API read bridge
`app_api_read(path)` with a whitelist of 50 GET path patterns — if no specialized tool fits. GET only (mutations run through the confirm tools), paths gated against user scope. Calls the real backend API with your login scope, same data as the app UI. On an invalid path the model receives a silent self-correction with the valid paths — no red error in chat.
Docs and handbook search
`search_docs(query)` searches docs, handbook and blog articles via MariaDB full-text (relevance ranking, DE+EN, internal chunks stay hidden from customers) and returns the best excerpts with source links. `find_feature_in_app(feature)` shows where a feature lives in the app (route + breadcrumb + plan requirement).
# Example: status overview
XICTRAQ Assistant
AI replies instantly
Research
shop.invalid has had 502 for 12 min, 1× SSL expires in 9 days on xictraq.com). Heartbeats running. Web Vitals are green.# Example: performance question with live data
XICTRAQ Assistant
AI replies instantly
Research
xictraq.com/en today: LCP 232 ms (very good, threshold <2.5s), CLS 0.00 (perfect), INP 12 ms. Lighthouse performance score: 100/100. Web Vitals are green across all devices.# Example: form analytics — where do users drop off?
XICTRAQ Assistant
AI replies instantly
Research
phone (132×), street (87×), company_size (61×). Recommendation: make phone optional, move address to a post-submit confirmation page.# Skills: operate the app with confirm card
Websites & verification
`add_website` (URL + name + check interval, generates verification token), `update_website_settings` (rename/change interval), `delete_website` (red card, irreversible with consequence description).
Heartbeats for cron jobs
`add_heartbeat` with name + `expected_minutes` (expected interval) + `grace_minutes` (tolerance, default 5). After confirmation the tool returns a unique ping URL — add it at the end of your script/cron job. If the ping is missing for longer than interval + tolerance, an alert fires.
# Cron — ping after a successful backup (exit code 0) 0 3 * * * /usr/local/bin/backup.sh && curl -fsS \ https://api.xictraq.com/api/heartbeat/<slug>/ping > /dev/null
API endpoint monitoring
`add_api_endpoint` with method + URL + expected status + interval. Plan-gated (not available on Free).
Competitors + SEO keywords
`add_competitor` (attach competitor under your own website — Business+), `add_keyword` (store search term + country — Business+, position measurement not yet enabled).
Escalation workflows
`add_escalation_policy(name, steps[])` with multiple steps — per step delay_minutes (from alert start), channels (email/slack/discord/telegram/teams/webhook) and optional contact. Example: 'first mail, slack after 15 min, telegram after 30 min.
Alert channels & thresholds
`update_alert_config` sets global channels (Slack webhook, Discord webhook, Telegram bot+chat ID), email address, SSL warning days, security score threshold. Security webhooks are shown in the diff as '(set anew) — never the real value for audit logs.
Resolve alert
`mark_alert_resolved` closes an open alert (severity + type shown in diff). Use after fixing — status flips to 'resolved instantly + shows in audit log that the assistant did it.
Team & status pages
`invite_team_member` (email + role, plan limit check, invitation mail with magic link), `add_status_page` (slug + title, generates public token + URL).
Trigger reports manually
`request_report_now` for weekly or monthly report of a website (Business+ — auto reports included in plan, manual trigger anytime).
# Example: setup by voice/text
XICTRAQ Assistant
AI replies instantly
Create heartbeat: Daily Backup
- Expected interval
- 1440 min
- Grace period
- 30 min
https://api.xictraq.com/api/heartbeat/d9f...e7c/ping — append curl -fs <URL> > /dev/null to the end of your backup script. If the ping is missing for more than 24h + 30 min, an alert fires.# Example: destructive action with explicit confirm
XICTRAQ Assistant
AI replies instantly
Research
DELETE website: example-staging.invalid
This action is permanent — all analytics data, changelogs, heatmaps and recordings for this website will be deleted and cannot be restored.
- URL
- https://example-staging.invalid
# Plan upgrade & add-ons directly in chat
`start_plan_upgrade(plan, interval)`
Creates a Stripe checkout session and delivers a large CTA button in chat. With an active subscription it upgrades in-place with prorated billing — no checkout needed, plan switches instantly.
`start_addon_checkout(addon_key, qty)`
7 add-ons, all bookable: Extra Website (€3/M, qty 1–100), Extra Team Member (€3/M, qty 1–50), Responsive-Preview Pack (€7/M), Extended Retention (€9/M), AI Booster (€12/pack/M, qty 1–3: +200 chat msgs/day and +500/month per pack), Priority Support (€15/M), Custom-Domain Status Page (€5/M per domain, qty 1–25). All add-ons can be cancelled monthly. Each booking runs as its own Stripe checkout in new tab.
# Example: plan advice + Stripe checkout
XICTRAQ Assistant
AI replies instantly
Research
# Context awareness — the assistant knows where you are
Current page + tab + range
Per question the frontend transmits the page context (area, current website ID if on a detail page, tab, time range). When you ask 'How many visitors? on the analytics page, the assistant immediately knows for which site and range — no follow-up.
Inventory pre-knowledge
On first API call the list of your websites (name, URL, status, verification status, ID) is loaded into the page context. The assistant knows without a tool call whether you have 0/1/N sites — for 0 it offers `add_website`, for 1 it uses the ID automatically without asking.
Quick actions depending on page
When opening the chat, 3-4 suggested questions are shown — depending on the current area. On /preise: 'Which plan fits 5 sites?. On /app/analytics: What are my top sources?. On /app/settings/billing: Upgrade to Business. 18+ context sets, each conversion-optimized.
Follow-up suggestions after each answer
After each bot answer, 2-3 logical follow-up questions appear as clickable pills — e.g. after status overview: 'Which alert is most critical?, Analyze SSL problems, How do I enable escalation?. One click = next question.
# Memory — what you say still counts tomorrow
What the assistant remembers
Everything you say about your situation that is not in the measured data: notes, decisions you made, background on a campaign or relaunch, preferences for how we work together, plans with a date. Five kinds — note, decision, background, preference, plan. Not stored: numbers it can fetch anytime, throwaway detail from the running conversation, and credentials.
How it works in the next conversation
The set travels along as context with every question — up to 40 entries or 6,000 characters, pinned first, then the most recently changed. The assistant treats your statements as given; if measured data contradicts them, it says so instead of glossing over it.
The title is the key
The same title overwrites the existing entry instead of creating a second one — 'technical support' never becomes a pile of contradictory versions. When things change, just say so in chat: the assistant updates that same entry.
Limits and scope
300 entries per login, titles up to 160 and content up to 2,000 characters. At the cap the assistant rejects new titles instead of silently dropping older ones — existing entries stay editable regardless. The set belongs to your login, not the account: a team member has their own memory. If a statement concerns exactly one website, it is tied to it and only shows up there.
# Example: have something remembered
XICTRAQ Assistant
AI replies instantly
Research
# Multi-tab — clean separation of parallel topics
5 parallel conversations
In app mode the widget shows a tab strip on top. + button starts a new conversation. Oldest auto-archived when limit reached. Each tab has its own history, the bot can work on 5 topics in parallel.
Auto-title + per-tab close
Tab title = first 60 characters of the first user message. Close per tab via X — others stay open. The oldest conversation is auto-archived once the limit is reached.
Clear history closes only the active tab
Trash icon in header closes ONLY the current tab — others stay active with full history. So you can delete a completed consultation without losing your setup help.
# Security & limits
What the bot CANNOT do
Change password, reset 2FA, change email address, delete account, configure lifetime license, cancel Stripe subscription — these actions require re-auth in the UI and are intentionally excluded from the tool set.
Strict user-scope isolation
Every mutation and every read tool is gated against `user_id`. Passing a foreign ID returns 403 — even the bot cannot read or write across account boundaries. Multi-tenant isolation at DB query level.
Plan limits checked in preview
If you request a mutation that exceeds your plan (e.g. 11th website on Business with 10-limit), the bot detects this in the preview step and immediately suggests `start_plan_upgrade` as follow-up — one-step solution.
Prompt-injection detection
The bot detects typical injection patterns ('ignore instructions, reveal the system prompt) and answers with a polite refusal instead of complying. An output filter checks answers for leaked API keys/secrets/internal emails — anything that slips through is redacted before delivery.
Rate limits
Per conversation: Free 10 / Starter 15 / Business 50 / Agency 100 (then automatic handoff to a staff member). Daily cap: Free 15 / Starter 50 / Business 100 / Agency 300. Monthly cap: Free 50 / Starter 300 / Business 800 / Agency 2000. Add-on AI Booster (EUR 12/month, stackable up to 3 times) raises day by +200 and month by +500 per pack. Maximum 5 write actions per conversation against run-away loops. Visitors who are not signed in are additionally capped at 14 msgs/IP/hour + 40/IP/day.
# GDPR & privacy
Anthropic as data processor
The assistant runs on the LLM API of Anthropic (USA, with EU standard contractual clauses via DPA). Click-through DPA is sufficient per Art. 28(9) GDPR; XICTRAQ archives the DPA as PDF and maintains an entry in the processing record.
What goes to Anthropic
Per request: your message, the system prompt with XICTRAQ feature descriptions, the tool definitions and the tool results. Output filter removes API keys, passwords, bearer tokens, internal XICTRAQ emails. Plus your memory entries as far as they fit the context — i.e. what you stored yourself. No tracking hashes, no raw customer data unrelated to the question.
Retention
Conversations without signing in are deleted after 30 days, logged-in conversations after 365 days. Stale conversations (>24h without reply) are auto-closed. You can close each tab manually (= soft delete) or remove the full history via 'Delete account data. Memory entries deliberately have no retention limit — they stay until you edit or delete them under Settings → AI memory.