Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
9 changes: 5 additions & 4 deletions docs/content/docs/tools/clay.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Clay
description: Populate Clay with data
description: Populate Clay workbook with data
---

import { BlockInfoCard } from "@/components/ui/block-info-card"
Expand Down Expand Up @@ -197,7 +197,8 @@ In Sim Studio, the Clay integration allows your agents to push structured data i

## Usage Instructions

Populate Clay with data from a JSON file. Enables direct communication and notifications with timestamp tracking and channel confirmation.
Populate Clay workbook with data using a JSON or plain text. Enables direct communication and notifications with channel confirmation.



## Tools
Expand All @@ -210,7 +211,7 @@ Populate Clay with data from a JSON file. Enables direct communication and notif

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `webhookId` | string | Yes | The webhook ID to populate |
| `webhookURL` | string | Yes | The webhook URL to populate |
| `data` | json | Yes | The data to populate |
| `authToken` | string | No | Optional auth token for WebhookURL |

Expand All @@ -228,7 +229,7 @@ Populate Clay with data from a JSON file. Enables direct communication and notif

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | No | Auth Token - Enter your Clay Auth token |
| `authToken` | string | Yes | Auth Token - Enter your Clay Auth token |



Expand Down
25 changes: 24 additions & 1 deletion docs/content/docs/tools/google_sheets.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ In Sim Studio, the Google Sheets integration enables your agents to interact dir

## Usage Instructions

Integrate Google Sheets functionality to manage spreadsheet data. Read data from specific ranges, write new data, and update existing cells using OAuth authentication. Supports various input and output formats for flexible data handling.
Integrate Google Sheets functionality to manage spreadsheet data. Read data from specific ranges, write new data, update existing cells, and append data to the end of sheets using OAuth authentication. Supports various input and output formats for flexible data handling.



Expand Down Expand Up @@ -126,6 +126,28 @@ Update data in a Google Sheets spreadsheet
| `spreadsheetId` | string |
| `spreadsheetUrl` | string |

### `google_sheets_append`

Append data to the end of a Google Sheets spreadsheet

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `accessToken` | string | Yes | The access token for the Google Sheets API |
| `spreadsheetId` | string | Yes | The ID of the spreadsheet to append to |
| `range` | string | No | The range of cells to append after |
| `values` | array | Yes | The data to append to the spreadsheet |
| `valueInputOption` | string | No | The format of the data to append |
| `insertDataOption` | string | No | How to insert the data \(OVERWRITE or INSERT_ROWS\) |
| `includeValuesInResponse` | boolean | No | Whether to include the appended values in the response |

#### Output

| Parameter | Type |
| --------- | ---- |
| `data` | json |



## Block Configuration
Expand All @@ -149,6 +171,7 @@ Update data in a Google Sheets spreadsheet
| ↳ `updatedRows` | number | updatedRows of the response |
| ↳ `updatedColumns` | number | updatedColumns of the response |
| ↳ `updatedCells` | number | updatedCells of the response |
| ↳ `tableRange` | string | tableRange of the response |


## Notes
Expand Down
3 changes: 3 additions & 0 deletions docs/content/docs/tools/jira.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
</svg>`}
/>

{/* MANUAL-CONTENT-START:intro */}
[Jira](https://www.atlassian.com/jira) is a leading project management and issue tracking platform that helps teams plan, track, and manage agile software development projects effectively. As part of the Atlassian suite, Jira has become the industry standard for software development teams and project management professionals worldwide.

Jira provides a comprehensive set of tools for managing complex projects through its flexible and customizable workflow system. With its robust API and integration capabilities, Jira enables teams to streamline their development processes and maintain clear visibility of project progress.
Expand All @@ -37,6 +38,8 @@ Key features of Jira include:
- Advanced Search: JQL (Jira Query Language) for complex issue filtering and reporting

In Sim Studio, the Jira integration allows your agents to seamlessly interact with your project management workflow. This creates opportunities for automated issue creation, updates, and tracking as part of your AI workflows. The integration enables agents to create, retrieve, and update Jira issues programmatically, facilitating automated project management tasks and ensuring that important information is properly tracked and documented. By connecting Sim Studio with Jira, you can build intelligent agents that maintain project visibility while automating routine project management tasks, enhancing team productivity and ensuring consistent project tracking.
{/* MANUAL-CONTENT-END */}


## Usage Instructions

Expand Down
1 change: 1 addition & 0 deletions docs/content/docs/tools/meta.json
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
"stagehand_agent",
"supabase",
"tavily",
"telegram",
"thinking",
"translate",
"twilio_sms",
Expand Down
42 changes: 25 additions & 17 deletions docs/content/docs/tools/slack.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@ title: Slack
description: Send a message to Slack
---

import { BlockInfoCard } from '@/components/ui/block-info-card'
import { BlockInfoCard } from "@/components/ui/block-info-card"

<BlockInfoCard
<BlockInfoCard
type="slack"
color="#611f69"
icon={true}
Expand Down Expand Up @@ -53,10 +53,13 @@ With Slack, you can:
In Sim Studio, the Slack integration enables your agents to programmatically send messages to any Slack channel or user as part of their workflows. This allows for powerful automation scenarios such as sending notifications, alerts, updates, and reports directly to your team's communication hub. Your agents can deliver timely information, share results from processes they've completed, or alert team members when attention is needed. This integration bridges the gap between your AI workflows and your team's communication, ensuring everyone stays informed without manual intervention. By connecting Sim Studio with Slack, you can create agents that keep your team updated with relevant information at the right time, enhance collaboration by sharing insights automatically, and reduce the need for manual status updates - all while leveraging your existing Slack workspace where your team already communicates.
{/* MANUAL-CONTENT-END */}


## Usage Instructions

Send messages to any Slack channel using OAuth authentication. Integrate automated notifications and alerts into your workflow to keep your team informed.



## Tools

### `slack_message`
Expand All @@ -65,35 +68,40 @@ Send messages to Slack channels or users through the Slack API. Enables direct c

#### Input

| Parameter | Type | Required | Description |
| --------- | ------ | -------- | --------------------------------------- |
| `apiKey` | string | Yes | Your Slack API token |
| `channel` | string | Yes | Target Slack channel \(e.g., #general\) |
| `text` | string | Yes | Message text to send |
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | Your Slack API token |
| `channel` | string | Yes | Target Slack channel \(e.g., #general\) |
| `text` | string | Yes | Message text to send |

#### Output

| Parameter | Type |
| --------- | ------ |
| `ts` | string |
| Parameter | Type |
| --------- | ---- |
| `ts` | string |
| `channel` | string |



## Block Configuration

### Input

| Parameter | Type | Required | Description |
| --------- | ------ | -------- | ------------------------------------------ |
| `apiKey` | string | Yes | OAuth Token - Enter your Slack OAuth token |
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | OAuth Token - Enter your Slack OAuth token |



### Outputs

| Output | Type | Description |
| ----------- | ------ | ----------------------- |
| `response` | object | Output from response |
| ↳ `ts` | string | ts of the response |
| Output | Type | Description |
| ------ | ---- | ----------- |
| `response` | object | Output from response |
| ↳ `ts` | string | ts of the response |
| ↳ `channel` | string | channel of the response |


## Notes

- Category: `tools`
Expand Down
2 changes: 2 additions & 0 deletions docs/content/docs/tools/telegram.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
</svg>`}
/>

{/* MANUAL-CONTENT-START:intro */}
[Telegram](https://telegram.org) is a secure, cloud-based messaging platform that enables fast and reliable communication across devices and platforms. With over 700 million monthly active users, Telegram has established itself as one of the world's leading messaging services, known for its security, speed, and powerful API capabilities.

<iframe width="100%" height="400" src="https://www.youtube.com/embed/nhq2Q8fndFg?start=62" title="Use Telegram with Sim Studio" frameBorder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowFullScreen ></iframe>
Expand All @@ -45,6 +46,7 @@ Key features of Telegram include:
- Global Reach: Connect with users worldwide with support for multiple languages and platforms

In Sim Studio, the Telegram integration enables your agents to leverage these powerful messaging capabilities as part of their workflows. This creates opportunities for automated notifications, alerts, and interactive conversations through Telegram's secure messaging platform. The integration allows agents to send messages programmatically to individuals or channels, enabling timely communication and updates. By connecting Sim Studio with Telegram, you can build intelligent agents that engage users through a secure and widely-adopted messaging platform, perfect for delivering notifications, updates, and interactive communications.
{/* MANUAL-CONTENT-END */}

## Usage Instructions

Expand Down
File renamed without changes.
42 changes: 40 additions & 2 deletions sim/blocks/blocks/google_sheets.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { GoogleSheetsIcon } from '@/components/icons'
import {
GoogleSheetsAppendResponse,
GoogleSheetsReadResponse,
GoogleSheetsUpdateResponse,
GoogleSheetsWriteResponse,
Expand All @@ -10,13 +11,14 @@ type GoogleSheetsResponse =
| GoogleSheetsReadResponse
| GoogleSheetsWriteResponse
| GoogleSheetsUpdateResponse
| GoogleSheetsAppendResponse

export const GoogleSheetsBlock: BlockConfig<GoogleSheetsResponse> = {
type: 'google_sheets',
name: 'Google Sheets',
description: 'Read, write, and update data',
longDescription:
'Integrate Google Sheets functionality to manage spreadsheet data. Read data from specific ranges, write new data, and update existing cells using OAuth authentication. Supports various input and output formats for flexible data handling.',
'Integrate Google Sheets functionality to manage spreadsheet data. Read data from specific ranges, write new data, update existing cells, and append data to the end of sheets using OAuth authentication. Supports various input and output formats for flexible data handling.',
category: 'tools',
bgColor: '#E0E0E0',
icon: GoogleSheetsIcon,
Expand All @@ -31,6 +33,7 @@ export const GoogleSheetsBlock: BlockConfig<GoogleSheetsResponse> = {
{ label: 'Read Data', id: 'read' },
{ label: 'Write Data', id: 'write' },
{ label: 'Update Data', id: 'update' },
{ label: 'Append Data', id: 'append' },
],
},
// Google Sheets Credentials
Expand Down Expand Up @@ -113,9 +116,40 @@ export const GoogleSheetsBlock: BlockConfig<GoogleSheetsResponse> = {
],
condition: { field: 'operation', value: 'update' },
},
// Append-specific Fields
{
id: 'values',
title: 'Values',
type: 'long-input',
layout: 'full',
placeholder: 'Enter values as JSON array of arrays (e.g., [["A1", "B1"], ["A2", "B2"]])',
condition: { field: 'operation', value: 'append' },
},
{
id: 'valueInputOption',
title: 'Value Input Option',
type: 'dropdown',
layout: 'full',
options: [
{ label: 'User Entered (Parse formulas)', id: 'USER_ENTERED' },
{ label: "Raw (Don't parse formulas)", id: 'RAW' },
],
condition: { field: 'operation', value: 'append' },
},
{
id: 'insertDataOption',
title: 'Insert Data Option',
type: 'dropdown',
layout: 'full',
options: [
{ label: 'Insert Rows (Add new rows)', id: 'INSERT_ROWS' },
{ label: 'Overwrite (Add to existing data)', id: 'OVERWRITE' },
],
condition: { field: 'operation', value: 'append' },
},
],
tools: {
access: ['google_sheets_read', 'google_sheets_write', 'google_sheets_update'],
access: ['google_sheets_read', 'google_sheets_write', 'google_sheets_update', 'google_sheets_append'],
config: {
tool: (params) => {
switch (params.operation) {
Expand All @@ -125,6 +159,8 @@ export const GoogleSheetsBlock: BlockConfig<GoogleSheetsResponse> = {
return 'google_sheets_write'
case 'update':
return 'google_sheets_update'
case 'append':
return 'google_sheets_append'
default:
throw new Error(`Invalid Google Sheets operation: ${params.operation}`)
}
Expand Down Expand Up @@ -163,6 +199,7 @@ export const GoogleSheetsBlock: BlockConfig<GoogleSheetsResponse> = {
range: { type: 'string', required: false },
values: { type: 'string', required: false },
valueInputOption: { type: 'string', required: false },
insertDataOption: { type: 'string', required: false },
},
outputs: {
response: {
Expand All @@ -173,6 +210,7 @@ export const GoogleSheetsBlock: BlockConfig<GoogleSheetsResponse> = {
updatedRows: 'number',
updatedColumns: 'number',
updatedCells: 'number',
tableRange: 'string',
},
},
},
Expand Down
2 changes: 1 addition & 1 deletion sim/blocks/registry.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import { ClayBlock } from './blocks/clay'
import { ConditionBlock } from './blocks/condition'
import { ConfluenceBlock } from './blocks/confluence'
import { GoogleDocsBlock } from './blocks/google_docs'
import { GoogleDriveBlock } from './blocks/drive'
import { GoogleDriveBlock } from './blocks/google_drive'
import { ElevenLabsBlock } from './blocks/elevenlabs'
import { EvaluatorBlock } from './blocks/evaluator'
import { ExaBlock } from './blocks/exa'
Expand Down
Loading