orangeslice 2.1.4-beta.2 → 2.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/dist/cli.js +3 -5
  2. package/dist/ctx.d.ts +12 -7
  3. package/dist/ctx.js +6 -46
  4. package/dist/index.d.ts +1 -20
  5. package/dist/index.js +0 -2
  6. package/docs/integrations/attio/assertEntry.md +44 -0
  7. package/docs/integrations/attio/assertRecord.md +51 -0
  8. package/docs/integrations/attio/createAttribute.md +59 -0
  9. package/docs/integrations/attio/createComment.md +60 -0
  10. package/docs/integrations/attio/createEntry.md +44 -0
  11. package/docs/integrations/attio/createFolder.md +58 -0
  12. package/docs/integrations/attio/createList.md +51 -0
  13. package/docs/integrations/attio/createNote.md +47 -0
  14. package/docs/integrations/attio/createObject.md +39 -0
  15. package/docs/integrations/attio/createRecord.md +49 -0
  16. package/docs/integrations/attio/createSelectOption.md +37 -0
  17. package/docs/integrations/attio/createStatus.md +45 -0
  18. package/docs/integrations/attio/createTask.md +58 -0
  19. package/docs/integrations/attio/createWebhook.md +43 -0
  20. package/docs/integrations/attio/deleteComment.md +21 -0
  21. package/docs/integrations/attio/deleteEntry.md +23 -0
  22. package/docs/integrations/attio/deleteFile.md +21 -0
  23. package/docs/integrations/attio/deleteNote.md +21 -0
  24. package/docs/integrations/attio/deleteRecord.md +23 -0
  25. package/docs/integrations/attio/deleteTask.md +21 -0
  26. package/docs/integrations/attio/deleteWebhook.md +19 -0
  27. package/docs/integrations/attio/getAttribute.md +39 -0
  28. package/docs/integrations/attio/getCallRecording.md +33 -0
  29. package/docs/integrations/attio/getCallTranscript.md +38 -0
  30. package/docs/integrations/attio/getComment.md +31 -0
  31. package/docs/integrations/attio/getEntry.md +33 -0
  32. package/docs/integrations/attio/getFile.md +36 -0
  33. package/docs/integrations/attio/getList.md +33 -0
  34. package/docs/integrations/attio/getMeeting.md +39 -0
  35. package/docs/integrations/attio/getNote.md +33 -0
  36. package/docs/integrations/attio/getObject.md +31 -0
  37. package/docs/integrations/attio/getRecord.md +32 -0
  38. package/docs/integrations/attio/getSelf.md +27 -0
  39. package/docs/integrations/attio/getTask.md +34 -0
  40. package/docs/integrations/attio/getThread.md +36 -0
  41. package/docs/integrations/attio/getWebhook.md +31 -0
  42. package/docs/integrations/attio/getWorkspaceMember.md +32 -0
  43. package/docs/integrations/attio/index.md +122 -0
  44. package/docs/integrations/attio/listAttributes.md +38 -0
  45. package/docs/integrations/attio/listCallRecordings.md +35 -0
  46. package/docs/integrations/attio/listEntries.md +44 -0
  47. package/docs/integrations/attio/listEntryAttributeValues.md +36 -0
  48. package/docs/integrations/attio/listFiles.md +51 -0
  49. package/docs/integrations/attio/listLists.md +28 -0
  50. package/docs/integrations/attio/listMeetings.md +63 -0
  51. package/docs/integrations/attio/listNotes.md +39 -0
  52. package/docs/integrations/attio/listObjects.md +26 -0
  53. package/docs/integrations/attio/listRecordAttributeValues.md +35 -0
  54. package/docs/integrations/attio/listRecordEntries.md +37 -0
  55. package/docs/integrations/attio/listRecords.md +55 -0
  56. package/docs/integrations/attio/listSelectOptions.md +35 -0
  57. package/docs/integrations/attio/listStatuses.md +37 -0
  58. package/docs/integrations/attio/listTasks.md +45 -0
  59. package/docs/integrations/attio/listThreads.md +51 -0
  60. package/docs/integrations/attio/listWebhooks.md +31 -0
  61. package/docs/integrations/attio/listWorkspaceMembers.md +27 -0
  62. package/docs/integrations/attio/overwriteEntry.md +42 -0
  63. package/docs/integrations/attio/overwriteRecord.md +41 -0
  64. package/docs/integrations/attio/searchRecords.md +40 -0
  65. package/docs/integrations/attio/updateAttribute.md +53 -0
  66. package/docs/integrations/attio/updateEntry.md +42 -0
  67. package/docs/integrations/attio/updateList.md +49 -0
  68. package/docs/integrations/attio/updateObject.md +40 -0
  69. package/docs/integrations/attio/updateRecord.md +41 -0
  70. package/docs/integrations/attio/updateSelectOption.md +40 -0
  71. package/docs/integrations/attio/updateStatus.md +47 -0
  72. package/docs/integrations/attio/updateTask.md +57 -0
  73. package/docs/integrations/attio/updateWebhook.md +41 -0
  74. package/docs/integrations/index.md +42 -0
  75. package/docs/services/ctx/index.md +10 -9
  76. package/docs/services/index.md +0 -1
  77. package/package.json +1 -1
@@ -0,0 +1,33 @@
1
+ # getNote
2
+
3
+ Get a note by ID.
4
+
5
+ ```typescript
6
+ const result = await integrations.attio.getNote({
7
+ note_id: "note_01abc123def456",
8
+ });
9
+ ```
10
+
11
+ ## Input
12
+
13
+ ```typescript
14
+ {
15
+ note_id: string;
16
+ }
17
+ ```
18
+
19
+ ## Output
20
+
21
+ ```typescript
22
+ {
23
+ data: {
24
+ id: { note_id: string };
25
+ parent_object: string;
26
+ parent_record_id: string;
27
+ title: string;
28
+ content_plaintext: string;
29
+ created_at: string;
30
+ created_by_actor: { type: string; id: string | null };
31
+ };
32
+ }
33
+ ```
@@ -0,0 +1,31 @@
1
+ # getObject
2
+
3
+ Get an object's metadata and schema.
4
+
5
+ ```typescript
6
+ const result = await integrations.attio.getObject({
7
+ object: "people",
8
+ });
9
+ ```
10
+
11
+ ## Input
12
+
13
+ ```typescript
14
+ {
15
+ object: string;
16
+ }
17
+ ```
18
+
19
+ ## Output
20
+
21
+ ```typescript
22
+ {
23
+ data: {
24
+ id: { object_id: string };
25
+ api_slug: string;
26
+ singular_noun: string;
27
+ plural_noun: string;
28
+ created_at: string;
29
+ };
30
+ }
31
+ ```
@@ -0,0 +1,32 @@
1
+ # getRecord
2
+
3
+ Get a single record by ID.
4
+
5
+ ```typescript
6
+ const result = await integrations.attio.getRecord({
7
+ object: "people",
8
+ record_id: "rec_01abc123def456",
9
+ });
10
+ ```
11
+
12
+ ## Input
13
+
14
+ ```typescript
15
+ {
16
+ object: string;
17
+ record_id: string;
18
+ }
19
+ ```
20
+
21
+ ## Output
22
+
23
+ ```typescript
24
+ {
25
+ data: {
26
+ id: { workspace_id: string; object_id: string; record_id: string };
27
+ created_at: string;
28
+ web_url: string;
29
+ values: Record<string, Array<{ active_from?: string; active_until?: string | null; attribute_type?: string; [key: string]: any }>>;
30
+ };
31
+ }
32
+ ```
@@ -0,0 +1,27 @@
1
+ # getSelf
2
+
3
+ Identify the current access token, workspace, and permissions.
4
+
5
+ ```typescript
6
+ const result = await integrations.attio.getSelf();
7
+ ```
8
+
9
+ ## Input
10
+
11
+ No input required.
12
+
13
+ ## Output
14
+
15
+ ```typescript
16
+ {
17
+ active: boolean;
18
+ scope?: string;
19
+ client_id?: string;
20
+ token_type?: string;
21
+ workspace_id?: string;
22
+ workspace_name?: string;
23
+ workspace_slug?: string;
24
+ workspace_logo_url?: string | null;
25
+ authorized_by_workspace_member_id?: string;
26
+ }
27
+ ```
@@ -0,0 +1,34 @@
1
+ # getTask
2
+
3
+ Get a task by ID.
4
+
5
+ ```typescript
6
+ const result = await integrations.attio.getTask({
7
+ task_id: "task_01abc123def456",
8
+ });
9
+ ```
10
+
11
+ ## Input
12
+
13
+ ```typescript
14
+ {
15
+ task_id: string;
16
+ }
17
+ ```
18
+
19
+ ## Output
20
+
21
+ ```typescript
22
+ {
23
+ data: {
24
+ id: { task_id: string };
25
+ content_plaintext: string;
26
+ is_completed: boolean;
27
+ deadline_at: string | null;
28
+ created_at: string;
29
+ created_by_actor: { type: string; id: string | null };
30
+ assignees: Array<{ type: string; id: string | null }>;
31
+ linked_records: Array<{ target_object: string; target_record_id: string }>;
32
+ };
33
+ }
34
+ ```
@@ -0,0 +1,36 @@
1
+ # getThread
2
+
3
+ Get a thread with all its comments.
4
+
5
+ ```typescript
6
+ const result = await integrations.attio.getThread({
7
+ thread_id: "thr_01abc123def456",
8
+ });
9
+ ```
10
+
11
+ ## Input
12
+
13
+ ```typescript
14
+ {
15
+ thread_id: string;
16
+ }
17
+ ```
18
+
19
+ ## Output
20
+
21
+ ```typescript
22
+ {
23
+ data: {
24
+ id: { thread_id: string };
25
+ record_id?: string;
26
+ entry_id?: string;
27
+ comments: Array<{
28
+ id: { comment_id: string };
29
+ thread_id: string;
30
+ content_plaintext: string;
31
+ created_at: string;
32
+ author: { type: string; id: string | null };
33
+ }>;
34
+ };
35
+ }
36
+ ```
@@ -0,0 +1,31 @@
1
+ # getWebhook
2
+
3
+ Get a webhook by ID.
4
+
5
+ ```typescript
6
+ const result = await integrations.attio.getWebhook({
7
+ webhook_id: "wh_01abc234def567",
8
+ });
9
+ ```
10
+
11
+ ## Input
12
+
13
+ ```typescript
14
+ {
15
+ webhook_id: string;
16
+ }
17
+ ```
18
+
19
+ ## Output
20
+
21
+ ```typescript
22
+ {
23
+ data: {
24
+ id: { webhook_id: string };
25
+ target_url: string;
26
+ subscriptions: Array<{ event_type: string; filter: Record<string, any> | null }>;
27
+ status: string;
28
+ created_at: string;
29
+ };
30
+ }
31
+ ```
@@ -0,0 +1,32 @@
1
+ # getWorkspaceMember
2
+
3
+ Get a workspace member by ID.
4
+
5
+ ```typescript
6
+ const result = await integrations.attio.getWorkspaceMember({
7
+ workspace_member_id: "wsm_01abc234def567",
8
+ });
9
+ ```
10
+
11
+ ## Input
12
+
13
+ ```typescript
14
+ {
15
+ workspace_member_id: string;
16
+ }
17
+ ```
18
+
19
+ ## Output
20
+
21
+ ```typescript
22
+ {
23
+ data: {
24
+ id: { workspace_member_id: string };
25
+ first_name: string;
26
+ last_name: string;
27
+ avatar_url: string | null;
28
+ email_address: string;
29
+ created_at: string;
30
+ };
31
+ }
32
+ ```
@@ -0,0 +1,122 @@
1
+ ---
2
+ description: Attio CRM - records, lists, notes, tasks, webhooks
3
+ ---
4
+
5
+ # Attio Integration
6
+
7
+ Typed functions for Attio CRM operations. All methods use the Attio REST API v2.
8
+
9
+ ## Records (People, Companies, Deals, Custom Objects)
10
+
11
+ - `integrations.attio.listRecords(input)` - List/query records with filters and sorting
12
+ - `integrations.attio.getRecord(input)` - Get a record by ID
13
+ - `integrations.attio.createRecord(input)` - Create a new record
14
+ - `integrations.attio.assertRecord(input)` - Create or update by matching attribute (upsert)
15
+ - `integrations.attio.updateRecord(input)` - Update a record (append multiselect values)
16
+ - `integrations.attio.overwriteRecord(input)` - Update a record (overwrite multiselect values)
17
+ - `integrations.attio.deleteRecord(input)` - Delete a record
18
+ - `integrations.attio.searchRecords(input)` - Fuzzy search across records
19
+ - `integrations.attio.listRecordAttributeValues(input)` - Get all values for an attribute on a record (supports historic)
20
+ - `integrations.attio.listRecordEntries(input)` - List all list entries for a record
21
+
22
+ ## Objects
23
+
24
+ - `integrations.attio.listObjects()` - List all objects in workspace
25
+ - `integrations.attio.getObject(input)` - Get object metadata/schema
26
+ - `integrations.attio.createObject(input)` - Create a custom object
27
+ - `integrations.attio.updateObject(input)` - Update an object
28
+
29
+ ## Lists
30
+
31
+ - `integrations.attio.listLists()` - List all lists
32
+ - `integrations.attio.getList(input)` - Get a list by ID
33
+ - `integrations.attio.createList(input)` - Create a new list
34
+ - `integrations.attio.updateList(input)` - Update a list
35
+
36
+ ## List Entries
37
+
38
+ - `integrations.attio.listEntries(input)` - List entries in a list
39
+ - `integrations.attio.getEntry(input)` - Get a list entry
40
+ - `integrations.attio.createEntry(input)` - Add a record to a list
41
+ - `integrations.attio.assertEntry(input)` - Upsert an entry by parent record
42
+ - `integrations.attio.updateEntry(input)` - Update a list entry (append multiselect values)
43
+ - `integrations.attio.overwriteEntry(input)` - Update a list entry (overwrite multiselect values)
44
+ - `integrations.attio.deleteEntry(input)` - Delete a list entry
45
+ - `integrations.attio.listEntryAttributeValues(input)` - Get all values for an attribute on an entry (supports historic)
46
+
47
+ ## Notes
48
+
49
+ - `integrations.attio.listNotes(input?)` - List notes
50
+ - `integrations.attio.getNote(input)` - Get a note by ID
51
+ - `integrations.attio.createNote(input)` - Create a note on a record
52
+ - `integrations.attio.deleteNote(input)` - Delete a note
53
+
54
+ ## Tasks
55
+
56
+ - `integrations.attio.listTasks(input?)` - List all tasks
57
+ - `integrations.attio.getTask(input)` - Get a task by ID
58
+ - `integrations.attio.createTask(input)` - Create a task
59
+ - `integrations.attio.updateTask(input)` - Update a task
60
+ - `integrations.attio.deleteTask(input)` - Delete a task
61
+
62
+ ## Attributes
63
+
64
+ - `integrations.attio.listAttributes(input)` - List attributes on an object or list
65
+ - `integrations.attio.getAttribute(input)` - Get a single attribute
66
+ - `integrations.attio.createAttribute(input)` - Create an attribute on an object or list
67
+ - `integrations.attio.updateAttribute(input)` - Update an attribute
68
+
69
+ ## Select Options
70
+
71
+ - `integrations.attio.listSelectOptions(input)` - List select options for an attribute
72
+ - `integrations.attio.createSelectOption(input)` - Add a select option to an attribute
73
+ - `integrations.attio.updateSelectOption(input)` - Update a select option
74
+
75
+ ## Statuses
76
+
77
+ - `integrations.attio.listStatuses(input)` - List statuses for a status attribute
78
+ - `integrations.attio.createStatus(input)` - Add a status to a status attribute
79
+ - `integrations.attio.updateStatus(input)` - Update a status
80
+
81
+ ## Webhooks
82
+
83
+ - `integrations.attio.listWebhooks(input?)` - List all webhooks
84
+ - `integrations.attio.getWebhook(input)` - Get a webhook by ID
85
+ - `integrations.attio.createWebhook(input)` - Create a webhook
86
+ - `integrations.attio.updateWebhook(input)` - Update a webhook
87
+ - `integrations.attio.deleteWebhook(input)` - Delete a webhook
88
+
89
+ ## Workspace Members
90
+
91
+ - `integrations.attio.listWorkspaceMembers()` - List workspace members
92
+ - `integrations.attio.getWorkspaceMember(input)` - Get a workspace member by ID
93
+
94
+ ## Comments & Threads
95
+
96
+ - `integrations.attio.createComment(input)` - Create a comment
97
+ - `integrations.attio.getComment(input)` - Get a comment by ID
98
+ - `integrations.attio.deleteComment(input)` - Delete a comment
99
+ - `integrations.attio.listThreads(input)` - List comment threads
100
+ - `integrations.attio.getThread(input)` - Get a thread with comments
101
+
102
+ ## Meetings
103
+
104
+ - `integrations.attio.listMeetings(input?)` - List meetings with filters (linked records, participants, date range)
105
+ - `integrations.attio.getMeeting(input)` - Get a meeting by ID
106
+
107
+ ## Call Recordings & Transcripts
108
+
109
+ - `integrations.attio.listCallRecordings(input)` - List call recordings for a meeting
110
+ - `integrations.attio.getCallRecording(input)` - Get a call recording by ID
111
+ - `integrations.attio.getCallTranscript(input)` - Get the transcript for a call recording
112
+
113
+ ## Files
114
+
115
+ - `integrations.attio.listFiles(input)` - List files and folders for a record (requires object + record_id)
116
+ - `integrations.attio.getFile(input)` - Get a file by ID
117
+ - `integrations.attio.createFolder(input)` - Create a folder on a record
118
+ - `integrations.attio.deleteFile(input)` - Delete a file or folder
119
+
120
+ ## Meta
121
+
122
+ - `integrations.attio.getSelf()` - Identify current access token, workspace, and permissions
@@ -0,0 +1,38 @@
1
+ # listAttributes
2
+
3
+ List attributes on an object or list. Pass either `object` or `list` to specify the target.
4
+
5
+ ```typescript
6
+ const result = await integrations.attio.listAttributes({ object: "companies", limit: 50 });
7
+ ```
8
+
9
+ ## Input
10
+
11
+ ```typescript
12
+ {
13
+ object?: string;
14
+ list?: string;
15
+ limit?: number;
16
+ offset?: number;
17
+ show_archived?: boolean;
18
+ }
19
+ ```
20
+
21
+ ## Output
22
+
23
+ ```typescript
24
+ {
25
+ data: Array<{
26
+ id: { attribute_id: string; object_id?: string; list_id?: string };
27
+ title: string;
28
+ api_slug: string;
29
+ type: string;
30
+ is_required: boolean;
31
+ is_unique: boolean;
32
+ is_multiselect: boolean;
33
+ is_writable: boolean;
34
+ created_at: string;
35
+ }>;
36
+ next_cursor?: string | null;
37
+ }
38
+ ```
@@ -0,0 +1,35 @@
1
+ # listCallRecordings
2
+
3
+ List call recordings for a meeting.
4
+
5
+ ```typescript
6
+ const result = await integrations.attio.listCallRecordings({
7
+ meeting_id: "mtg_01abc123def456",
8
+ limit: 10,
9
+ });
10
+ ```
11
+
12
+ ## Input
13
+
14
+ ```typescript
15
+ {
16
+ meeting_id: string;
17
+ limit?: number;
18
+ cursor?: string;
19
+ }
20
+ ```
21
+
22
+ ## Output
23
+
24
+ ```typescript
25
+ {
26
+ data: Array<{
27
+ id: { workspace_id: string; meeting_id: string; call_recording_id: string };
28
+ status: "processing" | "completed" | "failed";
29
+ web_url: string;
30
+ created_by_actor: { type: string; id: string | null };
31
+ created_at: string;
32
+ }>;
33
+ next_cursor?: string | null;
34
+ }
35
+ ```
@@ -0,0 +1,44 @@
1
+ # listEntries
2
+
3
+ List entries in a list with filters and sorting.
4
+
5
+ ```typescript
6
+ // Filter and sort attribute slugs depend on your list's configuration
7
+ const result = await integrations.attio.listEntries({
8
+ list_id: "list_01abc123def456",
9
+ limit: 25,
10
+ offset: 0,
11
+ sorts: [{ attribute: "created_at", direction: "desc" }],
12
+ });
13
+ ```
14
+
15
+ ## Input
16
+
17
+ ```typescript
18
+ {
19
+ list_id: string;
20
+ limit?: number;
21
+ offset?: number;
22
+ filter?: Record<string, any>;
23
+ sorts?: Array<{
24
+ attribute: string;
25
+ field?: string;
26
+ direction: "asc" | "desc";
27
+ }>;
28
+ }
29
+ ```
30
+
31
+ ## Output
32
+
33
+ ```typescript
34
+ {
35
+ data: Array<{
36
+ id: { workspace_id: string; entry_id: string; list_id: string };
37
+ parent_record_id: string;
38
+ parent_object: string;
39
+ created_at: string;
40
+ entry_values: Record<string, Array<{ active_from?: string; active_until?: string | null; attribute_type?: string; [key: string]: any }>>;
41
+ }>;
42
+ next_cursor?: string | null;
43
+ }
44
+ ```
@@ -0,0 +1,36 @@
1
+ # listEntryAttributeValues
2
+
3
+ Get all values (including historic) for a specific attribute on a list entry.
4
+
5
+ ```typescript
6
+ // The attribute slug depends on your list's configuration
7
+ const result = await integrations.attio.listEntryAttributeValues({
8
+ list_id: "list_01abc123def456",
9
+ entry_id: "entry_01xyz789ghi012",
10
+ attribute: "stage", // use your list's attribute api_slug
11
+ show_historic: true,
12
+ limit: 50,
13
+ });
14
+ ```
15
+
16
+ ## Input
17
+
18
+ ```typescript
19
+ {
20
+ list_id: string;
21
+ entry_id: string;
22
+ attribute: string;
23
+ show_historic?: boolean;
24
+ limit?: number;
25
+ offset?: number;
26
+ }
27
+ ```
28
+
29
+ ## Output
30
+
31
+ ```typescript
32
+ {
33
+ data: Array<any>;
34
+ next_cursor?: string | null;
35
+ }
36
+ ```
@@ -0,0 +1,51 @@
1
+ # listFiles
2
+
3
+ List files and folders for a record. Both `object` and `record_id` are required.
4
+
5
+ ```typescript
6
+ const result = await integrations.attio.listFiles({
7
+ object: "companies",
8
+ record_id: "rec_01abc123def456",
9
+ limit: 20,
10
+ });
11
+
12
+ // List files in a specific folder
13
+ const nested = await integrations.attio.listFiles({
14
+ object: "companies",
15
+ record_id: "rec_01abc123def456",
16
+ parent_folder_id: "fil_01xyz789ghi012",
17
+ });
18
+ ```
19
+
20
+ ## Input
21
+
22
+ ```typescript
23
+ {
24
+ object: string;
25
+ record_id: string;
26
+ parent_folder_id?: string;
27
+ storage_provider?: string;
28
+ limit?: number;
29
+ cursor?: string;
30
+ }
31
+ ```
32
+
33
+ ## Output
34
+
35
+ ```typescript
36
+ {
37
+ data: Array<{
38
+ id: { file_id: string };
39
+ name: string;
40
+ type: "file" | "folder";
41
+ mime_type: string | null;
42
+ size: number | null;
43
+ parent_folder_id: string | null;
44
+ record_id: string;
45
+ object_id: string;
46
+ storage_provider: string;
47
+ created_at: string;
48
+ }>;
49
+ next_cursor?: string | null;
50
+ }
51
+ ```
@@ -0,0 +1,28 @@
1
+ # listLists
2
+
3
+ List all lists in the workspace.
4
+
5
+ ```typescript
6
+ const result = await integrations.attio.listLists();
7
+ ```
8
+
9
+ ## Input
10
+
11
+ No input parameters.
12
+
13
+ ## Output
14
+
15
+ ```typescript
16
+ {
17
+ data: Array<{
18
+ id: { list_id: string; workspace_id: string };
19
+ api_slug: string;
20
+ name: string;
21
+ parent_object: string[];
22
+ workspace_access: string;
23
+ created_by_actor: { type: string; id: string | null };
24
+ created_at: string;
25
+ }>;
26
+ next_cursor?: string | null;
27
+ }
28
+ ```
@@ -0,0 +1,63 @@
1
+ # listMeetings
2
+
3
+ List meetings with filters (linked records, participants, date range).
4
+
5
+ ```typescript
6
+ // List upcoming meetings
7
+ const result = await integrations.attio.listMeetings({
8
+ sort: "start_asc",
9
+ ends_from: "2025-03-01T00:00:00Z",
10
+ limit: 25,
11
+ });
12
+
13
+ // Filter by linked record
14
+ const companyMeetings = await integrations.attio.listMeetings({
15
+ linked_object: "companies",
16
+ linked_record_id: "rec_01abc123def456",
17
+ sort: "start_desc",
18
+ });
19
+
20
+ // Filter by participant
21
+ const myMeetings = await integrations.attio.listMeetings({
22
+ participants: "alice@example.com",
23
+ });
24
+ ```
25
+
26
+ ## Input
27
+
28
+ ```typescript
29
+ {
30
+ limit?: number;
31
+ cursor?: string;
32
+ linked_object?: string;
33
+ linked_record_id?: string;
34
+ participants?: string;
35
+ sort?: "start_asc" | "start_desc";
36
+ ends_from?: string;
37
+ starts_before?: string;
38
+ timezone?: string;
39
+ }
40
+ ```
41
+
42
+ ## Output
43
+
44
+ ```typescript
45
+ {
46
+ data: Array<{
47
+ id: { workspace_id: string; meeting_id: string };
48
+ title: string | null;
49
+ description: string | null;
50
+ is_all_day: boolean;
51
+ start: { datetime?: string; date?: string; timezone?: string | null };
52
+ end: { datetime?: string; date?: string; timezone?: string | null };
53
+ participants: Array<{
54
+ status: "accepted" | "tentative" | "declined" | "pending";
55
+ is_organizer: boolean;
56
+ email_address: string | null;
57
+ }>;
58
+ linked_records: Array<{ object_slug: string; object_id: string; record_id: string }>;
59
+ created_at: string;
60
+ }>;
61
+ next_cursor?: string | null;
62
+ }
63
+ ```