connector.installed

A connector was installed on a project — a pending installation with no credentials yet.

When this fires

A creator (or a token) installs a connector on a project: from the Connectors tab, through POST /v1/projects/{project}/connectors/{key} or the install_connector tool. Installing says "this project runs this connector" and opens the row the Connectors tab shows as pending; connecting, which hands the connector the creator's credentials, is a separate act and fires connector.connected. Installing a connector that is already installed changes nothing and fires nothing; bringing an uninstalled connector back fires this again, the row pending once more with its settings kept.

Required ability

project-connector:view — token must carry this at mint time to subscribe an endpoint to this event.

Payload

{
  "id": "evt_01HX...",
  "type": "connector.installed",
  "created_at": "2026-09-12T10:05:00Z",
  "api_version": "2026-05-01",
  "project_id": "7f3d1c92-8b45-4e6a-9d21-5c8e0a4b6f13",
  "data": {
    "connector": "discord",
    "installation_id": "3b8f0c6e-2d41-4a97-9e5f-1c7d6b2a8e40",
    "project_id": "7f3d1c92-8b45-4e6a-9d21-5c8e0a4b6f13",
    "state": "pending"
  }
}

Field reference

FieldTypeNotes
idstring ULIDUnique event id, prefixed evt_. Use for idempotent processing.
typestringAlways connector.installed for this event.
created_atISO 8601 timestampServer-side emission time.
api_versionstringWebhook API contract version.
project_idstring UUIDProject this event belongs to.
data.connectorstringThe connector key, as the directory lists it.
data.installation_idstring UUIDThe installation row; what the project's connector endpoints return as id.
data.project_idstring UUIDMirrors top-level project_id.
data.statestringAlways pending here: nothing is connected yet.

Caveats

  • A second distinct connector on a project needs the owner's multi_connector capability (Growth); the install is refused CONNECTOR_TIER_REQUIRED and nothing fires.
  • The first connector's bot flow connects in one step from the dashboard, so an existing project sees connector.connected without a preceding connector.installed.

How is this guide?

On this page

Subscriby is a product designed by you — for you.

No boardroom full of executives deciding what we ships next. Our roadmap always shaped by you with your feedback.

Share feedback or a request