Pylon Trigger

Pylon Trigger

Certified

Trigger a flow on new or updated Pylon issues

Polls GET /issues at the configured interval and fires one execution per poll carrying the issues whose updated_at is newer than the last delivered watermark, oldest first and up to maxIssuesPerExecution per execution, so no issue is re-delivered. The watermark is persisted in the flow's namespace KV store, keyed by flow and trigger ID. On first activation, only the current baseline is recorded (seeded to now - lookbackPeriod) — no execution fires — to avoid replaying the entire backlog. Equal updated_at timestamps are compared strictly (>), and issues sharing the newest updated_at are tracked individually so a same-instant tie is neither skipped nor re-fired.

Assumption: Pylon's GET /issues time-range filter is not documented as filtering on a specific timestamp field; this trigger assumes it is (or includes) updated_at, since that is the only interpretation useful for detecting updates, not just creations.

yaml
type: io.kestra.plugin.pylon.issue.Trigger

React to new or updated Pylon issues with a polling trigger

yaml
id: on_new_pylon_issue
namespace: company.team

triggers:
  - id: new_issue
    type: io.kestra.plugin.pylon.issue.Trigger
    apiToken: "{{ secret('PYLON_API_TOKEN') }}"
    interval: PT1M

tasks:
  - id: log_new_issues
    type: io.kestra.plugin.core.log.Log
    message: "Found {{ trigger.count }} new/updated Pylon issue(s)"
Properties

Pylon API token

API token created by a Pylon Admin user (Pylon Settings > API), sent as Authorization: Bearer <token> on every request. Store it as a Kestra secret and reference it with {{ secret('PYLON_API_TOKEN') }} — never hardcode it in a flow.

Defaultfalse

Specifies whether a trigger is allowed to start a new execution even if a previous run is still in progress.

Defaulthttps://api.usepylon.com

Pylon API base URL

Base URL of the Pylon API. Defaults to the US region (https://api.usepylon.com); override with https://api.eu.usepylon.com for the EU region.

DefaultPT1M
Formatduration

Polling interval

How often to poll the Pylon API for new or updated issues. Defaults to PT1M (every minute).

Default100

Maximum issues fetched per poll

Caps the limit query parameter sent to Pylon for each page of /issues. Must be between 1 and 20000. Defaults to 100.

DefaultPT0S

Lookback period

How far before the trigger's first activation to look for issues, so enabling the trigger does not miss issues updated just before it was enabled. Defaults to PT0S (only issues updated from the moment the trigger is enabled).

Default1000

Maximum issues delivered per execution

Caps how many issues a single fired execution carries, so a burst of updates (a long trigger downtime, a bulk edit in Pylon) cannot produce an oversized execution payload. The oldest issues are delivered first; the remainder stays behind the watermark and is delivered by the following poll(s). Defaults to 1000.

SubTypestring
Possible Values
CREATEDSUBMITTEDRUNNINGPAUSEDRESTARTEDKILLINGSUCCESSWARNINGFAILEDKILLEDCANCELLEDQUEUEDRETRYINGRETRIEDSKIPPEDBREAKPOINTRESUBMITTED

List of execution states after which a trigger should be stopped (a.k.a. disabled).

Defaulttrue

A condition that determines whether the trigger should run.

A Pebble expression evaluated at trigger time. The trigger fires only when the expression evaluates to a truthy value (true, a non-empty string, a non-zero number). Use this to gate trigger execution on dynamic runtime values such as execution labels, flow variables, or environment conditions.

Count

Number of issues in issues.

SubTypeobject

Issues

Every Pylon issue newly created or updated since the last poll.