Skip to main content

Overview

The Attio SDK has migrated from individual type imports to a unified App namespace system. This provides better organization, improved autocomplete, and clearer API structure.

What changed

Before: Individual type imports

import type {
  RecordAction,
  BulkRecordAction,
  RecordWidget,
  CallRecordingInsightTextSelectionAction,
} from "attio/client"

After: App Namespace

import type {App} from "attio"

// Types are now accessed as:
// App.Record.Action
// App.Record.BulkAction
// App.Record.Widget
// App.CallRecording.Insight.TextAction

Migration steps

1

Update your imports

Replace individual type imports with the App namespace import:

Before:

import type {RecordAction} from "attio/client"

After:

import type {App} from "attio"
2

Replace your types

Replace individual types with the corresponding type under the App namespace:

Before:

export const myAction: RecordAction = {
  id: "send-invoice",
  label: "Send Invoice",
  icon: "Mail",
  onTrigger: async ({recordId}) => {
    // your logic
  },
}

After:

export const myAction: App.Record.Action = {
  id: "send-invoice",
  label: "Send Invoice",
  icon: "Mail",
  onTrigger: async ({recordId}) => {
    // your logic
  },
}

Complete type mapping reference

Old TypeNew Type
RecordActionApp.Record.Action
BulkRecordActionApp.Record.BulkAction
RecordWidgetApp.Record.Widget
CallRecordingInsightTextSelectionActionApp.CallRecording.Insight.TextAction
CallRecordingSummaryTextSelectionActionApp.CallRecording.Summary.TextAction
CallRecordingTranscriptTextSelectionActionApp.CallRecording.Transcript.TextAction
I