External web link that opens in browser
Display text for the action button
URL to open when clicked
Video conferencing action with provider-specific handling
URL to join the conference
Conferencing provider for UI customization
File attachment action stored in R2
Unique identifier for the stored file
Original filename
File size in bytes
MIME type of the file
OptionalimageWidth?: number | nullIntrinsic width of the image in pixels (only for image files)
OptionalimageHeight?: number | nullIntrinsic height of the image in pixels (only for image files)
Structured plan of operations for user approval
Human-readable summary of the plan
Operations to execute on approval
Callback invoked with (action, approved: boolean)
// External action - opens URL in browser
const externalAction: Action = {
type: ActionType.external,
title: "Open in Google Calendar",
url: "https://calendar.google.com/event/123",
};
// Conferencing action - opens video conference with provider info
const conferencingAction: Action = {
type: ActionType.conferencing,
url: "https://meet.google.com/abc-defg-hij",
provider: ConferencingProvider.googleMeet,
};
// Integrations action - initiates OAuth flow
const authAction: Action = {
type: ActionType.auth,
title: "Continue with Google",
provider: AuthProvider.Google,
scopes: ["https://www.googleapis.com/auth/calendar.readonly"],
callback: "callback-token-for-auth-completion"
};
// Callback action - triggers a twist method
const callbackAction: Action = {
type: ActionType.callback,
title: "📅 Primary Calendar",
token: "callback-token-here"
};
Represents a clickable action attached to a thread.
Thread actions are rendered as buttons that enable user interaction with threads. Different action types have specific behaviors and required fields for proper functionality.