External System
Definition
Any third-party tracker (Jira, Linear, GitHub, or a custom system) that creates or closes Shrubbery rows via the API. External System is also the value of the external_system column on a Shrubbery row, identifying which tracker the row originated from.
Avoid: integration, source system, third-party (use "external system" uniformly).
Role
External systems connect to Shrubbery through two endpoints: the Inbox API (create a Draft) and the Sync API (push a status update). They authenticate via an API Token minted by the Lead.
Every row created via URL Drop or the Inbox API stores two fields: external_system (e.g. jira, linear, github) and external_id (the tracker's native issue or task ID). These two fields, combined with assigner_id, form a composite uniqueness constraint that makes both the Inbox API and URL Drop idempotent: the same external issue can only produce one Shrubbery per Lead, regardless of how many times the webhook fires.
The Sync API uses (external_system, external_id) to resolve the target row without needing to know the internal Shrubbery UUID.
Lifecycle
Not a stateful concept. External System describes a relationship between a tracker and a Shrubbery row, not an entity with transitions.
Related guides
Last updated: 22 June 2026