- Brand
- Usepylon
- Category
- Customer Support
- Primary Subcategory
- Helpdesk & Ticketing Platforms
Integration details
Description
Access Pylon's customer support platform directly from ChatGPT to search, manage, and resolve customer issues. Stay on top of your support queue while connecting ChatGPT's insights to real customer conversations. You can use the Pylon app to: • Check your queue: "What Pylon issues are assigned to me that need a response?" • Research customers: "Summarize recent issues from Acme Corp and flag any escalations." • Update issues: "Mark the billing issue from Sarah as resolved and add a note that we issued a refund."
- Integration type
- Plugin
- Verification status
- Not applicable
- Platform
- ChatGPT
- Primary Subcategory
- Helpdesk & Ticketing Platforms
- Secondary Subcategories
- None listed
- Brand
- Usepylon
- Access
- Account required
- First tracked
- 2026-02-02
- Tool count
- 125
- Market
- US
The Primary Subcategory used for this profile’s headline score.
Other Subcategories where the Integration is listed.
Your score is coming
ChatGPT now suggests Plugins on its own when they match a user's request.Your Plugin Discovery Score measures how often yours appears, and it will show here as soon as it’s ready.
What discovery looks like

Get alerts for Pylon
Get updates when Pylon’s Discoverability Score or category rank changes.
Competing in ChatGPT Helpdesk & Ticketing Platforms
View Category125 tools agents can invoke
Record that a customer asked for an existing feature request. Closed or archived requests are rejected; create a new feature request instead. Linking the same issue twice is a no-op. Prefer linking the originating Pylon issue with issue_id. Without one, pass account_id and evidence_summary to record which customer asked; resolve the customer with search_accounts and never infer the account from the teammate calling the tool.
add_evidence_to_feature_request
Append issues to an existing customer backtest dataset. issue_ids accepts issue UUIDs, issue numbers ("12236" or "#12236"), or a mix; send every issue in one call. Each issue's conversation is snapshotted at add time; the dataset replays that frozen state. The result reports requested_count, added_count, each added case with its issue_number, and each skipped input with a reason: already_in_dataset, duplicate_in_request, or not_found (which also covers issues the caller cannot read). The call errors if no input matches an issue. Datasets are capped at 100 issues. Confirm total_in_dataset matches the intended size before reporting the dataset as complete. The snapshot contains messages up to the first agent reply in the original conversation. A backtest replays that bundle as one customer turn, and the agent gets one response.
add_issues_to_backtest_dataset
Append authored synthetic cases to an existing backtest dataset. Each case replays the supplied messages as the conversation snapshot before the agent responds. Use this for one-off questions or multi-message scenarios that do not come from a real issue. Synthetic cases have no source issue, so by default rubric judging has no original-conversation ground truth. To supply one, mark a message with `is_internal_note: true`: it is shown to the rubric judge as an author-written ground-truth label (the expected handling), interleaved at its position in the conversation, but is never replayed to the agent. A case must still contain at least one non-note message to replay. Backtests are single-turn: all non-note messages on a case are replayed as one bundled customer turn, then the agent produces exactly one response, which is what rubrics score. To test that the agent handles a specific sequence of customer messages, list them all in `messages` on a single case — do not split them into separate cases (the agent never sees its own intermediate reply during a backtest).
add_synthetic_cases_to_backtest_dataset
Build a validated filter for any object type. Returns a serialized filter_json string to pass into save_trigger or any other tool that accepts filter_json. Workflow: 1. Discover valid fields: call get_filter_attributes with your object_type. It returns fields, operators, and reference_type annotations. If you need values for a dynamic status property, also call the matching status tool (e.g. get_issue_statuses, get_task_statuses). Status filters accept the label or slug value returned by those tools (e.g. "new" is the default New status). To match active/non-closed items, use operator not_any_of with the closed/completed status value (e.g. not_any_of ["closed"]). 2. When a property's reference_type is set ("team", "user", "account"), resolve names to UUIDs via search_teams / search_users / search_accounts before using them as values. 3. Call build_filter with the conditions. It validates fields, operators, references, and known status values. The returned filter_json has already been validated — pass it through unchanged to downstream tools. Each condition has a field (built-in property name or custom field slug), operator, and value/values. Text and URL fields (e.g. from_email, issue_title) accept a single value per condition — the filter editor renders them as one input and cannot show more. Number fields accept several values with includes_any_of and not_any_of, and one value with every other operator. To exclude several values from one of those fields, pass one single-value not_any_of condition per value; conditions are ANDed, which is what exclusion needs. Matching any of several values is the opposite: build_filter cannot express it, because everything it returns is ANDed — ask for a separate trigger branch per value instead (see save_trigger). Most conditions filter the object's own fields (e.g. an issue's from_email or source) — leave related_object_type unset for those. Only set related_object_type to hop to a DIFFERENT related object (e.g. an issue's account); never set it equal to object_type. AI conditions: for a natural-language condition the AI evaluates per issue (e.g. "the email is a spam sales solicitation"), set type="ai" and prompt=<the condition in plain language>, and omit field/operator/value. AI conditions are only supported for object_type "issue" and only in trigger conditions (save_trigger) — issue search and every other filter consumer reject them. Returns a validated serialized filter object suitable for trigger conditions and other filter-aware APIs. Issue state values use the public slugs returned by get_issue_statuses.
build_filter
Apply the same custom field updates to up to 100 custom objects of a given type in a single call. Pass type='opportunity' to update opportunities or another custom object type slug for other custom objects. Use get_custom_fields with the same type to discover available field slugs. To unset a field, pass its slug with an empty value.
update_custom_objects
Send a support request to Pylon's own support team at support@usepylon.com about the Pylon product. Use this tool only when the reported problem concerns Pylon functionality, Pylon's API/MCP server, or an integration being used through Pylon. Do not use this tool to report problems with other vendors' products, APIs, or MCP servers merely because the Pylon tool is available in the same conversation. For example, empty Grafana/Pyroscope profiling results from a separately connected Grafana MCP server should go to that integration's owner, not Pylon. Before submitting, establish how the problem involves Pylon and obtain the user's agreement to send it specifically to Pylon support. If the affected product or intended recipient is unclear, ask the user first. A generic request to 'report this bug' does not establish Pylon as the recipient; an error alone is not permission to submit. Use create_issue for support requests you want to track in your own Pylon workspace. Summarize the problem, expected behavior, impact, and troubleshooting already tried. The server identifies the customer and requester; replies go to the email used for the original submission. Include only relevant context approved for sharing, never credentials or full conversation transcripts. Reuse the same idempotency_key and ticket details on retries; duplicate protection lasts 14 days.
submit_support_ticket
Create a new AI skill with a name and content plus an optional description. The skill is auto-published immediately.
create_ai_skill
Create a new account in the authenticated Pylon organization. Requires a name. Optionally specify an owner, domains, tags, custom fields, external IDs, and account type. Use get_custom_fields with object_type 'account' to discover available custom field slugs.
create_account
Create a new agent QA rubric. Once created, every backtest run automatically evaluates against it. Each rating option needs a label and an outcome; the outcomes picked across all rubrics determine the case verdict: any violation → violation; otherwise net = #exceeds_expectations − #below_expectations gives exceeds (net > 0), meets (net = 0), or below (net < 0), with indeterminate ignored. Use indeterminate for not-applicable / out-of-scope ratings.
create_agent_rubric
Create a new variation of an AI agent for backtesting. By default inherits every config field (system prompt, model, instructions, tone, runbooks, skills) from the agent's currently active config; pass source_versioned_config_id to seed from an existing non-active variation instead. Any of the override fields applied on top change that one field. Pass skill_ids to replace the inherited skill set. Use the returned versioned_config_id with run_backtest's agent_configs to run an A/B comparison. Harness versions: pick which harness runs the variation via harness_version (v2, v3, v4-nativeagentloop-prototype20260330, or modal-sandbox-v0.1).
create_agent_variation
Upload a base64-encoded file to Pylon and return its attachment ID and URL. The upload is not attached to an issue or message. Files are limited to 5 MB decoded.
create_attachment
Create a new (empty) backtest dataset. Populate it with issues via add_issues_to_backtest_dataset, then create and run a backtest via run_backtest. Each issue case replays the customer's initial message bundle up to the first agent reply in the source conversation. Pick issues whose first-response moment is the behavior you want to inspect.
create_backtest_dataset
Create a customer contact on an account. The contact is created without customer portal access and is not sent a portal invite; a teammate can grant portal access in Pylon. Fails if a contact with the same email already belongs to the account; use search_contacts to check first.
create_contact
Create a new feature request in Pylon. Search with search_feature_requests first; if a matching request exists, use add_evidence_to_feature_request instead. The result lists existing requests that may be duplicates. Prefer linking the originating Pylon issue with issue_id. Without one, pass account_id and evidence_summary to record which customer asked; resolve the customer with search_accounts and never infer the account from the teammate calling the tool.
create_feature_request
Create a ticket in your organization's Pylon workspace to track a support request from one of your customers. Requires an account ID, title, and body HTML. Optionally specify requester, priority, assignee, team, and tags. This records work for your team; it does not contact Pylon's support team about problems with the Pylon product.
create_issue
Create an internal thread on an issue. To link an existing Slack thread and import its message history, provide its slack_channel_id and root slack_thread_ts. With only slack_channel_id, creates a new Slack-backed thread; with neither, creates a Pylon-only thread. Creating or linking a Slack-backed thread requires the caller to be a human Pylon user whose verified Slack identity is a member of the channel. Pylon bot users and standalone API identities are not supported because they do not have Slack-verifiable channel membership. Optionally provide message_markdown when creating a new thread to post the first internal note. Returns the thread's ID, metadata, and message_id if a message was posted.
create_issue_thread
Delete an AI skill and all its agent assignments. If the skill was published for other organizations, their installed copies are also removed. Look up the skill by skill_id or name.
delete_ai_skill
Delete a task by ID. This will also delete all subtasks of the task. This action cannot be undone.
delete_task
Delete a user memory by slug.
delete_user_memory
Omit kickoff_type to list every kickoff type with whether it takes a condition and supports a front delay. Pass kickoff_type to get that kickoff's supported condition variants and action types before building kickoff_metadata. For recurring_schedule, always pass object_type: only then does the result require objectType/runMode in the condition schema, narrow the action types to that object, and set requires_branch_conditions (scheduled triggers must have conditions on every enabled branch).
describe_trigger_kickoff
Get AI feedback entries for the organization. Returns paginated feedback including thumbs up/down, CSAT, and escalation signals. When agent_id is provided, scopes results to issues handled by that agent.
get_ai_feedback
Get full details for a Pylon customer account. Pass either the account ID (UUID) or external ID. Returns account details including name, domain, owner, tags, custom fields, and linked channels.
get_account
Get AI-generated insight content for a specific widget on an account. Use get_notebook first to find widget IDs and check their content_status. If content is missing, pending_initialization, or pending_update, callers with account write access automatically trigger regeneration and should retry after about 30 seconds. Other non-success statuses are returned as unavailable without starting another regeneration.
get_account_insight
Get context entries posted by agents on an issue or account. Returns summaries by default; set include_detail to true for full context. Use source and client_identity filters to narrow results.
get_agent_context
Get an AI agent's full event/action timeline on a specific real issue — kickoff, tool calls, runbook steps, reassignments/escalations, messages, and outcomes. The live-issue analog of get_playground; use it to diagnose what the agent did on a real issue. Both agent_id and issue_id are required (use list_agents to find agent_id).
get_agent_issue
Get issues assigned to an AI agent within a time range. Returns paginated issue logs with outcome and handling stage details. Supports cursor-based pagination - use the returned cursor to fetch additional pages.
get_agent_issue_logs
Get full details for a knowledge base article including its content as HTML and as markdown (current_draft_content_markdown, current_published_content_markdown), visibility configuration (visibility level, AI agent access, allowed agent IDs), published status, collection ID, URL, and metadata. Look it up by knowledge_base_id and article_id, or by the identifier in its public URL.
get_article
Inspect one backtest case across the agents that ran it. Returns each agent's status, actions, timing, and saved thumbs rating. Use playground_id with get_playground for that execution's full message and tool timeline.
get_backtest_case
Fetch progress and case results for one backtest or run. Use case_result_id with update_backtest_case_feedback, case_id with get_backtest_case, and playground_id with get_playground. Filter by agent or creation time; page with cursor and limit.
get_backtest_results
Get call recording details from Pylon. Pass a call_recording_id (UUID) to fetch a specific recording, or pass an account (ID or name) to list the 25 most recent recordings across matching accounts. Only recordings on accounts you can read, or calls you were on, are returned. Returns recording metadata, participants, summary, and full transcript.
get_call_recording
Fetch and execute a saved analytics chart, returning the data as a table. The chart_id can be obtained from search_charts. Uses saved chart sorting and the containing dashboard timezone, or UTC for standalone charts. Results retain headers and rows per saved query or formula.
get_chart
Get details for a knowledge base collection including title, description, icon, parent collection ID, and visibility configuration.
get_collection
Get full details for a Pylon contact (customer). Pass the contact ID (UUID). Returns contact details including name, email, account, and custom fields.
get_contact
Get custom field definitions for an object type in Pylon. Returns the list of custom fields configured for the given object type, including their slugs, labels, types, and options. Supports opportunities, accounts, issues, contacts, tasks, and projects.
get_custom_fields
Get full details for a Pylon feature request. Pass the feature request ID (UUID). Returns title, description, request status, evidence count, and evidence items with their source type, summary, and linked account/source IDs. To get full details on linked accounts or source issues, use get_account or get_issue with the returned IDs.
get_feature_request
List every active feature request status configured for this organization, including built-in and custom statuses. Use the returned values in search_feature_requests.request_statuses.
get_feature_request_statuses
List the fields, operators, and reference types available when building a filter for one object type, including the org's custom fields. Properties with a static value space include allowed_values inline. For issue state and task status values, call get_issue_statuses or get_task_statuses. Properties with reference_type "team", "user", or "account" take UUIDs: resolve names with search_teams, search_users, or search_accounts before passing them to build_filter.
get_filter_attributes
Get full details for a Pylon support issue/ticket. Pass either the issue ID (UUID) or issue number. Returns title, body, state, metadata, custom fields, and nested account/assignee/requester info. Set include_messages to also return the conversation's messages in the same call.
get_issue
Get comprehensive context for a Pylon support issue. Returns a unified view including: **Customer Context:** - Account details (name, domain, tags) - Contact information (requester) - Account memories (user-created) **Issue Intelligence:** - AI suggestion explanation - Similar issues (summaries — use get_issue_context_detail to drill into full messages) - Knowledge base articles (summaries — use get_issue_context_detail for full body) - External pages and runbooks (summaries — use get_issue_context_detail for full content) - Product tickets (Jira, Linear, GitHub, Asana) linked to this issue - Issue group (if this issue is part of a group) - Anomaly detection (if this issue is part of a detected anomaly) - Call recordings for this account (summaries — use get_issue_context_detail for transcripts) - Prior agent work (summaries — use get_issue_context_detail to review full findings, actions, and supporting context) This is a superset of get_issue_suggestions. For large content items, use get_issue_context_detail to drill into specific references.
get_issue_context
Drill into full content for a specific item from the issue context. Use this after calling get_issue_context to retrieve the complete content of a referenced item. Supported detail types: - similar_issue: Full messages from a similar issue - article: Full body of a knowledge base article - external_page: Full content of an external page - runbook: Full body of a runbook - call_recording: Full transcript of a call recording - anomaly: Full details of a detected anomaly including affected issue IDs - agent_context: Full detail of an agent context entry including reasoning and tool call logs Pass the reference_id from the get_issue_context response along with the appropriate detail_type.
get_issue_context_detail
List an issue's followers: teammates (with names) and customer contacts (IDs only; use get_contact for details).
get_issue_followers
Get the full message history for a Pylon issue. Pass either the issue ID (UUID) or issue number. Returns all messages in chronological order with author info and original email To/Cc recipients in email_info when available.
get_issue_messages
List every issue status configured for this org: the five default categories (new, waiting_on_you, waiting_on_customer, on_hold, closed) plus any custom statuses the admin has added. Call this when you need values for the issue state property in build_filter — pass value=<slug> to equals / values=[...slugs] to includes_any_of. The value "new" is the default New status (it matches only New, not every non-closed status). To filter for active/non-closed issues, use operator not_any_of with value "closed".
get_issue_statuses
Get AI-generated suggestions for resolving a Pylon support issue. Returns relevant similar issues, knowledge base articles, external pages, and runbooks that may help resolve the issue. Each suggestion includes: - suggestion_type: The type of resource (ISSUE, ARTICLE, EXTERNAL_PAGE, ISSUE_RUNBOOK) - reference_id: The unique ID of the suggested resource - title: A descriptive title for the suggestion - url: The URL of the resource (only for EXTERNAL_PAGE suggestions) To get full details of a suggested issue, call get_issue with the reference_id. For ARTICLE, EXTERNAL_PAGE, or ISSUE_RUNBOOK suggestions, call get_issue_context_detail with this issue, the reference_id, and detail_type article, external_page, or runbook respectively.
get_issue_suggestions
Get all threads for a Pylon issue. Returns thread metadata including name, source, and linked Slack channel info. Pass either the issue ID (UUID) or issue number.
get_issue_threads
Get a structured table of contents for a knowledge base, showing all collections (with nesting) and their articles. Returns IDs, titles, identifiers, and published status — no article content. Use this to browse the KB structure before fetching specific articles.
get_kb_table_of_contents
Read a visible macro definition: name, stored HTML template, text type, group, visibility, configured action types, and read-only attachment metadata including inline images and non-inline files. Returns up to 100 attachment summaries plus total attachment_count and has_more_attachments. Text edits preserve every attachment; change or remove files in Pylon. Template variables are not resolved against an issue. Actions can be inspected but cannot be edited through save_macro. This does not execute the macro or send a message.
get_macro
Get the currently authenticated user and their organization (workspace). Returns the user's ID, name, email, and role, plus the organization's ID and name. No parameters required.
get_me
List milestones, optionally filtered by project_id and/or account_id, or fetch one milestone by milestone_id.
get_milestones
Get notebook information for a Pylon customer account. Pass the account ID (UUID or external ID). If notebook_id is provided, returns the full notebook details including widgets. If notebook_id is omitted, returns a list of all available notebooks for the account. For missing, pending_initialization, or pending_update AI insight content, callers with account write access automatically trigger regeneration. Set include_content=true with notebook_id to also return widget contents in content, including the most recent 20 timestamped notes per widget. Wait about 30 seconds and retry with include_content=true to fetch updated AI content.
get_notebook
Pylon ChatGPT Plugin FAQ
How the directory, categories and Discoverability Score work.
Read the methodologyHow do I improve Pylon's ChatGPT Plugin discoverability?
The levers are the listing surface agents actually read: names, descriptions, keywords, tool metadata, and registry health. Which lever matters depends on where discovery breaks, which is what continuous measurement shows.
What are Pylon alternatives on ChatGPT?
As of 2026-11-02, Pylon competes with AntBuddy, Asking, CommSync, Drag, EasyReply, Front, FyneDesk, Gleap and 12 more in ChatGPT Helpdesk & Ticketing Platforms, ranked by public Discoverability Score.
Where is this profile measured?
This profile uses the geography attached to the latest public registry snapshot: US. Locale tags are intentionally omitted.