Pylon
Knowledge BaseWebsiteChangelogBook a DemoLogin
  • Getting Started
    • Introduction
    • Quick Start
    • Slack Setup
    • Channel Configuration
    • User Guide
  • Support Workflows
    • Omnichannel Support
    • Issues
      • Views
      • Statuses
      • Message Editor
      • Copilot
      • Sidebar
      • Internal Threads
      • Proactive Issues
      • Translation
      • Bulk actions
      • Issue Groups
    • SLAs
    • Support Hours
    • CSAT
    • Ticket Forms
    • Assignment Rules
      • User Status
    • Email
  • Platform
    • Custom Fields
    • Required and Conditional Fields
    • Tags
    • Teams
    • Triggers
      • Logs & History
    • Macros
    • Command Search
    • Roles & User Management
    • Training Data
    • Ask AI
  • AI Agents
    • Overview
    • Build
      • Resources
    • Test
  • Knowledge Base
    • Overview
    • Articles & Collections
      • Editor
      • Copilot
      • Templates
      • Collaboration
    • Knowledge Gaps
    • Styling & Customization
    • Custom Authentication
    • Search
    • Translation
  • Customer Portal
    • Overview
    • Styling & Customization
    • Access Control
    • Portal Experience
    • Custom Authentication
  • Chat Widget
    • Overview
    • Styling
    • Functionality
    • Chat Experience
    • Chat Setup
    • Identity Verification
    • JavaScript API
  • Account Management
    • Accounts
    • Views
    • Notebooks
      • Blocks
    • Highlights
    • Fields
    • Copilot
    • Activities
      • Custom Activities
    • Sidebar
  • Reporting & Analytics
    • Analytics
    • Default Dashboards
    • Custom Dashboards
  • Broadcasts
    • Overview
    • Create a Broadcast
    • Analytics
  • Integrations
    • CRM
      • Salesforce
      • Hubspot
      • Attio
      • Pipedrive
    • Ticketing
      • Linear
      • GitHub Issues
      • Asana
      • Jira
    • Alerting
      • PagerDuty
      • Opsgenie
    • Chat
      • Slack
        • Internal Threads
        • Collect Data
        • Support Ticket Flow
        • Welcome Message
        • Bookmarks
        • Onboard Employees
        • Left Company
        • Slack Community
      • Microsoft Teams
      • Discord
    • Incident Management
      • incident.io
    • Call Recording
      • Gong
      • Fathom
      • Grain
      • Fireflies
  • Data Warehouse
    • Snowflake
    • BigQuery
  • Developer
    • API
      • Authentication
      • Errors
      • API reference
        • Attachments
        • Accounts
          • Activities
          • Highlights
        • Contacts
        • Custom Fields
        • Issues
        • Knowledge Base
        • Me
        • Messages
        • Tags
        • Teams
        • Ticket Forms
        • User roles
        • Users
      • External IDs
    • Custom Apps
    • Embedded Iframes
    • Webhooks
Powered by GitBook
On this page

Was this helpful?

  1. Developer
  2. API
  3. API reference

Issues

PreviousCustom FieldsNextKnowledge Base

Last updated 14 days ago

Was this helpful?

get

Get an issue by its ID/number

Authorizations
Path parameters
idstringRequired

The ID or number of the issue to fetch.

Responses
200Success
application/json
400Error
application/json
404Error
application/json
500Error
application/json
get
GET /issues/{id} HTTP/1.1
Host: api.usepylon.com
Authorization: Bearer JWT
Accept: */*
{
  "data": {
    "account": {
      "id": "text"
    },
    "assignee": {
      "email": "text",
      "id": "text"
    },
    "body_html": "text",
    "business_hours_first_response_seconds": 1,
    "business_hours_resolution_seconds": 1,
    "chat_widget_info": {
      "page_url": "text"
    },
    "created_at": "text",
    "csat_responses": [
      {
        "comment": "text",
        "score": 1
      }
    ],
    "custom_fields": {
      "ANY_ADDITIONAL_PROPERTY": {
        "slug": "text",
        "value": "text",
        "values": [
          "text"
        ]
      }
    },
    "customer_portal_visible": true,
    "external_issues": [
      {
        "external_id": "text",
        "link": "text",
        "source": "text"
      }
    ],
    "first_response_seconds": 1,
    "first_response_time": "text",
    "id": "text",
    "latest_message_time": "text",
    "link": "text",
    "number": 1,
    "number_of_touches": 1,
    "requester": {
      "email": "text",
      "id": "text"
    },
    "resolution_seconds": 1,
    "resolution_time": "text",
    "slack": {
      "channel_id": "text",
      "message_ts": "text"
    },
    "snoozed_until_time": "text",
    "source": "slack",
    "state": "text",
    "tags": [
      "text"
    ],
    "team": {
      "id": "text"
    },
    "title": "text",
    "type": "Conversation"
  },
  "request_id": "text"
}
delete

Delete an existing issue

Authorizations
Path parameters
idstringRequired

The ID of the issue to delete.

Responses
200Success
application/json
delete
DELETE /issues/{id} HTTP/1.1
Host: api.usepylon.com
Authorization: Bearer JWT
Accept: */*
200Success
{
  "request_id": "text"
}
get

Get a list of issues

Authorizations
Query parameters
start_timestringRequired

The 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.

end_timestringRequired

The 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.

Responses
200Success
application/json
400Error
application/json
404Error
application/json
500Error
application/json
get
GET /issues HTTP/1.1
Host: api.usepylon.com
Authorization: Bearer JWT
Accept: */*
{
  "data": [
    {
      "account": {
        "id": "text"
      },
      "assignee": {
        "email": "text",
        "id": "text"
      },
      "body_html": "text",
      "business_hours_first_response_seconds": 1,
      "business_hours_resolution_seconds": 1,
      "chat_widget_info": {
        "page_url": "text"
      },
      "created_at": "text",
      "csat_responses": [
        {
          "comment": "text",
          "score": 1
        }
      ],
      "custom_fields": {
        "ANY_ADDITIONAL_PROPERTY": {
          "slug": "text",
          "value": "text",
          "values": [
            "text"
          ]
        }
      },
      "customer_portal_visible": true,
      "external_issues": [
        {
          "external_id": "text",
          "link": "text",
          "source": "text"
        }
      ],
      "first_response_seconds": 1,
      "first_response_time": "text",
      "id": "text",
      "latest_message_time": "text",
      "link": "text",
      "number": 1,
      "number_of_touches": 1,
      "requester": {
        "email": "text",
        "id": "text"
      },
      "resolution_seconds": 1,
      "resolution_time": "text",
      "slack": {
        "channel_id": "text",
        "message_ts": "text"
      },
      "snoozed_until_time": "text",
      "source": "slack",
      "state": "text",
      "tags": [
        "text"
      ],
      "team": {
        "id": "text"
      },
      "title": "text",
      "type": "Conversation"
    }
  ],
  "pagination": {
    "cursor": "text",
    "has_next_page": true
  },
  "request_id": "text"
}
post

Create a new issue

Authorizations
Body
account_idstringOptional

The account that this issue belongs to.

assignee_idstringOptional

The user the issue should be assigned to.

attachment_urlsstring[]Optional

An array of attachment URLs to attach to this issue.

body_htmlstringRequired

The HTML content of the body of the issue.

contact_idstringOptional

Optional contact ID to post the message as. Only one of user_id or contact_id can be provided.

created_atstringOptional

Timestamp of when the issue was created. If not specified, the current time will be used. (RFC3339)

prioritystringOptional

The priority of the issue. Can be one of: urgent, high, medium, or low.

requester_avatar_urlstringOptional

The URL of an avatar of the requester.

requester_emailstringOptional

The email of the user that this issue is on behalf of. Include one of requester_id or requester_email to create an issue with a requester.

requester_idstringOptional

The requester that this issue is on behalf of. Include one of requester_id or requester_email to create an issue with a requester.

requester_namestringOptional

The full name of the user that this issue is on behalf of.

tagsstring[]Optional

An array of strings to use as tags on this issue. If provided, the issue tags will be updated to the given tags.

team_idstringOptional

The ID of the team this issue should be assigned to.

titlestringRequired

The title of the issue.

user_idstringOptional

Optional user ID to post the message as. Only one of user_id or contact_id can be provided.

Responses
200Success
application/json
400Error
application/json
404Error
application/json
500Error
application/json
post
POST /issues HTTP/1.1
Host: api.usepylon.com
Authorization: Bearer JWT
Content-Type: application/json
Accept: */*
Content-Length: 484

{
  "account_id": "text",
  "assignee_id": "text",
  "attachment_urls": [
    "text"
  ],
  "body_html": "text",
  "contact_id": "text",
  "created_at": "text",
  "custom_fields": [
    {
      "slug": "text",
      "value": "text",
      "values": [
        "text"
      ]
    }
  ],
  "destination_metadata": {
    "destination": "slack",
    "email": "text",
    "email_bccs": [
      "text"
    ],
    "email_ccs": [
      "text"
    ]
  },
  "priority": "text",
  "requester_avatar_url": "text",
  "requester_email": "text",
  "requester_id": "text",
  "requester_name": "text",
  "tags": [
    "text"
  ],
  "team_id": "text",
  "title": "text",
  "user_id": "text"
}
{
  "data": {
    "account": {
      "id": "text"
    },
    "assignee": {
      "email": "text",
      "id": "text"
    },
    "body_html": "text",
    "business_hours_first_response_seconds": 1,
    "business_hours_resolution_seconds": 1,
    "chat_widget_info": {
      "page_url": "text"
    },
    "created_at": "text",
    "csat_responses": [
      {
        "comment": "text",
        "score": 1
      }
    ],
    "custom_fields": {
      "ANY_ADDITIONAL_PROPERTY": {
        "slug": "text",
        "value": "text",
        "values": [
          "text"
        ]
      }
    },
    "customer_portal_visible": true,
    "external_issues": [
      {
        "external_id": "text",
        "link": "text",
        "source": "text"
      }
    ],
    "first_response_seconds": 1,
    "first_response_time": "text",
    "id": "text",
    "latest_message_time": "text",
    "link": "text",
    "number": 1,
    "number_of_touches": 1,
    "requester": {
      "email": "text",
      "id": "text"
    },
    "resolution_seconds": 1,
    "resolution_time": "text",
    "slack": {
      "channel_id": "text",
      "message_ts": "text"
    },
    "snoozed_until_time": "text",
    "source": "slack",
    "state": "text",
    "tags": [
      "text"
    ],
    "team": {
      "id": "text"
    },
    "title": "text",
    "type": "Conversation"
  },
  "request_id": "text"
}
patch

Update an existing issue

Authorizations
Path parameters
idstringRequired

The ID of the issue to update.

Body
assignee_idstringOptional

The ID of the user who should be assigned to this issue. If empty string is passed in, the issue assignee will be removed.

customer_portal_visiblebooleanOptional

Whether the issue should be visible in the customer portal.

requester_idstringOptional

The ID of the requester that this issue is on behalf of.

requestor_idstringOptional

Deprecated: Use requester_id instead.

statestringOptional

The 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.

tagsstring[]Optional

An array of strings to use as tags on this issue. If provided, the issue tags will be updated to be exactly the given tags.

team_idstringOptional

The ID of the team this issue should be assigned to. If empty string is passed in, any assigned team will be removed.

Responses
200Success
application/json
400Error
application/json
404Error
application/json
500Error
application/json
patch
PATCH /issues/{id} HTTP/1.1
Host: api.usepylon.com
Authorization: Bearer JWT
Content-Type: application/json
Accept: */*
Content-Length: 212

{
  "assignee_id": "text",
  "custom_fields": [
    {
      "slug": "text",
      "value": "text",
      "values": [
        "text"
      ]
    }
  ],
  "customer_portal_visible": true,
  "requester_id": "text",
  "requestor_id": "text",
  "state": "text",
  "tags": [
    "text"
  ],
  "team_id": "text"
}
{
  "data": {
    "account": {
      "id": "text"
    },
    "assignee": {
      "email": "text",
      "id": "text"
    },
    "body_html": "text",
    "business_hours_first_response_seconds": 1,
    "business_hours_resolution_seconds": 1,
    "chat_widget_info": {
      "page_url": "text"
    },
    "created_at": "text",
    "csat_responses": [
      {
        "comment": "text",
        "score": 1
      }
    ],
    "custom_fields": {
      "ANY_ADDITIONAL_PROPERTY": {
        "slug": "text",
        "value": "text",
        "values": [
          "text"
        ]
      }
    },
    "customer_portal_visible": true,
    "external_issues": [
      {
        "external_id": "text",
        "link": "text",
        "source": "text"
      }
    ],
    "first_response_seconds": 1,
    "first_response_time": "text",
    "id": "text",
    "latest_message_time": "text",
    "link": "text",
    "number": 1,
    "number_of_touches": 1,
    "requester": {
      "email": "text",
      "id": "text"
    },
    "resolution_seconds": 1,
    "resolution_time": "text",
    "slack": {
      "channel_id": "text",
      "message_ts": "text"
    },
    "snoozed_until_time": "text",
    "source": "slack",
    "state": "text",
    "tags": [
      "text"
    ],
    "team": {
      "id": "text"
    },
    "title": "text",
    "type": "Conversation"
  },
  "request_id": "text"
}

Search for issues by a given filter

post

Currently, the following fields are filterable for issues:

  • created_at (in RFC3339 format). Allowed operators: time_is_after, time_is_before, time_range

  • account_id. Allowed operators: equals, in, not_in

  • ticket_form_id. Allowed operators: equals, in, not_in

  • requester_id. Allowed operators: equals, in, not_in

  • follower_user_id. Allowed operators: equals, in, not_in

  • follower_contact_id. Allowed operators: equals, in, not_in

  • state. Valid values are ["new", "waiting_on_you", "waiting_on_customer", "on_hold", "closed"] or a custom status slug. Allowed operators: equals, in, not_in

  • custom fields (pass in the slug of the custom field)

  • tags (pass in the tag name). Allowed operators: contains, does_not_contain, in, not_in

  • title. Allowed operators: string_contains, string_does_not_contain

  • body_html. Allowed operators: string_contains, string_does_not_contain

Authorizations
Body
cursorstringOptional

The cursor to use for pagination.

limitinteger · int64Optional

The number of issues to fetch. Defaults to 100. Must be greater than 0 and less than 1000.

Responses
200Success
application/json
400Error
application/json
404Error
application/json
500Error
application/json
post
POST /issues/search HTTP/1.1
Host: api.usepylon.com
Authorization: Bearer JWT
Content-Type: application/json
Accept: */*
Content-Length: 312

{
  "cursor": "text",
  "filter": {
    "field": "text",
    "operator": "equals",
    "subfilters": [
      {
        "field": "text",
        "operator": "equals",
        "subfilters": [
          {
            "field": "text",
            "operator": "equals",
            "subfilters": "[Circular Reference]",
            "value": "text",
            "values": [
              "text"
            ]
          }
        ],
        "value": "text",
        "values": [
          "text"
        ]
      }
    ],
    "value": "text",
    "values": [
      "text"
    ]
  },
  "limit": 1
}
{
  "data": [
    {
      "account": {
        "id": "text"
      },
      "assignee": {
        "email": "text",
        "id": "text"
      },
      "body_html": "text",
      "business_hours_first_response_seconds": 1,
      "business_hours_resolution_seconds": 1,
      "chat_widget_info": {
        "page_url": "text"
      },
      "created_at": "text",
      "csat_responses": [
        {
          "comment": "text",
          "score": 1
        }
      ],
      "custom_fields": {
        "ANY_ADDITIONAL_PROPERTY": {
          "slug": "text",
          "value": "text",
          "values": [
            "text"
          ]
        }
      },
      "customer_portal_visible": true,
      "external_issues": [
        {
          "external_id": "text",
          "link": "text",
          "source": "text"
        }
      ],
      "first_response_seconds": 1,
      "first_response_time": "text",
      "id": "text",
      "latest_message_time": "text",
      "link": "text",
      "number": 1,
      "number_of_touches": 1,
      "requester": {
        "email": "text",
        "id": "text"
      },
      "resolution_seconds": 1,
      "resolution_time": "text",
      "slack": {
        "channel_id": "text",
        "message_ts": "text"
      },
      "snoozed_until_time": "text",
      "source": "slack",
      "state": "text",
      "tags": [
        "text"
      ],
      "team": {
        "id": "text"
      },
      "title": "text",
      "type": "Conversation"
    }
  ],
  "pagination": {
    "cursor": "text",
    "has_next_page": true
  },
  "request_id": "text"
}
post

Snooze an issue

Authorizations
Path parameters
idstringRequired

The ID or number of the issue to snooze.

Body
snooze_untilstringRequired

The date and time to snooze the issue until. (RFC3339)

Responses
200Success
application/json
400Error
application/json
404Error
application/json
500Error
application/json
post
POST /issues/{id}/snooze HTTP/1.1
Host: api.usepylon.com
Authorization: Bearer JWT
Content-Type: application/json
Accept: */*
Content-Length: 23

{
  "snooze_until": "text"
}
{
  "data": {
    "account": {
      "id": "text"
    },
    "assignee": {
      "email": "text",
      "id": "text"
    },
    "body_html": "text",
    "business_hours_first_response_seconds": 1,
    "business_hours_resolution_seconds": 1,
    "chat_widget_info": {
      "page_url": "text"
    },
    "created_at": "text",
    "csat_responses": [
      {
        "comment": "text",
        "score": 1
      }
    ],
    "custom_fields": {
      "ANY_ADDITIONAL_PROPERTY": {
        "slug": "text",
        "value": "text",
        "values": [
          "text"
        ]
      }
    },
    "customer_portal_visible": true,
    "external_issues": [
      {
        "external_id": "text",
        "link": "text",
        "source": "text"
      }
    ],
    "first_response_seconds": 1,
    "first_response_time": "text",
    "id": "text",
    "latest_message_time": "text",
    "link": "text",
    "number": 1,
    "number_of_touches": 1,
    "requester": {
      "email": "text",
      "id": "text"
    },
    "resolution_seconds": 1,
    "resolution_time": "text",
    "slack": {
      "channel_id": "text",
      "message_ts": "text"
    },
    "snoozed_until_time": "text",
    "source": "slack",
    "state": "text",
    "tags": [
      "text"
    ],
    "team": {
      "id": "text"
    },
    "title": "text",
    "type": "Conversation"
  },
  "request_id": "text"
}
get

Get followers of an issue

Authorizations
Path parameters
idstringRequired

The ID or number of the issue to get followers for.

Responses
200Success
application/json
400Error
application/json
404Error
application/json
500Error
application/json
get
GET /issues/{id}/followers HTTP/1.1
Host: api.usepylon.com
Authorization: Bearer JWT
Accept: */*
{
  "data": [
    {
      "id": "text",
      "type": "user"
    }
  ],
  "request_id": "text"
}
  • GET/issues
  • POST/issues
  • GET/issues/{id}
  • PATCH/issues/{id}
  • DELETE/issues/{id}
  • POSTSearch for issues by a given filter
  • POST/issues/{id}/snooze
  • GET/issues/{id}/followers
  • POSTAdd or remove followers to/from an issue. By default, adds followers. To remove followers, set the operation field to "remove".

Add or remove followers to/from an issue. By default, adds followers. To remove followers, set the operation field to "remove".

post
Authorizations
Path parameters
idstringRequired

The ID or number of the issue to add followers to.

Body
contact_idsstring[]Optional

The IDs of contacts to add as followers.

operationstringOptional

Operation to perform. Use "add" to add followers (default) or "remove" to remove followers.

user_idsstring[]Optional

The IDs of users to add as followers.

Responses
200Success
application/json
400Error
application/json
404Error
application/json
500Error
application/json
post
POST /issues/{id}/followers HTTP/1.1
Host: api.usepylon.com
Authorization: Bearer JWT
Content-Type: application/json
Accept: */*
Content-Length: 63

{
  "contact_ids": [
    "text"
  ],
  "operation": "text",
  "user_ids": [
    "text"
  ]
}
{
  "data": [
    {
      "id": "text",
      "type": "user"
    }
  ],
  "request_id": "text"
}