Skip to content
Scalekit Docs
Talk to an EngineerDashboard

Pylon connector

Bearer TokenCustomer Support

Connect to Pylon, the modern customer support platform, to manage tickets, contacts, accounts, tasks, projects, and knowledge base content.

Pylon connector

  1. Terminal window
    npm install @scalekit-sdk/node

    Full SDK reference: Node.js | Python

  2. Add your Scalekit credentials to your .env file. Find values in app.scalekit.com > Developers > API Credentials.

    .env
    SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
    SCALEKIT_CLIENT_ID=<your-client-id>
    SCALEKIT_CLIENT_SECRET=<your-client-secret>
  3. quickstart.ts
    import { ScalekitClient } from '@scalekit-sdk/node'
    import 'dotenv/config'
    const scalekit = new ScalekitClient(
    process.env.SCALEKIT_ENV_URL,
    process.env.SCALEKIT_CLIENT_ID,
    process.env.SCALEKIT_CLIENT_SECRET,
    )
    const actions = scalekit.actions
    const connector = 'pylon'
    const identifier = 'user_123'
    // Make your first call
    const result = await actions.executeTool({
    connector,
    identifier,
    toolName: 'pylon_accounts_list',
    toolInput: {},
    })
    console.log(result)

Connect this agent connector to let your agent:

  • Search users, tasks, surveys — Search for Pylon users using a filter
  • List users, user roles, training data — Returns all users (agents/teammates) for the organization, including their name, email, and role
  • Update user, team, task — Update an existing Pylon user
  • Get user, training data, ticket form — Retrieve a single Pylon user by their ID
  • Files training data upload — Upload a single file as training data, either into a new training data container or an existing one
  • Content training data upload — Upload plain text content as a training data document, either into a new training data container or an existing one

Use the exact tool names from the Tool list below when you call execute_tool. If you’re not sure which name to use, list the tools available for the current user first.

pylon_account_activity_create#Creates a new activity (a timeline event) for a Pylon account, identified by a custom activity type slug configured in your Pylon organization. Optionally attach HTML body content, a link, and note the contact or user who performed the activity, and when it happened.8 params

Creates a new activity (a timeline event) for a Pylon account, identified by a custom activity type slug configured in your Pylon organization. Optionally attach HTML body content, a link, and note the contact or user who performed the activity, and when it happened.

NameTypeRequiredDescription
idstringrequiredThe ID or external ID of the account to create the activity for. Required.
slugstringrequiredThe slug of the custom activity type to create. Required. Slugs for available activity types can be found via the GET /activity-types endpoint.
body_htmlstringoptionalOptional HTML content to display in the activity.
contact_idstringoptionalOptional contact ID of the actor of the activity.
happened_atstringoptionalTimestamp (RFC 3339) of when the activity happened. Defaults to the current time if empty.
linkstringoptionalOptional link to add to the activity.
link_textstringoptionalOptional link text to display on the activity. Defaults to "Open link" if not provided. Applies only if a link is provided.
user_idstringoptionalOptional Pylon user ID of the actor of the activity.
pylon_account_create#Creates a new Pylon account with the specified name and optional metadata, such as domains, tags, custom fields, linked channels, external IDs, and an owner. Returns the newly created account.11 params

Creates a new Pylon account with the specified name and optional metadata, such as domains, tags, custom fields, linked channels, external IDs, and an owner. Returns the newly created account.

NameTypeRequiredDescription
namestringrequiredThe name of the account to create. Required.
account_typestringoptionalThe type of the account. Must be one of "customer", "internal", "community", or "partner". Defaults to "customer" if not specified.
channelsarrayoptionalAn array of channels (Slack, Microsoft Teams, or Discord) to link to this account.
custom_fieldsarrayoptionalAn array of custom fields to set on this account. Each entry has a slug identifying the custom field, and either a single value or an array of values for multi-valued fields.
domainsarrayoptionalThe domains of the account, without any leading scheme, for example "stripe.com". If provided, exactly one domain must also be set as primary_domain.
external_idsarrayoptionalAn array of external IDs to associate with this account. Each entry has an external_id and a label, both unique per account.
logo_urlstringoptionalThe logo URL of the account. Must be a square .png, .jpg, or .jpeg image.
owner_idstringoptionalThe ID of the Pylon user who owns this account.
primary_domainstringoptionalThe primary domain for this account. Must be present in the domains array if domains is provided.
subaccount_idsarrayoptionalAn array of account IDs to add as subaccounts to this account. For normal accounts, these represent subaccounts; for partner accounts, these represent associated accounts.
tagsarrayoptionalAn array of strings to use as tags on this account.
pylon_account_delete#Permanently deletes an existing Pylon account by its ID or external ID. This action cannot be undone. Rate limit: 10 requests per minute.1 param

Permanently deletes an existing Pylon account by its ID or external ID. This action cannot be undone. Rate limit: 10 requests per minute.

NameTypeRequiredDescription
idstringrequiredThe ID or external ID of the account to delete.
pylon_account_file_upload#Uploads a file to a Pylon account by ID or external ID, as multipart/form-data. Provide either the file content as a base64-encoded string, or a file_url that Pylon will fetch the file from — exactly one of file_content_base64 or file_url must be set.3 params

Uploads a file to a Pylon account by ID or external ID, as multipart/form-data. Provide either the file content as a base64-encoded string, or a file_url that Pylon will fetch the file from — exactly one of file_content_base64 or file_url must be set.

NameTypeRequiredDescription
idstringrequiredThe ID or external ID of the account to upload the file to. Required.
file_content_base64stringoptionalBase64-encoded contents of the file to upload. Provide this or file_url, but not both.
file_urlstringoptionalThe URL to fetch the file from, if the file content is not provided directly. Provide this or file_content_base64, but not both.
pylon_account_get#Retrieve a single Pylon account by its ID or external ID. Returns the account's details including name, domain, custom fields, tags, and other metadata. Use this to look up an existing account before updating it or to fetch its current state.1 param

Retrieve a single Pylon account by its ID or external ID. Returns the account's details including name, domain, custom fields, tags, and other metadata. Use this to look up an existing account before updating it or to fetch its current state.

NameTypeRequiredDescription
idstringrequiredThe ID or external ID of the account to fetch. Accepts either Pylon's internal account ID (UUID) or the external_id you assigned when creating the account.
pylon_account_highlight_create#Creates a new highlight (a pinned note or memory) on a Pylon account. Highlights surface important context about an account to support agents. Optionally associate the highlight with a specific contact on the account and set an expiration time.4 params

Creates a new highlight (a pinned note or memory) on a Pylon account. Highlights surface important context about an account to support agents. Optionally associate the highlight with a specific contact on the account and set an expiration time.

NameTypeRequiredDescription
account_idstringrequiredThe ID or external ID of the account that the highlight belongs to. Required.
content_htmlstringrequiredThe HTML content for this highlight. Required.
contact_idstringoptionalOptional ID or external ID of a contact to associate the resulting highlight with. The contact must belong to the account.
expires_atstringoptionalOptional RFC 3339 timestamp of when this highlight will expire, e.g. 2024-09-30T00:00:00Z.
pylon_account_highlight_delete#Permanently deletes an account highlight by ID from a Pylon account. This action cannot be undone. Rate limit: 20 requests per minute.2 params

Permanently deletes an account highlight by ID from a Pylon account. This action cannot be undone. Rate limit: 20 requests per minute.

NameTypeRequiredDescription
account_idstringrequiredThe ID or external ID of the account that the highlight belongs to.
highlight_idstringrequiredThe ID of the highlight to delete.
pylon_account_highlight_update#Updates an existing highlight on a Pylon account. Only the fields you provide are modified; omitted fields are left unchanged. Use this to change the highlight's HTML content or its expiration timestamp.4 params

Updates an existing highlight on a Pylon account. Only the fields you provide are modified; omitted fields are left unchanged. Use this to change the highlight's HTML content or its expiration timestamp.

NameTypeRequiredDescription
account_idstringrequiredThe ID or external ID of the account that the highlight belongs to. Required.
highlight_idstringrequiredThe ID of the highlight to update. Required.
content_htmlstringoptionalThe updated HTML content for this highlight. Leave empty to leave unchanged.
expires_atstringoptionalThe updated expiration timestamp (RFC 3339) for this highlight. Leave empty to leave unchanged.
pylon_account_relationship_create#Creates a parent-account or partner-account relationship for the account given in the URL. The account in the URL is treated as the child (for a parent relationship) or client (for a partner relationship), and related_object_id identifies the parent or partner account.3 params

Creates a parent-account or partner-account relationship for the account given in the URL. The account in the URL is treated as the child (for a parent relationship) or client (for a partner relationship), and related_object_id identifies the parent or partner account.

NameTypeRequiredDescription
account_idstringrequiredThe ID of the child or client account (the account this relationship is being created for). Required.
related_object_idstringrequiredThe ID of the related parent or partner account. Required.
relationship_typestringrequiredThe relationship type. Must be "parent_account" or "partner_account". Required.
pylon_account_relationship_delete#Deletes an account relationship (e.g. a parent/child or vendor/client link between two accounts) by ID. This action cannot be undone. Rate limit: 20 requests per minute.2 params

Deletes an account relationship (e.g. a parent/child or vendor/client link between two accounts) by ID. This action cannot be undone. Rate limit: 20 requests per minute.

NameTypeRequiredDescription
account_idstringrequiredThe ID of the child or client account.
relationship_idstringrequiredThe ID of the account relationship to delete.
pylon_account_relationships_list#Returns the parent-child and partner-client relationships where the given account is the child or client, i.e. the parent and/or partner accounts related to this account.1 param

Returns the parent-child and partner-client relationships where the given account is the child or client, i.e. the parent and/or partner accounts related to this account.

NameTypeRequiredDescription
account_idstringrequiredThe ID of the child or client account whose relationships should be returned. Required.
pylon_account_update#Updates an existing Pylon account by ID or external ID. Only the fields you provide are modified; omitted fields are left unchanged. Use this to change the account's name, type, domains, tags, custom fields, owner, linked channels, external IDs, or disabled status.13 params

Updates an existing Pylon account by ID or external ID. Only the fields you provide are modified; omitted fields are left unchanged. Use this to change the account's name, type, domains, tags, custom fields, owner, linked channels, external IDs, or disabled status.

NameTypeRequiredDescription
idstringrequiredThe ID or external ID of the account to update. Required.
account_typestringoptionalThe type of the account. Can only be changed to "customer" or "partner".
channelsarrayoptionalAn array of channels (Slack, Microsoft Teams, or Discord) to link to this account.
custom_fieldsarrayoptionalAn array of custom fields to set on this account. Each entry has a slug identifying the custom field, and either a single value or an array of values for multi-valued fields.
domainsarrayoptionalDomains of the account, without any leading scheme. If provided, exactly one domain must also be set as primary_domain. If provided, this replaces the account's existing domains.
external_idsarrayoptionalAn array of external IDs to set on this account. Each entry has an external_id and a label, both unique per account. If provided, replaces the account's existing external IDs.
is_disabledbooleanoptionalWhether the account is disabled.
logo_urlstringoptionalThe logo URL of the account. Must be a square .png, .jpg, or .jpeg image.
namestringoptionalThe new name of the account. Leave empty to leave unchanged.
owner_idstringoptionalThe ID of the new owner of the account. If an empty string is passed in, the owner will be removed.
primary_domainstringoptionalThe primary domain for this account. Must be present in the domains array if domains is provided.
subaccount_idsarrayoptionalAn array of account IDs to add as subaccounts to this account.
tagsarrayoptionalAn array of strings to use as tags on this account. If provided, replaces the account's existing tags.
pylon_accounts_bulk_update#Updates multiple Pylon accounts in a single request. Only the fields you provide are modified on each of the specified accounts. Supports changing the account type, owner, tags, and custom fields across up to 100 accounts at once. Rate limit: 20 requests per minute.6 params

Updates multiple Pylon accounts in a single request. Only the fields you provide are modified on each of the specified accounts. Supports changing the account type, owner, tags, and custom fields across up to 100 accounts at once. Rate limit: 20 requests per minute.

NameTypeRequiredDescription
account_idsarrayrequiredThe account IDs to update. Must contain between 1 and 100 IDs.
account_typestringoptionalThe type of the account. Can only be changed to "customer" or "partner".
custom_fieldsarrayoptionalAn array of custom fields to be updated on the accounts. Each entry has a slug identifying the custom field, and either a single value or an array of values for multi-valued fields.
owner_idstringoptionalThe ID of the new owner. If an empty string is passed in, the owner will be removed.
tagsarrayoptionalAn array of tags to be updated on the accounts.
tags_apply_modestringoptionalThe mode for applying tags. Valid values: "append_only", "remove_only", "replace". Defaults to "replace".
pylon_accounts_list#Returns a paginated list of accounts for the organization. Use the cursor from the previous response to fetch the next page, and limit to control page size (default 100, max 999).2 params

Returns a paginated list of accounts for the organization. Use the cursor from the previous response to fetch the next page, and limit to control page size (default 100, max 999).

NameTypeRequiredDescription
cursorstringoptionalThe pagination cursor from a previous response's `cursor` / `next_cursor` field. Omit to fetch the first page.
limitnumberoptionalThe number of accounts to fetch per page. Defaults to 100. Must be greater than 0 and less than 1000.
pylon_accounts_merge#Merges one or more accounts into a surviving account. Issues, contacts, opportunities, domains, channels, external IDs, and other associated data are transferred to the surviving account. Tags and custom field values of the merged accounts are NOT transferred. The merged accounts are permanently deleted and this cannot be undone. Accounts are merged sequentially, each in its own transaction; if a merge fails partway through, accounts already merged are not restored. Rate limit: 10 requests per minute.2 params

Merges one or more accounts into a surviving account. Issues, contacts, opportunities, domains, channels, external IDs, and other associated data are transferred to the surviving account. Tags and custom field values of the merged accounts are NOT transferred. The merged accounts are permanently deleted and this cannot be undone. Accounts are merged sequentially, each in its own transaction; if a merge fails partway through, accounts already merged are not restored. Rate limit: 10 requests per minute.

NameTypeRequiredDescription
merge_account_idsarrayrequiredThe IDs of the accounts to merge into the surviving account. These accounts are permanently deleted after their data is transferred. Must contain between 1 and 100 IDs.
merge_into_account_idstringrequiredThe ID of the account that will survive the merge and receive the merged data.
pylon_activity_types_list#Returns all custom activity type definitions configured for the organization. Use this to discover which activity type slugs are valid before creating a new activity on an account. Rate limit: 10 requests per minute.0 params

Returns all custom activity type definitions configured for the organization. Use this to discover which activity type slugs are valid before creating a new activity on an account. Rate limit: 10 requests per minute.

pylon_attachment_create#Uploads a file as a Pylon attachment. The returned URL can be used when creating issues or messages. Provide the file contents as a base64-encoded string together with a filename, OR provide a file_url that Pylon will fetch the file from. Rate limit: 10 requests per minute.4 params

Uploads a file as a Pylon attachment. The returned URL can be used when creating issues or messages. Provide the file contents as a base64-encoded string together with a filename, OR provide a file_url that Pylon will fetch the file from. Rate limit: 10 requests per minute.

NameTypeRequiredDescription
descriptionstringoptionalThe description of the file.
file_content_base64stringoptionalBase64-encoded contents of the file to upload. Required when file_url is not provided.
file_urlstringoptionalThe URL to fetch the file from, if the file is not provided directly.
filenamestringoptionalThe name of the file being uploaded, including extension. Required when file_content_base64 is provided.
pylon_audit_logs_list#Returns a paginated list of audit log entries for the organization. Use the cursor from the response to fetch subsequent pages. Rate limit: 60 requests per minute.2 params

Returns a paginated list of audit log entries for the organization. Use the cursor from the response to fetch subsequent pages. Rate limit: 60 requests per minute.

NameTypeRequiredDescription
cursorstringoptionalThe cursor to use for pagination.
limitintegeroptionalThe number of audit logs to fetch. Defaults to 100. Must be greater than 0 and less than 1000.
pylon_call_recording_delete#Permanently deletes a Pylon call recording by its ID. This action cannot be undone. Use pylon_call_recording_get first to confirm you are deleting the correct recording.1 param

Permanently deletes a Pylon call recording by its ID. This action cannot be undone. Use pylon_call_recording_get first to confirm you are deleting the correct recording.

NameTypeRequiredDescription
idstringrequiredThe Pylon ID of the call recording to permanently delete. This is the internal UUID assigned by Pylon when the call recording was created.
pylon_call_recording_get#Retrieve a single Pylon call recording by its ID. Returns the call recording's details including associated account, custom fields, and other metadata.1 param

Retrieve a single Pylon call recording by its ID. Returns the call recording's details including associated account, custom fields, and other metadata.

NameTypeRequiredDescription
idstringrequiredThe Pylon ID of the call recording to fetch. This is the internal UUID assigned by Pylon when the call recording was created.
pylon_call_recording_update#Updates a Pylon call recording by ID. Only the fields provided are modified; omitted fields are left unchanged. Use this to associate the recording with an account or to set/update its custom field values.3 params

Updates a Pylon call recording by ID. Only the fields provided are modified; omitted fields are left unchanged. Use this to associate the recording with an account or to set/update its custom field values.

NameTypeRequiredDescription
idstringrequiredThe Pylon ID of the call recording to update. This is the internal UUID assigned by Pylon when the call recording was created.
account_idstringoptionalThe account ID to associate with the call recording. Pass an empty string to remove the account association. Leave unset to leave the association unchanged.
custom_fieldsarrayoptionalAn array of custom field objects to set on the call recording. Only the fields passed in are modified. Each object has a `slug` (the custom field's slug, from GET /custom-fields) and either a `value` (single-valued fields) or `values` (multi-valued fields, e.g. multiselect). Example: [{"slug": "priority", "value": "high"}].
pylon_contact_create#Creates a new Pylon contact with the specified name and optional metadata such as email, associated account, phone numbers, external IDs, and custom fields.11 params

Creates a new Pylon contact with the specified name and optional metadata such as email, associated account, phone numbers, external IDs, and custom fields.

NameTypeRequiredDescription
namestringrequiredThe name of the contact. This is the only required field.
account_external_idstringoptionalThe external ID of the account that this contact belongs to. Cannot be used together with account_id.
account_idstringoptionalThe Pylon ID of the account that this contact belongs to. Cannot be used together with account_external_id.
avatar_urlstringoptionalThe avatar URL of the contact. Must be a square .png, .jpg, or .jpeg image.
custom_fieldsarrayoptionalAn array of custom field objects to apply to this contact. Each object has a `slug` (the custom field's slug, from GET /custom-fields) and either a `value` (single-valued fields) or `values` (multi-valued fields). Example: [{"slug": "tier", "value": "gold"}].
emailstringoptionalThe email address of the contact.
external_idsarrayoptionalAn array of external ID objects to associate with this contact. Each object has `external_id` (string) and `label` (string, must be unique per object). Example: [{"external_id": "crm-123", "label": "salesforce"}].
phone_numbersarrayoptionalThe phone numbers of the contact, as an array of strings. Each must contain only digits 0-9 and be 15 digits or less. Example: ["14155551234"].
portal_rolestringoptionalThe portal role to assign to the contact. One of `no_access`, `member`, or `admin`. If not provided, uses the default portal role from the portal settings.
portal_role_idstringoptionalThe ID of a custom portal role to assign to the contact. Takes precedence over portal_role if provided.
primary_phone_numberstringoptionalThe primary phone number. Must be one of the values in phone_numbers. If phone_numbers is set and this is not specified, the first entry becomes primary.
pylon_contact_delete#Permanently deletes a Pylon contact by ID. This action cannot be undone. Use pylon_contact_get first to confirm you are deleting the correct contact.1 param

Permanently deletes a Pylon contact by ID. This action cannot be undone. Use pylon_contact_get first to confirm you are deleting the correct contact.

NameTypeRequiredDescription
idstringrequiredThe Pylon ID of the contact to permanently delete. This is the internal UUID assigned by Pylon when the contact was created.
pylon_contact_get#Retrieve a single Pylon contact by its ID. Returns the contact's details including name, email, associated account, custom fields, and other metadata.1 param

Retrieve a single Pylon contact by its ID. Returns the contact's details including name, email, associated account, custom fields, and other metadata.

NameTypeRequiredDescription
idstringrequiredThe Pylon ID of the contact to fetch. This is the internal UUID assigned by Pylon when the contact was created.
pylon_contact_update#Updates an existing Pylon contact by ID. Only the fields provided are modified; omitted fields are left unchanged.13 params

Updates an existing Pylon contact by ID. Only the fields provided are modified; omitted fields are left unchanged.

NameTypeRequiredDescription
idstringrequiredThe Pylon ID of the contact to update. This is the internal UUID assigned by Pylon when the contact was created.
account_external_idstringoptionalThe external ID of the account to move the contact to. Cannot be used together with account_id.
account_idstringoptionalThe account to move the contact to, by Pylon account ID. If an empty string is passed, the contact is removed from its account. Cannot be used together with account_external_id.
avatar_urlstringoptionalThe new avatar URL of the contact. Must be a square .png, .jpg, or .jpeg image.
custom_fieldsarrayoptionalAn array of custom field objects to apply to this contact. Only the fields passed in are modified. Each object has a `slug` (the custom field's slug, from GET /custom-fields) and either a `value` (single-valued fields) or `values` (multi-valued fields). Example: [{"slug": "tier", "value": "gold"}].
emailstringoptionalThe new email of the contact. Cannot be used together with the `emails` array field.
emailsarrayoptionalThe emails of the contact as an array. Cannot be used together with the singular `email` field. Each entry must include an `email` string and an optional `is_primary` boolean. If no email is marked primary, the first one becomes primary. Example: [{"email": "jane@acme.com", "is_primary": true}].
external_idsarrayoptionalAn array of external ID objects to associate with this contact. If provided, the contact's external IDs are replaced with the given list. Each object has `external_id` (string) and `label` (string). Example: [{"external_id": "crm-123", "label": "salesforce"}].
namestringoptionalThe new name of the contact.
phone_numbersarrayoptionalThe phone numbers of the contact, as an array of strings. Each must contain only digits 0-9 and be 15 digits or less. Example: ["14155551234"].
portal_rolestringoptionalThe portal role to assign to the contact. Can be `no_access`, `member`, `admin`, or a custom role slug.
portal_role_idstringoptionalThe ID of a custom portal role to assign to the contact. Takes precedence over portal_role if provided.
primary_phone_numberstringoptionalThe primary phone number. Must be one of the values in phone_numbers. If phone_numbers is set and this is not specified, the first entry becomes primary.
pylon_contacts_list#Returns a paginated list of contacts for the organization. Use the cursor from the previous response to fetch the next page, and limit to control page size (default 100, max 1000).2 params

Returns a paginated list of contacts for the organization. Use the cursor from the previous response to fetch the next page, and limit to control page size (default 100, max 1000).

NameTypeRequiredDescription
cursorstringoptionalThe pagination cursor from a previous response's `cursor` / `next_cursor` field. Omit to fetch the first page.
limitnumberoptionalThe number of contacts to fetch per page. Defaults to 100. Must be greater than 0 and less than 1000.
pylon_custom_field_create#Create a new custom field definition for a Pylon object type (account, issue, contact, task, project, meeting, or opportunity). Supports text, number, decimal, boolean, date, datetime, user, url, select, and multiselect field types. For select/multiselect fields, pass the list of options.8 params

Create a new custom field definition for a Pylon object type (account, issue, contact, task, project, meeting, or opportunity). Supports text, number, decimal, boolean, date, datetime, user, url, select, and multiselect field types. For select/multiselect fields, pass the list of options.

NameTypeRequiredDescription
labelstringrequiredThe label of the custom field.
object_typestringrequiredThe object type this custom field applies to.
typestringrequiredThe type of the custom field.
default_valuestringoptionalThe default value for single-valued custom fields.
default_valuesstringoptionalThe default values for multi-valued custom fields, as a JSON-encoded array of strings.
descriptionstringoptionalThe description of the custom field.
select_optionsstringoptionalThe list options for select/multiselect custom fields, as a JSON-encoded array of {slug, label, ai_description} objects.
slugstringoptionalThe slug of the custom field. If omitted, Pylon generates one from the label.
pylon_custom_field_get#Retrieve a single custom field definition by its ID. Returns the field's label, slug, type, description, default value(s), and select options if applicable.1 param

Retrieve a single custom field definition by its ID. Returns the field's label, slug, type, description, default value(s), and select options if applicable.

NameTypeRequiredDescription
idstringrequiredThe ID of the custom field to fetch.
pylon_custom_field_update#Update a custom field definition by its ID. Only the fields you provide are modified; omitted fields are left unchanged. Note: object_type and type cannot be changed after creation.7 params

Update a custom field definition by its ID. Only the fields you provide are modified; omitted fields are left unchanged. Note: object_type and type cannot be changed after creation.

NameTypeRequiredDescription
idstringrequiredThe ID of the custom field to update.
default_valuestringoptionalThe default value for single-valued custom fields.
default_valuesstringoptionalThe default values for multi-valued custom fields, as a JSON-encoded array of strings.
descriptionstringoptionalThe description of the custom field.
labelstringoptionalThe label of the custom field.
select_optionsstringoptionalThe list options for select/multiselect custom fields, as a JSON-encoded array of {slug, label, ai_description} objects.
slugstringoptionalThe slug of the custom field.
pylon_custom_fields_list#Returns all custom field definitions for a given Pylon object type. Use this to discover the slugs, types, and (for select/multiselect fields) valid option slugs before setting custom field values on that object type via other tools.1 param

Returns all custom field definitions for a given Pylon object type. Use this to discover the slugs, types, and (for select/multiselect fields) valid option slugs before setting custom field values on that object type via other tools.

NameTypeRequiredDescription
object_typestringrequiredThe object type to list custom field definitions for. One of: account, issue, contact, task, project, meeting, opportunity.
pylon_custom_object_create#Create a new custom object instance of the given type (e.g. 'companies'). To link the object to an account, pass the built-in Account relationship field in custom_fields, e.g. custom_fields = '{"account":{"value":"account_uuid"}}'.3 params

Create a new custom object instance of the given type (e.g. 'companies'). To link the object to an account, pass the built-in Account relationship field in custom_fields, e.g. custom_fields = '{"account":{"value":"account_uuid"}}'.

NameTypeRequiredDescription
namestringrequiredThe name of the custom object.
typestringrequiredThe type slug of the custom object.
custom_fieldsstringoptionalCustom field values to set on the object, keyed by field slug, as a JSON-encoded object. Each value is either {"value": "..."} for single-valued fields or {"values": [...]} for multi-valued fields. To link the object to an account, use the built-in 'account' relationship field.
pylon_custom_object_delete#Permanently deletes a custom object instance of the given type. This action cannot be undone.2 params

Permanently deletes a custom object instance of the given type. This action cannot be undone.

NameTypeRequiredDescription
idstringrequiredThe ID of the custom object to delete.
typestringrequiredThe type slug of the custom object.
pylon_custom_object_get#Retrieve a single custom object by its type and ID, including its custom field values.2 params

Retrieve a single custom object by its type and ID, including its custom field values.

NameTypeRequiredDescription
idstringrequiredThe ID of the custom object.
typestringrequiredThe type slug of the custom object.
pylon_custom_object_update#Update a custom object. Only the fields you provide are modified. To update the linked account, pass the built-in Account relationship field in custom_fields, e.g. custom_fields = '{"account":{"value":"account_uuid"}}'. To unset a custom field, pass its slug with an empty value.4 params

Update a custom object. Only the fields you provide are modified. To update the linked account, pass the built-in Account relationship field in custom_fields, e.g. custom_fields = '{"account":{"value":"account_uuid"}}'. To unset a custom field, pass its slug with an empty value.

NameTypeRequiredDescription
idstringrequiredThe ID of the custom object.
typestringrequiredThe type slug of the custom object.
custom_fieldsstringoptionalCustom field values to set on the object, keyed by field slug, as a JSON-encoded object. Only the provided fields are modified.
namestringoptionalThe name of the custom object.
pylon_custom_objects_bulk_update#Applies the same custom field update to multiple custom objects of the given type in a single request. Pass between 1 and 100 IDs and the custom field values to set; only the provided fields are modified on each object. To update the linked account, pass the built-in Account relationship field in custom_fields, e.g. custom_fields = '{"account":{"value":"account_uuid"}}'. To unset a field, pass its slug with an empty value. This mutates every object listed in ids in one call, so double-check the ID list before running.3 params

Applies the same custom field update to multiple custom objects of the given type in a single request. Pass between 1 and 100 IDs and the custom field values to set; only the provided fields are modified on each object. To update the linked account, pass the built-in Account relationship field in custom_fields, e.g. custom_fields = '{"account":{"value":"account_uuid"}}'. To unset a field, pass its slug with an empty value. This mutates every object listed in ids in one call, so double-check the ID list before running.

NameTypeRequiredDescription
idsstringrequiredThe IDs of the custom objects to update, as a JSON-encoded array of strings. Must be between 1 and 100 IDs.
typestringrequiredThe type slug of the custom object.
custom_fieldsstringoptionalCustom field values to apply to every listed custom object, keyed by field slug, as a JSON-encoded object. To unset a field, pass its slug with an empty value.
pylon_custom_objects_list#Returns a paginated list of custom objects of the given type (e.g. 'companies'). Use the cursor from the response to page through results.3 params

Returns a paginated list of custom objects of the given type (e.g. 'companies'). Use the cursor from the response to page through results.

NameTypeRequiredDescription
typestringrequiredThe type slug of the custom object.
cursorstringoptionalPagination cursor for the next page.
limitintegeroptionalNumber of results per page. Defaults to 25, max 100.
pylon_feature_request_create#Create a new Pylon feature request. Provide a title and optionally a description. When should_auto_fetch_evidence is true, Pylon asynchronously gathers supporting evidence and generates the description itself, in which case any description you pass is ignored. Rate limit: 20 requests per minute.3 params

Create a new Pylon feature request. Provide a title and optionally a description. When should_auto_fetch_evidence is true, Pylon asynchronously gathers supporting evidence and generates the description itself, in which case any description you pass is ignored. Rate limit: 20 requests per minute.

NameTypeRequiredDescription
titlestringrequiredThe title of the feature request. Required. Example: 'Add dark mode support'.
descriptionstringoptionalThe description of the feature request. Ignored when should_auto_fetch_evidence is true, since the description is then generated from gathered evidence.
should_auto_fetch_evidencebooleanoptionalWhen true, asynchronously gathers supporting evidence and generates a description, mirroring the in-app experience. Defaults to false, which creates the feature request as-is using the provided description.
pylon_feature_request_delete#Permanently deletes a Pylon feature request and its associated evidence. This action is irreversible. Rate limit: 20 requests per minute.1 param

Permanently deletes a Pylon feature request and its associated evidence. This action is irreversible. Rate limit: 20 requests per minute.

NameTypeRequiredDescription
idstringrequiredThe ID of the feature request to delete. Required. Example: 'fr_182b0f4e9d3a4c2b'.
pylon_feature_request_get#Returns a single Pylon feature request by ID. Optionally includes evidence items when fetch_evidence is true. Rate limit: 60 requests per minute.2 params

Returns a single Pylon feature request by ID. Optionally includes evidence items when fetch_evidence is true. Rate limit: 60 requests per minute.

NameTypeRequiredDescription
idstringrequiredThe ID of the feature request to fetch. Example: 'fr_182b0f4e9d3a4c2b'.
fetch_evidencebooleanoptionalWhether to include evidence items in the response. Defaults to false.
pylon_feature_request_set_portal_visibility#Toggle portal visibility for a set of accounts on a Pylon feature request. Idempotent — adding already-visible accounts or removing already-hidden accounts is a no-op. Note: visibility only takes effect when the Feature Requests tab is enabled in portal settings. Rate limit: 20 requests per minute.3 params

Toggle portal visibility for a set of accounts on a Pylon feature request. Idempotent — adding already-visible accounts or removing already-hidden accounts is a no-op. Note: visibility only takes effect when the Feature Requests tab is enabled in portal settings. Rate limit: 20 requests per minute.

NameTypeRequiredDescription
account_idsarrayrequiredThe account IDs to add or remove portal visibility for. Required. Example: ["acc_123", "acc_456"].
idstringrequiredThe ID of the feature request. Example: 'fr_182b0f4e9d3a4c2b'.
visiblebooleanrequiredWhether the specified accounts should be able to see this feature request in the portal. True to add visibility, false to remove. Required.
pylon_feature_request_update#Update an existing Pylon feature request by ID. Only provided fields are modified. You can change the request_status (a built-in status like new/in_progress/closed/archived, or a custom status slug) and/or set custom field values. Rate limit: 20 requests per minute.3 params

Update an existing Pylon feature request by ID. Only provided fields are modified. You can change the request_status (a built-in status like new/in_progress/closed/archived, or a custom status slug) and/or set custom field values. Rate limit: 20 requests per minute.

NameTypeRequiredDescription
idstringrequiredThe ID of the feature request to update. Example: 'fr_182b0f4e9d3a4c2b'.
custom_fieldsarrayoptionalAn array of custom fields to set. Only passed-in fields will be modified. Each item has a 'slug' (the custom field slug), and either 'value' (for single-valued fields, e.g. select option slug or related object ID) or 'values' (for multi-valued fields like multiselect). Example: [{"slug": "priority_tier", "value": "high"}].
request_statusstringoptionalThe new request status. Can be a built-in status (new, in_progress, closed, archived) or a custom status slug.
pylon_feature_requests_merge#Merge one or more Pylon feature requests into a surviving feature request. Evidence and linked external issues are consolidated onto the survivor, and the merged (source) feature requests are archived — this is a destructive, irreversible operation for the merged-away requests. Merge requests that share a target should be sent serially. Rate limit: 10 requests per minute.2 params

Merge one or more Pylon feature requests into a surviving feature request. Evidence and linked external issues are consolidated onto the survivor, and the merged (source) feature requests are archived — this is a destructive, irreversible operation for the merged-away requests. Merge requests that share a target should be sent serially. Rate limit: 10 requests per minute.

NameTypeRequiredDescription
merge_feature_request_idsarrayrequiredThe IDs of the Feature Requests to merge into the surviving Feature Request. Must contain between 1 and 100 unique IDs. Required. Example: ["fr_dup1", "fr_dup2"].
merge_into_feature_request_idstringrequiredThe ID of the Feature Request that will survive the merge. Required. Example: 'fr_survivor123'.
pylon_issue_ai_response_create#Generate an AI response for a Pylon issue using a specified AI agent. The response can be posted as a customer-facing reply or as an internal note on the issue, depending on post_as_internal_note.3 params

Generate an AI response for a Pylon issue using a specified AI agent. The response can be posted as a customer-facing reply or as an internal note on the issue, depending on post_as_internal_note.

NameTypeRequiredDescription
ai_agent_idstringrequiredThe ID of the AI agent to use to generate the response. Required; identifies which configured Pylon AI agent should produce the response.
idstringrequiredThe ID or number of the issue to create an AI response for.
post_as_internal_notebooleanoptionalWhether to post the generated AI response as an internal note on the issue rather than a customer-facing reply. Defaults to false, meaning the response is posted as a customer-facing message.
pylon_issue_create#Creates a new Pylon issue and its first message. Requires either account_id or requester information (requester_id or requester_email). The requester (who the issue is for), the first-message author (user_id or contact_id), and the delivery destination (destination_metadata) are independent settings — see field help for details. If destination_metadata is omitted or set to internal, the first message stays internal and no customer is contacted. Rate limit: 10 requests per minute.19 params

Creates a new Pylon issue and its first message. Requires either account_id or requester information (requester_id or requester_email). The requester (who the issue is for), the first-message author (user_id or contact_id), and the delivery destination (destination_metadata) are independent settings — see field help for details. If destination_metadata is omitted or set to internal, the first message stays internal and no customer is contacted. Rate limit: 10 requests per minute.

NameTypeRequiredDescription
body_htmlstringrequiredThe HTML content of the body of the issue's first message. Required. Example: '<p>I cannot access my account.</p>'.
titlestringrequiredThe title of the issue. Required. Example: 'Unable to sign in'.
account_idstringoptionalThe account this issue belongs to. If requester_id is also provided, the requester must belong to this account. If requester_email is provided, the contact is found or created in this account.
assignee_idstringoptionalThe user the issue should be assigned to.
attachment_urlsarrayoptionalURLs of files to attach to the issue's first message. Example: ["https://example.com/file.pdf"].
author_unverifiedbooleanoptionalWhether the requester's identity has NOT been verified. Defaults to false (verified).
contact_idstringoptionalThe contact to attribute the first message to. This controls the message author, not the issue requester. Makes the message appear as a customer message rather than an internal note. Only one of user_id or contact_id can be provided. Requires destination_metadata.
created_atstringoptionalTimestamp of when the issue was created. If not specified, the current time will be used. (RFC3339)
custom_fieldsarrayoptionalAn array of custom fields to be used on this issue. Each item has a 'slug' (the custom field slug), and either 'value' (for single-valued fields, e.g. select option slug or related object ID) or 'values' (for multi-valued fields like multiselect). Example: [{"slug": "issue_source", "value": "api"}].
customer_portal_visiblebooleanoptionalWhether the issue should be visible in the customer portal.
destination_metadataobjectoptionalSpecifies if/how communication will be delivered to the customer. If omitted, the first message is internal and no customer is contacted. When provided, 'destination' is required (one of email, slack, in_app_chat, sms, whatsapp, internal), and destination-specific fields apply: email requires 'email' (the configured Pylon sender address); sms requires 'from_sms_phone_number_id'; whatsapp requires 'whatsapp_app_id', 'whatsapp_message_template_name', and 'whatsapp_message_template_language'. Example: {"destination": "email", "email": "support@example.com"}.
prioritystringoptionalThe priority of the issue. Can be one of: urgent, high, medium, or low.
requester_avatar_urlstringoptionalThe URL of an avatar of the requester.
requester_emailstringoptionalThe email of the customer this issue is for. Used when requester_id is omitted. If no matching contact exists, one will be created. When account_id is provided, the contact is found or created in that account. This does not control who authored the first message.
requester_idstringoptionalThe customer this issue is for. Sets the 'Requester' shown in the issue sidebar but does not control who authored the first message. If account_id is omitted, the requester's primary account is used when available. If requester_email is also provided, requester_id takes precedence.
requester_namestringoptionalThe optional full name of the requester. Used when creating a new contact via requester_email.
tagsarrayoptionalAn array of strings to use as tags on this issue. If provided, the issue tags will be updated to the given tags. Example: ["billing", "urgent"].
team_idstringoptionalThe ID of the team this issue should be assigned to.
user_idstringoptionalThe internal Pylon user to attribute the first message to. This does not assign the user as the requester. Only one of user_id or contact_id can be provided. If neither is set, the API token's user is used.
pylon_issue_delete#Permanently delete an issue from Pylon by its ID. This action cannot be undone and removes the issue and its associated data. Use with caution; verify the issue ID before calling this tool.1 param

Permanently delete an issue from Pylon by its ID. This action cannot be undone and removes the issue and its associated data. Use with caution; verify the issue ID before calling this tool.

NameTypeRequiredDescription
idstringrequiredThe ID of the issue to permanently delete. Accepts Pylon's internal issue ID (UUID).
pylon_issue_followers_list#Retrieve the list of followers (users and contacts) currently subscribed to a Pylon issue. Followers receive notifications about updates to the issue. Use pylon_issue_followers_update to add or remove followers.1 param

Retrieve the list of followers (users and contacts) currently subscribed to a Pylon issue. Followers receive notifications about updates to the issue. Use pylon_issue_followers_update to add or remove followers.

NameTypeRequiredDescription
idstringrequiredThe ID or issue number of the issue to get followers for.
pylon_issue_followers_update#Add or remove followers (users and/or contacts) on a Pylon issue. By default this adds the given users/contacts as followers; set operation to "remove" to unfollow them instead. Provide at least one of contact_ids or user_ids.4 params

Add or remove followers (users and/or contacts) on a Pylon issue. By default this adds the given users/contacts as followers; set operation to "remove" to unfollow them instead. Provide at least one of contact_ids or user_ids.

NameTypeRequiredDescription
idstringrequiredThe ID or issue number of the issue to add or remove followers from.
contact_idsarrayoptionalThe IDs of contacts to add (or remove, if operation is "remove") as followers. Example: ["9a8b7c6d-5e4f-4a3b-8c2d-1e0f9a8b7c6d"]
operationstringoptionalThe operation to perform. Use "add" to add followers (default if omitted) or "remove" to remove followers.
user_idsarrayoptionalThe IDs of Pylon users to add (or remove, if operation is "remove") as followers. Example: ["8f7e6d5c-4b3a-4291-9c8d-7e6f5a4b3c2d"]
pylon_issue_get#Retrieve a single Pylon issue by its ID or issue number. Returns the issue's details including title, state, account, assignee, requester, tags, custom fields, and other metadata. Use this to look up an existing issue before updating it, replying to it, or fetching its current state.1 param

Retrieve a single Pylon issue by its ID or issue number. Returns the issue's details including title, state, account, assignee, requester, tags, custom fields, and other metadata. Use this to look up an existing issue before updating it, replying to it, or fetching its current state.

NameTypeRequiredDescription
idstringrequiredThe ID or issue number of the issue to fetch. Accepts either Pylon's internal issue ID (UUID) or the issue's numeric identifier shown in the Pylon UI.
pylon_issue_message_delete#Permanently delete a message from a Pylon issue and from its connected external system (e.g. email, chat). This action cannot be undone. Use with caution; verify the issue and message IDs before calling this tool.2 params

Permanently delete a message from a Pylon issue and from its connected external system (e.g. email, chat). This action cannot be undone. Use with caution; verify the issue and message IDs before calling this tool.

NameTypeRequiredDescription
idstringrequiredThe ID of the issue that the message belongs to. Accepts Pylon's internal issue ID (UUID).
message_idstringrequiredThe ID of the message to permanently delete.
pylon_issue_message_redact#Permanently redact the content of a message on a Pylon issue. Redaction removes the message body irreversibly; this action cannot be undone. Use this to comply with data removal requests or to scrub sensitive content from a message.2 params

Permanently redact the content of a message on a Pylon issue. Redaction removes the message body irreversibly; this action cannot be undone. Use this to comply with data removal requests or to scrub sensitive content from a message.

NameTypeRequiredDescription
idstringrequiredThe ID of the issue that the message belongs to. Accepts Pylon's internal issue ID (UUID).
message_idstringrequiredThe ID of the message whose content should be permanently redacted.
pylon_issue_messages_list#Retrieve the messages on a Pylon issue, including customer-visible replies and internal notes, ordered from oldest to newest. Use the returned message IDs when posting a reply (pylon_issue_reply_create) or an internal note (pylon_issue_note_create): pick a customer-visible message where is_private is false and pass its top-level id as message_id to reply, or pick an internal note where is_private is true and pass its thread_id (or top-level id) as thread_id/message_id to post a note. Do not use the nested email_info.message_id for either operation. Omit both limit and cursor to return all messages; otherwise set limit (1-1000) and follow pagination.cursor while pagination.has_next_page is true.3 params

Retrieve the messages on a Pylon issue, including customer-visible replies and internal notes, ordered from oldest to newest. Use the returned message IDs when posting a reply (pylon_issue_reply_create) or an internal note (pylon_issue_note_create): pick a customer-visible message where is_private is false and pass its top-level id as message_id to reply, or pick an internal note where is_private is true and pass its thread_id (or top-level id) as thread_id/message_id to post a note. Do not use the nested email_info.message_id for either operation. Omit both limit and cursor to return all messages; otherwise set limit (1-1000) and follow pagination.cursor while pagination.has_next_page is true.

NameTypeRequiredDescription
idstringrequiredThe ID or issue number of the issue to fetch messages for.
cursorstringoptionalThe pagination cursor to fetch the next page of messages. Obtain this from the pagination.cursor field of the previous response.
limitintegeroptionalThe number of messages to fetch, between 1 and 1000. If omitted (along with cursor), all messages for the issue are returned.
pylon_issue_note_create#Post an internal note on a Pylon issue thread. Internal notes are not visible to the requester/customer. If thread_id is provided, posts to that internal thread. If message_id is provided (the top-level id of an existing internal note from pylon_issue_messages_list), posts to the thread containing that note. Providing both thread_id and message_id returns an error. If neither is provided, posts to the most recently created Slack-backed internal thread, or creates a new Pylon-only internal thread named by thread_name if none exists.7 params

Post an internal note on a Pylon issue thread. Internal notes are not visible to the requester/customer. If thread_id is provided, posts to that internal thread. If message_id is provided (the top-level id of an existing internal note from pylon_issue_messages_list), posts to the thread containing that note. Providing both thread_id and message_id returns an error. If neither is provided, posts to the most recently created Slack-backed internal thread, or creates a new Pylon-only internal thread named by thread_name if none exists.

NameTypeRequiredDescription
body_htmlstringrequiredThe body of the internal note, as HTML.
idstringrequiredThe ID or issue number of the issue to post the internal note on.
attachment_urlsarrayoptionalURLs of files to attach to this internal note. Example: ["https://example.com/file.pdf"]
message_idstringoptionalThe ID of an existing internal note whose thread should receive the new note. Use the top-level id from pylon_issue_messages_list for a message where is_private is true. Cannot be combined with thread_id.
thread_idstringoptionalThe ID of the internal thread to post the note to. Cannot be combined with message_id.
thread_namestringoptionalOptional name for a new Pylon-only internal thread. Only used when neither thread_id nor message_id is provided and no Slack-backed internal thread already exists.
user_idstringoptionalOptional user ID to post the message as. If not provided, the API token's user is used.
pylon_issue_reply_create#Send a customer-facing reply on a Pylon issue, visible to the requester. message_id is required and must be the top-level id of an existing customer-visible message from pylon_issue_messages_list (where is_private is false); this identifies which conversation or thread the reply continues and, for email, controls the In-Reply-To/References threading. For an email conversation, provide email_info with at least one recipient across to_emails, cc_emails, and bcc_emails - recipients are not copied automatically from the referenced message.8 params

Send a customer-facing reply on a Pylon issue, visible to the requester. message_id is required and must be the top-level id of an existing customer-visible message from pylon_issue_messages_list (where is_private is false); this identifies which conversation or thread the reply continues and, for email, controls the In-Reply-To/References threading. For an email conversation, provide email_info with at least one recipient across to_emails, cc_emails, and bcc_emails - recipients are not copied automatically from the referenced message.

NameTypeRequiredDescription
body_htmlstringrequiredThe body of the reply, as HTML.
idstringrequiredThe ID or issue number of the issue to reply to.
message_idstringrequiredThe top-level Pylon message ID to reply to, from the id field returned by pylon_issue_messages_list. The message must belong to this issue and must be customer-visible (is_private false), not an internal note. Do not use a provider-specific message ID or email_info.message_id.
attachment_urlsarrayoptionalURLs of files to attach to this reply. Example: ["https://example.com/file.pdf"]
contact_idstringoptionalOptional contact ID to post the reply as. Only one of user_id or contact_id can be provided.
custom_sourceobjectoptionalMetadata for messages on custom source issues. Requires external_id. Example: {"external_id": "ext-123", "created_at": "2024-01-01T00:00:00Z"}
email_infoobjectoptionalRecipient information for replies to email conversations. Provide at least one address across to_emails, cc_emails, and bcc_emails. Example: {"to_emails": ["customer@example.com"], "cc_emails": [], "bcc_emails": []}
user_idstringoptionalOptional user ID to post the reply as. Only one of user_id or contact_id can be provided. If neither is provided, the API token's user is used.
pylon_issue_snooze#Snooze a Pylon issue until a specified date and time. The issue will be hidden from active queues until the snooze period elapses, at which point it becomes active again. This is a reversible, non-destructive state change.2 params

Snooze a Pylon issue until a specified date and time. The issue will be hidden from active queues until the snooze period elapses, at which point it becomes active again. This is a reversible, non-destructive state change.

NameTypeRequiredDescription
idstringrequiredThe ID or issue number of the issue to snooze.
snooze_untilstringrequiredThe date and time to snooze the issue until, as an RFC 3339 timestamp. The issue will reactivate automatically at this time.
pylon_issue_statuses_list#Retrieve all issue statuses (states) configured for your Pylon organization, including built-in states like new, waiting_on_you, waiting_on_customer, on_hold, and closed, as well as any custom statuses your workspace has defined. Use this to discover valid values for the state field when updating an issue with pylon_issue_update.0 params

Retrieve all issue statuses (states) configured for your Pylon organization, including built-in states like new, waiting_on_you, waiting_on_customer, on_hold, and closed, as well as any custom statuses your workspace has defined. Use this to discover valid values for the state field when updating an issue with pylon_issue_update.

pylon_issue_thread_create#Create a new internal thread on a Pylon issue. Internal threads are used for team collaboration on an issue and are not visible to the customer. Optionally provide a name for the thread.2 params

Create a new internal thread on a Pylon issue. Internal threads are used for team collaboration on an issue and are not visible to the customer. Optionally provide a name for the thread.

NameTypeRequiredDescription
idstringrequiredThe ID of the issue to create a thread on. Accepts Pylon's internal issue ID (UUID).
namestringoptionalThe name of the thread. Optional; if omitted, Pylon assigns a default name to the thread.
pylon_issue_threads_list#Retrieve all internal threads on a Pylon issue. Threads are internal discussion containers on an issue (distinct from customer-facing messages). Use this to review internal collaboration history on an issue.1 param

Retrieve all internal threads on a Pylon issue. Threads are internal discussion containers on an issue (distinct from customer-facing messages). Use this to review internal collaboration history on an issue.

NameTypeRequiredDescription
idstringrequiredThe ID of the issue to fetch threads for. Accepts Pylon's internal issue ID (UUID).
pylon_issue_update#Update an existing Pylon issue by ID or issue number. Only the fields you provide are modified; all other fields on the issue are left unchanged. Use this to reassign, re-tag, re-team, close, or otherwise change the state of an issue.11 params

Update an existing Pylon issue by ID or issue number. Only the fields you provide are modified; all other fields on the issue are left unchanged. Use this to reassign, re-tag, re-team, close, or otherwise change the state of an issue.

NameTypeRequiredDescription
idstringrequiredThe ID or issue number of the issue to update.
account_idstringoptionalThe ID of the account that this issue belongs to.
assignee_idstringoptionalThe ID of the user who should be assigned to this issue. Pass an empty string to remove the current assignee.
custom_fieldsarrayoptionalAn array of custom field values to set on this issue. Only the fields provided are modified. Each item has shape {"slug": "field_slug", "value": "single value"} or {"slug": "field_slug", "values": ["multi", "values"]} for multi-valued fields. For select fields, use the option slug from GET /custom-fields. Example: [{"slug": "priority", "value": "high"}]
customer_portal_visiblebooleanoptionalWhether the issue should be visible in the customer portal.
requester_idstringoptionalThe ID of the requester (contact) that this issue is on behalf of.
statestringoptionalThe state this issue should be moved to. Can be one of new, waiting_on_you, waiting_on_customer, on_hold, closed, or a custom status slug configured in your Pylon workspace (see pylon_issue_statuses_list).
tagsarrayoptionalAn array of tag strings to set on this issue. If provided, the issue's tags are replaced entirely with the given list (not merged). Example: ["billing", "urgent"]
team_idstringoptionalThe ID of the team this issue should be assigned to. Pass an empty string to remove the currently assigned team.
titlestringoptionalThe new title of the issue.
typestringoptionalThe type of the issue. Set to "ticket" to upgrade a conversation to a support ticket. Cannot be downgraded from "ticket" back to "conversation".
pylon_issue_voice_calls_list#Retrieve voice call records for a Pylon phone issue, including recordings, parsed transcript segments, and a presigned download URL for each audio file. Recordings whose transcript has not yet completed are omitted from the response; refetch later to see them once transcription finishes.1 param

Retrieve voice call records for a Pylon phone issue, including recordings, parsed transcript segments, and a presigned download URL for each audio file. Recordings whose transcript has not yet completed are omitted from the response; refetch later to see them once transcription finishes.

NameTypeRequiredDescription
idstringrequiredThe ID of the issue to fetch voice calls for. Accepts Pylon's internal issue ID (UUID) for a phone issue.
pylon_issues_list#Returns a paginated list of Pylon issues created within a required time range. The duration between start_time and end_time must be 30 days or less. Use cursor for pagination and limit to control page size (defaults to 20000, max 20000). Rate limit: 10 requests per minute.4 params

Returns a paginated list of Pylon issues created within a required time range. The duration between start_time and end_time must be 30 days or less. Use cursor for pagination and limit to control page size (defaults to 20000, max 20000). Rate limit: 10 requests per minute.

NameTypeRequiredDescription
end_timestringrequiredThe end time (RFC3339) of the time range to get issues for. The duration between start_time and end_time must be less than or equal to 30 days. Required. Example: '2024-01-31T00:00:00Z'.
start_timestringrequiredThe start time (RFC3339) of the time range to get issues for. The duration between start_time and end_time must be less than or equal to 30 days. Required. Example: '2024-01-01T00:00:00Z'.
cursorstringoptionalThe cursor to use for pagination. Pass the cursor value returned by a previous call to fetch the next page.
limitintegeroptionalThe number of issues to fetch. Defaults to 20000. Set to 0 or omit to use the default. Must be between 0 and 20000.
pylon_kb_article_create#Create a new article within a Pylon knowledge base. Requires the knowledge base ID, a title, an author user ID, and the HTML body of the article. Optionally place the article in a collection, control publish/unlisted state, set a custom slug, provide translations, and configure visibility. Rate limit: 10 requests per minute.12 params

Create a new article within a Pylon knowledge base. Requires the knowledge base ID, a title, an author user ID, and the HTML body of the article. Optionally place the article in a collection, control publish/unlisted state, set a custom slug, provide translations, and configure visibility. Rate limit: 10 requests per minute.

NameTypeRequiredDescription
author_user_idstringrequiredThe ID of the user attributed as the author of the article.
body_htmlstringrequiredThe HTML body of the article. Example: "<p>Click the reset link in your email...</p>"
idstringrequiredThe ID of the knowledge base the article is being added to.
titlestringrequiredThe title of the article.
ai_agent_accessstringoptionalAI agent access control for this article: inherit (default, defers to parent collection/knowledge base), none, or specific_agents.
allowed_agent_idsarrayoptionalList of AI agent IDs allowed to access this article when ai_agent_access is set to specific_agents.
collection_idstringoptionalThe ID of the collection this article should be placed in. If omitted, the article is not placed in a collection.
is_publishedbooleanoptionalWhether the article should be published. Defaults to false (saved as a draft).
is_unlistedbooleanoptionalWhether the article is only accessible via direct link (not listed in navigation/search). Defaults to false.
slugstringoptionalThe slug of the article. Defaults to a slug generated from the title if omitted.
translationsarrayoptionalTranslations of the article content in different languages. Array of objects, each with required `language`, `title`, and `body_html` fields. Example: [{"language":"es","title":"Como restablecer tu contrasena","body_html":"<p>...</p>"}]
visibilitystringoptionalThe visibility setting for the article: public, customer, or internal_only.
pylon_kb_article_delete#Permanently delete an article from a Pylon knowledge base. This action cannot be undone. Requires the knowledge base ID and the article ID. Rate limit: 20 requests per minute.2 params

Permanently delete an article from a Pylon knowledge base. This action cannot be undone. Requires the knowledge base ID and the article ID. Rate limit: 20 requests per minute.

NameTypeRequiredDescription
article_idstringrequiredThe ID of the article to delete.
idstringrequiredThe ID of the knowledge base that the article belongs to.
pylon_kb_article_get#Retrieve a single article by its ID within a specified knowledge base. Optionally specify a language code to fetch a translated version; if omitted, the default language version is returned.3 params

Retrieve a single article by its ID within a specified knowledge base. Optionally specify a language code to fetch a translated version; if omitted, the default language version is returned.

NameTypeRequiredDescription
article_idstringrequiredThe ID of the article to fetch.
idstringrequiredThe ID of the knowledge base the article belongs to.
languagestringoptionalThe language code to fetch the article in (e.g. 'es', 'fr'). If not provided, returns the default language version.
pylon_kb_article_request_review#Request human and/or AI review on an article's current draft version in a Pylon knowledge base. At least one of reviewer_user_ids or request_ai_review must be provided. The article must have an unpublished current version, and requesting AI review requires the organization to have AI article review enabled. Rate limit: 10 requests per minute.4 params

Request human and/or AI review on an article's current draft version in a Pylon knowledge base. At least one of reviewer_user_ids or request_ai_review must be provided. The article must have an unpublished current version, and requesting AI review requires the organization to have AI article review enabled. Rate limit: 10 requests per minute.

NameTypeRequiredDescription
article_idstringrequiredThe ID of the article to request review for.
idstringrequiredThe ID of the knowledge base the article belongs to.
request_ai_reviewbooleanoptionalWhen true, also queue an AI review. Requires the organization to have AI article review enabled. At least one of reviewer_user_ids or request_ai_review must be provided.
reviewer_user_idsarrayoptionalIDs of users to request a human review from. Each user must already be a configured reviewer for the article's knowledge base. At least one of reviewer_user_ids or request_ai_review must be provided.
pylon_kb_article_update#Update an existing article in a Pylon knowledge base. Only the fields you provide are modified. Supports updating title, HTML body, publish/unlisted state, tags, visibility, and translations. To update a specific translation instead of the default language, pass the language code.12 params

Update an existing article in a Pylon knowledge base. Only the fields you provide are modified. Supports updating title, HTML body, publish/unlisted state, tags, visibility, and translations. To update a specific translation instead of the default language, pass the language code.

NameTypeRequiredDescription
article_idstringrequiredThe ID of the article to update.
idstringrequiredThe ID of the knowledge base the article belongs to.
ai_agent_accessstringoptionalAI agent access control for this article: inherit, none, or specific_agents.
allowed_agent_idsarrayoptionalList of AI agent IDs allowed to access this article when ai_agent_access is set to specific_agents.
body_htmlstringoptionalThe new HTML body of the article.
is_publishedbooleanoptionalWhether the article should be published or unpublished.
is_unlistedbooleanoptionalWhether the article can only be accessed via direct link.
languagestringoptionalThe language code of the translation to update. If not provided, the default language (original article) is updated.
publish_updated_body_htmlbooleanoptionalWhether the changes to the article body should be published immediately. Defaults to false.
tag_idsarrayoptionalIDs of article tags to assign. If provided, replaces all tags currently assigned to the article.
titlestringoptionalThe new title of the article.
visibilitystringoptionalThe visibility setting for the article: public, customer, or internal_only.
pylon_kb_articles_list#Retrieve a paginated list of articles in a Pylon knowledge base. Supports cursor-based pagination, limiting the page size, selecting a language, and controlling whether embedded media is included in the article HTML.5 params

Retrieve a paginated list of articles in a Pylon knowledge base. Supports cursor-based pagination, limiting the page size, selecting a language, and controlling whether embedded media is included in the article HTML.

NameTypeRequiredDescription
idstringrequiredThe ID of the knowledge base to fetch articles from. Accepts Pylon's internal knowledge base ID (UUID).
cursorstringoptionalThe pagination cursor to use for fetching the next page of articles. Omit for the first page; use the cursor value returned in a previous response to fetch subsequent pages.
languagestringoptionalThe language code to fetch articles in (e.g. 'en', 'fr'). If not provided, the knowledge base's default language is returned.
limitintegeroptionalThe number of articles to fetch per page. Must be greater than 0 and less than 1000. Defaults to 100 if not provided.
mediastringoptionalControls whether embedded media is included in the article HTML. Valid values are 'all' (default, includes embedded images, video, audio, and inline media) and 'none' (strips embedded media while preserving descriptive text and standard links).
pylon_kb_collection_create#Create a new collection within a Pylon knowledge base. Collections organize articles and can be nested under a parent collection. Requires the knowledge base ID and a title; description, slug, parent collection, and visibility are optional.8 params

Create a new collection within a Pylon knowledge base. Collections organize articles and can be nested under a parent collection. Requires the knowledge base ID and a title; description, slug, parent collection, and visibility are optional.

NameTypeRequiredDescription
idstringrequiredThe ID of the knowledge base the collection is being added to.
titlestringrequiredThe title of the collection.
ai_agent_accessstringoptionalAI agent access control for this collection: inherit (default, defers to parent knowledge base), none, or specific_agents.
allowed_agent_idsarrayoptionalList of AI agent IDs allowed to access this collection when ai_agent_access is set to specific_agents.
descriptionstringoptionalDescription of the collection.
parent_collection_idstringoptionalThe ID of the parent collection this collection should be nested under. Omit to create a top-level collection.
slugstringoptionalThe slug of the collection. Defaults to a slug generated from the title if omitted.
visibilitystringoptionalThe visibility setting for the collection: public, customer, or internal_only.
pylon_kb_collection_delete#Permanently delete a collection and all articles within it from a Pylon knowledge base. Nested collections and their articles are also deleted. This action cannot be undone. Rate limit: 10 requests per minute.2 params

Permanently delete a collection and all articles within it from a Pylon knowledge base. Nested collections and their articles are also deleted. This action cannot be undone. Rate limit: 10 requests per minute.

NameTypeRequiredDescription
collection_idstringrequiredThe ID of the collection to delete.
idstringrequiredThe ID of the knowledge base that the collection belongs to.
pylon_kb_collection_get#Retrieve a single collection by its ID within the specified Pylon knowledge base. Returns the collection's title, description, slug, parent collection, and visibility settings.2 params

Retrieve a single collection by its ID within the specified Pylon knowledge base. Returns the collection's title, description, slug, parent collection, and visibility settings.

NameTypeRequiredDescription
collection_idstringrequiredThe ID of the collection to fetch.
idstringrequiredThe ID of the knowledge base the collection belongs to.
pylon_kb_collection_update#Update an existing collection in a Pylon knowledge base. Only the fields you provide are modified. Supports updating the title, description, slug, and visibility settings.8 params

Update an existing collection in a Pylon knowledge base. Only the fields you provide are modified. Supports updating the title, description, slug, and visibility settings.

NameTypeRequiredDescription
collection_idstringrequiredThe ID of the collection to update.
idstringrequiredThe ID of the knowledge base that the collection belongs to.
ai_agent_accessstringoptionalAI agent access control for this collection: inherit, none, or specific_agents.
allowed_agent_idsarrayoptionalList of AI agent IDs allowed to access this collection when ai_agent_access is set to specific_agents.
descriptionstringoptionalThe new description of the collection.
slugstringoptionalThe new slug of the collection.
titlestringoptionalThe new title of the collection.
visibilitystringoptionalThe visibility setting for the collection: public, customer, or internal_only.
pylon_kb_collections_list#Returns all collections for the specified Pylon knowledge base. Use this to browse the collection hierarchy before creating or updating articles and nested collections.1 param

Returns all collections for the specified Pylon knowledge base. Use this to browse the collection hierarchy before creating or updating articles and nested collections.

NameTypeRequiredDescription
idstringrequiredThe ID of the knowledge base to list collections for.
pylon_kb_route_redirect_create#Create a new path redirect within a knowledge base, mapping a source path to an existing article or collection. Use this to preserve old URLs when content is moved or renamed.5 params

Create a new path redirect within a knowledge base, mapping a source path to an existing article or collection. Use this to preserve old URLs when content is moved or renamed.

NameTypeRequiredDescription
from_pathstringrequiredThe path to redirect from.
idstringrequiredThe ID of the knowledge base the route redirect is being added to.
object_idstringrequiredThe ID of the object to redirect to.
object_typestringrequiredThe type of the object to redirect to. Must be "article" or "collection".
languagestringoptionalLanguage of the object to redirect to. If not specified, the default language of the knowledge base will be used.
pylon_knowledge_base_get#Retrieve a single Pylon knowledge base by its ID. Returns the knowledge base's name and other metadata. Use this to look up details for a specific knowledge base before listing its articles.1 param

Retrieve a single Pylon knowledge base by its ID. Returns the knowledge base's name and other metadata. Use this to look up details for a specific knowledge base before listing its articles.

NameTypeRequiredDescription
idstringrequiredThe ID of the knowledge base to fetch. Accepts Pylon's internal knowledge base ID (UUID).
pylon_knowledge_bases_list#Retrieve all knowledge bases configured for the Pylon organization. Returns each knowledge base's ID, name, and other metadata. Use this to discover available knowledge bases before fetching their articles.0 params

Retrieve all knowledge bases configured for the Pylon organization. Returns each knowledge base's ID, name, and other metadata. Use this to discover available knowledge bases before fetching their articles.

pylon_macro_create#Create a new macro (canned response) within a specified macro group. Macros are reusable snippets of text that can be inserted into replies, notes, or emails, optionally scoped by visibility and matching conditions.6 params

Create a new macro (canned response) within a specified macro group. Macros are reusable snippets of text that can be inserted into replies, notes, or emails, optionally scoped by visibility and matching conditions.

NameTypeRequiredDescription
macro_group_idstringrequiredThe ID of the macro group this macro belongs to.
namestringrequiredThe name of the macro.
text_htmlstringrequiredThe HTML content of the macro.
conditionsobjectoptionalA filter that determines when this macro is suggested or shown, based on ticket fields.
text_typestringoptionalThe type of text: "reply", "note", or "email". Defaults to "reply".
visibilityobjectoptionalVisibility settings that determine who can use this macro.
pylon_macro_delete#Permanently delete a macro by ID. This action cannot be undone. Use pylon_macro_get first to confirm you are deleting the correct macro.1 param

Permanently delete a macro by ID. This action cannot be undone. Use pylon_macro_get first to confirm you are deleting the correct macro.

NameTypeRequiredDescription
idstringrequiredThe ID of the macro to delete.
pylon_macro_get#Retrieve a single macro by its ID. Returns the macro's name, content, macro group, text type, conditions, and visibility settings.1 param

Retrieve a single macro by its ID. Returns the macro's name, content, macro group, text type, conditions, and visibility settings.

NameTypeRequiredDescription
idstringrequiredThe ID of the macro.
pylon_macro_groups_list#Retrieve all macro groups for the organization. Macro groups are used to organize related macros together.0 params

Retrieve all macro groups for the organization. Macro groups are used to organize related macros together.

pylon_macro_update#Update an existing macro by ID. All fields are optional; only the fields you provide will be updated. Use pylon_macro_get first to see the macro's current state.7 params

Update an existing macro by ID. All fields are optional; only the fields you provide will be updated. Use pylon_macro_get first to see the macro's current state.

NameTypeRequiredDescription
idstringrequiredThe ID of the macro to update.
conditionsobjectoptionalA filter that determines when this macro is suggested or shown, based on ticket fields.
macro_group_idstringoptionalThe ID of the macro group this macro belongs to.
namestringoptionalThe name of the macro.
text_htmlstringoptionalThe HTML content of the macro.
text_typestringoptionalThe type of text: "reply", "note", or "email".
visibilityobjectoptionalVisibility settings that determine who can use this macro.
pylon_macros_list#Retrieve all macros for the organization. Optionally filter by macro group ID to only return macros belonging to a specific group.1 param

Retrieve all macros for the organization. Optionally filter by macro group ID to only return macros belonging to a specific group.

NameTypeRequiredDescription
macro_group_idstringoptionalFilter macros by macro group ID.
pylon_me_get#Retrieve details of the authenticated organization and user associated with the credentials used for this request. Use this to verify which Pylon account and user the current API token belongs to.0 params

Retrieve details of the authenticated organization and user associated with the credentials used for this request. Use this to verify which Pylon account and user the current API token belongs to.

pylon_milestone_create#Create a new milestone within a project. Milestones mark significant checkpoints in a project's progress and can optionally be associated with an account and a due date.4 params

Create a new milestone within a project. Milestones mark significant checkpoints in a project's progress and can optionally be associated with an account and a due date.

NameTypeRequiredDescription
namestringrequiredName for this milestone
project_idstringrequiredProject ID for this milestone
account_idstringoptionalAccount ID for this project
due_datestringoptionalDue date for this milestone, in RFC 3339 format
pylon_milestone_delete#Permanently delete a Pylon milestone by its ID. This action cannot be undone. Use this only when you are certain the milestone should be removed.1 param

Permanently delete a Pylon milestone by its ID. This action cannot be undone. Use this only when you are certain the milestone should be removed.

NameTypeRequiredDescription
idstringrequiredThe ID of the milestone to delete. Accepts Pylon's internal milestone ID (UUID).
pylon_milestone_get#Retrieve a single milestone by its ID. Returns the milestone's name, project, account, due date, and other metadata.1 param

Retrieve a single milestone by its ID. Returns the milestone's name, project, account, due date, and other metadata.

NameTypeRequiredDescription
idstringrequiredThe ID of the milestone to fetch.
pylon_milestone_update#Update an existing Pylon milestone. Only the fields you provide are modified; omitted fields are left unchanged. Use this to rename a milestone or change its due date.3 params

Update an existing Pylon milestone. Only the fields you provide are modified; omitted fields are left unchanged. Use this to rename a milestone or change its due date.

NameTypeRequiredDescription
idstringrequiredThe ID of the milestone to update. Accepts Pylon's internal milestone ID (UUID).
due_datestringoptionalNew due date for this milestone, in RFC 3339 format (e.g. 2024-12-31T00:00:00Z). Optional; if omitted, the existing due date is kept.
namestringoptionalNew name for this milestone. Optional; if omitted, the existing name is kept.
pylon_project_create#Create a new Pylon project for an account. A project is a container for tracking a body of work, optionally linked to a project template, owner, and start/end dates. Requires a name and an account ID.8 params

Create a new Pylon project for an account. A project is a container for tracking a body of work, optionally linked to a project template, owner, and start/end dates. Requires a name and an account ID.

NameTypeRequiredDescription
account_idstringrequiredThe ID of the account this project belongs to. Required.
namestringrequiredName for this project. Required.
customer_portal_visiblebooleanoptionalWhether this project is visible to customers in the customer portal. Defaults to false.
description_htmlstringoptionalDescription for this project, as an HTML string. Optional.
end_datestringoptionalEnd date for this project, in RFC 3339 format (e.g. 2024-09-30T00:00:00Z). Optional.
owner_idstringoptionalThe ID of the user who owns this project. Optional.
project_template_idstringoptionalThe ID of the project template to base this project on. Optional.
start_datestringoptionalStart date for this project, in RFC 3339 format (e.g. 2024-07-01T00:00:00Z). Optional.
pylon_project_delete#Permanently delete an existing Pylon project by its ID. This action cannot be undone. Use this only when you are certain the project should be removed.1 param

Permanently delete an existing Pylon project by its ID. This action cannot be undone. Use this only when you are certain the project should be removed.

NameTypeRequiredDescription
idstringrequiredThe ID of the project to delete. Accepts Pylon's internal project ID (UUID).
pylon_project_get#Retrieve a single Pylon project by its ID. Returns the project's details including name, status, owner, account, dates, and custom fields. Use this to look up an existing project before updating it or to fetch its current state.1 param

Retrieve a single Pylon project by its ID. Returns the project's details including name, status, owner, account, dates, and custom fields. Use this to look up an existing project before updating it or to fetch its current state.

NameTypeRequiredDescription
idstringrequiredThe ID of the project to fetch. Accepts Pylon's internal project ID (UUID).
pylon_project_update#Update an existing Pylon project. Only the fields you provide are modified; omitted fields are left unchanged. Use this to rename a project, change its owner or dates, archive it, toggle customer portal visibility, or set custom field values.9 params

Update an existing Pylon project. Only the fields you provide are modified; omitted fields are left unchanged. Use this to rename a project, change its owner or dates, archive it, toggle customer portal visibility, or set custom field values.

NameTypeRequiredDescription
idstringrequiredThe ID of the project to update. Accepts Pylon's internal project ID (UUID).
custom_fieldsarrayoptionalArray of custom field values to set on this project. Only passed-in fields are modified. Shape: [{"slug": "priority", "value": "high"}]. Use "value" for single-valued fields (select fields use the option slug from GET /custom-fields; relationship fields use the related object ID) or "values" for multi-valued fields.
customer_portal_visiblebooleanoptionalWhether this project is visible to customers in the customer portal. Optional.
description_htmlstringoptionalNew description for this project, as an HTML string. Optional.
end_datestringoptionalNew end date for this project, in RFC 3339 format (e.g. 2024-09-30T00:00:00Z). Optional.
is_archivedbooleanoptionalWhether the project is archived. Optional.
namestringoptionalNew name for this project. Optional; if omitted, the existing name is kept.
owner_idstringoptionalThe ID of the user to set as the project owner. Optional.
start_datestringoptionalNew start date for this project, in RFC 3339 format (e.g. 2024-07-01T00:00:00Z). Optional.
pylon_survey_get#Retrieve a single Pylon survey by its ID. Returns the survey's name, configuration, and questions. Use this to look up an existing survey's details.1 param

Retrieve a single Pylon survey by its ID. Returns the survey's name, configuration, and questions. Use this to look up an existing survey's details.

NameTypeRequiredDescription
idstringrequiredThe ID of the survey to fetch. Accepts Pylon's internal survey ID (UUID).
pylon_survey_responses_list#Returns paginated survey responses for a given survey, optionally filtered by submission time range, account, or contact. Use this to analyze feedback collected through a Pylon survey.7 params

Returns paginated survey responses for a given survey, optionally filtered by submission time range, account, or contact. Use this to analyze feedback collected through a Pylon survey.

NameTypeRequiredDescription
idstringrequiredThe ID of the survey to fetch responses for.
account_idstringoptionalFilter responses by account ID.
contact_idstringoptionalFilter responses by contact ID.
cursorstringoptionalThe cursor for pagination.
limitintegeroptionalThe number of responses to fetch. Defaults to 100. Must be greater than 0 and less than 1000.
submitted_afterstringoptionalFilter responses submitted after this time (RFC3339 format).
submitted_beforestringoptionalFilter responses submitted before this time (RFC3339 format).
pylon_surveys_list#Retrieve all surveys configured for the organization. Returns each survey's ID, name, and configuration. Use this to enumerate available surveys before searching or fetching a specific one.0 params

Retrieve all surveys configured for the organization. Returns each survey's ID, name, and configuration. Use this to enumerate available surveys before searching or fetching a specific one.

pylon_tag_create#Creates a new tag with the specified value and object type (account, article, or issue). Optionally accepts a hex color for the tag. Use this to define a new tag before applying it to Pylon objects.3 params

Creates a new tag with the specified value and object type (account, article, or issue). Optionally accepts a hex color for the tag. Use this to define a new tag before applying it to Pylon objects.

NameTypeRequiredDescription
object_typestringrequiredThe object type the tag applies to. Can be "account", "article", or "issue".
valuestringrequiredThe tag value.
hex_colorstringoptionalThe hex code of the tag's color.
pylon_tag_delete#Permanently deletes a Pylon tag by its ID. This removes the tag definition entirely; any objects it was applied to will no longer show it. This action cannot be undone.1 param

Permanently deletes a Pylon tag by its ID. This removes the tag definition entirely; any objects it was applied to will no longer show it. This action cannot be undone.

NameTypeRequiredDescription
idstringrequiredThe ID of the tag to delete.
pylon_tag_get#Retrieve a single Pylon tag by its ID. Returns the tag's value, hex color, and the object type it applies to. Use this to look up an existing tag before updating or deleting it.1 param

Retrieve a single Pylon tag by its ID. Returns the tag's value, hex color, and the object type it applies to. Use this to look up an existing tag before updating or deleting it.

NameTypeRequiredDescription
idstringrequiredThe ID of the tag to fetch.
pylon_tag_update#Updates an existing Pylon tag by its ID. Only the fields you provide are modified; omitted fields are left unchanged. Use this to rename a tag or change its color.3 params

Updates an existing Pylon tag by its ID. Only the fields you provide are modified; omitted fields are left unchanged. Use this to rename a tag or change its color.

NameTypeRequiredDescription
idstringrequiredThe ID of the tag to update.
hex_colorstringoptionalThe hex code of the tag's color.
valuestringoptionalThe new name/value of the tag.
pylon_tags_list#Returns all tags defined for the organization, including their value, hex color, and the object type (account, article, or issue) they apply to. Use this to discover existing tags before creating or applying new ones.0 params

Returns all tags defined for the organization, including their value, hex color, and the object type (account, article, or issue) they apply to. Use this to discover existing tags before creating or applying new ones.

pylon_task_comment_create#Create a new comment on a Pylon task. The comment body must be provided as HTML. Optionally mark the comment as internal-only, so it is visible only to internal users and not to the customer.3 params

Create a new comment on a Pylon task. The comment body must be provided as HTML. Optionally mark the comment as internal-only, so it is visible only to internal users and not to the customer.

NameTypeRequiredDescription
body_htmlstringrequiredThe body of the comment in HTML format.
idstringrequiredThe ID of the task to add a comment to.
is_internalbooleanoptionalWhether the comment is visible only to internal users. Optional; defaults to false (visible to the customer) if omitted.
pylon_task_comment_delete#Permanently delete a comment on a Pylon task. This action cannot be undone.2 params

Permanently delete a comment on a Pylon task. This action cannot be undone.

NameTypeRequiredDescription
comment_idstringrequiredThe ID of the comment to delete.
idstringrequiredThe ID of the task the comment belongs to.
pylon_task_comment_update#Update the body of an existing comment on a Pylon task. Replaces the comment's HTML body with the provided content.3 params

Update the body of an existing comment on a Pylon task. Replaces the comment's HTML body with the provided content.

NameTypeRequiredDescription
body_htmlstringrequiredThe updated body of the comment in HTML format.
comment_idstringrequiredThe ID of the comment to update.
idstringrequiredThe ID of the task the comment belongs to.
pylon_task_comments_list#Retrieve all comments on a Pylon task. Returns each comment's body, author, internal/external visibility, and timestamps. Use this to review the discussion history on a task.1 param

Retrieve all comments on a Pylon task. Returns each comment's body, author, internal/external visibility, and timestamps. Use this to review the discussion history on a task.

NameTypeRequiredDescription
idstringrequiredThe ID of the task to fetch comments for.
pylon_task_create#Creates a new Pylon task with a title and optional metadata such as assignee, account, project, milestone, due date, custom fields, and status. Use this to create follow-up work items linked to accounts, projects, or milestones.11 params

Creates a new Pylon task with a title and optional metadata such as assignee, account, project, milestone, due date, custom fields, and status. Use this to create follow-up work items linked to accounts, projects, or milestones.

NameTypeRequiredDescription
titlestringrequiredTitle for this task.
account_idstringoptionalAccount ID for this task.
assignee_idstringoptionalAssignee ID for this task.
body_htmlstringoptionalBody HTML for this task.
custom_fieldsarrayoptionalAn array of custom fields to set on this task. Each entry has a slug and either a single value or a values array for multi-valued fields.
customer_portal_visiblebooleanoptionalCustomer portal visible for this task.
due_datestringoptionalDue date for this task, in RFC 3339 format.
milestone_idstringoptionalMilestone ID for this task.
parent_task_idstringoptionalParent task ID, to create this task as a subtask.
project_idstringoptionalProject ID for this task.
statusstringoptionalStatus for this task.
pylon_task_delete#Permanently delete an existing Pylon task by its ID. This action cannot be undone. Use pylon_task_comments_list or pylon_task equivalents to confirm the task before deleting it.1 param

Permanently delete an existing Pylon task by its ID. This action cannot be undone. Use pylon_task_comments_list or pylon_task equivalents to confirm the task before deleting it.

NameTypeRequiredDescription
idstringrequiredThe ID of the task to delete.
pylon_task_get#Retrieve a single Pylon task by its ID. Returns the task's title, status, assignee, account, project, milestone, due date, custom fields, and other metadata. Use this to look up an existing task before updating or deleting it.1 param

Retrieve a single Pylon task by its ID. Returns the task's title, status, assignee, account, project, milestone, due date, custom fields, and other metadata. Use this to look up an existing task before updating or deleting it.

NameTypeRequiredDescription
idstringrequiredThe ID of the task to fetch.
pylon_task_update#Update an existing Pylon task by its ID. Only the fields you provide are modified; omitted fields are left unchanged. Supports updating the assignee, title, body, due date, status, project, milestone, customer portal visibility, and custom fields.10 params

Update an existing Pylon task by its ID. Only the fields you provide are modified; omitted fields are left unchanged. Supports updating the assignee, title, body, due date, status, project, milestone, customer portal visibility, and custom fields.

NameTypeRequiredDescription
idstringrequiredThe ID of the task to update.
assignee_idstringoptionalAssignee ID for this task. Optional; if omitted, the assignee is left unchanged.
body_htmlstringoptionalBody HTML for this task. Optional; if omitted, the body is left unchanged.
custom_fieldsarrayoptionalAn array of custom fields to update on this task. Only the passed-in fields are modified. Each entry has a slug and either a single value or an array of values (for multi-valued fields like multiselect).
customer_portal_visiblebooleanoptionalWhether this task is visible in the customer portal. Optional; if omitted, left unchanged.
due_datestringoptionalDue date for this task, in RFC 3339 format. Optional; if omitted, left unchanged.
milestone_idstringoptionalMilestone ID for this task. Optional; if omitted, left unchanged.
project_idstringoptionalProject ID for this task. Optional; if omitted, left unchanged.
statusstringoptionalStatus for this task. Optional; if omitted, left unchanged.
titlestringoptionalTitle for this task. Optional; if omitted, left unchanged.
pylon_tasks_list#Returns a paginated list of tasks for the organization. Use this to browse all tasks; use pylon_tasks_search instead if you need to filter tasks by account, project, status, assignee, or other fields.2 params

Returns a paginated list of tasks for the organization. Use this to browse all tasks; use pylon_tasks_search instead if you need to filter tasks by account, project, status, assignee, or other fields.

NameTypeRequiredDescription
cursorstringoptionalThe cursor to use for pagination.
limitintegeroptionalThe number of tasks to fetch. Defaults to 100. Must be greater than 0 and less than 1000.
pylon_team_create#Create a new team in Pylon with a name and an optional list of member user IDs.2 params

Create a new team in Pylon with a name and an optional list of member user IDs.

NameTypeRequiredDescription
namestringrequiredThe name of the team.
user_idsarrayoptionalThe list of user IDs to add to the team. Optional; if omitted, the team is created with no members.
pylon_team_get#Retrieve a single Pylon team by its ID. Returns the team's name and member list.1 param

Retrieve a single Pylon team by its ID. Returns the team's name and member list.

NameTypeRequiredDescription
idstringrequiredThe ID of the team to fetch.
pylon_team_update#Update an existing Pylon team's name and/or member list. If user_ids is provided, the team's members are replaced to be exactly the given users. Only the fields you provide are modified.3 params

Update an existing Pylon team's name and/or member list. If user_ids is provided, the team's members are replaced to be exactly the given users. Only the fields you provide are modified.

NameTypeRequiredDescription
idstringrequiredThe ID of the team to update.
namestringoptionalThe updated name of the team. Optional; if omitted, the name is left unchanged.
user_idsarrayoptionalThe list of user IDs to set as the team's members. If provided, the team's members are replaced to be exactly these users. Optional; if omitted, the team's members are left unchanged.
pylon_teams_list#Retrieve all teams for the organization. Returns each team's ID, name, and member list. Use this to look up a team's ID before fetching, creating, or updating team assignments.0 params

Retrieve all teams for the organization. Returns each team's ID, name, and member list. Use this to look up a team's ID before fetching, creating, or updating team assignments.

pylon_ticket_form_get#Retrieve a single ticket form by its ID. Returns the form's field definitions and layout configuration. Use pylon_ticket_forms_list to discover valid ticket form IDs.1 param

Retrieve a single ticket form by its ID. Returns the form's field definitions and layout configuration. Use pylon_ticket_forms_list to discover valid ticket form IDs.

NameTypeRequiredDescription
idstringrequiredThe ID of the ticket form to fetch.
pylon_ticket_forms_list#Returns all ticket forms configured for the organization. Ticket forms define the fields and layout customers or agents see when submitting a ticket. Use this to discover available forms before fetching a specific one by ID.0 params

Returns all ticket forms configured for the organization. Ticket forms define the fields and layout customers or agents see when submitting a ticket. Use this to discover available forms before fetching a specific one by ID.

pylon_training_data_create#Create a new training data configuration (container) for the organization. Training data containers hold documents (files or text content) that power Pylon's AI agent responses. After creating a container, add documents to it with pylon_training_data_upload_files or pylon_training_data_upload_content.2 params

Create a new training data configuration (container) for the organization. Training data containers hold documents (files or text content) that power Pylon's AI agent responses. After creating a container, add documents to it with pylon_training_data_upload_files or pylon_training_data_upload_content.

NameTypeRequiredDescription
training_data_namestringoptionalThe name of the training data container.
visibilitystringoptionalThe visibility of the training data. Defaults to 'everyone' if not provided.
pylon_training_data_documents_delete#Permanently removes one or more documents from a training data configuration by document ID or external ID. Once deleted, the documents will no longer be used to power Pylon's AI agent responses. Provide document_ids and/or external_ids to identify which documents to remove.3 params

Permanently removes one or more documents from a training data configuration by document ID or external ID. Once deleted, the documents will no longer be used to power Pylon's AI agent responses. Provide document_ids and/or external_ids to identify which documents to remove.

NameTypeRequiredDescription
idstringrequiredThe ID of the training data configuration to delete documents from.
document_idsarrayoptionalDocument IDs to delete.
external_idsarrayoptionalExternal IDs to delete.
pylon_training_data_get#Retrieve a single training data configuration by its ID. Returns the container's name, visibility, and metadata about the documents it holds. Use pylon_training_data_list to discover valid training data IDs.1 param

Retrieve a single training data configuration by its ID. Returns the container's name, visibility, and metadata about the documents it holds. Use pylon_training_data_list to discover valid training data IDs.

NameTypeRequiredDescription
idstringrequiredThe ID of the training data configuration to fetch.
pylon_training_data_list#Returns all training data configurations for the organization. Training data configurations are containers of documents (files or text content) that power Pylon's AI agent responses. Use this to discover existing training data containers before adding documents to them.0 params

Returns all training data configurations for the organization. Training data configurations are containers of documents (files or text content) that power Pylon's AI agent responses. Use this to discover existing training data containers before adding documents to them.

pylon_training_data_upload_content#Upload plain text content as a training data document, either into a new training data container or an existing one. Use this when you have raw text (not a file) that should power Pylon's AI agent responses. Provide either training_data_id (to add to an existing container) or training_data_name (to create a new one).6 params

Upload plain text content as a training data document, either into a new training data container or an existing one. Use this when you have raw text (not a file) that should power Pylon's AI agent responses. Provide either training_data_id (to add to an existing container) or training_data_name (to create a new one).

NameTypeRequiredDescription
contentstringrequiredThe text content to upload.
file_namestringrequiredThe name for the uploaded document.
external_idstringoptionalExternal ID for idempotent operations (optional).
training_data_idstringoptionalThe ID of an existing training data container to upload to. Required if training_data_name is not provided.
training_data_namestringoptionalThe name of a new training data container to create. Required if training_data_id is not provided.
visibilitystringoptionalVisibility of the training data. Defaults to 'everyone'.
pylon_training_data_upload_files#Upload a single file as training data, either into a new training data container or an existing one. The file content must be supplied as a base64-encoded string. Supported file types are PDF, plain text, markdown, CSV, JSON, and images (JPEG, PNG, GIF, WebP), up to 50MB. Provide either training_data_id (to add to an existing container) or training_data_name (to create a new one).6 params

Upload a single file as training data, either into a new training data container or an existing one. The file content must be supplied as a base64-encoded string. Supported file types are PDF, plain text, markdown, CSV, JSON, and images (JPEG, PNG, GIF, WebP), up to 50MB. Provide either training_data_id (to add to an existing container) or training_data_name (to create a new one).

NameTypeRequiredDescription
file_content_base64stringrequiredBase64-encoded contents of the file to upload.
file_namestringrequiredThe name for the uploaded file, including extension.
external_idstringoptionalExternal ID for idempotent operations. Used for duplicate detection and updates.
training_data_idstringoptionalThe ID of an existing training data container to upload the file to. Required if training_data_name is not provided.
training_data_namestringoptionalThe name of a new training data container to create. Required if training_data_id is not provided.
visibilitystringoptionalVisibility of the training data. Defaults to 'everyone'.
pylon_user_get#Retrieve a single Pylon user by their ID. Returns the user's details including name, email, avatar, role, and status. Use this to look up an existing user before updating it or to fetch its current state.1 param

Retrieve a single Pylon user by their ID. Returns the user's details including name, email, avatar, role, and status. Use this to look up an existing user before updating it or to fetch its current state.

NameTypeRequiredDescription
idstringrequiredThe ID of the user to fetch.
pylon_user_roles_list#Returns all user roles configured for the organization, including their names and permission sets. Use this to look up valid role identifiers when creating or updating users.0 params

Returns all user roles configured for the organization, including their names and permission sets. Use this to look up valid role identifiers when creating or updating users.

pylon_user_update#Update an existing Pylon user. Only the fields you provide are modified; omitted fields are left unchanged. Supports updating the user's name, avatar URL, role, and status.5 params

Update an existing Pylon user. Only the fields you provide are modified; omitted fields are left unchanged. Supports updating the user's name, avatar URL, role, and status.

NameTypeRequiredDescription
idstringrequiredThe ID of the user to update.
avatar_urlstringoptionalThe avatar URL of the user. Must be a square .png, .jpg or .jpeg.
namestringoptionalThe name of the user.
role_idstringoptionalThe role_id of the user.
statusstringoptionalThe new user status for the user. Can be one of `active`, `away`, or `out_of_office`.
pylon_users_list#Returns all users (agents/teammates) for the organization, including their name, email, and role. Use this to look up user IDs before assigning them to issues or account relationships.0 params

Returns all users (agents/teammates) for the organization, including their name, email, and role. Use this to look up user IDs before assigning them to issues or account relationships.