Pylon

Pylon is a B2B customer support platform that helps teams manage support tickets across multiple channels including Slack, Email, Microsoft Teams, and more. Through Langdock’s integration, you can access and manage Pylon directly from your conversations.

Authentication: API Key Category: CRM & Customer Support Availability: All workspace plans

Available Actions

Get Issue

pylon.getIssue

Retrieve details of a specific issue by ID or ticket number Requires Confirmation: No Parameters:

  • issueIdOrTicketNumber (TEXT, Required): The unique identifier or ticket number of the issue

Output: Returns the issue details with cleaned HTML content


Search Issues

pylon.searchIssues

Search for issues with advanced filtering capabilities Requires Confirmation: No Parameters:

  • filterField (SELECT, Optional): The field to filter by (created_at, account_id, ticket_form_id, requester_id, follower_user_id, follower_contact_id, state, tags, title, body_html, or custom field slug)

    • filterOperator (SELECT, Optional): The operator to use for filtering (equals, in, not_in, contains, does_not_contain, string_contains, string_does_not_contain, time_is_after, time_is_before, time_range)

    • filterValue (TEXT, Optional): The value to filter by (for single value operators like equals, string_contains, time_is_after, time_is_before)

    • filterValues (TEXT, Optional): JSON array of values for operators: in, not_in, contains, does_not_contain

    • startTime (TEXT, Optional): Start time for time_range operator (RFC3339 format)

    • endTime (TEXT, Optional): End time for time_range operator (RFC3339 format)

    • cursor (TEXT, Optional): Cursor for pagination

    • limit (NUMBER, Optional): Number of issues to fetch (1-1000, default 100)

Output: Returns a list of issues matching the search criteria


Create Issue

pylon.createIssue

Create a new issue Requires Confirmation: Yes Parameters:

  • title (TEXT, Required): The title of the issue

    • bodyHtml (MULTI_LINE_TEXT, Optional): The HTML content of the issue. Use HTML tags (e.g.,

      , ,

      • ). Markdown syntax will NOT be renderedaccountId (TEXT, Optional): The ID of the account associated with this issueassigneeId (TEXT, Optional): The ID of the user to assign this issue toteamId (TEXT, Optional): The ID of the team to assign this issue topriority (SELECT, Optional): The priority of the issue (low, medium, high, urgent)requesterEmail (TEXT, Optional): Email of the person requesting this issuerequesterId (TEXT, Optional): ID of the requesterrequesterName (TEXT, Optional): Name of the requesterrequesterAvatarUrl (TEXT, Optional): URL to the requester’s avatar imagetags (TEXT, Optional): Tags for the issue (JSON array)customFields (TEXT, Optional): Custom fields (JSON array)attachmentUrls (TEXT, Optional): URLs to attachments (JSON array)destination (TEXT, Optional): Destination for the issue (e.g., email, slack)destinationEmail (TEXT, Optional): Email address for the destinationemailCcs (TEXT, Optional): CC email addresses (JSON array)emailBccs (TEXT, Optional): BCC email addresses (JSON array)createdAt (TEXT, Optional): Timestamp when issue was created (RFC3339 format)userId (TEXT, Optional): ID of the user creating the issuecontactId (TEXT, Optional): ID of the contact associated with the issue

    Output: Returns the created issue detailsList Issuespylon.listIssuesGet a list of issues Requires Confirmation: No Parameters:startTime (TEXT, Optional): Start time for filtering issues (RFC3339 format)endTime (TEXT, Optional): End time for filtering issues (RFC3339 format)Output: Returns a list of issuesDelete Issuepylon.deleteIssueDelete an existing issue Requires Confirmation: Yes Parameters:issueId (TEXT, Required): The ID of the issue to deleteOutput: Confirmation of deletionUpdate Issuepylon.updateIssueUpdate an existing issue Requires Confirmation: Yes Parameters:issueId (TEXT, Required): The ID of the issue to updateassigneeId (TEXT, Optional): The ID of the user to assign (empty string removes assignee)teamId (TEXT, Optional): The ID of the team to assign (empty string removes team)state (SELECT, Optional): The state of the issue (new, in_progress, waiting, closed)requesterId (TEXT, Optional): ID of the requester to updatecustomerPortalVisible (SELECT, Optional): Whether the issue is visible in the customer portal (true, false)tags (TEXT, Optional): Updated tags for the issue (JSON array)customFields (TEXT, Optional): Updated custom fields (JSON array)Output: Returns the updated issue detailsAdd Draft Reply to Issuepylon.addDraftReplytoIssueAdd a draft reply to an existing issue Requires Confirmation: Yes Parameters:issueId (TEXT, Required): The unique identifier of the issuedraftResponse (MULTI_LINE_TEXT, Required): The draft reply content to add to the issueOutput: Confirmation of draft reply additionAdd Note to Issuepylon.addNotetoIssueAdd an internal note to an issue. IMPORTANT: Use HTML formatting, NOT Markdown. Markdown will be stripped and appear as plain text Requires Confirmation: Yes Parameters:issueId (TEXT, Required): The unique identifier of the issuecontent (MULTI_LINE_TEXT, Required): The HTML content of the note. Use HTML tags like <p>, <strong>, <ul><li>, <h3>. DO NOT use Markdown syntax like bold or - lists as it will be strippedOutput: Confirmation of note additionSnooze Issuepylon.snoozeIssueSnooze an issue until a specific time Requires Confirmation: Yes Parameters:issueId (TEXT, Required): The ID or number of the issue to snoozesnoozeUntil (TEXT, Required): Timestamp to snooze the issue until (RFC3339 format)Output: Confirmation of snooze actionGet Issue Followerspylon.getIssueFollowersGet a list of followers for an issue Requires Confirmation: No Parameters:issueId (TEXT, Required): The ID or number of the issueOutput: Returns a list of followersGet Issue Messagespylon.getIssueMessagesRetrieve all messages for a specific issue Requires Confirmation: No Parameters:issueId (TEXT, Required): The unique identifier of the issueOutput: Returns all messages for the issueManage Issue Followerspylon.manageIssueFollowersAdd or remove followers from an issue Requires Confirmation: Yes Parameters:issueId (TEXT, Required): The ID or number of the issueoperation (SELECT, Optional): Whether to add or remove followers (add, remove)userIds (TEXT, Optional): User IDs to add/remove as followers (JSON array)contactIds (TEXT, Optional): Contact IDs to add/remove as followers (JSON array)Output: Confirmation of follower managementManage External Issuespylon.manageExternalIssuesLink or unlink external issues Requires Confirmation: Yes Parameters:issueId (TEXT, Required): The ID of the Pylon issueoperation (SELECT, Required): Whether to link or unlink external issues (link, unlink)source (TEXT, Required): The source system (e.g., linear, jira)externalId (TEXT, Required): The ID of the external issuelink (TEXT, Optional): URL link to the external issueOutput: Confirmation of external issue managementRedact Messagepylon.redactMessageRedact a message in an issue Requires Confirmation: Yes Parameters:messageId (TEXT, Required): The ID of the message to redactOutput: Confirmation of message redactionList Accountspylon.listAccountsGet a paginated list of accounts Requires Confirmation: No Parameters:cursor (TEXT, Optional): The cursor to use for paginationlimit (NUMBER, Optional): Number of accounts to fetch (1-1000, default: 100)Output: Returns a list of accountsCreate Accountpylon.createAccountCreate a new account Requires Confirmation: Yes Parameters:name (TEXT, Required): The name of the accountdomains (TEXT, Optional): List of domains (comma-separated, e.g., acme.com, acme.org)primaryDomain (TEXT, Optional): Primary domain (must be in domains list)logoUrl (TEXT, Optional): URL to account logo (square PNG, JPG, or JPEG)tags (TEXT, Optional): Tags for the account (JSON array, e.g., ['enterprise', 'priority'])externalIds (TEXT, Optional): External IDs (JSON array of objects, e.g., ['external_id': '123', 'label': 'CRM ID'])customFields (TEXT, Optional): Custom fields (JSON array, e.g., ['slug': 'industry', 'value': 'Technology'])channels (TEXT, Optional): Channels to link (JSON array, e.g., ['channel_id': 'ch123', 'source': 'slack', 'is_primary': true])Output: Returns the created account detailsGet Accountpylon.getAccountGet an account by its ID or external ID Requires Confirmation: No Parameters:accountId (TEXT, Required): The ID or external ID of the accountOutput: Returns the account detailsUpdate Accountpylon.updateAccountUpdate an existing account Requires Confirmation: Yes Parameters:accountId (TEXT, Required): The ID or external ID of the account to updatename (TEXT, Optional): New name for the accountdomains (TEXT, Optional): Updated list of domains (comma-separated)primaryDomain (TEXT, Optional): Primary domain (must be in domains list)ownerId (TEXT, Optional): ID of the new ownertags (TEXT, Optional): Updated tags (JSON array)externalIds (TEXT, Optional): Updated external IDs (JSON array)customFields (TEXT, Optional): Updated custom fields (JSON array)channels (TEXT, Optional): Updated channels (JSON array)keepExistingPrimaryDomain (SELECT, Optional): If updating domains but not primary, set to true (true, false)Output: Returns the updated account detailsDelete Accountpylon.deleteAccountDelete an existing account Requires Confirmation: Yes Parameters:accountId (TEXT, Required): The ID or external ID of the account to deleteOutput: Confirmation of deletionSearch Accountspylon.searchAccountsSearch for accounts using field-specific operators. IMPORTANT: Each field has specific allowed operators - domains/tags: contains, does_not_contain, in, not_in | name/external_ids: equals, in, not_in. Use filterValue for single values (equals, contains, does_not_contain), filterValues for arrays (in, not_in) Requires Confirmation: No Parameters:filterField (SELECT, Optional): Field to filter by. Each field supports different operators - check operator compatibility (domains, tags, name, external_ids)filterOperator (SELECT, Optional): Operator for filtering. MUST be compatible with selected field (see field descriptions) (equals, in, not_in, contains, does_not_contain)filterValue (TEXT, Optional): Use for SINGLE value operators: equals, contains, does_not_contain. Leave empty when using filterValuesfilterValues (TEXT, Optional): Use ONLY for ARRAY operators: in, not_in. Must be JSON array format. Leave empty when using filterValuecursor (TEXT, Optional): The cursor for paginationlimit (NUMBER, Optional): Number of results (1-1000)Output: Returns a list of accounts matching the search criteriaCreate Account Activitypylon.createAccountActivityCreate a new activity for an account Requires Confirmation: Yes Parameters:accountId (TEXT, Required): The ID of the account to create the activity forslug (TEXT, Required): The slug of the activity type. Get valid slugs from ‘Get Activity Types’ actionbodyHtml (MULTI_LINE_TEXT, Optional): Optional HTML content to display in the activitycontactId (TEXT, Optional): Optional contact ID of the actoruserId (TEXT, Optional): Optional user ID of the actorhappenedAt (TEXT, Optional): Timestamp (RFC3339) when activity happened (defaults to now)link (TEXT, Optional): Optional link to add to the activitylinkText (TEXT, Optional): Link text to display (defaults to ‘Open link’)Output: Returns the created activity detailsGet Activity Typespylon.getActivityTypesGet custom activity types configured in your Pylon instance Requires Confirmation: No Parameters: NoneOutput: Returns a list of activity typesCreate Account Highlightpylon.createAccountHighlightCreate a new highlight for an account Requires Confirmation: Yes Parameters:accountId (TEXT, Required): The ID of the account to create the highlight forcontentHtml (MULTI_LINE_TEXT, Required): The HTML content for this highlightexpiresAt (TEXT, Optional): Optional RFC3339 timestamp when highlight expiresOutput: Returns the created highlight detailsUpdate Account Highlightpylon.updateAccountHighlightUpdate an existing account highlight Requires Confirmation: Yes Parameters:accountId (TEXT, Required): The ID of the account that the highlight belongs tohighlightId (TEXT, Required): The ID of the highlight to updatecontentHtml (MULTI_LINE_TEXT, Optional): The updated HTML content for this highlightexpiresAt (TEXT, Optional): Updated expiration timestamp (RFC3339)Output: Returns the updated highlight detailsDelete Account Highlightpylon.deleteAccountHighlightDelete an existing account highlight Requires Confirmation: Yes Parameters:accountId (TEXT, Required): The ID of the account that the highlight belongs tohighlightId (TEXT, Required): The ID of the highlight to deleteOutput: Confirmation of deletionList Custom Fieldspylon.listCustomFieldsGet all custom fields configured in Pylon. REQUIRED: objectType must be one of: account, issue, or contact Requires Confirmation: No Parameters:objectType (SELECT, Required): Select the object type (account, issue, or contact)Output: Returns a list of custom fieldsGet Custom Fieldpylon.getCustomFieldGet a custom field by its ID Requires Confirmation: No Parameters:customFieldId (TEXT, Required): The ID of the custom fieldOutput: Returns the specific custom field detailsCreate Custom Fieldpylon.createCustomFieldCreate a new custom field Requires Confirmation: Yes Parameters:slug (TEXT, Required): Unique identifier for the custom fieldlabel (TEXT, Required): Display label for the custom fieldtype (SELECT, Required): The type of the custom field (text, number, decimal, boolean, date, datetime, user, url, select, multiselect)objectType (SELECT, Required): The object type this field applies to (account, issue, contact)description (TEXT, Optional): Description of the custom fielddefaultValue (TEXT, Optional): Default value for single-valued fieldsdefaultValues (TEXT, Optional): Default values for multi-valued fields (JSON array)selectOptions (TEXT, Optional): Options for select/multiselect fields (JSON array)Output: Returns the created custom field detailsUpdate Custom Fieldpylon.updateCustomFieldUpdate an existing custom field Requires Confirmation: Yes Parameters:customFieldId (TEXT, Required): The ID of the custom field to updateslug (TEXT, Optional): Updated slug for the custom fieldlabel (TEXT, Optional): Updated label for the custom fielddescription (TEXT, Optional): Updated descriptiondefaultValue (TEXT, Optional): Updated default value for single-valued fieldsdefaultValues (TEXT, Optional): Updated default values for multi-valued fields (JSON array)selectOptions (TEXT, Optional): Updated options for select/multiselect fields (JSON array)Output: Returns the updated custom field detailsList Userspylon.listUsersGet a list of all users Requires Confirmation: No Parameters:cursor (TEXT, Optional): Pagination cursor from previous requestlimit (NUMBER, Optional): Number of users to fetch (max 1000)Output: Returns a list of usersGet Userpylon.getUserGet a user by ID Requires Confirmation: No Parameters:userId (TEXT, Required): The ID of the user to fetchOutput: Returns the user detailsUpdate Userpylon.updateUserUpdate a user’s role or status Requires Confirmation: Yes Parameters:userId (TEXT, Required): The ID of the user to updateroleId (TEXT, Optional): The new role ID for the userstatus (SELECT, Optional): User status (active, away, or out_of_office)Output: Returns the updated user detailsSearch Userspylon.searchUsersSearch for users by email Requires Confirmation: No Parameters:filterField (SELECT, Optional): Field to filter by (currently only ‘email’ is supported)filterOperator (SELECT, Optional): Operator for the filter (equals, in, not_in)filterValue (TEXT, Optional): Value for equals operatorfilterValues (TEXT, Optional): JSON array of values for in/not_in operatorscursor (TEXT, Optional): Pagination cursor from previous requestlimit (NUMBER, Optional): Number of users to fetch (max 1000)Output: Returns a list of users matching the search criteriaList Knowledge Basespylon.listKnowledgeBasesGet a list of all knowledge bases Requires Confirmation: No Parameters: NoneOutput: Returns a list of knowledge basesGet Knowledge Basepylon.getKnowledgeBaseGet details of a specific knowledge base Requires Confirmation: No Parameters:knowledgeBaseId (TEXT, Required): The ID of the knowledge baseOutput: Returns the knowledge base detailsCreate KB Articlepylon.createKBArticleCreate a new knowledge base article. IMPORTANT: The contentHtml field is mapped to body_html in the API Requires Confirmation: Yes Parameters:knowledgeBaseId (TEXT, Required): The ID of the knowledge base. Get valid IDs from the ‘List Knowledge Bases’ actiontitle (TEXT, Required): The title of the articlecontentHtml (MULTI_LINE_TEXT, Required): The HTML content of the article (maps to body_html in API). Use proper HTML tags. Markdown will NOT be renderedcollectionId (TEXT, Optional): The ID of the collection to add the article toslug (TEXT, Optional): URL slug for the articleauthorUserId (TEXT, Optional): The ID of the user to set as the article author. Get valid user IDs from the ‘List Users’ actionpublishedAt (TEXT, Optional): Publication timestamp (RFC3339)isPublished (SELECT, Optional): Whether the article should be published immediately (true, false)isUnlisted (SELECT, Optional): Whether the article should be unlisted (accessible only via direct link) (true, false)Output: Returns the created article detailsUpdate KB Articlepylon.updateKBArticleUpdate an existing knowledge base article. IMPORTANT: The contentHtml field is mapped to body_html in the API Requires Confirmation: Yes Parameters:articleId (TEXT, Required): The ID of the article to updatetitle (TEXT, Optional): Updated title of the articlecontentHtml (MULTI_LINE_TEXT, Optional): Updated HTML content (maps to body_html in API). Use proper HTML tags. Markdown will NOT be renderedslug (TEXT, Optional): Updated URL slugpublishedAt (TEXT, Optional): Updated publication timestamp (RFC3339)Output: Returns the updated article detailsList KB Collectionspylon.listKBCollectionsGet a list of knowledge base collections Requires Confirmation: No Parameters:knowledgeBaseId (TEXT, Required): The ID of the knowledge baseOutput: Returns a list of collectionsCreate KB Collectionpylon.createKBCollectionCreate a new knowledge base collection Requires Confirmation: Yes Parameters:knowledgeBaseId (TEXT, Required): The ID of the knowledge basetitle (TEXT, Required): The title of the collectiondescription (TEXT, Optional): Description of the collectionslug (TEXT, Optional): URL slug for the collectionOutput: Returns the created collection detailsCreate KB Route Redirectpylon.createKBRouteRedirectCreate a route redirect in the knowledge base Requires Confirmation: Yes Parameters:knowledgeBaseId (TEXT, Required): The ID of the knowledge basefromPath (TEXT, Required): The path to redirect fromtoPath (TEXT, Required): The path to redirect toOutput: Returns the created redirect detailsList Teamspylon.listTeamsGet a list of all teams Requires Confirmation: No Parameters: NoneOutput: Returns a list of teamsGet Teampylon.getTeamGet details of a specific team Requires Confirmation: No Parameters:teamId (TEXT, Required): The ID of the teamOutput: Returns the team detailsCreate Teampylon.createTeamCreate a new team Requires Confirmation: Yes Parameters:name (TEXT, Required): The name of the teamdescription (TEXT, Optional): Description of the teamslackChannelId (TEXT, Optional): Associated Slack channel IDOutput: Returns the created team detailsUpdate Teampylon.updateTeamUpdate an existing team Requires Confirmation: Yes Parameters:teamId (TEXT, Required): The ID of the team to updatename (TEXT, Optional): Updated name of the teamdescription (TEXT, Optional): Updated descriptionslackChannelId (TEXT, Optional): Updated Slack channel IDOutput: Returns the updated team detailsCommon Use CasesData Management — Manage and organize your Pylon dataAutomation — Automate workflows with PylonReporting — Generate insights and reportsIntegration — Connect Pylon with other toolsBest PracticesGetting StartedEnable the Pylon integration in your workspace settingsAuthenticate using API KeyTest the connection with a simple read operationExplore available actions for your use caseImportant ConsiderationsEnsure proper authentication credentialsRespect rate limits and API quotasReview data privacy settingsTest operations in a safe environment firstTroubleshootingSupportFor additional help with the Pylon integration, contact [email protected]envelope