Overview

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., <p>, <strong>, <ul>). Markdown syntax will NOT be rendered
    • accountId (TEXT, Optional): The ID of the account associated with this issue
    • assigneeId (TEXT, Optional): The ID of the user to assign this issue to
    • teamId (TEXT, Optional): The ID of the team to assign this issue to
    • priority (SELECT, Optional): The priority of the issue (low, medium, high, urgent)
    • requesterEmail (TEXT, Optional): Email of the person requesting this issue
    • requesterId (TEXT, Optional): ID of the requester
    • requesterName (TEXT, Optional): Name of the requester
    • requesterAvatarUrl (TEXT, Optional): URL to the requester’s avatar image
    • tags (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 destination
    • emailCcs (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 issue
    • contactId (TEXT, Optional): ID of the contact associated with the issue
Output: Returns the created issue details

List Issues

pylon.listIssues
Get 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 issues

Delete Issue

pylon.deleteIssue
Delete an existing issue Requires Confirmation: Yes Parameters:
  • issueId (TEXT, Required): The ID of the issue to delete
Output: Confirmation of deletion

Update Issue

pylon.updateIssue
Update an existing issue Requires Confirmation: Yes Parameters:
  • issueId (TEXT, Required): The ID of the issue to update
    • assigneeId (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 update
    • customerPortalVisible (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 details

Add Draft Reply to Issue

pylon.addDraftReplytoIssue
Add a draft reply to an existing issue Requires Confirmation: Yes Parameters:
  • issueId (TEXT, Required): The unique identifier of the issue
    • draftResponse (MULTI_LINE_TEXT, Required): The draft reply content to add to the issue
Output: Confirmation of draft reply addition

Add Note to Issue

pylon.addNotetoIssue
Add 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 issue
    • content (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 stripped
Output: Confirmation of note addition

Snooze Issue

pylon.snoozeIssue
Snooze an issue until a specific time Requires Confirmation: Yes Parameters:
  • issueId (TEXT, Required): The ID or number of the issue to snooze
    • snoozeUntil (TEXT, Required): Timestamp to snooze the issue until (RFC3339 format)
Output: Confirmation of snooze action

Get Issue Followers

pylon.getIssueFollowers
Get a list of followers for an issue Requires Confirmation: No Parameters:
  • issueId (TEXT, Required): The ID or number of the issue
Output: Returns a list of followers

Get Issue Messages

pylon.getIssueMessages
Retrieve all messages for a specific issue Requires Confirmation: No Parameters:
  • issueId (TEXT, Required): The unique identifier of the issue
Output: Returns all messages for the issue

Manage Issue Followers

pylon.manageIssueFollowers
Add or remove followers from an issue Requires Confirmation: Yes Parameters:
  • issueId (TEXT, Required): The ID or number of the issue
    • operation (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 management

Manage External Issues

pylon.manageExternalIssues
Link or unlink external issues Requires Confirmation: Yes Parameters:
  • issueId (TEXT, Required): The ID of the Pylon issue
    • operation (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 issue
    • link (TEXT, Optional): URL link to the external issue
Output: Confirmation of external issue management

Redact Message

pylon.redactMessage
Redact a message in an issue Requires Confirmation: Yes Parameters:
  • messageId (TEXT, Required): The ID of the message to redact
Output: Confirmation of message redaction

List Accounts

pylon.listAccounts
Get a paginated list of accounts Requires Confirmation: No Parameters:
  • cursor (TEXT, Optional): The cursor to use for pagination
    • limit (NUMBER, Optional): Number of accounts to fetch (1-1000, default: 100)
Output: Returns a list of accounts

Create Account

pylon.createAccount
Create a new account Requires Confirmation: Yes Parameters:
  • name (TEXT, Required): The name of the account
    • domains (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 details

Get Account

pylon.getAccount
Get an account by its ID or external ID Requires Confirmation: No Parameters:
  • accountId (TEXT, Required): The ID or external ID of the account
Output: Returns the account details

Update Account

pylon.updateAccount
Update an existing account Requires Confirmation: Yes Parameters:
  • accountId (TEXT, Required): The ID or external ID of the account to update
    • name (TEXT, Optional): New name for the account
    • domains (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 owner
    • tags (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 details

Delete Account

pylon.deleteAccount
Delete an existing account Requires Confirmation: Yes Parameters:
  • accountId (TEXT, Required): The ID or external ID of the account to delete
Output: Confirmation of deletion

Search Accounts

pylon.searchAccounts
Search 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 filterValues
    • filterValues (TEXT, Optional): Use ONLY for ARRAY operators: in, not_in. Must be JSON array format. Leave empty when using filterValue
    • cursor (TEXT, Optional): The cursor for pagination
    • limit (NUMBER, Optional): Number of results (1-1000)
Output: Returns a list of accounts matching the search criteria

Create Account Activity

pylon.createAccountActivity
Create a new activity for an account Requires Confirmation: Yes Parameters:
  • accountId (TEXT, Required): The ID of the account to create the activity for
    • slug (TEXT, Required): The slug of the activity type. Get valid slugs from ‘Get Activity Types’ action
    • bodyHtml (MULTI_LINE_TEXT, Optional): Optional HTML content to display in the activity
    • contactId (TEXT, Optional): Optional contact ID of the actor
    • userId (TEXT, Optional): Optional user ID of the actor
    • happenedAt (TEXT, Optional): Timestamp (RFC3339) when activity happened (defaults to now)
    • link (TEXT, Optional): Optional link to add to the activity
    • linkText (TEXT, Optional): Link text to display (defaults to ‘Open link’)
Output: Returns the created activity details

Get Activity Types

pylon.getActivityTypes
Get custom activity types configured in your Pylon instance Requires Confirmation: No Parameters: None Output: Returns a list of activity types

Create Account Highlight

pylon.createAccountHighlight
Create a new highlight for an account Requires Confirmation: Yes Parameters:
  • accountId (TEXT, Required): The ID of the account to create the highlight for
    • contentHtml (MULTI_LINE_TEXT, Required): The HTML content for this highlight
    • expiresAt (TEXT, Optional): Optional RFC3339 timestamp when highlight expires
Output: Returns the created highlight details

Update Account Highlight

pylon.updateAccountHighlight
Update an existing account highlight Requires Confirmation: Yes Parameters:
  • accountId (TEXT, Required): The ID of the account that the highlight belongs to
    • highlightId (TEXT, Required): The ID of the highlight to update
    • contentHtml (MULTI_LINE_TEXT, Optional): The updated HTML content for this highlight
    • expiresAt (TEXT, Optional): Updated expiration timestamp (RFC3339)
Output: Returns the updated highlight details

Delete Account Highlight

pylon.deleteAccountHighlight
Delete an existing account highlight Requires Confirmation: Yes Parameters:
  • accountId (TEXT, Required): The ID of the account that the highlight belongs to
    • highlightId (TEXT, Required): The ID of the highlight to delete
Output: Confirmation of deletion

List Custom Fields

pylon.listCustomFields
Get 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 fields

Get Custom Field

pylon.getCustomField
Get a custom field by its ID Requires Confirmation: No Parameters:
  • customFieldId (TEXT, Required): The ID of the custom field
Output: Returns the specific custom field details

Create Custom Field

pylon.createCustomField
Create a new custom field Requires Confirmation: Yes Parameters:
  • slug (TEXT, Required): Unique identifier for the custom field
    • label (TEXT, Required): Display label for the custom field
    • type (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 field
    • defaultValue (TEXT, Optional): Default value for single-valued fields
    • defaultValues (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 details

Update Custom Field

pylon.updateCustomField
Update an existing custom field Requires Confirmation: Yes Parameters:
  • customFieldId (TEXT, Required): The ID of the custom field to update
    • slug (TEXT, Optional): Updated slug for the custom field
    • label (TEXT, Optional): Updated label for the custom field
    • description (TEXT, Optional): Updated description
    • defaultValue (TEXT, Optional): Updated default value for single-valued fields
    • defaultValues (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 details

List Users

pylon.listUsers
Get a list of all users Requires Confirmation: No Parameters:
  • cursor (TEXT, Optional): Pagination cursor from previous request
    • limit (NUMBER, Optional): Number of users to fetch (max 1000)
Output: Returns a list of users

Get User

pylon.getUser
Get a user by ID Requires Confirmation: No Parameters:
  • userId (TEXT, Required): The ID of the user to fetch
Output: Returns the user details

Update User

pylon.updateUser
Update a user’s role or status Requires Confirmation: Yes Parameters:
  • userId (TEXT, Required): The ID of the user to update
    • roleId (TEXT, Optional): The new role ID for the user
    • status (SELECT, Optional): User status (active, away, or out_of_office)
Output: Returns the updated user details

Search Users

pylon.searchUsers
Search 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 operator
    • filterValues (TEXT, Optional): JSON array of values for in/not_in operators
    • cursor (TEXT, Optional): Pagination cursor from previous request
    • limit (NUMBER, Optional): Number of users to fetch (max 1000)
Output: Returns a list of users matching the search criteria

List Knowledge Bases

pylon.listKnowledgeBases
Get a list of all knowledge bases Requires Confirmation: No Parameters: None Output: Returns a list of knowledge bases

Get Knowledge Base

pylon.getKnowledgeBase
Get details of a specific knowledge base Requires Confirmation: No Parameters:
  • knowledgeBaseId (TEXT, Required): The ID of the knowledge base
Output: Returns the knowledge base details

Create KB Article

pylon.createKBArticle
Create 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’ action
    • title (TEXT, Required): The title of the article
    • contentHtml (MULTI_LINE_TEXT, Required): The HTML content of the article (maps to body_html in API). Use proper HTML tags. Markdown will NOT be rendered
    • collectionId (TEXT, Optional): The ID of the collection to add the article to
    • slug (TEXT, Optional): URL slug for the article
    • authorUserId (TEXT, Optional): The ID of the user to set as the article author. Get valid user IDs from the ‘List Users’ action
    • publishedAt (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 details

Update KB Article

pylon.updateKBArticle
Update 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 update
    • title (TEXT, Optional): Updated title of the article
    • contentHtml (MULTI_LINE_TEXT, Optional): Updated HTML content (maps to body_html in API). Use proper HTML tags. Markdown will NOT be rendered
    • slug (TEXT, Optional): Updated URL slug
    • publishedAt (TEXT, Optional): Updated publication timestamp (RFC3339)
Output: Returns the updated article details

List KB Collections

pylon.listKBCollections
Get a list of knowledge base collections Requires Confirmation: No Parameters:
  • knowledgeBaseId (TEXT, Required): The ID of the knowledge base
Output: Returns a list of collections

Create KB Collection

pylon.createKBCollection
Create a new knowledge base collection Requires Confirmation: Yes Parameters:
  • knowledgeBaseId (TEXT, Required): The ID of the knowledge base
    • title (TEXT, Required): The title of the collection
    • description (TEXT, Optional): Description of the collection
    • slug (TEXT, Optional): URL slug for the collection
Output: Returns the created collection details

Create KB Route Redirect

pylon.createKBRouteRedirect
Create a route redirect in the knowledge base Requires Confirmation: Yes Parameters:
  • knowledgeBaseId (TEXT, Required): The ID of the knowledge base
    • fromPath (TEXT, Required): The path to redirect from
    • toPath (TEXT, Required): The path to redirect to
Output: Returns the created redirect details

List Teams

pylon.listTeams
Get a list of all teams Requires Confirmation: No Parameters: None Output: Returns a list of teams

Get Team

pylon.getTeam
Get details of a specific team Requires Confirmation: No Parameters:
  • teamId (TEXT, Required): The ID of the team
Output: Returns the team details

Create Team

pylon.createTeam
Create a new team Requires Confirmation: Yes Parameters:
  • name (TEXT, Required): The name of the team
    • description (TEXT, Optional): Description of the team
    • slackChannelId (TEXT, Optional): Associated Slack channel ID
Output: Returns the created team details

Update Team

pylon.updateTeam
Update an existing team Requires Confirmation: Yes Parameters:
  • teamId (TEXT, Required): The ID of the team to update
    • name (TEXT, Optional): Updated name of the team
    • description (TEXT, Optional): Updated description
    • slackChannelId (TEXT, Optional): Updated Slack channel ID
Output: Returns the updated team details

Common Use Cases

Data Management

Manage and organize your Pylon data

Automation

Automate workflows with Pylon

Reporting

Generate insights and reports

Integration

Connect Pylon with other tools

Best Practices

Getting Started:
  1. Enable the Pylon integration in your workspace settings
  2. Authenticate using API Key
  3. Test the connection with a simple read operation
  4. Explore available actions for your use case
Important Considerations:
  • Ensure proper authentication credentials
  • Respect rate limits and API quotas
  • Review data privacy settings
  • Test operations in a safe environment first

Troubleshooting

IssueSolution
Authentication failedVerify your API Key credentials
Rate limit exceededReduce request frequency
Data not foundCheck permissions and data availability
Connection timeoutVerify network connectivity

Support

For additional help with the Pylon integration, contact support@langdock.com