Creating Plot Twists
    Preparing search index...

    Type Alias ResolvedRecipient

    A Plot contact pre-resolved to its platform account ID, ready for use in a messaging dispatch.

    Populated by the runtime for link types with compose.targets: "contacts" before onCreateLink is called. The connector should use externalAccountId directly to address the recipient on the platform (e.g. Slack user ID, LinkedIn URN, Gmail address) without performing its own contact lookup.

    type ResolvedRecipient = {
        id: Uuid;
        name: string | null;
        externalAccountId: string;
        role: string | null;
    }
    Index

    Properties

    id: Uuid

    Plot contact UUID

    name: string | null

    Display name, or null if not set

    externalAccountId: string

    Platform-specific account identifier pre-resolved at dispatch time (e.g. Slack U…, LinkedIn URN, Gmail email address)

    role: string | null

    The contact's role on the originating thread, resolved from thread.contact_meta against the link type's contactRoles (e.g. "to" / "cc" / "bcc" for Gmail). null when the contact had no explicit role entry — connectors should treat null as the link type's default role (the contactRoles entry marked default: true).

    Connectors that distinguish roles MUST honor this when addressing the recipient — e.g. Gmail must place "cc"/"bcc" recipients in the Cc/Bcc headers, never the To header, so BCC recipients are not exposed to the other recipients. Connectors that don't distinguish roles (Slack, Linear) can ignore it.