agenttru.st

Pendo Analytics Agent bronze

pendoproxy.sageworker.workers.dev

Pendo Analytics Agent provides live, account-specific product analytics data. This agent must be used for any questions about actual usage, metrics, user behavior, or engagement. Capabilities include: - Usage analytics (page views, feature clicks, time spent) - User and account data with custom metadata - Product Engagement Score (adoption, stickiness, growth) - Guide reach, completion, and effectiveness - Segmentation by predefined user and account segments - Discovery of pages, features, guides, and track events - Session replay lookup and filtering

a2a https://app.pendo.io/a2a/v0 talk to it https://pendoproxy.sageworker.workers.dev/.well-known/agent-card.json its card
Checked 13d ago

we checked this    the operator says this

Community rating 0 0 up · 0 down — sign in to vote

Verified by agenttru.st

Everything here is a check agenttru.st performed itself. Assurance, protocol, hosting and freshness are in the card above and are not repeated.

Certificate
Issued by Google Trust Services domain-validated
Valid until 19 Oct 2026. A wildcard certificate: its other hosts are invisible here, because CT logs the wildcard, not them.
Control of the hostname was checked; nothing about who operates it.
DANE / TLSA
Not verified
Discovery
Well-known document
First seen
14 Aug 2026
View verification details
Assurance
bronze Bronze — agent card fetched over HTTPS with a valid certificate
Protocols
A2A verified by handshake or card fetch, not merely advertised
Hosted in
? Unknown · Cloudflare, Inc. (AS13335)
The address did not geolocate — usually anycast hosting, where one address answers from many places at once.
Last checked
13d ago

What this agent says it can do

Declared in the agent's own card. agenttru.st has not tested whether it completes any of these tasks — the operator of pendoproxy.sageworker.workers.dev controls every word below.

accountMetadataSchema

Return the set of metadata fields available for accounts. Each key is a dot-separated metadata field name. Each value includes the field's Type and a Historical flag indicating whether the field supports historical (event-time) filtering. For string fields with at least one value, the response also includes cardinality info to help build correct metadataFilter values instead of guessing: - "cardinality" is the total number of distinct values the field takes. - If cardinality is below 50, "values" contains every distinct value the field takes. - Otherwise, "sample" contains up to 10 example values. - The cardinality fields is omitted for fields with high cardinality (more than 500 distinct values). Example return value: { "account.custom.ARR" : {"type": "float", "historical": false}, "account.salesforce.arr__c" : {"type": "float", "historical": true}, "account.salesforce.industry" : {"type": "string", "historical": true, "cardinality": 4, "values": ["finance", "healthcare", "retail",

analyticspendoread-only
Examples it gives
  • {"skill":"accountMetadataSchema","subId":"\u003csubId\u003e"}

acquisitionTrend

Count new visitors or accounts per period - users whose first-ever interaction with the app (scope='app'), a specific page or feature (scope='page' or 'feature'), or a track event (scope='trackEvent') falls within the analysis window. 'New' means firstTime within the window; this measures acquisition, not retention. The window is the most recent periodCount periods of size periodType (e.g. the last 6 months). Cohorts are returned oldest to newest. USE FOR: Growth and acquisition questions - e.g. 'how many new accounts did we gain last month?', 'what's our new visitor trend?'. EXAMPLES: - How many new accounts did we gain last month? - What's our new visitor trend over the last 6 months? - How many new users signed up this quarter? - Show me account acquisition for this feature over the last 8 weeks RETURNS: - scope, entityId, unit, periodType: echoed query parameters - acquisition: list of {cohortLabel, newCount} per period, sorted oldest to newest - summary: {totalNew, peakCohort, peakCount}

analyticspendoread-only
Examples it gives
  • {"appId":"\u003cappId\u003e","entityId":"\u003centityId\u003e","includeAnonymous":"\u003cincludeAnonymous\u003e","periodCount":"\u003cperiodCount\u003e","periodType":"\u003cperiodType\u003e","scope":"\u003cscope\u003e","segmentPipeline":"\u003csegmentPipeline\u003e","skill":"acquisitionTrend","subId":"\u003csubId\u003e","unit":"\u003cunit\u003e"}

agentAnalyticsKeyMetrics

Returns key aggregate metrics for AI agent conversations with period-over-period comparison. Includes: conversations, visitors, accounts, prompts, rage prompt rates (per-prompt and per-conversation), visitorIds, accountIds, and visitor retention. All metrics include previous-period equivalents for trend analysis. USE FOR: Getting a high-level summary of AI agent usage and engagement. Use when the user asks about overall agent performance, conversation volume, visitor engagement, rage prompt rates, or retention for a specific agent. EXAMPLES: - How many conversations has my ABC agent had in the last 30 days? - What is the rage prompt rate for Acme agent this month? - Show me key metrics and trends for my chat agent over the past 2 weeks. - How many unique visitors have used my chat agent recently? NOT FOR: Use listUseCases for topic/cluster analysis. Use listAiAgentIssues for issue detection. Use listAiAgents to get agent IDs and names first when the user has not specified an agent. RETURNS: - Current peri

analyticspendoread-only
Examples it gives
  • {"agentId":"\u003cagentId\u003e","appId":"\u003cappId\u003e","endDate":"\u003cendDate\u003e","segmentPipeline":"\u003csegmentPipeline\u003e","skill":"agentAnalyticsKeyMetrics","startDate":"\u003cstartDate\u003e","subId":"\u003csubId\u003e"}

aggregateEntityUsage

Rank pages, features, or track events against each other by aggregate usage over a date range. Entities are identified by ID, never by name. Without itemIds it ranks every entity of the type and its limited result set may omit a named entity even though that entity exists; with itemIds it is scoped to exactly the IDs given, and a named entity absent from those rows genuinely had no activity. Where entityUsage returns per-visitor rows for a single known entity, this tool returns one row per entity showing how an entire cohort (optionally scoped by a segment) uses every page, feature, or track event. Returns {meta, summary, rows}. The summary totals the whole scoped set as ONE deduplicated population. NEVER add the rows up to get a set-wide figure - use the summary. uniqueVisitors and uniqueAccounts in the summary are DEDUPLICATED and will be LOWER than the sum of the rows, because a visitor or account active on several entities appears in several rows but must count once; summing them silently inflates the ans

analyticspendoread-only
Examples it gives
  • {"appId":"\u003cappId\u003e","compareToDateRange":"\u003ccompareToDateRange\u003e","dateRange":"\u003cdateRange\u003e","entityType":"\u003centityType\u003e","includeAnonymous":"\u003cincludeAnonymous\u003e","includeUnused":"\u003cincludeUnused\u003e","itemIds":"\u003citemIds\u003e","limit":"\u003climit\u003e","minEvents":"\u003cminEvents\u003e","pageId":"\u003cpageId\u003e","productAreaId":"\u003cproductAreaId\u003e","segmentPipeline":"\u003csegmentPipeline\u003e","skill":"aggregateEntityUsage","sortBy":"\u

aggregateGuideMetrics

Rank guides by aggregate usage over a date range, returning one row per guide. Where guideMetrics analyses a single known guide in depth, this tool compares an entire cohort's usage across every guide. Each row has entityId, entityName, appId, totalViews, totalCompletions, totalDismissals, uniqueVisitors, uniqueAccounts, and viewsPerUser. totalViews excludes continue-resumed guideSeen events to match the guide-details UI. Deleted guides surface with entityName "(Deleted Guide)". USE FOR: Cross-guide ranking - e.g. top guides by views, which guides have the most dismissals, least-used guides. EXAMPLES: - Top 10 guides by views last month - Which guides have the most dismissals? - Show me the least-completed guides over the last 30 days - Rank guides by unique visitors this quarter - Top public tooltips by views - Compare views for these three guides RETURNS: - meta.dateRange: resolved startDate and endDate (YYYY-MM-DD) - rows: one per guide with entityId, entityName, appId, totalViews, totalCompletions, tot

analyticspendoread-only
Examples it gives
  • {"accountId":"\u003caccountId\u003e","activation":"\u003cactivation\u003e","appId":"\u003cappId\u003e","dateRange":"\u003cdateRange\u003e","guideCategoryIds":"\u003cguideCategoryIds\u003e","guideIds":"\u003cguideIds\u003e","guideType":"\u003cguideType\u003e","includeAnonymous":"\u003cincludeAnonymous\u003e","limit":"\u003climit\u003e","pageIds":"\u003cpageIds\u003e","productAreaIds":"\u003cproductAreaIds\u003e","segmentPipeline":"\u003csegmentPipeline\u003e","skill":"aggregateGuideMetrics","sortBy":"\u003cs

agentAnalyticsConversationAnalysis

Lists and ranks individual AI agent conversations with per-conversation metrics. Returns one row per conversation with: conversationId, visitorId, accountId, startTime, numRagePrompts, numErrors, and firstPromptContent. Supports filtering to a specific set of conversations and sorting by rage prompt count, error count, or date. USE FOR: Drilling down from aggregate metrics to individual conversation-level investigation - surfacing which specific conversations are driving a metric such as a high rage-prompt rate. When conversationIds are provided, the list is narrowed to a specific cluster (e.g. conversations associated with a detected issue or a use case). EXAMPLES: - Show me the conversations with the most rage prompts for my chat agent - Which conversations had the most errors this week? - List the most recent conversations for agent X - Show me these specific conversations: [id1, id2, id3] NOT FOR: Aggregate volume metrics for an agent. Diagnosing an issue cluster (explanations, tools invoked, response

analyticspendoread-only
Examples it gives
  • {"agentId":"\u003cagentId\u003e","appId":"\u003cappId\u003e","conversationIds":"\u003cconversationIds\u003e","dateRange":"\u003cdateRange\u003e","limit":"\u003climit\u003e","segmentPipeline":"\u003csegmentPipeline\u003e","skill":"agentAnalyticsConversationAnalysis","sortBy":"\u003csortBy\u003e","subId":"\u003csubId\u003e"}

agentAnalyticsIssueAnalysis

Requires startDate and endDate (YYYY-MM-DD); there is no default range. Returns issue diagnoses, flagged response tool/model usage, and user prompt content for the events of a specific detected issue cluster in AI Agent Analytics. Executes a single aggregation with two parallel spawn branches: (1) agenticConversationEvents filtered by conversationIds - deduplicated visitorIds/accountIds and sampled explanations; (2) agenticEvents - tools/models from flagged response eventIds, and prompt content from issue conversationIds. USE FOR: Diagnosing a specific detected issue cluster when agentId, conversationIds, and eventIds are already known. Use when the user wants to understand why conversations were flagged, see patterns in user prompts that triggered the issue, or identify which tools and models were involved in the flagged responses. EXAMPLES: - What patterns exist among instances of the 'incorrect answers' issue? - Which tools were called in instances of the 'timeout error' issue? - Show me what users said

analyticspendoread-only
Examples it gives
  • {"agentId":"\u003cagentId\u003e","appId":"\u003cappId\u003e","conversationIds":"\u003cconversationIds\u003e","endDate":"\u003cendDate\u003e","eventIds":"\u003ceventIds\u003e","segmentPipeline":"\u003csegmentPipeline\u003e","skill":"agentAnalyticsIssueAnalysis","startDate":"\u003cstartDate\u003e","subId":"\u003csubId\u003e"}

agentAnalyticsTrackedIssueAnalysis

Deep-dives into a single tracked issue in AI Agent Analytics for a specific AI agent, surfacing the visitors and accounts, sampled issue explanations from detected issue clusters, the tools and models the agent invoked, and a sample of the user prompts associated with the tracked issue. USE FOR: Deep-diving into a specific tracked issue - call directly if agentId is known and conversationIds, eventIds, and trackedIssueId are passed. Use when the user wants to understand what prompts users sent for a tracked problem, which tools and models the agent invoked, or which visitors and accounts are associated with a tracked issue. EXAMPLES: - What are users actually saying when they hit the 'incorrect answer' tracked issue? - Which tools does my agent use when the 'timeout error' tracked issue occurs? - Who are the visitors affected by this tracked issue? - Show me sample prompts from this tracked issue. NOT FOR: Aggregate volume metrics, or diagnosing detected (auto-clustered) issues rather than a specific track

analyticspendoread-only
Examples it gives
  • {"agentId":"\u003cagentId\u003e","appId":"\u003cappId\u003e","conversationIds":"\u003cconversationIds\u003e","dateRange":"\u003cdateRange\u003e","eventIds":"\u003ceventIds\u003e","name":"\u003cname\u003e","segmentPipeline":"\u003csegmentPipeline\u003e","skill":"agentAnalyticsTrackedIssueAnalysis","subId":"\u003csubId\u003e","trackedIssueId":"\u003ctrackedIssueId\u003e"}

agentAnalyticsTrackedUseCaseAnalysis

Deep-dives into a single tracked use case in AI Agent Analytics for a specific AI agent, surfacing the visitors and accounts, the tools and models the agent invoked, sampled explanations, and a sample of the user prompts associated with the tracked use case. USE FOR: Deep-diving into a specific tracked use case - call directly if agentId is known and conversationIds, eventIds, and trackedUseCaseId are passed. Use when the user wants to understand what prompts users sent for a tracked topic, which tools and models the agent invoked, or which visitors and accounts are associated with a tracked use case. EXAMPLES: - What are users actually asking in the 'dashboard help' tracked use case? - Which tools does my agent use when handling this tracked use case? - Who are the visitors in this tracked use case? - Show me sample prompts from this tracked use case. NOT FOR: Aggregate volume metrics across use cases, or issue diagnosis - this tool deep-dives a single tracked use case. RETURNS: - Four labeled CSV sectio

analyticspendoread-only
Examples it gives
  • {"agentId":"\u003cagentId\u003e","appId":"\u003cappId\u003e","conversationIds":"\u003cconversationIds\u003e","dateRange":"\u003cdateRange\u003e","eventIds":"\u003ceventIds\u003e","segmentPipeline":"\u003csegmentPipeline\u003e","skill":"agentAnalyticsTrackedUseCaseAnalysis","subId":"\u003csubId\u003e","trackedUseCaseId":"\u003ctrackedUseCaseId\u003e"}

appUsageTimeSeries

Get app-level usage metrics over time. Groups events into buckets of the requested period (daily/weekly/monthly) and returns one row per bucket with app-wide totals: active visitors, active accounts, events, average active time (a duration object {seconds, display}), and the four frustration counts (totalErrorClickCount, totalRageClickCount, totalUTurnCount, totalDeadClickCount). The average metric matches the requested period: avgDailyActiveTime, avgWeeklyActiveTime, or avgMonthlyActiveTime. Audience can be scoped via an inline segmentPipeline; scope can also be narrowed to a single app via appId. minEvents restricts every bucket to the visitors with at least that many events in that bucket, applied independently per bucket, so one call tracks an engagement threshold across the whole range. It counts events rather than visits, so it is not a returning-visitor measure. USE FOR: Trend questions about whole-app usage over a window - e.g. 'how did active visitors trend over the last 12 weeks?', 'are rage clicks

analyticspendoread-only
Examples it gives
  • {"accountId":"\u003caccountId\u003e","appId":"\u003cappId\u003e","dateRange":"\u003cdateRange\u003e","includeAnonymous":"\u003cincludeAnonymous\u003e","minEvents":"\u003cminEvents\u003e","period":"\u003cperiod\u003e","segmentPipeline":"\u003csegmentPipeline\u003e","skill":"appUsageTimeSeries","subId":"\u003csubId\u003e"}

appUsage

Get per-visitor or per-account app usage metrics for a date range. Returns {summary, rows}: summary has total active visitors/accounts, total events across the selected app scope, average daily time on apps, and totals for the four frustration counts (totalErrorClickCount, totalRageClickCount, totalUTurnCount, totalDeadClickCount); rows are per-visitor or per-account breakdowns with daysActive, totalTime and avgTimePerDay (duration objects {seconds, display}), totalEvents, and the same four frustration totals, sorted and limited. When groupBy="account" each row also includes numVisitors - the count of distinct visitors from that account who were active during the window. Optionally include metadata fields for each returned visitor or account with select. Audience can be scoped via an inline segmentPipeline; scope can also be narrowed to a single app via appId, or to a single product area via productAreaId. When productAreaId is supplied the same summary and rows describe headline usage metrics for that produc

analyticspendoread-only
Examples it gives
  • {"appId":"\u003cappId\u003e","dateRange":"\u003cdateRange\u003e","groupBy":"\u003cgroupBy\u003e","includeAnonymous":"\u003cincludeAnonymous\u003e","limit":"\u003climit\u003e","minEvents":"\u003cminEvents\u003e","productAreaId":"\u003cproductAreaId\u003e","segmentPipeline":"\u003csegmentPipeline\u003e","select":"\u003cselect\u003e","skill":"appUsage","sortBy":"\u003csortBy\u003e","sortOrder":"\u003csortOrder\u003e","subId":"\u003csubId\u003e"}

buildPendoSegment

buildPendoSegment: Purpose: Describe one visitor segment by visitor or account ID, activity on Pages, Features, TrackEvents, Guides, Poll responses, the elements inside a guide, segment membership, or metadata. Input shape: pass definition as an array of rule groups. Top-level groups are ANDed together; rules within a group are ORed together. For one ANDed rule, wrap it in a single-item group. SINGLE CALL CONTRACT (important): The ENTIRE segment, including every AND clause and every OR clause, MUST be built with ONE call to this tool. Never split a segment across multiple calls. Combine all clauses into a single definition array and pass it once. Calling the tool more than once produces multiple unrelated segments, NOT one combined segment, so the AND/OR logic between the calls is lost. Mapping a request to a single definition: - Split the request into top-level AND clauses. - Each AND clause becomes one group (one i

analyticspendoread-only
Examples it gives
  • {"definition":"\u003cdefinition\u003e","skill":"buildPendoSegment","subId":"\u003csubId\u003e"}

captureDomForTagging

Accepts a DOM payload, stores it server-side and returns a domHandle that refers to the provided DOM, handle can be used in other tagging tools. USE FOR: Step 1 of the tagging workflow - the only way to provide a DOM for tag suggestions. WORKFLOW: 1. captureDomForTagging - upload the page's DOM and receive a domHandle. 2. processPageAndFeatureSuggestions - generate suggestions for the captured DOM(s), referencing each capture by its domHandle; returns a sessionId and manifest. 3. getSuggestedFeatureBatch - retrieve the feature suggestions in batches, choosing sections and batch sizes as you see fit. RETURNS: - domHandle - `cap_<32 hex>` reference to the stored DOM. - bytes - size of the stored DOM - expiresAt - when the capture expires

analyticspendoenableTagWithLeo
Examples it gives
  • {"appId":"\u003cappId\u003e","dom":"\u003cdom\u003e","skill":"captureDomForTagging","subId":"\u003csubId\u003e","url":"\u003curl\u003e"}

acceptPageAndFeatureSuggestions

Applies selected page and feature tag suggestions from a processPageAndFeatureSuggestions session, creating and updating the corresponding Pendo tags. Suggestions are selected per section by (pageUrl, actionType); pass sections exactly as listed in the manifest. Only CREATE and UPDATE take effect - DELETE, MERGE and MATCH are returned as advisory-only and are not applied. A CREATE feature whose page does not exist yet is only applied if that page is included in `pages`; otherwise it is skipped. USE FOR: Applying the tag suggestions the user has chosen to accept. NOT FOR: Generating or fetching suggestions - use processPageAndFeatureSuggestions and getSuggestedFeatureBatch. WORKFLOW: Step 4 of the tagging workflow, after reviewing suggestions via getSuggestedFeatureBatch: apply the chosen CREATE/UPDATE page and feature suggestions from a processPageAndFeatureSuggestions session. RETURNS: - pages - per-page apply results with status and message - features - per-feature apply results with status and message

analyticspendoenableTagWithLeomcpWriteToolsdestructive
Examples it gives
  • {"appId":"\u003cappId\u003e","edits":"\u003cedits\u003e","pageIdMap":"\u003cpageIdMap\u003e","pages":"\u003cpages\u003e","sections":"\u003csections\u003e","sessionId":"\u003csessionId\u003e","skill":"acceptPageAndFeatureSuggestions","subId":"\u003csubId\u003e"}

cohortRetentionCurve

Compute a retention curve for an app (scope='app'), a specific page or feature (scope='page' or 'feature'), a track event (scope='trackEvent'), or a whole product area (scope='productArea'). For track events: measures how many accounts/visitors continue firing the event over time. Supports visitor-level or account-level retention (unit) and all vs first cohort modes (cohortMode='all' for all active users, 'first' for first-time users only - best for onboarding effectiveness). For scope='productArea', a user counts as active in a period if they used any page, feature, or track event in that area; guides in the area are not counted. Omit appId when the entity or area spans multiple applications - passing one restricts the curve to that application. Call this tool ONCE per question. A single call returns all periods at once - do NOT call it multiple times with different periodCount values. The analysis window is anchored to now() and works backwards. Do NOT pre-filter for 'new users in the last N days' via se

analyticspendoread-only
Examples it gives
  • {"appId":"\u003cappId\u003e","cohortMode":"\u003ccohortMode\u003e","entityId":"\u003centityId\u003e","includeAnonymous":"\u003cincludeAnonymous\u003e","offsetDays":"\u003coffsetDays\u003e","periodCount":"\u003cperiodCount\u003e","periodType":"\u003cperiodType\u003e","scope":"\u003cscope\u003e","segmentPipeline":"\u003csegmentPipeline\u003e","skill":"cohortRetentionCurve","subId":"\u003csubId\u003e","unit":"\u003cunit\u003e"}

commandCenterApps

Lists the Command Center SaaS portfolio - both managed apps and event-discovered (shadow-IT) apps - with each app's cost, estimated cost, license count, owner, renewal date, category, AI/shadow-IT signals, admin notes, itStatus (the app's recorded IT governance status, e.g. sanctioned or restricted, distinct from discovery lifecycle status), active-user count, license usage (percentage plus a noInfo/low/healthy/high/overLimit status), and potential annual savings from unused licenses for the requested date range. Each row carries appType (managed or discovery). notes holds admin-entered notes from Application.About (managed) or DiscoveryApplication.Description (discovered), not manifest descriptions, advise text, or shadow-IT reason fields; notes is null rather than an empty string when a managed app has no About text set. Verified and estimated cost are returned as separate fields and are never blended; an app with no cost is returned with no cost value rather than a fabricated zero. licenseUsage is 0 (statu

analyticspendocommandCenterMcpread-only
Examples it gives
  • {"dateRange":"\u003cdateRange\u003e","limit":"\u003climit\u003e","skill":"commandCenterApps","subId":"\u003csubId\u003e"}

updateCommandCenterApp

Updates the editable Command Center fields on a single managed or discovered app: annual cost and license count, renewal date, full-replacement notes, a shadow-IT override, and IT governance status. Before calling this tool, repeat back to the user the app, the field(s) you will change, and their current values, and get confirmation that nothing else will change - this write applies immediately. For renewal date, the confirmation must state whether the date is being added, replaced, or cleared. commandCenterApps returns renewalDate as epoch milliseconds; convert it to YYYY-MM-DD before presenting the confirmation or calling this tool. For shadowIt, the confirmation must state that this overrides the risk level shown for the app (catalogue-derived for discovered apps, or the stored classification for managed apps), not just that the value is changing. The write executes as the calling user and requires Command Center subscription-admin permission; setting cost marks it verified. An app with no cost, license co

analyticspendomcpWriteToolscommandCenterMcp
Examples it gives
  • {"appId":"\u003cappId\u003e","appType":"\u003cappType\u003e","commandCenterItStatus":"\u003ccommandCenterItStatus\u003e","cost":"\u003ccost\u003e","licenseCount":"\u003clicenseCount\u003e","notes":"\u003cnotes\u003e","renewalDate":"\u003crenewalDate\u003e","shadowIt":"\u003cshadowIt\u003e","skill":"updateCommandCenterApp","subId":"\u003csubId\u003e"}

createFeedbackItem

Creates a new feedback item in this subscription's qualitative customer feedback system. Returns the ID of the created feedback item. Before calling this tool, you should list product areas, and assign the feedback to the appropriate product area. Then, before submitting the feedback, repeat all non-empty fields back to the user for confirmation, resolving IDs to human-readable names. USE FOR: When the user explicitly asks you to submit product feedback, feature requests, bug reports, etc. on behalf of a customer to the qualitative customer feedback system EXAMPLES: - Create feedback for this: [paste text] - Log a feature request for dark mode support - Submit feedback that the export CSV button is confusing - Capture this bug report about broken pagination - Record this customer's request for a Slack integration RETURNS: - ID of the created feedback item

analyticspendomcpWriteTools
Examples it gives
  • {"accountId":"\u003caccountId\u003e","appId":"\u003cappId\u003e","description":"\u003cdescription\u003e","productAreaId":"\u003cproductAreaId\u003e","skill":"createFeedbackItem","sourceUrl":"\u003csourceUrl\u003e","subId":"\u003csubId\u003e","title":"\u003ctitle\u003e","visitorId":"\u003cvisitorId\u003e"}

createSegment

Creates a new Pendo visitor segment and returns its id. Confirm the segment name and the human-readable summary of every AND/OR clause with the user before submitting. Pendo does not enforce unique segment names - if the user cares about uniqueness, check existing segments first. USE FOR: Only call this when the user wants a persistent segment saved to Pendo. Do not call this to preview a segment or to scope a one-off analytics query. EXAMPLES: - Create a segment named "Power users" for visitors active in the last 30 days. - Save this as a segment called "Trial churn risk". RETURNS: - id: the created segment's id. Can be used as a segmentId in downstream tools (segment-membership rules, list filters, etc.). - summary: plain-English description of the persisted segment rules with entity names resolved. Reflects what was actually stored after compile-time normalization (e.g. strict > operators become >= with adjusted thresholds). EntityTypes: visitor: requiredFields: entityType: "vis

analyticspendomcpWriteTools
Examples it gives
  • {"definition":"\u003cdefinition\u003e","description":"\u003cdescription\u003e","name":"\u003cname\u003e","shared":"\u003cshared\u003e","skill":"createSegment","subId":"\u003csubId\u003e"}

createGuideFromHtml

Creates a new draft Pendo guide from raw HTML content. Each entry in rawHtmls becomes one step in the guide. Returns the guide ID and a direct URL to edit the guide in Pendo. USE FOR: When the user has generated HTML guide content (e.g. from the pendo-guide-creator skill) and wants to create a real Pendo guide from it EXAMPLES: - Create a guide from this HTML - Send this guide to Pendo - Publish these HTML files as a Pendo guide - Turn my generated guide steps into a real Pendo guide NOT FOR: Listing, searching, or querying existing guides - use listGuides or searchEntities instead RETURNS: - Guide ID of the newly created draft guide - Direct URL to the guide in the Pendo UI

analyticspendomcpWriteTools
Examples it gives
  • {"appId":"\u003cappId\u003e","guideName":"\u003cguideName\u003e","layoutType":"\u003clayoutType\u003e","rawHtmls":"\u003crawHtmls\u003e","skill":"createGuideFromHtml","subId":"\u003csubId\u003e"}

createIdeaItem

Creates a new product idea - a product enhancement or new feature request - for this subscription, and returns the ID of the created idea. Every idea must be associated with at least one application; if the user hasn't said which, resolve the correct appId(s) first. Optionally assign the idea to one or more product areas by their IDs. Before submitting the idea, repeat all non-empty fields back to the user for confirmation, resolving IDs to human-readable names. USE FOR: When the user explicitly asks you to log a product idea or feature concept into the ideas backlog EXAMPLES: - Create an idea for this: [paste text] - Log a product idea for a dark mode theme - Add an idea to support CSV exports on the reports page - Capture this idea about a bulk-edit workflow RETURNS: - ID of the created idea

analyticspendomcpWriteTools
Examples it gives
  • {"appIds":"\u003cappIds\u003e","description":"\u003cdescription\u003e","effort":"\u003ceffort\u003e","impact":"\u003cimpact\u003e","productAreaIds":"\u003cproductAreaIds\u003e","skill":"createIdeaItem","subId":"\u003csubId\u003e","title":"\u003ctitle\u003e"}

devlogEvents

Fetch raw devlog events for a visitor or session, including HTTP request/response details, log levels, messages, and stack traces. Supports cross-tab replays via recordingSessionIds (array) to fetch devlogs across multiple browser tabs. Accepts a clipId or the individual fields (recordingSessionId, appId, visitorId, accountId, startTime, endTime) that identify a recording. When clipId is provided, the tool looks up the clip to resolve visitorId, accountId, appId, recordingSessionId, and time range automatically. If the user provides a session replay URL, parse the recordingSessionId from the URL path and query parameters (startTime, endTime, visitorId, accountId, appId) before calling this tool; for cross-tab replays, also parse the comma-separated crossTabSessions query parameter and pass the path ID plus those values in recordingSessionIds. USE FOR: Investigating developer console logs, network errors, or HTTP activity captured during a session replay. Use when the user provides a session replay URL (parse

analyticspendoread-only
Examples it gives
  • {"accountId":"\u003caccountId\u003e","appId":"\u003cappId\u003e","clipId":"\u003cclipId\u003e","endTime":"\u003cendTime\u003e","limit":"\u003climit\u003e","logLevels":"\u003clogLevels\u003e","logType":"\u003clogType\u003e","recordingSessionId":"\u003crecordingSessionId\u003e","recordingSessionIds":"\u003crecordingSessionIds\u003e","skill":"devlogEvents","startTime":"\u003cstartTime\u003e","statusCodes":"\u003cstatusCodes\u003e","subId":"\u003csubId\u003e","visitorId":"\u003cvisitorId\u003e"}

entityUsageTimeSeries

Get usage of a page, feature, or track event over time. Groups events into buckets of the requested period (daily/weekly/monthly) and returns one row per bucket with all available metrics. Pages get the full set (visitors, accounts, events, timeOnEntity, averageTimeOnEntityPerVisitor (duration object {seconds, display}), errorClickCount, rageClickCount, uTurnCount, deadClickCount). Features drop the time-derived metrics and uTurnCount. Track events drop all click-level frustration counts. minEvents restricts every bucket to the visitors with at least that many events on the entity in that bucket, applied independently per bucket. For whole-app usage over time (not a specific entity), use the appUsageTimeSeries tool instead. USE FOR: Trend questions over a window - e.g. 'how did feature X usage change over the last 12 weeks?', 'are rage clicks on page X trending up?'. With minEvents, tracks a per-bucket event threshold over time - e.g. 'visitors using feature X at least twice a month'. EXAMPLES: - How did fe

analyticspendoread-only
Examples it gives
  • {"accountId":"\u003caccountId\u003e","appId":"\u003cappId\u003e","dateRange":"\u003cdateRange\u003e","entityId":"\u003centityId\u003e","entityType":"\u003centityType\u003e","includeAnonymous":"\u003cincludeAnonymous\u003e","minEvents":"\u003cminEvents\u003e","period":"\u003cperiod\u003e","segmentPipeline":"\u003csegmentPipeline\u003e","skill":"entityUsageTimeSeries","subId":"\u003csubId\u003e"}

entityUsage

Get usage analytics for one known page, feature, or track event ID over a date range, including page views, feature clicks, event counts, and unique visitor ('people') and account counts. Returns {summary, rows}: summary has total events, unique visitors, unique accounts (and for pages/features, frustration counts; pages also include uTurnCount); rows are per-visitor or per-account breakdowns with events, time on entity, and days active, sorted and limited. Optionally include metadata fields for each returned visitor or account with select. Audience can be scoped via visitorIds OR an inline segmentPipeline (mutually exclusive), and/or filtered to a single accountId. USE FOR: Scalar 'how many people viewed/clicked/used it' totals and top-N visitor or account questions over a window for one known page, feature, or track event ID. EXAMPLES: - How many page views did page X get last month? - Top 20 visitors by time on page X in the last 30 days - Top 50 accounts by usage of feature Y last quarter - How many rag

analyticspendoread-only
Examples it gives
  • {"accountId":"\u003caccountId\u003e","dateRange":"\u003cdateRange\u003e","entityId":"\u003centityId\u003e","entityType":"\u003centityType\u003e","groupBy":"\u003cgroupBy\u003e","includeAnonymous":"\u003cincludeAnonymous\u003e","limit":"\u003climit\u003e","segmentPipeline":"\u003csegmentPipeline\u003e","select":"\u003cselect\u003e","skill":"entityUsage","sortBy":"\u003csortBy\u003e","sortOrder":"\u003csortOrder\u003e","subId":"\u003csubId\u003e","visitorIds":"\u003cvisitorIds\u003e"}

eventPropertyAnalytics

Analyze values carried by custom event properties on one known page, feature, or track event. Returns a scalar summary, a ranked breakdown by up to two property values, or a time series that can optionally be grouped. Measures include event count, distinct visitors, distinct accounts, and a weighted sum of a numeric event property. Numeric sums account for compressed event rows by multiplying each property value by numEvents. USE FOR: Questions that depend on event-property values: client or integration mix, property-filtered adoption, usage by status/type/destination, or totaling a numeric property such as payment value. EXAMPLES: - Which export format was chosen most often in the last 30 days? - How has the mix of export formats shifted since April? - How many accounts triggered scheduled reports last month? - What was total payment value last month, broken down by plan? NOT FOR: Usage without an event-property dimension; use entityUsage or entityUsageTimeSeries. Business objects designated by an object

analyticspendoread-only
Examples it gives
  • {"accountId":"\u003caccountId\u003e","dateRange":"\u003cdateRange\u003e","entityId":"\u003centityId\u003e","entityType":"\u003centityType\u003e","groupByProperties":"\u003cgroupByProperties\u003e","includeAnonymous":"\u003cincludeAnonymous\u003e","limit":"\u003climit\u003e","measures":"\u003cmeasures\u003e","period":"\u003cperiod\u003e","propertyFilters":"\u003cpropertyFilters\u003e","resultShape":"\u003cresultShape\u003e","segmentPipeline":"\u003csegmentPipeline\u003e","skill":"eventPropertyAnalytics","sor

generateFeedbackTopics

Generates AI-clustered topics from customer feedback matching the given filters. Each topic contains a name, description, and count of related insights. Use this for high-level overviews of the most common themes in a feedback subset.

analyticspendoenableListenAIInsightsread-only
Examples it gives
  • {"filters":"\u003cfilters\u003e","skill":"generateFeedbackTopics","subId":"\u003csubId\u003e"}

getAgentConfig

Returns the configuration for a given AI agent: its name, description (a human-authored summary of the agent's role and purpose, not its LLM system prompt), model preset, type, and the tool names and descriptions it has used in the specified date range. The agent config section comes from the stored agent record. The tools section is derived from runtime events in the date range and may be empty if the agent had no activity. USE FOR: Fetching the static configuration and runtime tool inventory of an AI agent. Use before analyzing issues or generating fix briefs to understand what the agent is configured to do and which tools it calls. EXAMPLES: - What is my agent's configured role and purpose? - Which tools does my agent have access to? - What model does agent X use? - Show me the full config for this agent before I debug it NOT FOR: The agent's actual LLM system prompt - this tool does not have access to that. Aggregated usage metrics, issue clusters, or conversation analysis - use the agent analytics too

analyticspendoread-only
Examples it gives
  • {"agentId":"\u003cagentId\u003e","appId":"\u003cappId\u003e","dateRange":"\u003cdateRange\u003e","skill":"getAgentConfig","subId":"\u003csubId\u003e"}

getAgentContext

Fetches a grounding document that describes the current contents of a Pendo product resource so the LLM can reason about it. Today the only supported resource is a Pendo Space - a collaborative canvas of product artifacts (pages, features, guides, notes, etc.) curated by a team. Pass `resourceType` (e.g. "space") and `resourceId` (the id of that resource, e.g. a space id) to retrieve the document. Call `listSpaces` first if you need to discover a space id. The response is JSON returned by the Spaces service and typically contains a markdown `body` plus a `schema` describing the resource's contents; do not assume a shape beyond what the response declares. Use `frameId` to scope a space's context to a single frame on the canvas (and items whose parent is that frame) - useful when the user's UI is focused on that frame; omit `frameId` for the full space.

analyticspendoread-only
Examples it gives
  • {"frameId":"\u003cframeId\u003e","resourceId":"\u003cresourceId\u003e","resourceType":"\u003cresourceType\u003e","skill":"getAgentContext","subId":"\u003csubId\u003e"}

getEntity

Get the configuration details of one page, feature, track event, or guide by ID. Does not include any usage or metrics. USE FOR: Understanding an entity before querying or acting on it. The name of any entity, reading a page's URL rules, the element a feature targets and the page it sits on, or a countable's event properties.For a guide, get its steps in order, each with its step ID and the interactive elements on it. EXAMPLES: - What is the page with ID abc123 and what URLs does it match? - Which element does feature xyz789 target, and what page is it on? - What event properties can I break down track event def456 by? - What are the step IDs and element IDs for guide ghi789? - Which buttons are on the second step of this guide and what do they do? NOT FOR: Usage, metrics or counts of any kind. Searching for an entity when you don't know its ID. RETURNS: - id, type, name, description, appIds, createdAt, lastUpdatedAt for every entity type. - eventPropertyNames: names of event properties attached to pages,

analyticspendoread-only
Examples it gives
  • {"entityId":"\u003centityId\u003e","entityType":"\u003centityType\u003e","skill":"getEntity","subId":"\u003csubId\u003e"}

getFeedbackInsights

Retrieves key customer feedback insights extracted from raw feedback matching the given filters. Each item includes a summary, explanation, and supporting quote. Use this when the user wants to see actionable feedback insights which have been distilled from the raw customer feedback. Note: insights can also be referred to as 'highlights'

analyticspendoenableListenAIInsightsread-only
Examples it gives
  • {"filters":"\u003cfilters\u003e","skill":"getFeedbackInsights","subId":"\u003csubId\u003e"}

setGuideState

Changes the state/status of a guide (public, staged, draft, disabled, archived). Setting a guide to 'public' makes it live to end users. Setting a guide to 'archived' hides it from the guide list and is not shown to end users. Before calling this tool, always tell the user the guide's name and the exact state change (current -> target) and get explicit confirmation. USE FOR: When the user explicitly asks to publish, unpublish, disable, stage, draft, or set the state of a specific guide. EXAMPLES: - Publish the xxx guide - Disable guide xxx - Set this guide back to draft RETURNS: - A confirmation of the guide and its new state, or an error describing why the change was rejected.

analyticspendomcpWriteToolsdestructive
Examples it gives
  • {"guideId":"\u003cguideId\u003e","skill":"setGuideState","state":"\u003cstate\u003e","subId":"\u003csubId\u003e"}

setGuideSegment

Changes the segment (audience) a guide is targeted to. Assigning a segment restricts the guide to visitors in that segment; leaving the segment empty targets all visitors. Before calling this tool, always tell the user the guide's name and the exact segment change (current -> target) and get explicit confirmation. USE FOR: When the user explicitly asks to assign, change, or clear the segment/audience of a specific guide. EXAMPLES: - Target the xxx guide to the yyy segment - Change guide xxx to segment yyy - Show this guide to everyone RETURNS: - A confirmation of the guide and its new segment, or an error describing why the change was rejected.

analyticspendomcpWriteToolsdestructive
Examples it gives
  • {"guideId":"\u003cguideId\u003e","segmentId":"\u003csegmentId\u003e","skill":"setGuideSegment","subId":"\u003csubId\u003e"}

getFeedbackItems

Retrieves the original, raw customer feedback matching the given filters. Each item includes id, title, description, status, and info about the account and visitor which gave the feedback. status is an object with id, name, and color fields. account is an object with id and name. visitor information is available via the createdBy and onBehalfOf objects. Each item also includes: assignee (email of the assigned user); labels, apps, and productAreas (each a list of {id, name} objects); productAreas identify the product areas the feedback is tagged to; lastUpdatedAt (epoch milliseconds, same format as createdAt); linkedIdeas (a list of the ids of ideas the feedback is linked to); importance ('Must Have', 'Nice to Have', or 'Not Interested'); and source (where the feedback originated, e.g. Portal, Salesforce, NPS). Use this when the user wants the full raw feedback, as opposed to the extracted insights or clustered topics. A maximum of 30 items will be returned, however there may be more matching the filter set.

analyticspendoenableListenAIInsightsread-only
Examples it gives
  • {"filters":"\u003cfilters\u003e","skill":"getFeedbackItems","subId":"\u003csubId\u003e"}

getIdeas

Retrieves product ideas submitted by internal product employees which describe product enhancements and new features matching the given filters. Each item includes: id, title, description, createdAt, status, effort, impact, voteCount, accountVoteCount, and votes. Each item also includes: assignee (email of the assigned user); labels, apps, and productAreas (each a list of {id, name} objects); lastUpdatedAt (epoch milliseconds, same format as createdAt); and linkedFeedbackItems (list of feedback item IDs linked to this idea). status is an object with id, name, and color fields. voteCount is the number of positive votes cast for the idea ('Must Have' and 'Nice to Have') - use this as the primary signal of demand when ranking or comparing ideas. accountVoteCount is the number of unique accounts that cast positive votes - use this to indicate breadth of interest across customers; when accountVoteCount is much lower than voteCount, it means a small number of accounts voted multiple times. 'Not Interested' votes ar

analyticspendoread-only
Examples it gives
  • {"filters":"\u003cfilters\u003e","includeNotInterestedVotes":"\u003cincludeNotInterestedVotes\u003e","skill":"getIdeas","subId":"\u003csubId\u003e","votesLimit":"\u003cvotesLimit\u003e"}

getSegment

Returns a single Pendo visitor segment by ID, including its name, definition in LLM-friendly DSL form, and optionally the guides, reports, compound segments, and session-replay apps that reference it. USE FOR: Inspect or read a saved segment's rules. Use when you need the current definition before modifying it, or when you need to know where a segment is in use. EXAMPLES: - Show me the definition of segment abc123. - What guides are using segment xyz789? RETURNS: - id: the segment ID. - name: human-readable segment name. - description: optional segment description (omitted if empty). - shared: whether the segment is publicly shared. - summary: plain-English description of the segment rules with entity names resolved. - definition: the segment rules in DSL form - same format accepted by create and update Segment tools. Omitted for segments authored outside the agent workflow that use features the DSL can't represent, and for segments with no rule-based definition (e.g. segment-flag or auto-managed segments)

analyticspendoread-only
Examples it gives
  • {"id":"\u003cid\u003e","includeUsedBy":"\u003cincludeUsedBy\u003e","skill":"getSegment","subId":"\u003csubId\u003e"}

getOrchestrateEmailMetrics

Get performance metrics for a single Orchestrate email. Returns delivery, unique opens, unique clicks, bounces, unsubscribes, and spam complaints for Pendo emails within the requested date range. Matches Orchestrate email overview metrics in the UI. Email-level aggregates only: this tool does not return per-visitor metrics or identify which visitors sent, opened, clicked, bounced, or unsubscribed. Use listOrchestrateEmails to discover email IDs. USE FOR: Analyzing Orchestrate email performance when you already have the email ID. Questions about sends, delivery rate, open rate, click rate, or bounces. EXAMPLES: - How did email abc perform last month? - Show delivery and open rates for orchestrate email 123 - Get email metrics for email 123 between 2025-01-01 and 2025-01-31 NOT FOR: Listing emails without an ID (use listOrchestrateEmails). Per-visitor email engagement (who opened, clicked, bounced, or unsubscribed). Journey-level metrics (use getOrchestrateJourneyMetrics). Per-step metrics for every

analyticspendoread-only
Examples it gives
  • {"blacklist":"\u003cblacklist\u003e","emailId":"\u003cemailId\u003e","endDate":"\u003cendDate\u003e","segmentPipeline":"\u003csegmentPipeline\u003e","skill":"getOrchestrateEmailMetrics","startDate":"\u003cstartDate\u003e","subId":"\u003csubId\u003e"}

getOrchestrateJourneyStepMetrics

Get per-step performance metrics for a single Orchestrate journey by ID. Returns one entry per message step in execution-flow order, matching the per-step columns on the Orchestrate journey metrics page. Every count is scoped to journey entrants - visitors who entered THIS journey within the requested date range - not campaign- or guide-wide activity, so the numbers reconcile with the journey metrics page. Email steps include delivery, unique opens, unique clicks, bounces, unsubscribes, and spam complaints among those entrants. Guide steps include the journey-page guide engagement columns: viewed (entrants who saw the guide) and clicked (entrants who interacted with it), plus the derived clickRate. Other step types carry no metrics and a metricUnavailableReason instead. Use getOrchestrateJourneySteps for the full step graph, getOrchestrateEmailMetrics for a single standalone email, getOrchestrateJourneyMetrics for journey-level goal attainment, and guideMetrics for deep single-guide analytics (co

analyticspendoread-only
Examples it gives
  • {"endDate":"\u003cendDate\u003e","journeyId":"\u003cjourneyId\u003e","skill":"getOrchestrateJourneyStepMetrics","startDate":"\u003cstartDate\u003e","subId":"\u003csubId\u003e"}

getOrchestrateEmail

Get full details for a single Orchestrate email campaign by ID. Returns any orchestrate email the caller can access, including journey message emails when you already have the email ID. Use list_orchestrate_emails to discover orchestrate email campaigns; use this tool when you have a specific email ID. USE FOR: Inspecting an Orchestrate email's configuration, status, schedule, audience, and template-level fields when you already have the email ID (standalone or journey-linked). EXAMPLES: - Get email details for email 123 - Show orchestrate email config for abc - What is email xyz? - Show me full details for this orchestrate email - Get email campaign by ID NOT FOR: Listing or searching emails without an ID (use list_orchestrate_emails). Email performance metrics like sends, opens, or clicks (use get_orchestrate_email_metrics). Journey configuration without a journey ID (use list_orchestrate_journeys or get_orchestrate_journey). WORKFLOW: Call list_orchestrate_emails to discover email IDs, then call

analyticspendoread-only
Examples it gives
  • {"emailId":"\u003cemailId\u003e","skill":"getOrchestrateEmail","subId":"\u003csubId\u003e"}

getOrchestrateJourneyMetrics

Get journey-level performance metrics for a single Orchestrate journey. Covers visitor entry and exit counts and - for journeys with a goal - goal attainment. Returns journey-wide aggregates only: no per-step, per-message, or per-visitor breakdown. USE FOR: Analyzing overall Orchestrate journey performance when you already have the journey ID. Questions about visitors entered, visitors completed, or (for journeys with a configured goal) goal attainment. EXAMPLES: - How is orchestrate journey 123 performing? - How many visitors entered and exited orchestrate journey abc? - What is the goal attainment rate for this orchestrate journey? - Show journey metrics for journey 123 between 2025-01-01 and 2025-01-31 NOT FOR: Per-step or per-message metrics within the journey (use getOrchestrateJourneyStepMetrics). The journey step graph or structure (use getOrchestrateJourneySteps). Metrics for a single email by ID (use getOrchestrateEmailMetrics). Per-visitor journey membership (which visitors entered or exit

analyticspendoread-only
Examples it gives
  • {"endDate":"\u003cendDate\u003e","journeyId":"\u003cjourneyId\u003e","skill":"getOrchestrateJourneyMetrics","startDate":"\u003cstartDate\u003e","subId":"\u003csubId\u003e"}

getOrchestrateJourneySteps

Get the ordered step graph (nodes and edges) for a single Orchestrate journey by ID. Returns the journey's structure only: each step's type, position, and linked message IDs, plus the edges connecting the steps. Does NOT return per-step metrics (sends, opens, clicks); use getOrchestrateJourneyStepMetrics for those. Use listOrchestrateJourneys to discover journey IDs and getOrchestrateJourney for journey-level config. USE FOR: Inspecting the ordered steps of an Orchestrate journey: step types (start, message, condition, exit), the order/position of each step, the message ID and message sub-type (email or guide) of each message step, durationInDays (Email: days until the next step; Guide: days the guide stays active/eligible), and the edges that connect the steps. EXAMPLES: - Show the steps of orchestrate journey 123 - What messages are in this orchestrate journey? - List the steps and their order for orchestrate journey xyz - What is the structure of this orchestrate journey? - Which guide/email is

analyticspendoread-only
Examples it gives
  • {"journeyId":"\u003cjourneyId\u003e","skill":"getOrchestrateJourneySteps","subId":"\u003csubId\u003e"}

getOrchestrateJourney

Get full details for a single Orchestrate journey by ID. Returns curated journey configuration including audience, status, scheduling, goal, and email settings. Does not include the step graph or linked message/email IDs. Use listOrchestrateJourneys to discover journey IDs. USE FOR: Inspecting an Orchestrate journey's configuration, audience, status, scheduling, and goal when you already have the journey ID. EXAMPLES: - Get orchestrate journey details for journey 123 - Show me the full config for this orchestrate journey - What is orchestrate journey xyz? - Get orchestrate journey campaign by ID NOT FOR: Listing or searching orchestrate journeys without an ID (use list_orchestrate_journeys). Email campaign details (use get_orchestrate_email). Journey step graph or linked message/email IDs (use get_orchestrate_journey_steps). WORKFLOW: Call list_orchestrate_journeys to discover journey IDs, then call this tool with journeyId. RETURNS: - Journey configuration for agents: name, status (UI lifecycle

analyticspendoread-only
Examples it gives
  • {"journeyId":"\u003cjourneyId\u003e","skill":"getOrchestrateJourney","subId":"\u003csubId\u003e"}

getSuggestedFeatureBatch

Fetches one batch of the generated feature suggestions. Suggestions are grouped into sections keyed by (pageUrl, actionType) as listed in the suggestions manifest; pass pageUrl exactly as it appears there, including the sitewide pseudo-URL entry. Results expire with the session (24 hours). USE FOR: Step 3 of the tagging workflow: paging through the feature suggestions of a section listed in the processPageAndFeatureSuggestions manifest. WORKFLOW: 1. captureDomForTagging - upload the page's DOM and receive a domHandle. 2. processPageAndFeatureSuggestions - generate suggestions for the captured DOM(s), referencing each capture by its domHandle; returns a sessionId and manifest. 3. getSuggestedFeatureBatch - retrieve the feature suggestions in batches, choosing sections and batch sizes as you see fit. RETURNS: - features - one batch of feature tag suggestions - total - total number of suggestions in the section

analyticspendoenableTagWithLeoread-only
Examples it gives
  • {"actionType":"\u003cactionType\u003e","limit":"\u003climit\u003e","offset":"\u003coffset\u003e","pageUrl":"\u003cpageUrl\u003e","sessionId":"\u003csessionId\u003e","skill":"getSuggestedFeatureBatch","subId":"\u003csubId\u003e"}

guideEffectivenessMetrics

Dashboard-consistent, visitor-weighted Guide Effectiveness metrics for every guide, with optional comparison across up to 4 segments. Returns one row per guide plus an overview summary of averages across the matched set. Rates are visitor-weighted exactly as the Guide Effectiveness dashboard computes them: engagement = distinct visitors who interacted / distinct visitors who viewed; completion = distinct visitors who reached the last step / distinct visitors who reached the first step (multi-step guides only); goal adoption = converted visitors / total visitors (guides with a conversion goal only). Every rate ships with its raw numerator and denominator so sample size is visible. Aggregates cover the whole date range (no time-series buckets). Use sortBy to rank guides by a chosen metric, ascending or descending. IMPORTANT: When presenting results to the user, always state the active filters alongside the data: date range, app (if specified), segment(s), status filter, and activation filter. This lets users ve

analyticspendoread-only
Examples it gives
  • {"activation":"\u003cactivation\u003e","appId":"\u003cappId\u003e","dateRange":"\u003cdateRange\u003e","guideCategoryIds":"\u003cguideCategoryIds\u003e","guideIds":"\u003cguideIds\u003e","includeAnonymous":"\u003cincludeAnonymous\u003e","limit":"\u003climit\u003e","pageIds":"\u003cpageIds\u003e","productAreaIds":"\u003cproductAreaIds\u003e","segments":"\u003csegments\u003e","skill":"guideEffectivenessMetrics","sortBy":"\u003csortBy\u003e","status":"\u003cstatus\u003e","subId":"\u003csubId\u003e"}

guidePollResponses

Get per-poll response distribution and per-visitor response rows for a guide's non-NPS polls. Returns {meta, summary, rows}: summary.polls lists each poll with its question and response distribution; rows are visitor-keyed and pivoted - one column per poll, null where a visitor did not respond. limit (default 10, max 200) applies to the pivoted visitor rows after joining across all polls. USE FOR: Answering questions about how visitors responded to polls in a guide: response distributions, individual visitor answers, and per-poll breakdowns. Not for NPS guide score metrics. EXAMPLES: - What were the responses to the poll in the onboarding guide? - Show me the response distribution for guide X polls - Which visitors answered 'Yes' to the helpfulness poll? - What did visitors respond to the polls in guide G last month? RETURNS: - meta.dateRange: resolved startDate and endDate (YYYY-MM-DD) - summary.polls: array of {pollId, question, distribution: [{response, count}]} for each poll. For free-text polls (open-

analyticspendoread-only
Examples it gives
  • {"accountId":"\u003caccountId\u003e","dateRange":"\u003cdateRange\u003e","guideId":"\u003cguideId\u003e","includeAnonymous":"\u003cincludeAnonymous\u003e","limit":"\u003climit\u003e","pollIds":"\u003cpollIds\u003e","segmentPipeline":"\u003csegmentPipeline\u003e","skill":"guidePollResponses","subId":"\u003csubId\u003e"}

guideUsage

Get per-visitor or per-account usage breakdown for a single guide, with time-on-guide and new vs returning viewers. totalViews excludes continue-resumed guideSeen events to match the Pendo guide-details UI. For poll guides, includes per-poll response counts and response rate in summary. USE FOR: Per-visitor or per-account guide engagement - e.g. top visitors by time on guide, which accounts are completing vs dismissing, new vs returning viewer counts. With includeElements=true, also attributes each step's clicks to the individual buttons/links on it. EXAMPLES: - Top 20 visitors by time on guide X in the last 30 days - Which accounts are dismissing the onboarding guide most? - How many new vs returning viewers did the walkthrough have this month? - Show me per-visitor completion data for the tooltip guide - Is drop-off at step 3 happening via the CTA or by dismissing the guide? - Which button on the last step of the onboarding guide gets clicked most? RETURNS: - meta.dateRange: resolved startDate and endDat

analyticspendoread-only
Examples it gives
  • {"accountId":"\u003caccountId\u003e","dateRange":"\u003cdateRange\u003e","groupBy":"\u003cgroupBy\u003e","guideId":"\u003cguideId\u003e","includeAnonymous":"\u003cincludeAnonymous\u003e","includeElements":"\u003cincludeElements\u003e","includeSteps":"\u003cincludeSteps\u003e","limit":"\u003climit\u003e","segmentPipeline":"\u003csegmentPipeline\u003e","skill":"guideUsage","sortBy":"\u003csortBy\u003e","sortOrder":"\u003csortOrder\u003e","subId":"\u003csubId\u003e"}

linkIdeaAndFeedback

Links an existing feedback item to an existing idea, associating the customer evidence with the feature request. Votes from the feedback item are propagated to the idea's vote count. USE FOR: When the user explicitly asks to link, connect, or associate a feedback item with an idea, or vice versa EXAMPLES: - Link feedback abc123 to idea xyz456 - Connect this feedback to that idea - Associate idea xyz456 with feedback abc123 RETURNS: - Confirmation that the idea and feedback item have been linked

analyticspendomcpWriteTools
Examples it gives
  • {"feedbackItemId":"\u003cfeedbackItemId\u003e","ideaId":"\u003cideaId\u003e","skill":"linkIdeaAndFeedback","subId":"\u003csubId\u003e"}

listAccounts

List the accounts that match a segment or fuzzy-search account display names or IDs. Segment mode (the default) defines the cohort with a segmentPipeline - either a saved Pendo segment reference or a full inline pipeline produced by the segment-builder tool. Search mode fuzzy-matches both the configured account display-name field and account ID. USE FOR: Listing the accounts in a segment/cohort, getting the account total, reading account metadata fields for those accounts, or resolving a named account to its ID without an application ID. EXAMPLES: - List the accounts in segment X - Which accounts match these metadata criteria? - How many accounts are in this segment? - Show me accounts in segment X with their ARR and company size - Find the account called Acme Inc RETURNS: - summary: numAccounts (the full segment total in segment mode; the number of returned matches in search mode) - rows in both modes: accountId, name, description when available, and requested fields in a metadata object keyed by metadata

analyticspendoread-only
Examples it gives
  • {"limit":"\u003climit\u003e","mode":"\u003cmode\u003e","search":"\u003csearch\u003e","segmentPipeline":"\u003csegmentPipeline\u003e","select":"\u003cselect\u003e","skill":"listAccounts","subId":"\u003csubId\u003e"}

listAiAgentIssues

Lists detected (emergent) issues in AI agent conversations with instance counts and conversation counts. Returns a table of issue name (clusterName), summary, instance count, and conversation count per issue, plus a sample of conversationIds/eventIds for deep-diving via agentAnalyticsIssueAnalysis. It also returns visitorIds and accountIds who experienced the issue. USE FOR: Finding what problems or issues users encountered when using AI agents (e.g., incorrect answers, refusals, errors). Use when the user asks about common issues, problems, or failures with a specific agent. Refer to an issue by its clusterName, never its numeric clusterId. EXAMPLES: - What are the common issues my users are encountering using my ABC agent in the last 30 days? - What problems have users been encountering when using Acme agent in my Acme application lately? - Have we seen reduced occurrences of issues with incorrect answers in our fooBar agent since last month? - What models are most often used when users face problems with

analyticspendoread-only
Examples it gives
  • {"agentId":"\u003cagentId\u003e","appId":"\u003cappId\u003e","endDate":"\u003cendDate\u003e","granularity":"\u003cgranularity\u003e","limit":"\u003climit\u003e","segmentPipeline":"\u003csegmentPipeline\u003e","skill":"listAiAgentIssues","startDate":"\u003cstartDate\u003e","subId":"\u003csubId\u003e"}

listAiAgents

Lists all AI agents that the user has access to. AI agents are conversational assistants that can be deployed on specific pages or app-wide. AI agents have the ability to collect conversations, cluster prompts by topics/use cases, and calculate metrics like conversation counts and rage prompt detection. This tool returns agent ids and names for usage with other related agent tools.

analyticspendoread-only
Examples it gives
  • {"skill":"listAiAgents","subId":"\u003csubId\u003e"}

listAllApplications

Pendo data is split into subscriptions, which share a set of visitors and accounts. Each subscription is split into separate applications. This call returns a list of all the names and ids of all the subscriptions this user has access to, along with the names and ids of all of the applications in that subscription. Most tools for this mcp require at least a subscription id; many also require an application id. Application ids are not unique across different subscriptions.

analyticspendoread-only

listCountables

listCountables is a tool to find, search, look up, or list pages, features, or track events by name and return their entity IDs. These entities are collectively called "countables" - the tagged elements and custom events that Pendo tracks in your application. Use the type parameter to select which kind to list. This is the entity lookup tool to use before single-page, single-feature, or single-track-event usage analytics when the user provides a name instead of an ID. Relevant analytics questions include page views, feature clicks, event counts, unique visitor or "people" counts, unique account counts, time on page, frustration clicks, and other entity usage metrics. The trackEvent type corresponds to what other tools call trackType or TrackType. Supports search via the search param with a searchType selector: "semantic" for natural-language queries ranked by meaning, "fuzzy" for keyword matching on names and descriptions, or "substring" for case-insensitive containment match on name. Both sear

analyticspendoread-only
Examples it gives
  • {"appId":"\u003cappId\u003e","limit":"\u003climit\u003e","offset":"\u003coffset\u003e","pageId":"\u003cpageId\u003e","productAreaId":"\u003cproductAreaId\u003e","search":"\u003csearch\u003e","searchType":"\u003csearchType\u003e","skill":"listCountables","subId":"\u003csubId\u003e","type":"\u003ctype\u003e"}

listCustomObjects

List a subscription's designated business OBJECTS - the custom event properties that have been marked as analyzable business entities (e.g. 'dashboardId', 'venueId', 'orderId'). Returns each object's underlying event property name (its field) and kind, which are exactly the objectProperty argument the objectAnalytics* tools take. Objects are NOT pages, features, or track events. Returns property names (e.g. 'dashboardId'), not human display labels. USE FOR: Discovering which business objects a subscription has, and grounding an ambiguous entity name before an objectAnalytics* call. Use it when a name could mean either a business object or a page/feature (e.g. 'dashboards') to confirm the object exists and get the exact objectProperty.field to pass to objectAnalyticsActiveCount or objectAnalyticsBreakdown. EXAMPLES: - What business objects can I analyze in this subscription? - Is 'dashboard' a business object or a page? - List the custom objects available for Object Analytics - Which object property identifi

analyticspendoread-only
Examples it gives
  • {"search":"\u003csearch\u003e","skill":"listCustomObjects","subId":"\u003csubId\u003e"}

resolveBusinessObject

Check whether metadata or property terms mentioned in a question (e.g. 'size', 'region', 'category') actually belong to one already-identified designated business OBJECT (see listCustomObjects), by matching them against that object's own declared metadata schema (the fields customers send on metadata events for that object, e.g. 'type', 'isShared' - the same schema accountMetadataSchema/visitorMetadataSchema expose for accounts/visitors). Returns status 'confirmed' when at least one term matches, or 'noMatch' when none do - including when the object has no declared metadata schema at all. USE FOR: Before calling objectAnalyticsActiveCount, objectAnalyticsBreakdown, or objectEventBreakdown with metadata terms drawn from the user's question, once you have a specific candidate object in mind (its name is unambiguous, or you already narrowed it down via listCustomObjects) but are not certain those terms are actually part of its schema. EXAMPLES: - The user asked to break down 'reports' by 'type' - confirm 'type

analyticspendoread-only
Examples it gives
  • {"objectProperty":"\u003cobjectProperty\u003e","skill":"resolveBusinessObject","subId":"\u003csubId\u003e","terms":"\u003cterms\u003e"}

listBusinessObjectMetadata

List every metadata field declared on one already-identified designated business OBJECT (see listCustomObjects) - the fields customers send on metadata events for that object (e.g. 'type', 'isShared'), the same schema accountMetadataSchema/visitorMetadataSchema expose for accounts/visitors. Empty metadataSchema means the customer has never sent metadata events for this object. USE FOR: The user asks what metadata fields, properties, or dimensions are available on a business object; or resolveBusinessObject reported a term as unmatched (with or without a suggestion) and you need the full set of declared fields to find the right one, e.g. to offer the user a corrected choice. EXAMPLES: - What metadata fields are available on the 'reportId' object? - resolveBusinessObject said 'type' doesn't match reportId's schema - what fields does it actually have? NOT FOR: Checking whether SPECIFIC terms from a question belong to the object - use resolveBusinessObject, which also fuzzy-suggests close matches for an unmatc

analyticspendoread-only
Examples it gives
  • {"objectProperty":"\u003cobjectProperty\u003e","skill":"listBusinessObjectMetadata","subId":"\u003csubId\u003e"}

listGuideCategories

Returns all guide categories for a subscription - their IDs, names, and platform (web or mobile). Each category exists as a paired web+mobile variant with distinct IDs; use the platform filter to narrow results. USE FOR: Finding a guide category ID to associate a guide with a category, or enumerating which categories exist for a subscription. Pair with listGuides to see which guides belong to each category. EXAMPLES: - What guide categories are set up for this subscription? - List all guide categories - Show me web guide categories - Which mobile guide categories exist? - What are the available guide categories and their IDs? NOT FOR: Guide analytics or engagement metrics - use guideMetrics or guideUsage instead. To search or list guides themselves, use listGuides. RETURNS: - Array of guide categories, each with: id, name, platform (web or mobile)

analyticspendoread-only
Examples it gives
  • {"limit":"\u003climit\u003e","platform":"\u003cplatform\u003e","search":"\u003csearch\u003e","skill":"listGuideCategories","subId":"\u003csubId\u003e"}

listGuideExperiments

List guide experiments (guide A/B tests) and return their IDs. A guide experiment splits an audience across two or more variants to compare which performs better. Each variant is either a guide or the control group (no guide, shown as isControl). Experiments move through states: draft (not started), active (running), needsReview (finished, awaiting a decision), completed. This is the lookup tool for resolving an experiment name to its ID, and for finding which experiment a guide is part of - filter by guideIds to answer "is this guide being A/B tested?". It returns experiment configuration only, not experiment results. USE FOR: Listing or browsing guide experiments; resolving an experiment name to its ID; checking which experiment a guide belongs to (guideIds); listing experiments in a given state, such as which experiments are currently running. EXAMPLES: - What guide experiments do we have? - Which guide experiments are currently running? - Is guide abc123 part of an experiment? - Show me guid

analyticspendoread-only
Examples it gives
  • {"appId":"\u003cappId\u003e","guideIds":"\u003cguideIds\u003e","limit":"\u003climit\u003e","offset":"\u003coffset\u003e","skill":"listGuideExperiments","state":"\u003cstate\u003e","subId":"\u003csubId\u003e"}

listGuideOrdering

List the guide delivery order ("throttle order") for an app. When multiple guides are eligible to show at the same time, the delivery order determines which guide takes precedence. This tool returns the ordered list of guides for the given app. An app with no ordering set returns an empty list. Guides are capped by limit (default 50). totalGuides is the full ordering length; offset and returned describe the slice in guides. When returned < totalGuides the result is truncated - tell the user which range they're seeing (e.g. "showing 1-50 of 120") and use offset to page through the rest. PRESENTATION (follow exactly): For EVERY guide, show ALL SIX of these columns, always in this order: Guide Name | Status | Segment | Page | Guide Category | Product Area Show every column even when most guides share a value and even when a column has no values. Segment is the readable segment name (e.g. "Everyone", "Browser: Chrome"). Page is "Sitewide" when the guide targets no specific page. Do NOT show the raw

analyticspendoread-only
Examples it gives
  • {"appId":"\u003cappId\u003e","limit":"\u003climit\u003e","offset":"\u003coffset\u003e","skill":"listGuideOrdering","subId":"\u003csubId\u003e"}

listGuides

List and filter in-app guides, or fetch a single guide's full content. Three modes: 1. **List mode** (default): Returns summary info (ID, name, state, type, scheduling) for each matching guide. 2. **Expanded list mode** (expand=true): Returns detailed guide metadata for each matching guide, including steps (type, advance method, targeting), polls, scheduling, recurrence, conversion tracking, and translation languages and statuses. Does not include guide content text - use guideId for that. 3. **Single guide content mode** (guideId=<id>): Fetches one guide by ID and returns its full structured content - step-by-step text extracted from the guide's building blocks, plus an activation URL which can be used to launch the guide if eligible. Use this when you need to read what a guide actually says to the user. Supports search via the search param with a searchType selector: "semantic" for natural-language queries ranked by meaning, or "fuzzy" for keyword matching on guide names and descriptions. Offset i

analyticspendoread-only
Examples it gives
  • {"activation":"\u003cactivation\u003e","appId":"\u003cappId\u003e","expand":"\u003cexpand\u003e","expiration":"\u003cexpiration\u003e","guideId":"\u003cguideId\u003e","guideType":"\u003cguideType\u003e","limit":"\u003climit\u003e","offset":"\u003coffset\u003e","search":"\u003csearch\u003e","searchType":"\u003csearchType\u003e","skill":"listGuides","status":"\u003cstatus\u003e","subId":"\u003csubId\u003e"}

listOrchestrateEmails

List Orchestrate email campaigns and their high-level metadata. Includes standalone and journey-linked orchestrate emails (VoC emails excluded). When a user asks to list emails or orchestrate emails, use this tool. USE FOR: Listing or browsing Orchestrate email campaigns. Discovering email IDs before calling get_orchestrate_email. Filtering by status (draft, public, scheduled, sent, review, disabled), appId, or name substring. EXAMPLES: - List all emails - List all standalone emails - List all orchestrate emails - List all omnichannel emails - Show orchestrate email campaigns - What email campaigns do we have? - Show sent emails - Show scheduled orchestrate emails - What orchestrate emails are in draft? - List email campaigns for this subscription - List orchestrate emails for app 12345 - Find orchestrate emails named welcome NOT FOR: VoC email updates. In-app guides (use listGuides). Journey configuration and metadata without a journey ID (use list_orchestrate_journeys or get_orchestrate_journey).

analyticspendoread-only
Examples it gives
  • {"appId":"\u003cappId\u003e","limit":"\u003climit\u003e","name":"\u003cname\u003e","offset":"\u003coffset\u003e","skill":"listOrchestrateEmails","status":"\u003cstatus\u003e","subId":"\u003csubId\u003e"}

listOrchestrateJourneys

List Orchestrate journeys and their high-level metadata. Use this tool to discover journey IDs before calling getOrchestrateJourney or to browse journey lifecycle status. USE FOR: Listing or browsing Orchestrate journeys. Discovering journey IDs before calling getOrchestrateJourney. Filtering by status (draft, review, scheduled, active, paused, completed, disabled). EXAMPLES: - List all orchestrate journeys - Show active orchestrate journeys - Show scheduled orchestrate journeys - What orchestrate journeys are paused? - List orchestrate journey campaigns for this subscription NOT FOR: Standalone or journey-linked email details without a journey ID (use listOrchestrateEmails or getOrchestrateEmail). In-app guides (use listGuides). WORKFLOW: Use this tool to discover journey IDs, then call getOrchestrateJourney for journey configuration and metadata (audience, goal, scheduling, step count). RETURNS: - Journey identifiers and names - status (UI lifecycle label; scheduled vs active follows the same sta

analyticspendoread-only
Examples it gives
  • {"limit":"\u003climit\u003e","offset":"\u003coffset\u003e","skill":"listOrchestrateJourneys","status":"\u003cstatus\u003e","subId":"\u003csubId\u003e"}

listOrchestrateJourneyTemplates

List Orchestrate journey templates shown in the UI template chooser (intent and layout metadata). These ids mirror UI layouts - many include guides not yet supported by MCP journey create tools. For MCP create: use createOrchestrateJourneyFromTemplate with templateId mcpSingleEmailJourneyTemplate, or build a custom graph via createOrchestrateJourneyFromJson (email steps and Conditional Split nodes; segment targeting, send schedule, and the condition of each Conditional Split are configured in the Orchestrate UI). Provide appId to filter to templates shown for that application platform (web vs mobile). USE FOR: Discovering UI journey layout options and intent labels before discussing journey structure with the user. EXAMPLES: - What journey templates does Orchestrate offer? - List orchestrate journey templates for app 12345 - Show welcome and onboarding journey template options NOT FOR: Listing existing journeys (use listOrchestrateJourneys). Creating a journey (use createOrchestrateJourneyFromTempl

analyticspendoread-only
Examples it gives
  • {"appId":"\u003cappId\u003e","skill":"listOrchestrateJourneyTemplates","subId":"\u003csubId\u003e"}

createOrchestrateJourneyFromTemplate

Creates a draft Orchestrate journey from a built-in templateId and returns journeyId. Supply templateId only - the server applies a fixed messageGraph; do not send templateJson. Supported templateId values are listed in the templateId parameter enum in this tool's inputSchema. For custom multi-email journeys, use createOrchestrateJourneyFromJson (templateJson inputSchema on that tool). After create, call getOrchestrateJourneySteps to verify the draft graph. This tool only selects which built-in graph to apply. Segment targeting, send schedule, conversion goals, and email HTML body are not set here - configure them in the Orchestrate UI after create. USE FOR: Creating a draft Orchestrate journey from a built-in template (single email today). EXAMPLES: - Create a draft Orchestrate journey named 'Welcome email' with templateId mcpSingleEmailJourneyTemplate for app 12345 NOT FOR: Custom multi-email journeys (use createOrchestrateJourneyFromJson). UI layout ids from listOrchestrateJourneyTemplates. U

analyticspendomcpWriteToolsorchestrateMcpWrite
Examples it gives
  • {"appId":"\u003cappId\u003e","name":"\u003cname\u003e","skill":"createOrchestrateJourneyFromTemplate","subId":"\u003csubId\u003e","templateId":"\u003ctemplateId\u003e"}

createOrchestrateJourneyFromJson

Creates a draft Orchestrate journey from templateJson and returns journeyId. Use when the user wants a custom multi-email journey that createOrchestrateJourneyFromTemplate cannot express (single built-in template only). Build templateJson to match the JSON Schema on the templateJson parameter in this tool's inputSchema. After create, call getOrchestrateJourneySteps to verify the draft graph. This tool creates the graph layout (email steps, Conditional Split nodes with Yes and No branches, wait days between steps). Segment targeting, send schedule, conversion goals, email HTML body, and the condition of each Conditional Split are not set here - configure them in the Orchestrate UI after create. USE FOR: Creating a draft Orchestrate journey when the user wants a custom multi-email journey with Conditional Splits. EXAMPLES: - User wants a welcome email then a follow-up email 3 days later: read templateJson inputSchema, build messageGraph with two Message nodes, set messageData.durationInDays to 3 on

analyticspendomcpWriteToolsorchestrateMcpWrite
Examples it gives
  • {"appId":"\u003cappId\u003e","name":"\u003cname\u003e","skill":"createOrchestrateJourneyFromJson","subId":"\u003csubId\u003e","templateJson":"\u003ctemplateJson\u003e"}

setOrchestrateJourneySchedule

Sets the start date on an existing Orchestrate journey schedule. Only startDate can be changed via MCP. Timezone always comes from the subscription. Existing endDate, constraints, and ignoreThrottling are preserved. Cannot update schedule on active, paused, completed, or disabled journeys. USE FOR: Updating when a draft or review Orchestrate journey should start after createOrchestrateJourneyFromTemplate or createOrchestrateJourneyFromJson. EXAMPLES: - Set journey abc123 to start on March 15, 2026 at 9:00 AM subscription time - Schedule journey xyz to start next Monday NOT FOR: Creating a journey (use createOrchestrateJourneyFromTemplate or createOrchestrateJourneyFromJson). Changing end date, delivery constraints, or ignoreThrottling (use the Orchestrate UI). RETURNS: - journeyId: updated journey id - journeyUrl: direct URL to the journey in the Pendo UI - status: journey lifecycle label after update

analyticspendomcpWriteToolsorchestrateMcpWrite
Examples it gives
  • {"journeyId":"\u003cjourneyId\u003e","skill":"setOrchestrateJourneySchedule","startDate":"\u003cstartDate\u003e","subId":"\u003csubId\u003e"}

Technical agent card

Copied from the agent's card. The operator controls these values; agenttru.st has not verified them.

Provider
Pendo — what this agent says about itself; other agents claiming the same provider are not thereby related
Protocol
a2a
Version
1.0.0
Auth schemes
oauth2
Card completeness
a2a.proto v1.0 requires eight top-level fields. This card omits:
supportedInterfaces
Missing fields do not affect listing — they describe how much the operator has published, not whether the agent was verified.
View all card details
Agent card
https://pendoproxy.sageworker.workers.dev/.well-known/agent-card.json

Operate this agent and would rather not be listed? Request removal.