Skip to content
Merged
4 changes: 2 additions & 2 deletions apps/docs/content/docs/en/integrations/google_groups.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -352,7 +352,7 @@ Update the settings for a Google Group including access permissions, moderation,
| `description` | string | No | The group description \(max 4096 characters\) |
| `whoCanJoin` | string | No | Who can join: ANYONE_CAN_JOIN, ALL_IN_DOMAIN_CAN_JOIN, INVITED_CAN_JOIN, CAN_REQUEST_TO_JOIN |
| `whoCanViewMembership` | string | No | Who can view membership: ALL_IN_DOMAIN_CAN_VIEW, ALL_MEMBERS_CAN_VIEW, ALL_MANAGERS_CAN_VIEW |
| `whoCanViewGroup` | string | No | Who can view group messages: ANYONE_CAN_VIEW, ALL_IN_DOMAIN_CAN_VIEW, ALL_MEMBERS_CAN_VIEW, ALL_MANAGERS_CAN_VIEW |
| `whoCanViewGroup` | string | No | Who can view group messages: ANYONE_CAN_VIEW, ALL_IN_DOMAIN_CAN_VIEW, ALL_MEMBERS_CAN_VIEW, ALL_MANAGERS_CAN_VIEW, ALL_OWNERS_CAN_VIEW |
| `whoCanPostMessage` | string | No | Who can post: NONE_CAN_POST, ALL_MANAGERS_CAN_POST, ALL_MEMBERS_CAN_POST, ALL_OWNERS_CAN_POST, ALL_IN_DOMAIN_CAN_POST, ANYONE_CAN_POST |
| `allowExternalMembers` | string | No | Whether external users can be members: true or false |
| `allowWebPosting` | string | No | Whether web posting is allowed: true or false |
Expand All @@ -373,7 +373,7 @@ Update the settings for a Google Group including access permissions, moderation,
| `whoCanContactOwner` | string | No | Who can contact owner: ALL_IN_DOMAIN_CAN_CONTACT, ALL_MANAGERS_CAN_CONTACT, ALL_MEMBERS_CAN_CONTACT, ANYONE_CAN_CONTACT |
| `favoriteRepliesOnTop` | string | No | Whether favorite replies appear at top: true or false |
| `whoCanApproveMembers` | string | No | Who can approve members: ALL_OWNERS_CAN_APPROVE, ALL_MANAGERS_CAN_APPROVE, ALL_MEMBERS_CAN_APPROVE, NONE_CAN_APPROVE |
| `whoCanBanUsers` | string | No | Who can ban users: OWNERS_ONLY, OWNERS_AND_MANAGERS, NONE |
| `whoCanBanUsers` | string | No | Who can ban users: ALL_MEMBERS, OWNERS_AND_MANAGERS, OWNERS_ONLY, NONE |
| `whoCanModerateMembers` | string | No | Who can manage members: OWNERS_ONLY, OWNERS_AND_MANAGERS, ALL_MEMBERS, NONE |
| `whoCanModerateContent` | string | No | Who can moderate content: OWNERS_ONLY, OWNERS_AND_MANAGERS, ALL_MEMBERS, NONE |
| `whoCanAssistContent` | string | No | Who can assist with content metadata: OWNERS_ONLY, OWNERS_AND_MANAGERS, ALL_MEMBERS, NONE |
Expand Down
67 changes: 67 additions & 0 deletions apps/docs/content/docs/en/integrations/google_maps.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -326,6 +326,43 @@ Search for places using a text query
| ↳ `businessStatus` | string | Business status |
| `nextPageToken` | string | Token for fetching the next page of results |

### `google_maps_pollen`

Get a daily pollen forecast (grass, tree, weed) for a location

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | Google Maps API key with Pollen API enabled |
| `lat` | number | Yes | Latitude coordinate |
| `lng` | number | Yes | Longitude coordinate |
| `days` | number | No | Number of forecast days to return \(1-5, defaults to 1\) |
| `languageCode` | string | No | Language code for the response \(e.g., "en", "es"\) |
| `plantsDescription` | boolean | No | Include detailed plant descriptions \(defaults to true\) |
| `pricing` | per_request | No | No description |
| `rateLimit` | string | No | No description |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `regionCode` | string | Region code \(ISO 3166-1 alpha-2\) for the location |
| `dailyInfo` | array | Daily pollen forecast entries |
| ↳ `date` | object | Calendar date of the forecast entry |
| ↳ `pollenTypeInfo` | array | Pollen type indices \(grass, tree, weed\) |
| ↳ `code` | string | Pollen type code \(GRASS, TREE, WEED\) |
| ↳ `displayName` | string | Display name |
| ↳ `inSeason` | boolean | Whether the pollen type is in season |
| ↳ `indexInfo` | object | Universal Pollen Index \(UPI\) info |
| ↳ `healthRecommendations` | array | Health recommendations |
| ↳ `plantInfo` | array | Per-plant forecast with descriptions |
| ↳ `code` | string | Plant code \(e.g., BIRCH, RAGWEED\) |
| ↳ `displayName` | string | Display name |
| ↳ `inSeason` | boolean | Whether the plant is in season |
| ↳ `indexInfo` | object | Universal Pollen Index \(UPI\) info |
| ↳ `plantDescription` | object | Plant details \(type, family, season, cross-reactions\) |

### `google_maps_reverse_geocode`

Convert geographic coordinates (latitude and longitude) into a human-readable address
Expand Down Expand Up @@ -379,6 +416,36 @@ Snap GPS coordinates to the nearest road segment
| ↳ `placeId` | string | Place ID for this road segment |
| `warningMessage` | string | Warning message if any \(e.g., if points could not be snapped\) |

### `google_maps_solar`

Get solar potential and panel insights for the building nearest a location

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | Google Maps API key with Solar API enabled |
| `lat` | number | Yes | Latitude coordinate |
| `lng` | number | Yes | Longitude coordinate |
| `requiredQuality` | string | No | Minimum imagery quality to accept \(HIGH, MEDIUM, or BASE\) |
| `pricing` | per_request | No | No description |
| `rateLimit` | string | No | No description |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `name` | string | Resource name of the building \(e.g., "buildings/ChIJ..."\) |
| `center` | object | Center coordinate of the building |
| ↳ `lat` | number | Latitude |
| ↳ `lng` | number | Longitude |
| `imageryDate` | object | Date the underlying imagery was captured |
| `imageryQuality` | string | Quality of the imagery used \(HIGH, MEDIUM, BASE\) |
| `regionCode` | string | Region code \(ISO 3166-1 alpha-2\) for the building |
| `postalCode` | string | Postal code of the building |
| `administrativeArea` | string | Administrative area \(e.g., state or province\) |
| `solarPotential` | object | Solar potential: max panel count/area, sunshine hours, carbon offset, panel specs, and configs |

### `google_maps_speed_limits`

Get speed limits for road segments. Requires either path coordinates or placeIds.
Expand Down
29 changes: 27 additions & 2 deletions apps/docs/content/docs/en/integrations/google_search.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,17 @@ Search the web with the Custom Search API
| --------- | ---- | -------- | ----------- |
| `query` | string | Yes | The search query to execute |
| `searchEngineId` | string | Yes | Custom Search Engine ID |
| `num` | string | No | Number of results to return \(default: 10, max: 10\) |
| `num` | string | No | Number of results to return \(1-10, default 10\) |
| `start` | number | No | Index of the first result \(1-based, for pagination; start + num must be <= 100\) |
| `dateRestrict` | string | No | Restrict results by recency: d\[n\] days, w\[n\] weeks, m\[n\] months, y\[n\] years |
| `fileType` | string | No | Restrict to a file extension \(e.g., pdf, doc\) |
| `safe` | string | No | SafeSearch level: "active" or "off" \(default off\) |
| `searchType` | string | No | Set to "image" to perform an image search |
| `siteSearch` | string | No | A site to include or exclude from results |
| `siteSearchFilter` | string | No | Whether to include \("i"\) or exclude \("e"\) the siteSearch site |
| `lr` | string | No | Restrict to a language, e.g. "lang_en" |
| `gl` | string | No | Two-letter country code to boost geographically relevant results |
| `sort` | string | No | Sort expression, e.g. "date" |
| `apiKey` | string | Yes | Google API key |

#### Output
Expand All @@ -48,14 +58,29 @@ Search the web with the Custom Search API
| --------- | ---- | ----------- |
| `items` | array | Array of search results from Google |
| ↳ `title` | string | Title of the search result |
| ↳ `htmlTitle` | string | Title of the search result with HTML markup |
| ↳ `link` | string | URL of the search result |
| ↳ `snippet` | string | Snippet or description of the search result |
| ↳ `displayLink` | string | Display URL \(abbreviated form\) |
| ↳ `snippet` | string | Snippet or description of the search result |
| ↳ `htmlSnippet` | string | Snippet of the search result with HTML markup |
| ↳ `formattedUrl` | string | Display URL shown beneath the result |
| ↳ `mime` | string | MIME type of the result |
| ↳ `fileFormat` | string | File format of the result |
| ↳ `cacheId` | string | ID of Google's cached version |
| ↳ `pagemap` | object | PageMap information for the result \(structured data\) |
| ↳ `image` | object | Image metadata \(present when searchType is image\) |
| ↳ `contextLink` | string | URL of the page hosting the image |
| ↳ `height` | number | Image height in pixels |
| ↳ `width` | number | Image width in pixels |
| ↳ `byteSize` | number | Image file size in bytes |
| ↳ `thumbnailLink` | string | Thumbnail image URL |
| ↳ `thumbnailHeight` | number | Thumbnail height in pixels |
| ↳ `thumbnailWidth` | number | Thumbnail width in pixels |
| `searchInformation` | object | Information about the search query and results |
| ↳ `totalResults` | string | Total number of search results available |
| ↳ `searchTime` | number | Time taken to perform the search in seconds |
| ↳ `formattedSearchTime` | string | Formatted search time for display |
| ↳ `formattedTotalResults` | string | Formatted total results count for display |
| `nextPageStartIndex` | number | Start index for the next page of results \(null if no further results\) |


62 changes: 62 additions & 0 deletions apps/docs/content/docs/en/integrations/google_sheets.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -320,6 +320,68 @@ Copy a sheet from one spreadsheet to another
| `destinationSpreadsheetId` | string | The ID of the destination spreadsheet |
| `destinationSpreadsheetUrl` | string | URL to the destination spreadsheet |

### `google_sheets_delete_rows`

Delete rows from a sheet in a Google Sheets spreadsheet

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `spreadsheetId` | string | Yes | Google Sheets spreadsheet ID |
| `sheetId` | number | Yes | The numeric ID of the sheet/tab \(not the sheet name\). Use Get Spreadsheet to find sheet IDs. |
| `startIndex` | number | Yes | The start row index \(0-based, inclusive\) of the rows to delete |
| `endIndex` | number | Yes | The end row index \(0-based, exclusive\) of the rows to delete |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `spreadsheetId` | string | Google Sheets spreadsheet ID |
| `sheetId` | number | The numeric ID of the sheet |
| `deletedRowRange` | string | Description of the deleted row range |
| `metadata` | json | Spreadsheet metadata including ID and URL |
| ↳ `spreadsheetId` | string | Google Sheets spreadsheet ID |
| ↳ `spreadsheetUrl` | string | Spreadsheet URL |

### `google_sheets_delete_sheet`

Delete a sheet/tab from a Google Sheets spreadsheet

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `spreadsheetId` | string | Yes | Google Sheets spreadsheet ID |
| `sheetId` | number | Yes | The numeric ID of the sheet/tab to delete \(not the sheet name\). Use Get Spreadsheet to find sheet IDs. |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `spreadsheetId` | string | Google Sheets spreadsheet ID |
| `deletedSheetId` | number | The numeric ID of the deleted sheet |
| `metadata` | json | Spreadsheet metadata including ID and URL |
| ↳ `spreadsheetId` | string | Google Sheets spreadsheet ID |
| ↳ `spreadsheetUrl` | string | Spreadsheet URL |

### `google_sheets_delete_spreadsheet`

Permanently delete a Google Sheets spreadsheet using the Google Drive API

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `spreadsheetId` | string | Yes | The ID of the Google Sheets spreadsheet to delete |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `spreadsheetId` | string | The ID of the deleted spreadsheet |
| `deleted` | boolean | Whether the spreadsheet was successfully deleted |



## Triggers
Expand Down
2 changes: 1 addition & 1 deletion apps/docs/content/docs/en/integrations/google_slides.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,7 @@ Generate a thumbnail image of a specific slide in a Google Slides presentation
| `presentationId` | string | Yes | Google Slides presentation ID |
| `pageObjectId` | string | Yes | The object ID of the slide/page to get a thumbnail for |
| `thumbnailSize` | string | No | The size of the thumbnail: SMALL \(200px\), MEDIUM \(800px\), or LARGE \(1600px\). Defaults to MEDIUM. |
| `mimeType` | string | No | The MIME type of the thumbnail image: PNG or GIF. Defaults to PNG. |
| `mimeType` | string | No | The MIME type of the thumbnail image: PNG. Defaults to PNG. |

#### Output

Expand Down
109 changes: 105 additions & 4 deletions apps/sim/blocks/blocks/google.ts
Original file line number Diff line number Diff line change
Expand Up @@ -61,8 +61,88 @@ Return ONLY the search query - no explanations, no quotes around the whole thing
id: 'num',
title: 'Number of Results',
type: 'short-input',
placeholder: '10',
required: true,
placeholder: '10 (1-10)',
mode: 'advanced',
},
{
id: 'start',
title: 'Start Index',
type: 'short-input',
placeholder: '1 (for pagination; start + num <= 100)',
mode: 'advanced',
},
{
id: 'searchType',
title: 'Search Type',
type: 'dropdown',
options: [
{ label: 'Web', id: '' },
{ label: 'Image', id: 'image' },
],
mode: 'advanced',
},
{
id: 'dateRestrict',
title: 'Date Restrict',
type: 'short-input',
placeholder: 'e.g., d7, w2, m1, y1',
mode: 'advanced',
},
{
id: 'fileType',
title: 'File Type',
type: 'short-input',
placeholder: 'e.g., pdf, doc',
mode: 'advanced',
},
{
id: 'safe',
title: 'SafeSearch',
type: 'dropdown',
options: [
{ label: 'Off', id: '' },
{ label: 'Active', id: 'active' },
],
mode: 'advanced',
},
{
id: 'siteSearch',
title: 'Site Search',
type: 'short-input',
placeholder: 'Domain to include or exclude (e.g., wikipedia.org)',
mode: 'advanced',
},
{
id: 'siteSearchFilter',
title: 'Site Search Filter',
type: 'dropdown',
options: [
{ label: 'Include', id: 'i' },
{ label: 'Exclude', id: 'e' },
],
condition: { field: 'siteSearch', value: '', not: true },
mode: 'advanced',
},
{
id: 'lr',
title: 'Language Restrict',
type: 'short-input',
placeholder: 'e.g., lang_en',
mode: 'advanced',
},
{
id: 'gl',
title: 'Country (geolocation)',
type: 'short-input',
placeholder: 'Two-letter country code (e.g., us)',
mode: 'advanced',
},
{
id: 'sort',
title: 'Sort',
type: 'short-input',
placeholder: 'e.g., date',
mode: 'advanced',
},
],

Expand All @@ -74,7 +154,17 @@ Return ONLY the search query - no explanations, no quotes around the whole thing
query: params.query,
apiKey: params.apiKey,
searchEngineId: params.searchEngineId,
num: params.num || undefined,
num: params.num ? Number(params.num) : undefined,
start: params.start ? Number(params.start) : undefined,
Comment thread
waleedlatif1 marked this conversation as resolved.
dateRestrict: params.dateRestrict || undefined,
fileType: params.fileType || undefined,
safe: params.safe || undefined,
searchType: params.searchType || undefined,
siteSearch: params.siteSearch || undefined,
siteSearchFilter: params.siteSearch ? params.siteSearchFilter || undefined : undefined,
lr: params.lr || undefined,
gl: params.gl || undefined,
sort: params.sort || undefined,
}),
},
},
Expand All @@ -83,12 +173,23 @@ Return ONLY the search query - no explanations, no quotes around the whole thing
query: { type: 'string', description: 'Search query terms' },
apiKey: { type: 'string', description: 'Google API key' },
searchEngineId: { type: 'string', description: 'Custom search engine ID' },
num: { type: 'string', description: 'Number of results' },
num: { type: 'string', description: 'Number of results (1-10)' },
start: { type: 'string', description: 'Start index for pagination (1-based)' },
dateRestrict: { type: 'string', description: 'Restrict by recency (d/w/m/y notation)' },
fileType: { type: 'string', description: 'Restrict to a file extension' },
safe: { type: 'string', description: 'SafeSearch level (active/off)' },
searchType: { type: 'string', description: 'Search type (image for image search)' },
siteSearch: { type: 'string', description: 'Site to include or exclude' },
siteSearchFilter: { type: 'string', description: 'Include (i) or exclude (e) the site' },
lr: { type: 'string', description: 'Language restriction (e.g., lang_en)' },
gl: { type: 'string', description: 'Country geolocation code' },
sort: { type: 'string', description: 'Sort expression (e.g., date)' },
},

outputs: {
items: { type: 'json', description: 'Search result items' },
searchInformation: { type: 'json', description: 'Search metadata' },
nextPageStartIndex: { type: 'number', description: 'Start index for the next page of results' },
},
}

Expand Down
Loading
Loading