ask_ai_engine
ChatGPTAsks one AI engine (ChatGPT, Perplexity, Gemini or AI Mode) a question right now and returns its live answer and the sources it cited. Use it only when the reader wants to know what an engine says today, or wants a question the workspace does not track checked live; tracked prompts are already in get_prompts, get_prompt_detail and get_citations. Each call spends paid credits and the workspace has 20 a day: ask once per engine, never in a loop. Say that the answer is one live run and the next run can differ. AI Mode always runs in the US.
compare_competitors
ChatGPTCompares a brand with the competitors named in answer engine answers, per tracked topic, for a date window: for each topic, the number of answers analyzed and each top brand's mention percentage and rank.
create_playbook_task
ChatGPTCreates a planned task on a brand's action list in Henneth, but only after the user has confirmed it. Call it first with confirmed false: nothing is created and the result is a needs_confirmation proposal with the title, description and priority as they would be saved, plus the one question to ask the user. Show the proposal, ask that question, and call again with confirmed true only after the user agrees. Never pick the priority yourself: without one the result asks the user to choose, even when confirmed is true. Each confirmed call creates a new task.
derive_difference
ChatGPTSubtract the right stored figure from the left stored figure and return the signed difference with provenance. source_ref is a result_id previously returned by another Henneth tool. left and right are paths to numeric fields in those results. other_ref identifies the right result when different. Both figures must have the same unit; a difference between percentages is measured in percentage points. This only reads stored results accessible to the selected brand; it does not run arbitrary code or fetch external data.
derive_gap
ChatGPTReturn the unsigned gap and direction between two stored figures, with the selected brand's figure on the left and provenance for both inputs. source_ref is a result_id previously returned by another Henneth tool. left and right are paths to numeric fields in those results. other_ref identifies the right result when different. Both figures must have the same unit; a difference between percentages is measured in percentage points. This only reads stored results accessible to the selected brand; it does not run arbitrary code or fetch external data.
get_absence_competitors
ChatGPTName the tracked competitors that appear in the answers where this brand was NOT mentioned at all, over a window, with how many such answers each one occupies. Use this for a question about who fills the space when the brand is absent, who is winning the conversations it never enters, or who is named instead of it. get_topic_citation_gaps binds SOURCES to subjects; this one binds RIVALS to the brand's absence. Rows are only competitors this workspace tracks.
get_actions
ChatGPTRead recommended and tracked actions, including quick-win membership and stored impact scores.
get_ads_campaigns
ChatGPTList the selected brand's OpenAI (ChatGPT) Ads campaigns for a period: each campaign's status code, budget, countries, impressions, clicks, CTR, CPC and spend, sorted by spend, plus the ad account's totals and currency. period is a code: today, yesterday, this_week, last_week, last_7_days (the default), last_30_days, this_month or last_month (a named calendar month); days are cut in the ad account's timezone. language (tr or en) sets the language of the summary. Returns stored campaign figures; it does not create, pause or change any campaign.
get_ads_connection
ChatGPTRead the selected brand's current OpenAI Ads connection status using brand_id from list_brands. Henneth checks the stored connection with OpenAI when configured. Returns a state code (not_configured, connected, invalid_key, key_lacks_scope, vendor_unreachable or review_not_approved), and available account name, currency, timezone and review status. This is a read: it does not connect an account, accept an API key, change credentials or place ads.
get_ads_gaps
ChatGPTList the tracked questions whose AI answers named a competitor and never the selected brand, the most lost first, each with the competitors named: the questions an OpenAI Ads campaign could answer. days sets the window (default 30, at most 90); topic_id narrows it to one topic from list_scope. Returns stored answer analyses; it does not draft or create a campaign.
get_ads_history
ChatGPTList the changes made to this workspace's OpenAI Ads in the last N days, newest first: account connects and refused keys, campaign drafts, campaigns created, paused, resumed, archived and budget changes, whether made in Ask or on the Ads page. Each line names the member, the time in the workspace's timezone, the campaign and the outcome. Use it for "what did we change on ads this week", "bu hafta reklamlarda ne yaptık". Pass language: tr for a Turkish question, en otherwise; the table is written in it.
get_ads_landing_pages
ChatGPTList the pages of the selected brand's own website that an OpenAI Ads campaign on a topic could send people to, read from the site's sitemap: category pages first, then matching product pages, then other matching pages, each with an id, a title read off its URL, its path and the URL. topic is the product or category words the campaign is about; an empty topic lists the site's main category pages. Returns the candidate pages only; it chooses none and creates nothing.
get_ads_performance
ChatGPTRead how this workspace's OpenAI (ChatGPT) Ads are doing over a period and where the problem is: impressions, clicks, spend, CTR and CPC, the daily series, the device split of one campaign, and the sessions and key events the org's own GA4 recorded from the same ads. Each campaign carries finding codes decided from measured figures, and the worst campaign is named. Omit campaign for the whole account; pass campaign (the name the reader said) or campaign_id for one. Pass period as a code: today, yesterday, this_week, last_week, last_7_days (the default), last_30_days (also 'geçen ay', 'last month'), this_month, last_month (only a named calendar month). Pass language: tr for a Turkish question, en otherwise.
get_agent_analytics_bots
ChatGPTRead the Agent Analytics Bot Visits tab: every bot that visited the brand's own website (GPTBot, ClaudeBot, Googlebot...), its platform, what its traffic is for (Training, Retrieval, Search, Search Engine), its visit count and the pages it read most. These counts include search engines and every request a bot made, so they are higher than the Overview's AI agent visits. When there is no crawl data it says why instead of a count: report that sentence, never a zero.
get_agent_analytics_overview
ChatGPTRead the Agent Analytics Overview tab: which AI agents (ChatGPT, Claude, Perplexity...) read the brand's own website, from its crawl logs. Returns AI agent visits, unique bots, pages crawled, retrieval share, the change on the previous window, visits per AI platform, the top pages, the daily trend and crawl health (the share of responses to bots that succeeded, status below 400), with search engines and scanner requests set apart. When there is no crawl data it says why (tracking not connected, nothing arrived yet, or a gap) instead of a count: report that sentence, never a zero. Crawl visits are not citations: citations come from get_citations.
get_agent_analytics_pages
ChatGPTRead the Agent Analytics Pages tab: every page of the brand's own website that AI agents read, ranked by visits, with the share that were live user questions (retrieval) and which AI platforms read it. When there is no crawl data it says why instead of a count: report that sentence, never a zero.
get_answer
ChatGPTRead one stored AI answer in full, as the response drawer shows it: the engine, the date, the whole answer text, whether and where it names the brand, its sentiment, the competitors it names, the sources it cites (each marked when it is on the brand's own domain) and the searches the engine ran. Takes an answer_id from get_prompt_detail or get_sentiment_answers. Use it to quote or explain what an engine actually said.
get_answer_ads
ChatGPTRead historical ad observations already collected and stored in Henneth for the selected brand's tracked prompts. Returns advertiser shares, platform ad fill, daily observations and own-brand or competitor labels for the requested window. Optional platform, prompt_id and country filters narrow the stored observations; advertiser selects one advertiser's stored ad details including title, price, rating, placement, page and prompt. This tool queries Henneth's database; it does not fetch live AI answers, contact ad vendors or place ads. Use get_ads_performance for the brand's own connected campaigns.
get_audit
ChatGPTThe Readiness screen's Audit tab: how ready the brand's site is for AI assistants. The latest completed audit's readiness score, the six dimension scores with the worst and best, the findings per severity and how many block, the Priorities list in the panel's order, and this run against the one before.
get_audit_finding
ChatGPTOne finding of the latest readiness audit, as its panel drawer shows it: why it matters, the projected score lift and its reason, effort, owner, the queries it drives, the competitors winning there, and when it counts as done. Name the finding by its title, a unique part of the title, or its slug.
get_audit_history
ChatGPTThe Readiness screen's History tab: the completed readiness audits newest first, each with its score, the change from the run before, open and critical findings and completion, and what changed between the latest audit and the one before it.
get_brand_context
ChatGPTWhat the reader's team has written down about the brand, one document per record: company, audience, offerings, competitors (how the brand positions against them), voice and strategy. Call it with no record to see each record's section headings, then with record to read one document, or with record and heading to read one section. It is background for names, positioning, claims and tone, not evidence: every figure you state comes from a data tool.
get_branded
ChatGPTRead the branded (head-to-head) prompts, as the Branded tab shows them: prompts that name brands, such as "Brand vs Rival". For each, how many answers, how often the answers name the brand, its sentiment, how often it comes before the nearest rival, and which tracked competitors the answers name; plus the totals across them. Use it for comparison and "X vs Y" questions. get_competitor_comparison compares headline visibility instead. Optional topics and platforms filters cut it to that slice.
get_catalog_issues
ChatGPTLists a brand's product feeds in Henneth with their product count, last sync date and status, and the issues Henneth can see: a failed sync, a sync older than twice the feed's interval, products out of stock, products without a stock status, and products without a material (named, up to five).
get_citation_domain
ChatGPTRead one cited domain in depth, as its drawer on the Citations tab shows it: its share of all citations and the change against the window before, the pages of that domain the AI answers cite with each page's share, and which engines cite it. Use it for why a site is cited, which of its pages win, or which engine favours it. Takes a domain exactly as get_citations names it. Optional topics, tags and platforms filters cut it to that slice.
get_citation_losses
ChatGPTName the individual websites that decide this category: how often each is cited, which competitors it mentions, and whether it mentions the owned brand. Use this for where the brand is losing citations, which sources to win, and any question about named publishers or domains. get_citations gives the earned/owned/operated split of the whole pool; this gives the sources behind it.
get_citations
ChatGPTRead which websites AI answers cite, for one slice: optional platforms, topics, tags and persona, over a window and the window before it. Returns every cited domain with its share of citations in percent, its change in percentage points, its citation count and its category (Owned, Competition, Earned Media, Social, Other; a competitor's domain carries the competitor's name), the brand's own domain with its rank, share and change, and the category split. Use it for any question about being cited, referenced or used as a source, on one platform or all. Use names from the user's sentence or from list_scope. For one prompt, use get_prompt_detail: citations are recorded per prompt. For one domain's pages, use get_citation_domain.
get_competitor_comparison
ChatGPTCompare the owned brand with tracked competitors by visibility over one common recent window, with each brand's change versus the window before it. Use this for competitor rankings, for who gained or lost the most, and for competitor comparison charts. For branded "Brand vs Rival" prompts, use get_branded.
get_ga4_paid
ChatGPTRead what the org's own GA4 recorded from its ChatGPT ads (the UTM pairs of its campaigns' templates; the create form's is utm_source=chatgpt, utm_medium=paid) over a period: sessions, engaged sessions and key events, split by ad. For clicks and GA4 side by side for the same campaigns, use get_ads_performance instead. Pass period as a code: today, yesterday, this_week, last_week, last_7_days (the default), last_30_days, this_month, last_month.
get_overview
ChatGPTRead the org's headline visibility score, change, and daily trend for a date window. This is the same score get_visibility returns for that window. Use this when drawing a KPI chart of headline visibility. For a named topic, tag, persona, or platform slice, use get_visibility.
get_persona_comparison
ChatGPTCompare personas by window headline visibility, the same basis as get_visibility, for a date window.
get_platforms
ChatGPTCompare or rank all monitored platforms by visibility and analyzed response count for a recent date window. This tool does not filter to one requested platform. For one named platform, use get_visibility with its platforms filter. Optional topics and tags filters cut the denominator to that slice.
get_prompt_answers
ChatGPTReturns the latest answer each answer engine gave to one tracked prompt in the last 28 days: the engine, the date, whether the answer names the brand (null when the answer is not analyzed yet), the competitors it names, an excerpt of up to 1500 characters, and up to 10 cited URLs.
get_prompt_detail
ChatGPTRead one tracked prompt in depth, as its Prompt Detail drawer shows it: where the brand's own domain ranks among the domains the AI answers cite for this prompt, its citations out of all citations, the most cited pages with their share, how many analyzed answers name the brand in total and per platform, and the newest answers with their answer_id for get_answer. Use it for any question about one prompt: is it cited, which pages are cited, is the brand named. Takes a prompt_id from list_prompts.
get_prompts
ChatGPTRead how tracked prompts perform: topic, window visibility, and average mention position, for the prompts that already have results. A prompt added recently has no results yet and is not in this read; list_prompts lists every tracked prompt. Optional topics, tags, and platforms filters cut the list to that slice. For a ranking, draw a bar of prompt against visibility; do not chart prompt_id. For one prompt's cited pages and answers, find its prompt_id with list_prompts and read get_prompt_detail.
get_query_fanouts
ChatGPTRead the web searches AI engines ran while answering the tracked prompts, as the Related queries tab lists them: per prompt, the distinct searches, how often each ran and on which engines, and searches per answer. Use it for what the engines look up behind a prompt, or which searches to rank for. Only engines that expose their searches (ChatGPT, Perplexity) appear. Optional prompt_id narrows it to one prompt; topics, tags and platforms filters cut it to that slice.
get_quota
ChatGPTRead the org's monthly playbook run usage, remaining allowance, limit, and current period.
get_sentiment
ChatGPTRead positive, neutral, and negative sentiment shares plus the daily positive-share trend for a recent date window. Optional topics, tags, and platforms filters cut the denominator to that slice. For the answers behind a share, use get_sentiment_answers.
get_sentiment_answers
ChatGPTRead the stored AI answers behind one sentiment bucket (negative, neutral or positive), as the Sentiment tab lists them: the most extreme first, each with its answer_id, engine, prompt, topic, date, sentiment score and an excerpt. Use it for why the tone is negative or positive and what the engines say. get_sentiment gives the shares; get_answer reads one answer in full. Optional topics, tags and platforms filters cut the list to that slice.
get_topic_citation_gaps
ChatGPTFor each topic the brand is losing, name the websites cited in the answers it lost. Use this to say WHICH subject is being lost and to WHICH sources, for a question about where citations are going, which topics need content, or where a competitor is winning the conversation. get_citation_losses is the category-wide view; this one binds sources to subjects.
get_topic_comparison
ChatGPTCompare the owned brand with its tracked competitors topic by topic, as one visibility figure per brand per topic. Use this for where the brand leads and where it trails by subject, and for a topic-by-brand comparison chart.
get_visibility
ChatGPTRead the org's brand visibility for a date window: headline score, change vs the previous window, and the daily trend. Use for questions about how visible the brand is in AI answers. For visibility or absence on one named platform, use this tool's platforms filter. Optional topics, tags, and platforms filters cut the denominator to that slice. Use names from the user's sentence or from list_scope.
get_visibility_summary
ChatGPTReturns a brand's visibility in answer engines for a date window: the brand's headline metric (brand share or coverage, as set for the brand in Henneth) as a percentage, its change in points against the previous window of the same length, the brand's rank among tracked brands, the number of answers analyzed, the score per answer engine, and the top brands on the same metric.
list_brands
ChatGPTLists the Henneth brands your account can access, with each brand's brand_id, name and your role in it. Every other Henneth tool takes a brand_id from this list.
list_playbook_alerts
ChatGPTLists a brand's most recent alerts, newest first (kind, severity, title, detail, the date raised), and the findings of the latest completed stock guard report: products the answer engines recommended that are out of stock, of unknown stock, or missing from the product catalogue, with how many answers named each and on which engines.
list_prompts
ChatGPTList the tracked prompts themselves, as the Prompts page does: id, text, topic, tags, active or paused, the date added, and whether results exist yet. Every prompt it lists is added and tracked, including one added a minute ago with no results yet. Use it to find the prompts a member means before tag_prompts, pause_prompts, resume_prompts or delete_prompts, and for "the ones we just added" (added_within_days). It has no visibility figures: for performance use get_prompts.
list_scope
ChatGPTList the topics, tags, personas, and monitored platforms configured for this workspace. Use when the user asks what exists or before asking them to pick a slice. This is configuration, not a measurement: it has no visibility scores. For ranking platforms by visibility, use get_platforms.
list_tracked_prompts
ChatGPTRead the selected brand's stored prompts from enabled tracked topics and their previously collected statistics for the returned 28-day window. Returns prompt_id, text, topic, answers and visibility_pct; metric and metric_definition identify the percentage basis. Unanswered prompts have answers=0 and visibility_pct=null. Results are sorted by visibility descending, unanswered last, with an optional topic filter and limit. This tool reads Henneth data; it does not send prompts to AI engines or collect new answers.
rank_results
ChatGPTRank the rows of one stored result by the numeric field in by. Use order (desc by default, or asc) and limit (10 by default, at most 25). Return the ranked rows with provenance. source_ref is a result_id previously returned by another Henneth tool. This only reads stored results accessible to the selected brand; it does not run arbitrary code or fetch external data.