Skip to main content
A connector definition describes an outside service: where it lives, how to sign in, which operations you can call, and how errors are handled. The platform runs every call from the definition, so there is no code to deploy. A definition with a sync block can also keep that service’s items and a Space in step. Most people never write one. Connecting a tracker uses a definition that already ships, such as the one for Shortcut. Read on if you are adding a tracker that is not offered yet.

Where definitions live

Store a definition with PUT /connector/definition on your account’s gateway, as an admin or root user. The definition is validated when you store it, and one with problems is refused with a list of them. Run GET /connector/definitions to list what your account has.

Top-level keys

Secret values never appear in a definition. A definition names a secret, such as ACME_API_TOKEN, and the account stores its value in the secrets manager.

Authentication

auth.type is one of the following.

Errors

errors.classify is an ordered list of rules. Each matches a status (a number, a list, or 4xx/5xx) and optionally a body pattern, and gives a kind such as credentials_rejected, not_found, rate_limited or server_error. retry_on lists the kinds that are retried, and failover_on the kinds that move to the next host.

Operations

Each operation is one call. Templates are a literal, a JSONPath beginning with $, or a directive object (path, const, transform). Operation inputs are on $.params, and the parsed reply is on $.body.

A small example

Making it sync

Add a sync block that names the operations to read, create and update an item, maps each field, and says how to read the tracker’s webhook. The sync block reference covers every key. A definition that ships with the platform adds a setup package: a manifest that tells the Connect wizard which secrets to ask for, which choices to offer and which status, owner and priority maps to show. The help text in the manifest is what the wizard displays.
Escape hatches that run JavaScript, the eval field rule and sync.extensions, are refused in a definition you store yourself. They are available only to definitions that ship with the platform.

Where to go next

The sync block

Field rules, event normalisation, outcomes and reasons.

Connect a tracker

What people see when they connect one.