Creating Plot Twists
    Preparing search index...

    Type Alias Channel

    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.

    type Channel = {
        id: string;
        title: string;
        enabledByDefault?: boolean;
        children?: Channel[];
        linkTypes?: LinkTypeConfig[];
    }
    Index

    Properties

    id: string

    External ID shared across users (e.g., Google calendar ID)

    title: string

    Display name shown in the UI

    enabledByDefault?: boolean

    Whether 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, a GitHub org that cascades to every repo, 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 accessRole === "owner").

    children?: Channel[]

    Optional nested channel resources (e.g., subfolders)

    linkTypes?: LinkTypeConfig[]

    Per-channel link type configs. Overrides twist-level linkTypes when present.