From 3122b506fdf086dc73e5423026ff9f7d370fd6ee Mon Sep 17 00:00:00 2001 From: Waleed Date: Tue, 16 Sep 2025 16:06:31 -0700 Subject: [PATCH] feat(tools): add generic mail sending block/tools, updated docs script (#1348) * update infra and remove railway * feat(tools): add generic mail sending block/tools, updated docs script * Revert "update infra and remove railway" This reverts commit abfa2f8d51901247acc6397960210569e84d72b1. * remove message id * updated type --- apps/docs/content/docs/en/tools/airtable.mdx | 2 +- apps/docs/content/docs/en/tools/arxiv.mdx | 2 +- .../content/docs/en/tools/browser_use.mdx | 2 +- apps/docs/content/docs/en/tools/clay.mdx | 2 +- .../docs/content/docs/en/tools/confluence.mdx | 2 +- apps/docs/content/docs/en/tools/discord.mdx | 4 +- .../docs/content/docs/en/tools/elevenlabs.mdx | 2 +- apps/docs/content/docs/en/tools/exa.mdx | 2 +- apps/docs/content/docs/en/tools/file.mdx | 2 +- apps/docs/content/docs/en/tools/firecrawl.mdx | 2 +- .../content/docs/en/tools/generic_webhook.mdx | 2 +- apps/docs/content/docs/en/tools/github.mdx | 2 +- apps/docs/content/docs/en/tools/gmail.mdx | 2 +- .../content/docs/en/tools/google_calendar.mdx | 2 +- .../content/docs/en/tools/google_docs.mdx | 2 +- .../content/docs/en/tools/google_drive.mdx | 2 +- .../content/docs/en/tools/google_search.mdx | 2 +- .../content/docs/en/tools/google_sheets.mdx | 2 +- .../content/docs/en/tools/huggingface.mdx | 2 +- apps/docs/content/docs/en/tools/hunter.mdx | 2 +- .../content/docs/en/tools/image_generator.mdx | 2 +- apps/docs/content/docs/en/tools/jina.mdx | 2 +- apps/docs/content/docs/en/tools/jira.mdx | 2 +- apps/docs/content/docs/en/tools/knowledge.mdx | 2 +- apps/docs/content/docs/en/tools/linear.mdx | 5 +- apps/docs/content/docs/en/tools/linkup.mdx | 2 +- apps/docs/content/docs/en/tools/mail.mdx | 64 +++++++++++++ apps/docs/content/docs/en/tools/mcp.mdx | 40 ++++++++ apps/docs/content/docs/en/tools/mem0.mdx | 2 +- apps/docs/content/docs/en/tools/memory.mdx | 2 +- apps/docs/content/docs/en/tools/meta.json | 72 ++++++++++++++ .../content/docs/en/tools/microsoft_excel.mdx | 2 +- .../docs/en/tools/microsoft_planner.mdx | 2 +- .../content/docs/en/tools/microsoft_teams.mdx | 2 +- .../content/docs/en/tools/mistral_parse.mdx | 2 +- apps/docs/content/docs/en/tools/mongodb.mdx | 2 +- apps/docs/content/docs/en/tools/mysql.mdx | 2 +- apps/docs/content/docs/en/tools/notion.mdx | 2 +- apps/docs/content/docs/en/tools/onedrive.mdx | 2 +- apps/docs/content/docs/en/tools/openai.mdx | 2 +- apps/docs/content/docs/en/tools/outlook.mdx | 2 +- .../content/docs/en/tools/parallel_ai.mdx | 2 +- .../docs/content/docs/en/tools/perplexity.mdx | 2 +- apps/docs/content/docs/en/tools/pinecone.mdx | 2 +- .../docs/content/docs/en/tools/postgresql.mdx | 2 +- apps/docs/content/docs/en/tools/qdrant.mdx | 2 +- apps/docs/content/docs/en/tools/reddit.mdx | 2 +- apps/docs/content/docs/en/tools/s3.mdx | 2 +- apps/docs/content/docs/en/tools/schedule.mdx | 2 +- apps/docs/content/docs/en/tools/serper.mdx | 2 +- .../docs/content/docs/en/tools/sharepoint.mdx | 2 +- apps/docs/content/docs/en/tools/slack.mdx | 2 +- apps/docs/content/docs/en/tools/stagehand.mdx | 2 +- .../content/docs/en/tools/stagehand_agent.mdx | 2 +- apps/docs/content/docs/en/tools/supabase.mdx | 2 +- apps/docs/content/docs/en/tools/tavily.mdx | 2 +- apps/docs/content/docs/en/tools/telegram.mdx | 2 +- apps/docs/content/docs/en/tools/translate.mdx | 2 +- .../docs/content/docs/en/tools/twilio_sms.mdx | 2 +- apps/docs/content/docs/en/tools/typeform.mdx | 2 +- apps/docs/content/docs/en/tools/vision.mdx | 2 +- apps/docs/content/docs/en/tools/wealthbox.mdx | 2 +- apps/docs/content/docs/en/tools/whatsapp.mdx | 2 +- apps/docs/content/docs/en/tools/wikipedia.mdx | 2 +- apps/docs/content/docs/en/tools/x.mdx | 4 +- apps/docs/content/docs/en/tools/youtube.mdx | 2 +- apps/sim/app/api/tools/mail/send/route.ts | 94 +++++++++++++++++++ apps/sim/blocks/blocks/mail.ts | 66 +++++++++++++ apps/sim/blocks/registry.ts | 2 + apps/sim/lib/env.ts | 1 + apps/sim/tools/mail/index.ts | 3 + apps/sim/tools/mail/send.ts | 65 +++++++++++++ apps/sim/tools/mail/types.ts | 16 ++++ apps/sim/tools/registry.ts | 2 + scripts/bun.lock | 18 ++-- scripts/generate-block-docs.ts | 2 +- scripts/package.json | 12 +-- 77 files changed, 507 insertions(+), 83 deletions(-) create mode 100644 apps/docs/content/docs/en/tools/mail.mdx create mode 100644 apps/docs/content/docs/en/tools/mcp.mdx create mode 100644 apps/docs/content/docs/en/tools/meta.json create mode 100644 apps/sim/app/api/tools/mail/send/route.ts create mode 100644 apps/sim/blocks/blocks/mail.ts create mode 100644 apps/sim/tools/mail/index.ts create mode 100644 apps/sim/tools/mail/send.ts create mode 100644 apps/sim/tools/mail/types.ts diff --git a/apps/docs/content/docs/en/tools/airtable.mdx b/apps/docs/content/docs/en/tools/airtable.mdx index 8f8f51241..0cabaca3a 100644 --- a/apps/docs/content/docs/en/tools/airtable.mdx +++ b/apps/docs/content/docs/en/tools/airtable.mdx @@ -57,7 +57,7 @@ In Sim, the Airtable integration enables your agents to interact with your Airta ## Usage Instructions -Integrate Airtable functionality to manage table records. List, get, create, +Integrates Airtable into the workflow. Can create, get, list, or update Airtable records. Requires OAuth. Can be used in trigger mode to trigger a workflow when an update is made to an Airtable table. diff --git a/apps/docs/content/docs/en/tools/arxiv.mdx b/apps/docs/content/docs/en/tools/arxiv.mdx index 95d7bbd33..565d60d45 100644 --- a/apps/docs/content/docs/en/tools/arxiv.mdx +++ b/apps/docs/content/docs/en/tools/arxiv.mdx @@ -47,7 +47,7 @@ In Sim, the ArXiv integration enables your agents to programmatically search, re ## Usage Instructions -Search for academic papers, retrieve metadata, download papers, and access the vast collection of scientific research on ArXiv. +Integrates ArXiv into the workflow. Can search for papers, get paper details, and get author papers. Does not require OAuth or an API key. diff --git a/apps/docs/content/docs/en/tools/browser_use.mdx b/apps/docs/content/docs/en/tools/browser_use.mdx index 19ee312e8..7795433f9 100644 --- a/apps/docs/content/docs/en/tools/browser_use.mdx +++ b/apps/docs/content/docs/en/tools/browser_use.mdx @@ -57,7 +57,7 @@ In Sim, the BrowserUse integration allows your agents to interact with the web a ## Usage Instructions -Execute browser automation tasks with BrowserUse to navigate the web, scrape data, and perform actions as if a real user was interacting with the browser. The task runs asynchronously and the block will poll for completion before returning results. +Integrate Browser Use into the workflow. Can navigate the web and perform actions as if a real user was interacting with the browser. Requires API Key. diff --git a/apps/docs/content/docs/en/tools/clay.mdx b/apps/docs/content/docs/en/tools/clay.mdx index 364fc9f46..fa06fa911 100644 --- a/apps/docs/content/docs/en/tools/clay.mdx +++ b/apps/docs/content/docs/en/tools/clay.mdx @@ -198,7 +198,7 @@ In Sim, the Clay integration allows your agents to push structured data into Cla ## Usage Instructions -Populate Clay workbook with data using a JSON or plain text. Enables direct communication and notifications with channel confirmation. +Integrate Clay into the workflow. Can populate a table with data. Requires an API Key. diff --git a/apps/docs/content/docs/en/tools/confluence.mdx b/apps/docs/content/docs/en/tools/confluence.mdx index 981f39cf9..6a1c40949 100644 --- a/apps/docs/content/docs/en/tools/confluence.mdx +++ b/apps/docs/content/docs/en/tools/confluence.mdx @@ -43,7 +43,7 @@ In Sim, the Confluence integration enables your agents to access and leverage yo ## Usage Instructions -Connect to Confluence workspaces to retrieve and search documentation. Access page content, metadata, and integrate Confluence documentation into your workflows. +Integrate Confluence into the workflow. Can read and update a page. Requires OAuth. diff --git a/apps/docs/content/docs/en/tools/discord.mdx b/apps/docs/content/docs/en/tools/discord.mdx index a96c49964..bb3e76824 100644 --- a/apps/docs/content/docs/en/tools/discord.mdx +++ b/apps/docs/content/docs/en/tools/discord.mdx @@ -22,7 +22,7 @@ import { BlockInfoCard } from "@/components/ui/block-info-card" @@ -57,7 +57,7 @@ Discord components in Sim use efficient lazy loading, only fetching data when ne ## Usage Instructions -Connect to Discord to send messages, manage channels, and interact with servers. Automate notifications, community management, and integrate Discord into your workflows. +Integrate Discord into the workflow. Can send and get messages, get server information, and get a user’s information. Requires bot API key. diff --git a/apps/docs/content/docs/en/tools/elevenlabs.mdx b/apps/docs/content/docs/en/tools/elevenlabs.mdx index 18fc2c18d..bb109e602 100644 --- a/apps/docs/content/docs/en/tools/elevenlabs.mdx +++ b/apps/docs/content/docs/en/tools/elevenlabs.mdx @@ -39,7 +39,7 @@ In Sim, the ElevenLabs integration enables your agents to convert text to lifeli ## Usage Instructions -Generate realistic speech from text using ElevenLabs voices. +Integrate ElevenLabs into the workflow. Can convert text to speech. Requires API key. diff --git a/apps/docs/content/docs/en/tools/exa.mdx b/apps/docs/content/docs/en/tools/exa.mdx index baaaace97..851714697 100644 --- a/apps/docs/content/docs/en/tools/exa.mdx +++ b/apps/docs/content/docs/en/tools/exa.mdx @@ -44,7 +44,7 @@ In Sim, the Exa integration allows your agents to search the web for information ## Usage Instructions -Search the web, retrieve content, find similar links, and answer questions using Exa's powerful AI search capabilities. +Integrate Exa into the workflow. Can search, get contents, find similar links, answer a question, and perform research. Requires API Key. diff --git a/apps/docs/content/docs/en/tools/file.mdx b/apps/docs/content/docs/en/tools/file.mdx index dde3c21e4..e73715ec7 100644 --- a/apps/docs/content/docs/en/tools/file.mdx +++ b/apps/docs/content/docs/en/tools/file.mdx @@ -50,7 +50,7 @@ The File Parser tool is particularly useful for scenarios where your agents need ## Usage Instructions -Upload and extract contents from structured file formats including PDFs, CSV spreadsheets, and Word documents (DOCX). You can either provide a URL to a file or upload files directly. Specialized parsers extract text and metadata from each format. You can upload multiple files at once and access them individually or as a combined document. +Integrate File into the workflow. Can upload a file manually or insert a file url. diff --git a/apps/docs/content/docs/en/tools/firecrawl.mdx b/apps/docs/content/docs/en/tools/firecrawl.mdx index c478a258e..f135cf18e 100644 --- a/apps/docs/content/docs/en/tools/firecrawl.mdx +++ b/apps/docs/content/docs/en/tools/firecrawl.mdx @@ -59,7 +59,7 @@ This allows your agents to gather information from websites, extract structured ## Usage Instructions -Extract content from any website with advanced web scraping or search the web for information. Retrieve clean, structured data from web pages with options to focus on main content, or intelligently search for information across the web. +Integrate Firecrawl into the workflow. Can search, scrape, or crawl websites. Requires API Key. diff --git a/apps/docs/content/docs/en/tools/generic_webhook.mdx b/apps/docs/content/docs/en/tools/generic_webhook.mdx index 048916b7a..76352d64b 100644 --- a/apps/docs/content/docs/en/tools/generic_webhook.mdx +++ b/apps/docs/content/docs/en/tools/generic_webhook.mdx @@ -1,6 +1,6 @@ --- title: Webhook -description: Receive webhooks from any service +description: Receive webhooks from any service by configuring a custom webhook. --- import { BlockInfoCard } from "@/components/ui/block-info-card" diff --git a/apps/docs/content/docs/en/tools/github.mdx b/apps/docs/content/docs/en/tools/github.mdx index 3169cf4f7..9f5fcf151 100644 --- a/apps/docs/content/docs/en/tools/github.mdx +++ b/apps/docs/content/docs/en/tools/github.mdx @@ -35,7 +35,7 @@ In Sim, the GitHub integration enables your agents to interact directly with Git ## Usage Instructions -Access GitHub repositories, pull requests, and comments through the GitHub API. Automate code reviews, PR management, and repository interactions within your workflow. Trigger workflows from GitHub events like push, pull requests, and issues. +Integrate Github into the workflow. Can get get PR details, create PR comment, get repository info, and get latest commit. Requires github token API Key. Can be used in trigger mode to trigger a workflow when a PR is created, commented on, or a commit is pushed. diff --git a/apps/docs/content/docs/en/tools/gmail.mdx b/apps/docs/content/docs/en/tools/gmail.mdx index 3da6f2aaa..e0913ad02 100644 --- a/apps/docs/content/docs/en/tools/gmail.mdx +++ b/apps/docs/content/docs/en/tools/gmail.mdx @@ -51,7 +51,7 @@ In Sim, the Gmail integration enables your agents to send, read, and search emai ## Usage Instructions -Comprehensive Gmail integration with OAuth authentication. Send email messages, read email content, and trigger workflows from Gmail events like new emails and label changes. +Integrate Gmail into the workflow. Can send, read, and search emails. Requires OAuth. Can be used in trigger mode to trigger a workflow when a new email is received. diff --git a/apps/docs/content/docs/en/tools/google_calendar.mdx b/apps/docs/content/docs/en/tools/google_calendar.mdx index b51c247c3..4a7eb3dd7 100644 --- a/apps/docs/content/docs/en/tools/google_calendar.mdx +++ b/apps/docs/content/docs/en/tools/google_calendar.mdx @@ -90,7 +90,7 @@ In Sim, the Google Calendar integration enables your agents to programmatically ## Usage Instructions -Integrate Google Calendar functionality to create, read, update, and list calendar events within your workflow. Automate scheduling, check availability, and manage events using OAuth authentication. Email invitations are sent asynchronously and delivery depends on recipients' Google Calendar settings. +Integrate Google Calendar into the workflow. Can create, read, update, and list calendar events. Requires OAuth. diff --git a/apps/docs/content/docs/en/tools/google_docs.mdx b/apps/docs/content/docs/en/tools/google_docs.mdx index 593d74fc2..5bdf21d89 100644 --- a/apps/docs/content/docs/en/tools/google_docs.mdx +++ b/apps/docs/content/docs/en/tools/google_docs.mdx @@ -81,7 +81,7 @@ In Sim, the Google Docs integration enables your agents to interact directly wit ## Usage Instructions -Integrate Google Docs functionality to manage documents. Read content from existing documents, write to documents, and create new documents using OAuth authentication. Supports text content manipulation for document creation and editing. +Integrate Google Docs into the workflow. Can read, write, and create documents. Requires OAuth. diff --git a/apps/docs/content/docs/en/tools/google_drive.mdx b/apps/docs/content/docs/en/tools/google_drive.mdx index f6a2e1ec7..164dd67ad 100644 --- a/apps/docs/content/docs/en/tools/google_drive.mdx +++ b/apps/docs/content/docs/en/tools/google_drive.mdx @@ -73,7 +73,7 @@ In Sim, the Google Drive integration enables your agents to interact directly wi ## Usage Instructions -Integrate Google Drive functionality to manage files and folders. Upload new files, get content from existing files, create new folders, and list contents of folders using OAuth authentication. Supports file operations with custom MIME types and folder organization. +Integrate Google Drive into the workflow. Can create, upload, and list files. Requires OAuth. diff --git a/apps/docs/content/docs/en/tools/google_search.mdx b/apps/docs/content/docs/en/tools/google_search.mdx index 805881f63..260f3da8f 100644 --- a/apps/docs/content/docs/en/tools/google_search.mdx +++ b/apps/docs/content/docs/en/tools/google_search.mdx @@ -58,7 +58,7 @@ In Sim, the Google Search integration enables your agents to search the web prog ## Usage Instructions -Searches the web using the Google Custom Search API, which provides high-quality search results from the entire internet or a specific site defined by a custom search engine ID. +Integrate Google Search into the workflow. Can search the web. Requires API Key. diff --git a/apps/docs/content/docs/en/tools/google_sheets.mdx b/apps/docs/content/docs/en/tools/google_sheets.mdx index 9339cdaab..5e4688e0a 100644 --- a/apps/docs/content/docs/en/tools/google_sheets.mdx +++ b/apps/docs/content/docs/en/tools/google_sheets.mdx @@ -96,7 +96,7 @@ In Sim, the Google Sheets integration enables your agents to interact directly w ## Usage Instructions -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. +Integrate Google Sheets into the workflow. Can read, write, append, and update data. Requires OAuth. diff --git a/apps/docs/content/docs/en/tools/huggingface.mdx b/apps/docs/content/docs/en/tools/huggingface.mdx index afba28133..d40703259 100644 --- a/apps/docs/content/docs/en/tools/huggingface.mdx +++ b/apps/docs/content/docs/en/tools/huggingface.mdx @@ -66,7 +66,7 @@ In Sim, the HuggingFace integration enables your agents to programmatically gene ## Usage Instructions -Generate completions using Hugging Face Inference API with access to various open-source models. Leverage cutting-edge AI models for chat completions, content generation, and AI-powered conversations with customizable parameters. +Integrate Hugging Face into the workflow. Can generate completions using the Hugging Face Inference API. Requires API Key. diff --git a/apps/docs/content/docs/en/tools/hunter.mdx b/apps/docs/content/docs/en/tools/hunter.mdx index 03e230995..95c2f8b0d 100644 --- a/apps/docs/content/docs/en/tools/hunter.mdx +++ b/apps/docs/content/docs/en/tools/hunter.mdx @@ -41,7 +41,7 @@ In Sim, the Hunter.io integration enables your agents to programmatically search ## Usage Instructions -Search for email addresses, verify their deliverability, discover companies, and enrich contact data using Hunter.io's powerful email finding capabilities. +Integrate Hunter into the workflow. Can search domains, find email addresses, verify email addresses, discover companies, find companies, and count email addresses. Requires API Key. diff --git a/apps/docs/content/docs/en/tools/image_generator.mdx b/apps/docs/content/docs/en/tools/image_generator.mdx index 4fbc3fbb5..ebda40713 100644 --- a/apps/docs/content/docs/en/tools/image_generator.mdx +++ b/apps/docs/content/docs/en/tools/image_generator.mdx @@ -46,7 +46,7 @@ In Sim, the DALL-E integration enables your agents to generate images programmat ## Usage Instructions -Create high-quality images using OpenAI's image generation models. Configure resolution, quality, style, and other parameters to get exactly the image you need. +Integrate Image Generator into the workflow. Can generate images using DALL-E 3 or GPT Image. Requires API Key. diff --git a/apps/docs/content/docs/en/tools/jina.mdx b/apps/docs/content/docs/en/tools/jina.mdx index f0d0061c3..7d81fbd37 100644 --- a/apps/docs/content/docs/en/tools/jina.mdx +++ b/apps/docs/content/docs/en/tools/jina.mdx @@ -63,7 +63,7 @@ This integration is particularly valuable for building agents that need to gathe ## Usage Instructions -Transform web content into clean, readable text using Jina AI's advanced extraction capabilities. Extract meaningful content from websites while preserving important information and optionally gathering links. +Integrate Jina into the workflow. Extracts content from websites. Requires API Key. diff --git a/apps/docs/content/docs/en/tools/jira.mdx b/apps/docs/content/docs/en/tools/jira.mdx index ed729b2c7..798578437 100644 --- a/apps/docs/content/docs/en/tools/jira.mdx +++ b/apps/docs/content/docs/en/tools/jira.mdx @@ -43,7 +43,7 @@ In Sim, the Jira integration allows your agents to seamlessly interact with your ## Usage Instructions -Connect to Jira workspaces to read, write, and update issues. Access content, metadata, and integrate Jira documentation into your workflows. +Integrate Jira into the workflow. Can read, write, and update issues. Requires OAuth. diff --git a/apps/docs/content/docs/en/tools/knowledge.mdx b/apps/docs/content/docs/en/tools/knowledge.mdx index 525f3f8cc..40e96aef1 100644 --- a/apps/docs/content/docs/en/tools/knowledge.mdx +++ b/apps/docs/content/docs/en/tools/knowledge.mdx @@ -49,7 +49,7 @@ In Sim, the Knowledge Base block enables your agents to perform intelligent sema ## Usage Instructions -Perform semantic vector search across knowledge bases, upload individual chunks to existing documents, or create new documents from text content. Uses advanced AI embeddings to understand meaning and context for search operations. +Integrate Knowledge into the workflow. Can search, upload chunks, and create documents. diff --git a/apps/docs/content/docs/en/tools/linear.mdx b/apps/docs/content/docs/en/tools/linear.mdx index 3da9fc927..8db184119 100644 --- a/apps/docs/content/docs/en/tools/linear.mdx +++ b/apps/docs/content/docs/en/tools/linear.mdx @@ -10,11 +10,8 @@ import { BlockInfoCard } from "@/components/ui/block-info-card" color="#5E6AD2" icon={true} iconSvg={` + + `} +/> + +## Usage Instructions + +Send emails directly using the internal mail service. Uses MAIL_BLOCK_FROM_ADDRESS if configured, otherwise falls back to FROM_EMAIL_ADDRESS. No external configuration or OAuth required. Perfect for sending notifications, alerts, or general purpose emails from your workflows. Supports HTML formatting. + + + +## Tools + +### `mail_send` + +Send an email using the internal mail service without requiring OAuth or external configuration + +#### Input + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `to` | string | Yes | Recipient email address | +| `subject` | string | Yes | Email subject | +| `body` | string | Yes | Email body content | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `success` | boolean | Whether the email was sent successfully | +| `to` | string | Recipient email address | +| `subject` | string | Email subject | +| `body` | string | Email body content | + + + +## Notes + +- Category: `tools` +- Type: `mail` diff --git a/apps/docs/content/docs/en/tools/mcp.mdx b/apps/docs/content/docs/en/tools/mcp.mdx new file mode 100644 index 000000000..acc01f6e2 --- /dev/null +++ b/apps/docs/content/docs/en/tools/mcp.mdx @@ -0,0 +1,40 @@ +--- +title: MCP Tool +description: Execute tools from Model Context Protocol (MCP) servers +--- + +import { BlockInfoCard } from "@/components/ui/block-info-card" + + + + + + + `} +/> + +## Usage Instructions + +Integrate MCP into the workflow. Can execute tools from MCP servers. Requires MCP servers in workspace settings. + + + + + +## Notes + +- Category: `tools` +- Type: `mcp` diff --git a/apps/docs/content/docs/en/tools/mem0.mdx b/apps/docs/content/docs/en/tools/mem0.mdx index 442cf9506..9b7f1a851 100644 --- a/apps/docs/content/docs/en/tools/mem0.mdx +++ b/apps/docs/content/docs/en/tools/mem0.mdx @@ -44,7 +44,7 @@ In Sim, the Mem0 integration enables your agents to maintain persistent memory a ## Usage Instructions -Add, search, retrieve, and delete memories using Mem0. Store conversation history, user preferences, and context across workflow executions for enhanced AI agent capabilities. +Integrate Mem0 into the workflow. Can add, search, and retrieve memories. Requires API Key. diff --git a/apps/docs/content/docs/en/tools/memory.mdx b/apps/docs/content/docs/en/tools/memory.mdx index e9324e0a6..1f1bf234d 100644 --- a/apps/docs/content/docs/en/tools/memory.mdx +++ b/apps/docs/content/docs/en/tools/memory.mdx @@ -35,7 +35,7 @@ import { BlockInfoCard } from "@/components/ui/block-info-card" ## Usage Instructions -Create persistent storage for data that needs to be accessed across multiple workflow steps. Store and retrieve information throughout your workflow execution to maintain context and state. +Integrate Memory into the workflow. Can add, get a memory, get all memories, and delete memories. diff --git a/apps/docs/content/docs/en/tools/meta.json b/apps/docs/content/docs/en/tools/meta.json new file mode 100644 index 000000000..0f06f0047 --- /dev/null +++ b/apps/docs/content/docs/en/tools/meta.json @@ -0,0 +1,72 @@ +{ + "items": [ + "index", + "airtable", + "arxiv", + "browser_use", + "clay", + "confluence", + "discord", + "elevenlabs", + "exa", + "file", + "firecrawl", + "generic_webhook", + "github", + "gmail", + "google_calendar", + "google_docs", + "google_drive", + "google_search", + "google_sheets", + "huggingface", + "hunter", + "image_generator", + "jina", + "jira", + "knowledge", + "linear", + "linkup", + "mail", + "mcp", + "mem0", + "memory", + "microsoft_excel", + "microsoft_planner", + "microsoft_teams", + "mistral_parse", + "mongodb", + "mysql", + "notion", + "onedrive", + "openai", + "outlook", + "parallel_ai", + "perplexity", + "pinecone", + "postgresql", + "qdrant", + "reddit", + "s3", + "schedule", + "serper", + "sharepoint", + "slack", + "stagehand", + "stagehand_agent", + "supabase", + "tavily", + "telegram", + "thinking", + "translate", + "twilio_sms", + "typeform", + "vision", + "wealthbox", + "webhook", + "whatsapp", + "wikipedia", + "x", + "youtube" + ] +} diff --git a/apps/docs/content/docs/en/tools/microsoft_excel.mdx b/apps/docs/content/docs/en/tools/microsoft_excel.mdx index 2f7bb4240..901f08fb9 100644 --- a/apps/docs/content/docs/en/tools/microsoft_excel.mdx +++ b/apps/docs/content/docs/en/tools/microsoft_excel.mdx @@ -94,7 +94,7 @@ In Sim, the Microsoft Excel integration provides seamless access to spreadsheet ## Usage Instructions -Integrate Microsoft Excel functionality to manage spreadsheet data. Read data from specific ranges, write new data, update existing cells, and manipulate table data using OAuth authentication. Supports various input and output formats for flexible data handling. +Integrate Microsoft Excel into the workflow. Can read, write, update, and add to table. Requires OAuth. diff --git a/apps/docs/content/docs/en/tools/microsoft_planner.mdx b/apps/docs/content/docs/en/tools/microsoft_planner.mdx index 08b4bc2db..0348c047d 100644 --- a/apps/docs/content/docs/en/tools/microsoft_planner.mdx +++ b/apps/docs/content/docs/en/tools/microsoft_planner.mdx @@ -122,7 +122,7 @@ In Sim, the Microsoft Planner integration allows your agents to programmatically ## Usage Instructions -Integrate Microsoft Planner functionality to manage tasks. Read all user tasks, tasks from specific plans, individual tasks, or create new tasks with various properties like title, description, due date, and assignees using OAuth authentication. +Integrate Microsoft Planner into the workflow. Can read and create tasks. Requires OAuth. diff --git a/apps/docs/content/docs/en/tools/microsoft_teams.mdx b/apps/docs/content/docs/en/tools/microsoft_teams.mdx index 81ae2e4b5..12c559a8e 100644 --- a/apps/docs/content/docs/en/tools/microsoft_teams.mdx +++ b/apps/docs/content/docs/en/tools/microsoft_teams.mdx @@ -98,7 +98,7 @@ In Sim, the Microsoft Teams integration enables your agents to interact directly ## Usage Instructions -Integrate Microsoft Teams functionality to manage messages. Read content from existing messages and write to messages using OAuth authentication. Supports text content manipulation for message creation and editing. +Integrate Microsoft Teams into the workflow. Can read and write chat messages, and read and write channel messages. Requires OAuth. Can be used in trigger mode to trigger a workflow when a message is sent to a chat or channel. diff --git a/apps/docs/content/docs/en/tools/mistral_parse.mdx b/apps/docs/content/docs/en/tools/mistral_parse.mdx index 08fadae49..4024ba5c4 100644 --- a/apps/docs/content/docs/en/tools/mistral_parse.mdx +++ b/apps/docs/content/docs/en/tools/mistral_parse.mdx @@ -79,7 +79,7 @@ The Mistral Parse tool is particularly useful for scenarios where your agents ne ## Usage Instructions -Extract text and structure from PDF documents using Mistral's OCR API. Either enter a URL to a PDF document or upload a PDF file directly. Configure processing options and get the content in your preferred format. For URLs, they must be publicly accessible and point to a valid PDF file. Note: Google Drive, Dropbox, and other cloud storage links are not supported; use a direct download URL from a web server instead. +Integrate Mistral Parse into the workflow. Can extract text from uploaded PDF documents, or from a URL. Requires API Key. diff --git a/apps/docs/content/docs/en/tools/mongodb.mdx b/apps/docs/content/docs/en/tools/mongodb.mdx index 0e3973ad0..94000f785 100644 --- a/apps/docs/content/docs/en/tools/mongodb.mdx +++ b/apps/docs/content/docs/en/tools/mongodb.mdx @@ -111,7 +111,7 @@ import { BlockInfoCard } from "@/components/ui/block-info-card" ## Usage Instructions -Connect to any MongoDB database to execute queries, manage data, and perform database operations. Supports find, insert, update, delete, and aggregation operations with secure connection handling. +Integrate MongoDB into the workflow. Can find, insert, update, delete, and aggregate data. diff --git a/apps/docs/content/docs/en/tools/mysql.mdx b/apps/docs/content/docs/en/tools/mysql.mdx index 14125a962..96c8d65be 100644 --- a/apps/docs/content/docs/en/tools/mysql.mdx +++ b/apps/docs/content/docs/en/tools/mysql.mdx @@ -42,7 +42,7 @@ The MySQL tool is ideal for scenarios where your agents need to interact with st ## Usage Instructions -Connect to any MySQL database to execute queries, manage data, and perform database operations. Supports SELECT, INSERT, UPDATE, DELETE operations with secure connection handling. +Integrate MySQL into the workflow. Can query, insert, update, delete, and execute raw SQL. diff --git a/apps/docs/content/docs/en/tools/notion.mdx b/apps/docs/content/docs/en/tools/notion.mdx index 5b117623a..2fc652619 100644 --- a/apps/docs/content/docs/en/tools/notion.mdx +++ b/apps/docs/content/docs/en/tools/notion.mdx @@ -45,7 +45,7 @@ This integration bridges the gap between your AI workflows and your knowledge ba ## Usage Instructions -Integrate with Notion to read content from pages, write new content, and create new pages. +Integrate with Notion into the workflow. Can read page, read database, create page, create database, append content, query database, and search workspace. Requires OAuth. diff --git a/apps/docs/content/docs/en/tools/onedrive.mdx b/apps/docs/content/docs/en/tools/onedrive.mdx index 0233aa87a..f4f13da16 100644 --- a/apps/docs/content/docs/en/tools/onedrive.mdx +++ b/apps/docs/content/docs/en/tools/onedrive.mdx @@ -51,7 +51,7 @@ In Sim, the OneDrive integration enables your agents to directly interact with y ## Usage Instructions -Integrate OneDrive functionality to manage files and folders. Upload new files, create new folders, and list contents of folders using OAuth authentication. Supports file operations with custom MIME types and folder organization. +Integrate OneDrive into the workflow. Can create, upload, and list files. Requires OAuth. diff --git a/apps/docs/content/docs/en/tools/openai.mdx b/apps/docs/content/docs/en/tools/openai.mdx index f445f359d..b756bc4c2 100644 --- a/apps/docs/content/docs/en/tools/openai.mdx +++ b/apps/docs/content/docs/en/tools/openai.mdx @@ -43,7 +43,7 @@ In Sim, the OpenAI integration enables your agents to leverage these powerful AI ## Usage Instructions -Convert text into numerical vector representations using OpenAI's embedding models. Transform text data into embeddings for semantic search, clustering, and other vector-based operations. +Integrate Embeddings into the workflow. Can generate embeddings from text. Requires API Key. diff --git a/apps/docs/content/docs/en/tools/outlook.mdx b/apps/docs/content/docs/en/tools/outlook.mdx index d9aa94eeb..2eab5795f 100644 --- a/apps/docs/content/docs/en/tools/outlook.mdx +++ b/apps/docs/content/docs/en/tools/outlook.mdx @@ -140,7 +140,7 @@ In Sim, the Microsoft Outlook integration enables your agents to interact direct ## Usage Instructions -Integrate Outlook functionality to read, draft, andsend email messages within your workflow. Automate email communications and process email content using OAuth authentication. +Integrate Outlook into the workflow. Can read, draft, and send email messages. Requires OAuth. Can be used in trigger mode to trigger a workflow when a new email is received. diff --git a/apps/docs/content/docs/en/tools/parallel_ai.mdx b/apps/docs/content/docs/en/tools/parallel_ai.mdx index 39b8730dd..17e909a4e 100644 --- a/apps/docs/content/docs/en/tools/parallel_ai.mdx +++ b/apps/docs/content/docs/en/tools/parallel_ai.mdx @@ -71,7 +71,7 @@ In Sim, the Parallel AI integration empowers your agents to perform web searches ## Usage Instructions -Search the web using Parallel AI's advanced search capabilities. Get comprehensive results with intelligent processing and content extraction. +Integrate Parallel AI into the workflow. Can search the web. Requires API Key. diff --git a/apps/docs/content/docs/en/tools/perplexity.mdx b/apps/docs/content/docs/en/tools/perplexity.mdx index ed690490f..1497395d7 100644 --- a/apps/docs/content/docs/en/tools/perplexity.mdx +++ b/apps/docs/content/docs/en/tools/perplexity.mdx @@ -37,7 +37,7 @@ In Sim, the Perplexity integration enables your agents to leverage these powerfu ## Usage Instructions -Generate completions using Perplexity AI models with real-time knowledge and search capabilities. Create responses, answer questions, and generate content with customizable parameters. +Integrate Perplexity into the workflow. Can generate completions using Perplexity AI chat models. Requires API Key. diff --git a/apps/docs/content/docs/en/tools/pinecone.mdx b/apps/docs/content/docs/en/tools/pinecone.mdx index 6eb76e202..4d4ac75e2 100644 --- a/apps/docs/content/docs/en/tools/pinecone.mdx +++ b/apps/docs/content/docs/en/tools/pinecone.mdx @@ -45,7 +45,7 @@ In Sim, the Pinecone integration enables your agents to leverage vector search c ## Usage Instructions -Store, search, and retrieve vector embeddings using Pinecone's specialized vector database. Generate embeddings from text and perform semantic similarity searches with customizable filtering options. +Integrate Pinecone into the workflow. Can generate embeddings, upsert text, search with text, fetch vectors, and search with vectors. Requires API Key. diff --git a/apps/docs/content/docs/en/tools/postgresql.mdx b/apps/docs/content/docs/en/tools/postgresql.mdx index e79d5661e..517f3c977 100644 --- a/apps/docs/content/docs/en/tools/postgresql.mdx +++ b/apps/docs/content/docs/en/tools/postgresql.mdx @@ -50,7 +50,7 @@ The PostgreSQL tool is ideal for scenarios where your agents need to interact wi ## Usage Instructions -Connect to any PostgreSQL database to execute queries, manage data, and perform database operations. Supports SELECT, INSERT, UPDATE, DELETE operations with secure connection handling. +Integrate PostgreSQL into the workflow. Can query, insert, update, delete, and execute raw SQL. diff --git a/apps/docs/content/docs/en/tools/qdrant.mdx b/apps/docs/content/docs/en/tools/qdrant.mdx index 44a7719da..1b9a34e0f 100644 --- a/apps/docs/content/docs/en/tools/qdrant.mdx +++ b/apps/docs/content/docs/en/tools/qdrant.mdx @@ -103,7 +103,7 @@ This integration allows your agents to leverage powerful vector search and manag ## Usage Instructions -Store, search, and retrieve vector embeddings using Qdrant. Perform semantic similarity searches and manage your vector collections. +Integrate Qdrant into the workflow. Can upsert, search, and fetch points. Requires API Key. diff --git a/apps/docs/content/docs/en/tools/reddit.mdx b/apps/docs/content/docs/en/tools/reddit.mdx index 851d4c759..da0dfc607 100644 --- a/apps/docs/content/docs/en/tools/reddit.mdx +++ b/apps/docs/content/docs/en/tools/reddit.mdx @@ -39,7 +39,7 @@ These operations let your agents access and analyze Reddit content as part of yo ## Usage Instructions -Access Reddit data to retrieve posts and comments from any subreddit. Get post titles, content, authors, scores, comments and more. +Integrate Reddit into the workflow. Can get posts and comments from a subreddit. Requires OAuth. diff --git a/apps/docs/content/docs/en/tools/s3.mdx b/apps/docs/content/docs/en/tools/s3.mdx index b6955bafa..ab549c5cd 100644 --- a/apps/docs/content/docs/en/tools/s3.mdx +++ b/apps/docs/content/docs/en/tools/s3.mdx @@ -62,7 +62,7 @@ In Sim, the S3 integration enables your agents to retrieve and access files stor ## Usage Instructions -Retrieve and view files from Amazon S3 buckets using presigned URLs. +Integrate S3 into the workflow. Can get presigned URLs for S3 objects. Requires access key and secret access key. diff --git a/apps/docs/content/docs/en/tools/schedule.mdx b/apps/docs/content/docs/en/tools/schedule.mdx index 5332f9002..a867bdfb1 100644 --- a/apps/docs/content/docs/en/tools/schedule.mdx +++ b/apps/docs/content/docs/en/tools/schedule.mdx @@ -30,7 +30,7 @@ import { BlockInfoCard } from "@/components/ui/block-info-card" ## Usage Instructions -Configure automated workflow execution with flexible timing options. Set up recurring workflows that run at specific intervals or times. +Integrate Schedule into the workflow. Can trigger a workflow on a schedule configuration. diff --git a/apps/docs/content/docs/en/tools/serper.mdx b/apps/docs/content/docs/en/tools/serper.mdx index 73b551c09..e70b5ea17 100644 --- a/apps/docs/content/docs/en/tools/serper.mdx +++ b/apps/docs/content/docs/en/tools/serper.mdx @@ -78,7 +78,7 @@ In Sim, the Serper integration enables your agents to leverage the power of web ## Usage Instructions -Access real-time web search results with Serper's Google Search API integration. Retrieve structured search data including web pages, news, images, and places with customizable language and region settings. +Integrate Serper into the workflow. Can search the web. Requires API Key. diff --git a/apps/docs/content/docs/en/tools/sharepoint.mdx b/apps/docs/content/docs/en/tools/sharepoint.mdx index e08cbf903..9b42322de 100644 --- a/apps/docs/content/docs/en/tools/sharepoint.mdx +++ b/apps/docs/content/docs/en/tools/sharepoint.mdx @@ -61,7 +61,7 @@ In Sim, the SharePoint integration empowers your agents to create and access Sha ## Usage Instructions -Integrate Sharepoint functionality to manage pages. Read and create pages, and list sites using OAuth authentication. Supports page operations with custom MIME types and folder organization. +Integrate Sharepoint into the workflow. Can read and create pages, and list sites. Requires OAuth. diff --git a/apps/docs/content/docs/en/tools/slack.mdx b/apps/docs/content/docs/en/tools/slack.mdx index 68c4ac50f..864cfaf16 100644 --- a/apps/docs/content/docs/en/tools/slack.mdx +++ b/apps/docs/content/docs/en/tools/slack.mdx @@ -64,7 +64,7 @@ This allows for powerful automation scenarios such as sending notifications, ale ## Usage Instructions -Comprehensive Slack integration with OAuth authentication. Send formatted messages using Slack's mrkdwn syntax or trigger workflows from Slack events like mentions and messages. +Integrate Slack into the workflow. Can send messages, create canvases, and read messages. Requires OAuth. Can be used in trigger mode to trigger a workflow when a message is sent to a channel. diff --git a/apps/docs/content/docs/en/tools/stagehand.mdx b/apps/docs/content/docs/en/tools/stagehand.mdx index eef1a2cb7..d22d1ef28 100644 --- a/apps/docs/content/docs/en/tools/stagehand.mdx +++ b/apps/docs/content/docs/en/tools/stagehand.mdx @@ -191,7 +191,7 @@ In Sim, the Stagehand integration enables your agents to extract structured data ## Usage Instructions -Use Stagehand to extract structured data from webpages using Browserbase and OpenAI. +Integrate Stagehand into the workflow. Can extract structured data from webpages. Requires API Key. diff --git a/apps/docs/content/docs/en/tools/stagehand_agent.mdx b/apps/docs/content/docs/en/tools/stagehand_agent.mdx index fa48d02e6..56ceaa88c 100644 --- a/apps/docs/content/docs/en/tools/stagehand_agent.mdx +++ b/apps/docs/content/docs/en/tools/stagehand_agent.mdx @@ -195,7 +195,7 @@ In Sim, the Stagehand integration enables your agents to seamlessly interact wit ## Usage Instructions -Use Stagehand to create an autonomous web browsing agent that can navigate across websites, perform tasks, and return structured data. +Integrate Stagehand Agent into the workflow. Can navigate the web and perform tasks. Requires API Key. diff --git a/apps/docs/content/docs/en/tools/supabase.mdx b/apps/docs/content/docs/en/tools/supabase.mdx index 3d5917902..7f0cbe4db 100644 --- a/apps/docs/content/docs/en/tools/supabase.mdx +++ b/apps/docs/content/docs/en/tools/supabase.mdx @@ -76,7 +76,7 @@ Whether you’re building internal tools, automating business processes, or powe ## Usage Instructions -Integrate with Supabase to manage your database, authentication, storage, and more. Query data, manage users, and interact with Supabase services directly. +Integrate Supabase into the workflow. Can get many rows, get, create, update, delete, and upsert a row. diff --git a/apps/docs/content/docs/en/tools/tavily.mdx b/apps/docs/content/docs/en/tools/tavily.mdx index c54e49c2f..6b6d3c61a 100644 --- a/apps/docs/content/docs/en/tools/tavily.mdx +++ b/apps/docs/content/docs/en/tools/tavily.mdx @@ -58,7 +58,7 @@ In Sim, the Tavily integration enables your agents to search the web and extract ## Usage Instructions -Access Tavily's AI-powered search engine to find relevant information from across the web. Extract and process content from specific URLs with customizable depth options. +Integrate Tavily into the workflow. Can search the web and extract content from specific URLs. Requires API Key. diff --git a/apps/docs/content/docs/en/tools/telegram.mdx b/apps/docs/content/docs/en/tools/telegram.mdx index 2dd0beae2..34a364230 100644 --- a/apps/docs/content/docs/en/tools/telegram.mdx +++ b/apps/docs/content/docs/en/tools/telegram.mdx @@ -67,7 +67,7 @@ In Sim, the Telegram integration enables your agents to leverage these powerful ## Usage Instructions -Send messages to any Telegram channel using your Bot API key or trigger workflows from Telegram bot messages. Integrate automated notifications and alerts into your workflow to keep your team informed. +Integrate Telegram into the workflow. Can send messages. Can be used in trigger mode to trigger a workflow when a message is sent to a chat. diff --git a/apps/docs/content/docs/en/tools/translate.mdx b/apps/docs/content/docs/en/tools/translate.mdx index 1676f1119..4c9afb0f3 100644 --- a/apps/docs/content/docs/en/tools/translate.mdx +++ b/apps/docs/content/docs/en/tools/translate.mdx @@ -48,7 +48,7 @@ With Translate, you can: ## Usage Instructions -Convert text between languages while preserving meaning, nuance, and formatting. Utilize powerful language models to produce natural, fluent translations with appropriate cultural adaptations. +Integrate Translate into the workflow. Can translate text to any language. diff --git a/apps/docs/content/docs/en/tools/twilio_sms.mdx b/apps/docs/content/docs/en/tools/twilio_sms.mdx index 25d4a5164..300a04e0d 100644 --- a/apps/docs/content/docs/en/tools/twilio_sms.mdx +++ b/apps/docs/content/docs/en/tools/twilio_sms.mdx @@ -34,7 +34,7 @@ In Sim, the Twilio SMS integration enables your agents to leverage these powerfu ## Usage Instructions -Send text messages to single or multiple recipients using the Twilio API. +Integrate Twilio into the workflow. Can send SMS messages. diff --git a/apps/docs/content/docs/en/tools/typeform.mdx b/apps/docs/content/docs/en/tools/typeform.mdx index 996490c66..5dba60f94 100644 --- a/apps/docs/content/docs/en/tools/typeform.mdx +++ b/apps/docs/content/docs/en/tools/typeform.mdx @@ -47,7 +47,7 @@ In Sim, the Typeform integration enables your agents to programmatically interac ## Usage Instructions -Access and retrieve responses from your Typeform forms. Integrate form submissions data into your workflow for analysis, storage, or processing. +Integrate Typeform into the workflow. Can retrieve responses, download files, and get form insights. Requires API Key. diff --git a/apps/docs/content/docs/en/tools/vision.mdx b/apps/docs/content/docs/en/tools/vision.mdx index c26c9937a..ddb0e426d 100644 --- a/apps/docs/content/docs/en/tools/vision.mdx +++ b/apps/docs/content/docs/en/tools/vision.mdx @@ -47,7 +47,7 @@ In Sim, the Vision integration enables your agents to analyze images with vision ## Usage Instructions -Process visual content with customizable prompts to extract insights and information from images. +Integrate Vision into the workflow. Can analyze images with vision models. Requires API Key. diff --git a/apps/docs/content/docs/en/tools/wealthbox.mdx b/apps/docs/content/docs/en/tools/wealthbox.mdx index a623401b5..a6f05ab6a 100644 --- a/apps/docs/content/docs/en/tools/wealthbox.mdx +++ b/apps/docs/content/docs/en/tools/wealthbox.mdx @@ -42,7 +42,7 @@ In Sim, the Wealthbox integration enables your agents to seamlessly interact wit ## Usage Instructions -Integrate Wealthbox functionality to manage notes, contacts, and tasks. Read content from existing notes, contacts, and tasks and write to them using OAuth authentication. Supports text content manipulation for note creation and editing. +Integrate Wealthbox into the workflow. Can read and write notes, read and write contacts, and read and write tasks. Requires OAuth. diff --git a/apps/docs/content/docs/en/tools/whatsapp.mdx b/apps/docs/content/docs/en/tools/whatsapp.mdx index d8a30b685..9cd5580cd 100644 --- a/apps/docs/content/docs/en/tools/whatsapp.mdx +++ b/apps/docs/content/docs/en/tools/whatsapp.mdx @@ -37,7 +37,7 @@ In Sim, the WhatsApp integration enables your agents to leverage these messaging ## Usage Instructions -Send messages to WhatsApp users using the WhatsApp Business API. Requires WhatsApp Business API configuration. +Integrate WhatsApp into the workflow. Can send messages. diff --git a/apps/docs/content/docs/en/tools/wikipedia.mdx b/apps/docs/content/docs/en/tools/wikipedia.mdx index ece9053cf..d60c52d50 100644 --- a/apps/docs/content/docs/en/tools/wikipedia.mdx +++ b/apps/docs/content/docs/en/tools/wikipedia.mdx @@ -54,7 +54,7 @@ In Sim, the Wikipedia integration enables your agents to programmatically access ## Usage Instructions -Access Wikipedia articles, search for pages, get summaries, retrieve full content, and discover random articles from the world's largest encyclopedia. +Integrate Wikipedia into the workflow. Can get page summary, search pages, get page content, and get random page. diff --git a/apps/docs/content/docs/en/tools/x.mdx b/apps/docs/content/docs/en/tools/x.mdx index c3abadbbf..524b6d0b9 100644 --- a/apps/docs/content/docs/en/tools/x.mdx +++ b/apps/docs/content/docs/en/tools/x.mdx @@ -13,6 +13,8 @@ import { BlockInfoCard } from "@/components/ui/block-info-card" `} /> @@ -36,7 +38,7 @@ In Sim, the X integration enables sophisticated social media automation scenario ## Usage Instructions -Connect with X to post tweets, read content, search for information, and access user profiles. Integrate social media capabilities into your workflow with comprehensive X platform access. +Integrate X into the workflow. Can post a new tweet, get tweet details, search tweets, and get user profile. Requires OAuth. diff --git a/apps/docs/content/docs/en/tools/youtube.mdx b/apps/docs/content/docs/en/tools/youtube.mdx index b22c3b934..c6e898331 100644 --- a/apps/docs/content/docs/en/tools/youtube.mdx +++ b/apps/docs/content/docs/en/tools/youtube.mdx @@ -40,7 +40,7 @@ In Sim, the YouTube integration enables your agents to programmatically search a ## Usage Instructions -Find relevant videos on YouTube using the YouTube Data API. Search for content with customizable result limits and retrieve structured video metadata for integration into your workflow. +Integrate YouTube into the workflow. Can search for videos. Requires API Key. diff --git a/apps/sim/app/api/tools/mail/send/route.ts b/apps/sim/app/api/tools/mail/send/route.ts new file mode 100644 index 000000000..2d7e50224 --- /dev/null +++ b/apps/sim/app/api/tools/mail/send/route.ts @@ -0,0 +1,94 @@ +import { type NextRequest, NextResponse } from 'next/server' +import { z } from 'zod' +import { checkHybridAuth } from '@/lib/auth/hybrid' +import { type EmailOptions, sendEmail } from '@/lib/email/mailer' +import { env } from '@/lib/env' +import { createLogger } from '@/lib/logs/console/logger' +import { generateRequestId } from '@/lib/utils' + +export const dynamic = 'force-dynamic' + +const logger = createLogger('MailSendAPI') + +const MailSendSchema = z.object({ + to: z.string().email('Invalid email address').min(1, 'To email is required'), + subject: z.string().min(1, 'Subject is required'), + body: z.string().min(1, 'Email body is required'), +}) + +export async function POST(request: NextRequest) { + const requestId = generateRequestId() + + try { + const authResult = await checkHybridAuth(request, { requireWorkflowId: false }) + + if (!authResult.success) { + logger.warn(`[${requestId}] Unauthorized mail send attempt: ${authResult.error}`) + return NextResponse.json( + { + success: false, + message: authResult.error || 'Authentication required', + }, + { status: 401 } + ) + } + + logger.info(`[${requestId}] Authenticated mail request via ${authResult.authType}`, { + userId: authResult.userId, + }) + + const body = await request.json() + const validatedData = MailSendSchema.parse(body) + + const fromAddress = env.MAIL_BLOCK_FROM_ADDRESS || env.FROM_EMAIL_ADDRESS || 'system default' + + logger.info(`[${requestId}] Sending email via internal mail API`, { + to: validatedData.to, + subject: validatedData.subject, + bodyLength: validatedData.body.length, + from: fromAddress, + }) + + const emailOptions: EmailOptions = { + to: validatedData.to, + subject: validatedData.subject, + html: validatedData.body, + text: validatedData.body.replace(/<[^>]*>/g, ''), + from: fromAddress, // Use the determined FROM address + emailType: 'transactional', + includeUnsubscribe: false, + } + + const result = await sendEmail(emailOptions) + + logger.info(`[${requestId}] Email send result`, { + success: result.success, + message: result.message, + }) + + return NextResponse.json(result) + } catch (error) { + if (error instanceof z.ZodError) { + logger.warn(`[${requestId}] Invalid request data`, { errors: error.errors }) + return NextResponse.json( + { + success: false, + message: 'Invalid request data', + errors: error.errors, + }, + { status: 400 } + ) + } + + logger.error(`[${requestId}] Error sending email via API:`, error) + + return NextResponse.json( + { + success: false, + message: 'Internal server error while sending email', + data: {}, + }, + { status: 500 } + ) + } +} diff --git a/apps/sim/blocks/blocks/mail.ts b/apps/sim/blocks/blocks/mail.ts new file mode 100644 index 000000000..3e84549bd --- /dev/null +++ b/apps/sim/blocks/blocks/mail.ts @@ -0,0 +1,66 @@ +import { MailIcon } from '@/components/icons' +import type { BlockConfig } from '@/blocks/types' +import type { MailSendResult } from '@/tools/mail/types' + +export const MailBlock: BlockConfig = { + type: 'mail', + name: 'Mail', + description: 'Send emails using the internal mail service', + longDescription: + 'Send emails directly using the internal mail service. Uses MAIL_BLOCK_FROM_ADDRESS if configured, otherwise falls back to FROM_EMAIL_ADDRESS. No external configuration or OAuth required. Perfect for sending notifications, alerts, or general purpose emails from your workflows. Supports HTML formatting.', + category: 'tools', + bgColor: '#FF6B35', + icon: MailIcon, + + subBlocks: [ + { + id: 'to', + title: 'To', + type: 'short-input', + layout: 'full', + placeholder: 'recipient@example.com', + required: true, + }, + { + id: 'subject', + title: 'Subject', + type: 'short-input', + layout: 'full', + placeholder: 'Email subject', + required: true, + }, + { + id: 'body', + title: 'Body', + type: 'long-input', + layout: 'full', + placeholder: 'Email body content (HTML supported)', + required: true, + }, + ], + + tools: { + access: ['mail_send'], + config: { + tool: () => 'mail_send', + params: (params) => ({ + to: params.to, + subject: params.subject, + body: params.body, + }), + }, + }, + + inputs: { + to: { type: 'string', description: 'Recipient email address' }, + subject: { type: 'string', description: 'Email subject' }, + body: { type: 'string', description: 'Email body content' }, + }, + + outputs: { + success: { type: 'boolean', description: 'Whether the email was sent successfully' }, + to: { type: 'string', description: 'Recipient email address' }, + subject: { type: 'string', description: 'Email subject' }, + body: { type: 'string', description: 'Email body content' }, + }, +} diff --git a/apps/sim/blocks/registry.ts b/apps/sim/blocks/registry.ts index 81080e368..04362bc28 100644 --- a/apps/sim/blocks/registry.ts +++ b/apps/sim/blocks/registry.ts @@ -34,6 +34,7 @@ import { JiraBlock } from '@/blocks/blocks/jira' import { KnowledgeBlock } from '@/blocks/blocks/knowledge' import { LinearBlock } from '@/blocks/blocks/linear' import { LinkupBlock } from '@/blocks/blocks/linkup' +import { MailBlock } from '@/blocks/blocks/mail' import { McpBlock } from '@/blocks/blocks/mcp' import { Mem0Block } from '@/blocks/blocks/mem0' import { MemoryBlock } from '@/blocks/blocks/memory' @@ -113,6 +114,7 @@ export const registry: Record = { knowledge: KnowledgeBlock, linear: LinearBlock, linkup: LinkupBlock, + mail: MailBlock, mcp: McpBlock, mem0: Mem0Block, microsoft_excel: MicrosoftExcelBlock, diff --git a/apps/sim/lib/env.ts b/apps/sim/lib/env.ts index 0bf222e9a..2625df0c1 100644 --- a/apps/sim/lib/env.ts +++ b/apps/sim/lib/env.ts @@ -54,6 +54,7 @@ export const env = createEnv({ RESEND_API_KEY: z.string().min(1).optional(), // Resend API key for transactional emails FROM_EMAIL_ADDRESS: z.string().min(1).optional(), // Complete from address (e.g., "Sim " or "noreply@domain.com") EMAIL_DOMAIN: z.string().min(1).optional(), // Domain for sending emails (fallback when FROM_EMAIL_ADDRESS not set) + MAIL_BLOCK_FROM_ADDRESS: z.string().min(1).optional(), // Custom from address for mail block tool (e.g., "Bot ") AZURE_ACS_CONNECTION_STRING: z.string().optional(), // Azure Communication Services connection string // AI/LLM Provider API Keys diff --git a/apps/sim/tools/mail/index.ts b/apps/sim/tools/mail/index.ts new file mode 100644 index 000000000..a0845ac15 --- /dev/null +++ b/apps/sim/tools/mail/index.ts @@ -0,0 +1,3 @@ +import { mailSendTool } from '@/tools/mail/send' + +export { mailSendTool } diff --git a/apps/sim/tools/mail/send.ts b/apps/sim/tools/mail/send.ts new file mode 100644 index 000000000..6a25c86ba --- /dev/null +++ b/apps/sim/tools/mail/send.ts @@ -0,0 +1,65 @@ +import type { MailSendParams, MailSendResult } from '@/tools/mail/types' +import type { ToolConfig } from '@/tools/types' + +export const mailSendTool: ToolConfig = { + id: 'mail_send', + name: 'Send Email', + description: + 'Send an email using the internal mail service without requiring OAuth or external configuration', + version: '1.0.0', + + params: { + to: { + type: 'string', + required: true, + visibility: 'user-or-llm', + description: 'Recipient email address', + }, + subject: { + type: 'string', + required: true, + visibility: 'user-or-llm', + description: 'Email subject', + }, + body: { + type: 'string', + required: true, + visibility: 'user-or-llm', + description: 'Email body content', + }, + }, + + request: { + url: '/api/tools/mail/send', + method: 'POST', + headers: () => ({ + 'Content-Type': 'application/json', + }), + body: (params: MailSendParams) => ({ + to: params.to, + subject: params.subject, + body: params.body, + }), + }, + + transformResponse: async (response: Response, params): Promise => { + const result = await response.json() + + return { + success: true, + output: { + success: result.success, + to: params?.to || '', + subject: params?.subject || '', + body: params?.body || '', + }, + } + }, + + outputs: { + success: { type: 'boolean', description: 'Whether the email was sent successfully' }, + to: { type: 'string', description: 'Recipient email address' }, + subject: { type: 'string', description: 'Email subject' }, + body: { type: 'string', description: 'Email body content' }, + }, +} diff --git a/apps/sim/tools/mail/types.ts b/apps/sim/tools/mail/types.ts new file mode 100644 index 000000000..228e098b8 --- /dev/null +++ b/apps/sim/tools/mail/types.ts @@ -0,0 +1,16 @@ +import type { ToolResponse } from '@/tools/types' + +export interface MailSendParams { + to: string + subject: string + body: string +} + +export interface MailSendResult extends ToolResponse { + output: { + success: boolean + to: string + subject: string + body: string + } +} diff --git a/apps/sim/tools/registry.ts b/apps/sim/tools/registry.ts index 69bb4ff32..a4b01a733 100644 --- a/apps/sim/tools/registry.ts +++ b/apps/sim/tools/registry.ts @@ -73,6 +73,7 @@ import { } from '@/tools/knowledge' import { linearCreateIssueTool, linearReadIssuesTool } from '@/tools/linear' import { linkupSearchTool } from '@/tools/linkup' +import { mailSendTool } from '@/tools/mail' import { mem0AddMemoriesTool, mem0GetMemoriesTool, mem0SearchMemoriesTool } from '@/tools/mem0' import { memoryAddTool, memoryDeleteTool, memoryGetAllTool, memoryGetTool } from '@/tools/memory' import { @@ -201,6 +202,7 @@ export const tools: Record = { google_search: googleSearchTool, jina_read_url: readUrlTool, linkup_search: linkupSearchTool, + mail_send: mailSendTool, jira_retrieve: jiraRetrieveTool, jira_update: jiraUpdateTool, jira_write: jiraWriteTool, diff --git a/scripts/bun.lock b/scripts/bun.lock index fcaa8b954..151e33c41 100644 --- a/scripts/bun.lock +++ b/scripts/bun.lock @@ -4,12 +4,12 @@ "": { "name": "sim-doc-generator", "dependencies": { - "@types/node": "^24.1.0", - "@types/react": "^19.1.8", + "@types/node": "^24.5.1", + "@types/react": "^19.1.13", "glob": "^11.0.3", "ts-node": "^10.9.2", - "tsx": "^4.20.3", - "typescript": "^5.8.3", + "tsx": "^4.20.5", + "typescript": "^5.9.2", }, }, }, @@ -86,9 +86,9 @@ "@tsconfig/node16": ["@tsconfig/node16@1.0.4", "", {}, "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA=="], - "@types/node": ["@types/node@24.1.0", "", { "dependencies": { "undici-types": "~7.8.0" } }, "sha512-ut5FthK5moxFKH2T1CUOC6ctR67rQRvvHdFLCD2Ql6KXmMuCrjsSsRI9UsLCm9M18BMwClv4pn327UvB7eeO1w=="], + "@types/node": ["@types/node@24.5.1", "", { "dependencies": { "undici-types": "~7.12.0" } }, "sha512-/SQdmUP2xa+1rdx7VwB9yPq8PaKej8TD5cQ+XfKDPWWC+VDJU4rvVVagXqKUzhKjtFoNA8rXDJAkCxQPAe00+Q=="], - "@types/react": ["@types/react@19.1.8", "", { "dependencies": { "csstype": "^3.0.2" } }, "sha512-AwAfQ2Wa5bCx9WP8nZL2uMZWod7J7/JSplxbTmBQ5ms6QpqNYm672H0Vu9ZVKVngQ+ii4R/byguVEUZQyeg44g=="], + "@types/react": ["@types/react@19.1.13", "", { "dependencies": { "csstype": "^3.0.2" } }, "sha512-hHkbU/eoO3EG5/MZkuFSKmYqPbSVk5byPFa3e7y/8TybHiLMACgI8seVYlicwk7H5K/rI2px9xrQp/C+AUDTiQ=="], "acorn": ["acorn@8.14.1", "", { "bin": "bin/acorn" }, "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg=="], @@ -164,11 +164,11 @@ "ts-node": ["ts-node@10.9.2", "", { "dependencies": { "@cspotcode/source-map-support": "^0.8.0", "@tsconfig/node10": "^1.0.7", "@tsconfig/node12": "^1.0.7", "@tsconfig/node14": "^1.0.0", "@tsconfig/node16": "^1.0.2", "acorn": "^8.4.1", "acorn-walk": "^8.1.1", "arg": "^4.1.0", "create-require": "^1.1.0", "diff": "^4.0.1", "make-error": "^1.1.1", "v8-compile-cache-lib": "^3.0.1", "yn": "3.1.1" }, "peerDependencies": { "@swc/core": ">=1.2.50", "@swc/wasm": ">=1.2.50", "@types/node": "*", "typescript": ">=2.7" }, "optionalPeers": ["@swc/core", "@swc/wasm"], "bin": { "ts-node": "dist/bin.js", "ts-node-cwd": "dist/bin-cwd.js", "ts-node-esm": "dist/bin-esm.js", "ts-node-script": "dist/bin-script.js", "ts-node-transpile-only": "dist/bin-transpile.js", "ts-script": "dist/bin-script-deprecated.js" } }, "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ=="], - "tsx": ["tsx@4.20.3", "", { "dependencies": { "esbuild": "~0.25.0", "get-tsconfig": "^4.7.5" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "bin": { "tsx": "dist/cli.mjs" } }, "sha512-qjbnuR9Tr+FJOMBqJCW5ehvIo/buZq7vH7qD7JziU98h6l3qGy0a/yPFjwO+y0/T7GFpNgNAvEcPPVfyT8rrPQ=="], + "tsx": ["tsx@4.20.5", "", { "dependencies": { "esbuild": "~0.25.0", "get-tsconfig": "^4.7.5" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "bin": { "tsx": "dist/cli.mjs" } }, "sha512-+wKjMNU9w/EaQayHXb7WA7ZaHY6hN8WgfvHNQ3t1PnU91/7O8TcTnIhCDYTZwnt8JsO9IBqZ30Ln1r7pPF52Aw=="], - "typescript": ["typescript@5.8.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ=="], + "typescript": ["typescript@5.9.2", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A=="], - "undici-types": ["undici-types@7.8.0", "", {}, "sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw=="], + "undici-types": ["undici-types@7.12.0", "", {}, "sha512-goOacqME2GYyOZZfb5Lgtu+1IDmAlAEu5xnD3+xTzS10hT0vzpf0SPjkXwAw9Jm+4n/mQGDP3LO8CPbYROeBfQ=="], "v8-compile-cache-lib": ["v8-compile-cache-lib@3.0.1", "", {}, "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg=="], diff --git a/scripts/generate-block-docs.ts b/scripts/generate-block-docs.ts index c75df0fd3..f4abbd554 100755 --- a/scripts/generate-block-docs.ts +++ b/scripts/generate-block-docs.ts @@ -13,7 +13,7 @@ const rootDir = path.resolve(__dirname, '..') // Paths configuration const BLOCKS_PATH = path.join(rootDir, 'apps/sim/blocks/blocks') -const DOCS_OUTPUT_PATH = path.join(rootDir, 'apps/docs/content/docs/tools') +const DOCS_OUTPUT_PATH = path.join(rootDir, 'apps/docs/content/docs/en/tools') const ICONS_PATH = path.join(rootDir, 'apps/sim/components/icons.tsx') // Make sure the output directory exists diff --git a/scripts/package.json b/scripts/package.json index 13692419e..3ad0e0a30 100644 --- a/scripts/package.json +++ b/scripts/package.json @@ -4,12 +4,12 @@ "description": "Documentation generator for Sim blocks", "type": "module", "private": true, - "devDependencies": { - "@types/node": "^22.15.17", - "@types/react": "^19.1.3", - "glob": "^11.0.2", + "dependencies": { + "@types/node": "^24.5.1", + "@types/react": "^19.1.13", + "glob": "^11.0.3", "ts-node": "^10.9.2", - "tsx": "^4.19.4", - "typescript": "^5.8.3" + "tsx": "^4.20.5", + "typescript": "^5.9.2" } }