Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
4ac4134
fix(integrations): validate and harden jira, jsm, ashby, google drive…
waleedlatif1 Apr 29, 2026
b16bd35
fix(ashby): add subblock migrations for removed expand form definitio…
waleedlatif1 Apr 29, 2026
660fc69
fix(slack): restore canvas_id fallback to data.id for backwards compat
waleedlatif1 Apr 29, 2026
02fca0e
fix(jsm): explicit 400 when deprecated `emails` param is sent
waleedlatif1 Apr 29, 2026
e44e841
fix(google_drive): include HTTP status in fallback error messages
waleedlatif1 Apr 29, 2026
68e9fac
fix(ashby): drop stray websiteUrl→website remap for update_candidate
waleedlatif1 Apr 29, 2026
8420066
fix(google_drive): rename canonical params to avoid subBlock ID clash
waleedlatif1 Apr 29, 2026
5ab87a9
fix(ashby): remove filterCandidateId from removed-subblock migrations
waleedlatif1 Apr 29, 2026
3af7dec
fix(ashby): restore documented response fields dropped during refactor
waleedlatif1 Apr 29, 2026
85b36be
correctness
waleedlatif1 Apr 29, 2026
9bb00f4
updated types
waleedlatif1 Apr 29, 2026
3072823
fix(ashby): gate operation-specific param mappings to prevent stale o…
waleedlatif1 Apr 30, 2026
89f6f0e
fix(ashby): gate offerApplicationId mapping by operation
waleedlatif1 Apr 30, 2026
1c25b0f
fix(ashby): include list_locations in includeArchived condition
waleedlatif1 Apr 30, 2026
931186c
fix(jira): forward explicit notifyUsers=true query param on issue update
waleedlatif1 Apr 30, 2026
16111b9
fix(jira): quote project key in JQL to defend against injection
waleedlatif1 Apr 30, 2026
952d1a9
fix(jira): quote project key in bulk_read JQL for defense in depth
waleedlatif1 Apr 30, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
180 changes: 117 additions & 63 deletions apps/docs/content/docs/en/tools/ashby.mdx

Large diffs are not rendered by default.

3 changes: 2 additions & 1 deletion apps/docs/content/docs/en/tools/confluence.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,6 @@ Update a Confluence page using the Confluence API.
| `pageId` | string | Yes | Confluence page ID to update \(numeric ID from page URL or API\) |
| `title` | string | No | New title for the page |
| `content` | string | No | New content for the page in Confluence storage format |
| `version` | number | No | Version number of the page \(required for preventing conflicts\) |
| `cloudId` | string | No | Confluence Cloud ID for the instance. If not provided, it will be fetched using the domain. |

#### Output
Expand Down Expand Up @@ -1091,6 +1090,8 @@ Delete a Confluence space.
| `ts` | string | ISO 8601 timestamp of the operation |
| `spaceId` | string | Deleted space ID |
| `deleted` | boolean | Deletion status |
| `longTaskId` | string | ID of the long-running deletion task; poll Confluence long-task API to track completion |
| `longTaskStatusLink` | string | Relative link to the long-task status endpoint |

### `confluence_list_spaces`

Expand Down
2 changes: 2 additions & 0 deletions apps/docs/content/docs/en/tools/firecrawl.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -254,6 +254,8 @@ Parse uploaded documents (PDF, DOCX, HTML, etc.) into clean markdown using Firec
| `proxy` | string | No | Proxy mode: "basic" or "auto" |
| `zeroDataRetention` | boolean | No | Enable zero data retention. Defaults to false. |
| `apiKey` | string | Yes | Firecrawl API key |
| `pricing` | custom | No | No description |
| `metadata` | string | No | No description |
| `rateLimit` | string | No | No description |

#### Output
Expand Down
169 changes: 169 additions & 0 deletions apps/docs/content/docs/en/tools/google_drive.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,78 @@ Get metadata for a specific file in Google Drive by its ID
| ↳ `md5Checksum` | string | MD5 hash |
| ↳ `version` | string | Version number |

### `google_drive_get_content`

Get content from a file in Google Drive with complete metadata (exports Google Workspace files automatically)

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `fileId` | string | Yes | The ID of the file to get content from |
| `mimeType` | string | No | The MIME type to export Google Workspace files to \(optional\) |
| `includeRevisions` | boolean | No | Whether to include revision history in the metadata \(default: true, returns first 100 revisions\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `content` | string | File content as text \(Google Workspace files are exported\) |
| `metadata` | object | Complete file metadata from Google Drive |
| ↳ `id` | string | Google Drive file ID |
| ↳ `kind` | string | Resource type identifier |
| ↳ `name` | string | File name |
| ↳ `mimeType` | string | MIME type |
| ↳ `description` | string | File description |
| ↳ `originalFilename` | string | Original uploaded filename |
| ↳ `fullFileExtension` | string | Full file extension |
| ↳ `fileExtension` | string | File extension |
| ↳ `owners` | json | List of file owners |
| ↳ `permissions` | json | File permissions |
| ↳ `permissionIds` | json | Permission IDs |
| ↳ `shared` | boolean | Whether file is shared |
| ↳ `ownedByMe` | boolean | Whether owned by current user |
| ↳ `writersCanShare` | boolean | Whether writers can share |
| ↳ `viewersCanCopyContent` | boolean | Whether viewers can copy |
| ↳ `copyRequiresWriterPermission` | boolean | Whether copy requires writer permission |
| ↳ `sharingUser` | json | User who shared the file |
| ↳ `starred` | boolean | Whether file is starred |
| ↳ `trashed` | boolean | Whether file is in trash |
| ↳ `explicitlyTrashed` | boolean | Whether explicitly trashed |
| ↳ `appProperties` | json | App-specific properties |
| ↳ `createdTime` | string | File creation time |
| ↳ `modifiedTime` | string | Last modification time |
| ↳ `modifiedByMeTime` | string | When modified by current user |
| ↳ `viewedByMeTime` | string | When last viewed by current user |
| ↳ `sharedWithMeTime` | string | When shared with current user |
| ↳ `lastModifyingUser` | json | User who last modified the file |
| ↳ `viewedByMe` | boolean | Whether viewed by current user |
| ↳ `modifiedByMe` | boolean | Whether modified by current user |
| ↳ `webViewLink` | string | URL to view in browser |
| ↳ `webContentLink` | string | Direct download URL |
| ↳ `iconLink` | string | URL to file icon |
| ↳ `thumbnailLink` | string | URL to thumbnail |
| ↳ `exportLinks` | json | Export format links |
| ↳ `size` | string | File size in bytes |
| ↳ `quotaBytesUsed` | string | Storage quota used |
| ↳ `md5Checksum` | string | MD5 hash |
| ↳ `sha1Checksum` | string | SHA-1 hash |
| ↳ `sha256Checksum` | string | SHA-256 hash |
| ↳ `parents` | json | Parent folder IDs |
| ↳ `spaces` | json | Spaces containing file |
| ↳ `driveId` | string | Shared drive ID |
| ↳ `capabilities` | json | User capabilities on file |
| ↳ `version` | string | Version number |
| ↳ `headRevisionId` | string | Head revision ID |
| ↳ `hasThumbnail` | boolean | Whether has thumbnail |
| ↳ `thumbnailVersion` | string | Thumbnail version |
| ↳ `imageMediaMetadata` | json | Image-specific metadata |
| ↳ `videoMediaMetadata` | json | Video-specific metadata |
| ↳ `isAppAuthorized` | boolean | Whether created by requesting app |
| ↳ `contentRestrictions` | json | Content restrictions |
| ↳ `linkShareMetadata` | json | Link share metadata |
| ↳ `revisions` | json | File revision history \(first 100 revisions only\) |

### `google_drive_create_folder`

Create a new folder in Google Drive with complete metadata returned
Expand Down Expand Up @@ -375,6 +447,79 @@ Create a copy of a file in Google Drive
| ↳ `owners` | json | List of file owners |
| ↳ `size` | string | File size in bytes |

### `google_drive_move`

Move a file or folder to a different folder in Google Drive

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `fileId` | string | Yes | The ID of the file or folder to move |
| `destinationFolderId` | string | Yes | The ID of the destination folder |
| `removeFromCurrent` | boolean | No | Whether to remove the file from its current parent folder \(default: true\). Set to false to add the file to the destination without removing it from the current location. |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `file` | json | The moved file metadata |
| ↳ `id` | string | Google Drive file ID |
| ↳ `kind` | string | Resource type identifier |
| ↳ `name` | string | File name |
| ↳ `mimeType` | string | MIME type |
| ↳ `webViewLink` | string | URL to view in browser |
| ↳ `parents` | json | Parent folder IDs |
| ↳ `createdTime` | string | File creation time |
| ↳ `modifiedTime` | string | Last modification time |
| ↳ `owners` | json | List of file owners |
| ↳ `size` | string | File size in bytes |

### `google_drive_search`

Search for files in Google Drive using advanced query syntax (e.g., fullText contains, mimeType, modifiedTime, etc.)

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `query` | string | Yes | Google Drive query string using advanced search syntax \(e.g., "fullText contains \'budget\'", "mimeType = \'application/pdf\'", "modifiedTime > \'2024-01-01\'"\) |
| `pageSize` | number | No | Maximum number of files to return \(default: 100\) |
| `pageToken` | string | No | Token for fetching the next page of results |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `files` | array | Array of file metadata objects matching the search query |
| ↳ `id` | string | Google Drive file ID |
| ↳ `kind` | string | Resource type identifier |
| ↳ `name` | string | File name |
| ↳ `mimeType` | string | MIME type |
| ↳ `description` | string | File description |
| ↳ `originalFilename` | string | Original uploaded filename |
| ↳ `fullFileExtension` | string | Full file extension |
| ↳ `fileExtension` | string | File extension |
| ↳ `owners` | json | List of file owners |
| ↳ `permissions` | json | File permissions |
| ↳ `shared` | boolean | Whether file is shared |
| ↳ `ownedByMe` | boolean | Whether owned by current user |
| ↳ `starred` | boolean | Whether file is starred |
| ↳ `trashed` | boolean | Whether file is in trash |
| ↳ `createdTime` | string | File creation time |
| ↳ `modifiedTime` | string | Last modification time |
| ↳ `lastModifyingUser` | json | User who last modified the file |
| ↳ `webViewLink` | string | URL to view in browser |
| ↳ `webContentLink` | string | Direct download URL |
| ↳ `iconLink` | string | URL to file icon |
| ↳ `thumbnailLink` | string | URL to thumbnail |
| ↳ `size` | string | File size in bytes |
| ↳ `parents` | json | Parent folder IDs |
| ↳ `driveId` | string | Shared drive ID |
| ↳ `capabilities` | json | User capabilities on file |
| ↳ `version` | string | Version number |
| `nextPageToken` | string | Token for fetching the next page of results |

### `google_drive_update`

Update file metadata in Google Drive (rename, move, star, add description)
Expand Down Expand Up @@ -428,6 +573,29 @@ Move a file to the trash in Google Drive (can be restored later)
| ↳ `trashedTime` | string | When file was trashed |
| ↳ `webViewLink` | string | URL to view in browser |

### `google_drive_untrash`

Restore a file from the trash in Google Drive

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `fileId` | string | Yes | The ID of the file to restore from trash |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `file` | json | The restored file metadata |
| ↳ `id` | string | Google Drive file ID |
| ↳ `kind` | string | Resource type identifier |
| ↳ `name` | string | File name |
| ↳ `mimeType` | string | MIME type |
| ↳ `trashed` | boolean | Whether file is in trash \(should be false\) |
| ↳ `webViewLink` | string | URL to view in browser |
| ↳ `parents` | json | Parent folder IDs |

### `google_drive_delete`

Permanently delete a file from Google Drive (bypasses trash)
Expand Down Expand Up @@ -505,6 +673,7 @@ List all permissions (who has access) for a file in Google Drive
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `fileId` | string | Yes | The ID of the file to list permissions for |
| `pageToken` | string | No | The page token to use for pagination |

#### Output

Expand Down
6 changes: 3 additions & 3 deletions apps/docs/content/docs/en/tools/jira.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -384,7 +384,7 @@ Assign a Jira issue to a user
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
| `issueKey` | string | Yes | Jira issue key to assign \(e.g., PROJ-123\) |
| `accountId` | string | Yes | Account ID of the user to assign the issue to. Use "-1" for automatic assignment or null to unassign. |
| `accountId` | string | Yes | Account ID of the user to assign the issue to. Use "-1" for automatic assignment, or leave empty / pass "null" to unassign. |
| `cloudId` | string | No | Jira Cloud ID for the instance. If not provided, it will be fetched using the domain. |

#### Output
Expand Down Expand Up @@ -436,7 +436,7 @@ Search for Jira issues using JQL (Jira Query Language)
| `jql` | string | Yes | JQL query string to search for issues \(e.g., "project = PROJ AND status = Open"\) |
| `nextPageToken` | string | No | Cursor token for the next page of results. Omit for the first page. |
| `maxResults` | number | No | Maximum number of results to return per page \(default: 50\) |
| `fields` | array | No | Array of field names to return \(default: all navigable\). Use "*all" for every field. |
| `fields` | array | No | Array of field names to return \(default: all fields\). |
| `cloudId` | string | No | Jira Cloud ID for the instance. If not provided, it will be fetched using the domain. |

#### Output
Expand Down Expand Up @@ -506,7 +506,7 @@ Search for Jira issues using JQL (Jira Query Language)
| ↳ `updated` | string | ISO 8601 timestamp when the issue was last updated |
| `nextPageToken` | string | Cursor token for the next page. Null when no more results. |
| `isLast` | boolean | Whether this is the last page of results |
| `total` | number | Total number of matching issues \(may not always be available\) |
| `total` | number | Always null. The Jira /search/jql endpoint does not return a total count; use isLast and nextPageToken for pagination. |

### `jira_add_comment`

Expand Down
3 changes: 1 addition & 2 deletions apps/docs/content/docs/en/tools/jira_service_management.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -331,8 +331,7 @@ Add customers to a service desk in Jira Service Management
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
| `cloudId` | string | No | Jira Cloud ID for the instance |
| `serviceDeskId` | string | Yes | Service Desk ID \(e.g., "1", "2"\) |
| `accountIds` | string | No | Comma-separated Atlassian account IDs to add as customers |
| `emails` | string | No | Comma-separated email addresses to add as customers |
| `accountIds` | string | Yes | Comma-separated Atlassian account IDs to add as customers |

#### Output

Expand Down
9 changes: 6 additions & 3 deletions apps/docs/content/docs/en/tools/slack.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -170,8 +170,6 @@ Create and share Slack canvases in channels. Canvases are collaborative document
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `canvas_id` | string | Unique canvas identifier |
| `channel` | string | Channel where canvas was created |
| `title` | string | Canvas title |

### `slack_message_reader`

Expand Down Expand Up @@ -522,6 +520,7 @@ List all channels in a Slack workspace. Returns public and private channels the
| `includePrivate` | boolean | No | Include private channels the bot is a member of \(default: true\) |
| `excludeArchived` | boolean | No | Exclude archived channels \(default: true\) |
| `limit` | number | No | Maximum number of channels to return \(default: 100, max: 200\) |
| `cursor` | string | No | Pagination cursor from a previous response.next_cursor |

#### Output

Expand All @@ -547,6 +546,7 @@ List all channels in a Slack workspace. Returns public and private channels the
| `ids` | array | Array of channel IDs for easy access |
| `names` | array | Array of channel names for easy access |
| `count` | number | Total number of channels returned |
| `nextCursor` | string | Cursor for the next page; null if no more pages |

### `slack_list_members`

Expand All @@ -560,13 +560,15 @@ List all members (user IDs) in a Slack channel. Use with Get User Info to resolv
| `botToken` | string | No | Bot token for Custom Bot |
| `channel` | string | Yes | Channel ID to list members from |
| `limit` | number | No | Maximum number of members to return \(default: 100, max: 200\) |
| `cursor` | string | No | Pagination cursor from a previous response.next_cursor |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `members` | array | Array of user IDs who are members of the channel \(e.g., U1234567890\) |
| `count` | number | Total number of members returned |
| `nextCursor` | string | Cursor for the next page; null if no more pages |

### `slack_list_users`

Expand All @@ -580,6 +582,7 @@ List all users in a Slack workspace. Returns user profiles with names and avatar
| `botToken` | string | No | Bot token for Custom Bot |
| `includeDeleted` | boolean | No | Include deactivated/deleted users \(default: false\) |
| `limit` | number | No | Maximum number of users to return \(default: 100, max: 200\) |
| `cursor` | string | No | Pagination cursor from a previous response.next_cursor |

#### Output

Expand All @@ -602,6 +605,7 @@ List all users in a Slack workspace. Returns user profiles with names and avatar
| `ids` | array | Array of user IDs for easy access |
| `names` | array | Array of usernames for easy access |
| `count` | number | Total number of users returned |
| `nextCursor` | string | Cursor for the next page; null if no more pages |

### `slack_get_user`

Expand Down Expand Up @@ -638,7 +642,6 @@ Get detailed information about a specific Slack user by their user ID.
| ↳ `is_restricted` | boolean | Whether the user is a guest \(restricted\) |
| ↳ `is_ultra_restricted` | boolean | Whether the user is a single-channel guest |
| ↳ `is_app_user` | boolean | Whether user is an app user |
| ↳ `is_stranger` | boolean | Whether user is from different workspace |
| ↳ `deleted` | boolean | Whether the user is deactivated |
| ↳ `color` | string | User color for display |
| ↳ `timezone` | string | Timezone identifier \(e.g., America/Los_Angeles\) |
Expand Down
24 changes: 22 additions & 2 deletions apps/sim/app/(landing)/integrations/data/integrations.json
Original file line number Diff line number Diff line change
Expand Up @@ -5077,10 +5077,18 @@
"name": "List Files",
"description": "List Google Drive files"
},
{
"name": "Search Files",
"description": "Search for files in Google Drive using advanced query syntax (e.g., fullText contains, mimeType, modifiedTime, etc.)"
},
{
"name": "Get File Info",
"description": "Get metadata for a specific file in Google Drive by its ID"
},
{
"name": "Get File Content",
"description": "Get content from a file in Google Drive with complete metadata (exports Google Workspace files automatically)"
},
{
"name": "Create Folder",
"description": "Create a new folder in Google Drive with complete metadata returned"
Expand All @@ -5101,6 +5109,10 @@
"name": "Copy File",
"description": "Create a copy of a file in Google Drive"
},
{
"name": "Move File",
"description": "Move a file or folder to a different folder in Google Drive"
},
{
"name": "Update File",
"description": "Update file metadata in Google Drive (rename, move, star, add description)"
Expand All @@ -5109,6 +5121,10 @@
"name": "Move to Trash",
"description": "Move a file to the trash in Google Drive (can be restored later)"
},
{
"name": "Restore from Trash",
"description": "Restore a file from the trash in Google Drive"
},
{
"name": "Delete Permanently",
"description": "Permanently delete a file from Google Drive (bypasses trash)"
Expand All @@ -5130,7 +5146,7 @@
"description": "Get information about the user and their Google Drive (storage quota, capabilities)"
}
],
"operationCount": 14,
"operationCount": 18,
"triggers": [
{
"id": "google_drive_poller",
Expand Down Expand Up @@ -6962,6 +6978,10 @@
"name": "Read Issue",
"description": "Retrieve detailed information about a specific Jira issue"
},
{
"name": "Read Bulk Issues",
"description": "Retrieve multiple Jira issues from a project in bulk"
},
{
"name": "Update Issue",
"description": "Update a Jira issue"
Expand Down Expand Up @@ -7055,7 +7075,7 @@
"description": "Search for Jira users by email address or display name. Returns matching users with their accountId, displayName, and emailAddress."
}
],
"operationCount": 24,
"operationCount": 25,
"triggers": [
{
"id": "jira_issue_created",
Expand Down
Loading
Loading