External ID shared across users (e.g., Google calendar ID)
Display name shown in the UI
OptionalenabledWhether this channel should be selected by default when the user first adds the connection. Tri-state:
true — pre-select it (e.g. the user's own/primary calendar).false — exclude it from the default selection (low-value or
irrelevant resources that would crowd the user's view, or containers
whose contents are too broad to sync wholesale — e.g. a holiday or
someone-else's shared calendar, or a Microsoft Teams team container).
The user can still enable it manually.undefined — no opinion; the client decides. The client defaults to
enabling the channel unless its title looks low-value (holidays,
birthdays, spam/sent/draft, …).The guiding principle is "sync everything the user would reasonably want
by default" — for most connectors that's all channels, so only set this
where the connector can distinguish the user's own/relevant channels from
low-value ones (e.g. Google Calendar via its primary flag). Prefer an
explicit "is this the user's own resource" signal over an ACL/permission
tier — a high permission level (e.g. "owner"-tier sharing) can be granted
on someone else's resource too, so it does not reliably mean "mine".
OptionalchildrenOptional nested channel resources (e.g., subfolders)
OptionallinkPer-channel link type configs. Overrides twist-level linkTypes when present.
A resource that can be synced (e.g., a calendar, project, channel). Returned by getChannels() and managed by users in the twist setup/edit modal.