diff --git a/autogpt_platform/backend/scripts/generate_block_docs.py b/autogpt_platform/backend/scripts/generate_block_docs.py index 4fa85e9bf0..bb60eddb5d 100644 --- a/autogpt_platform/backend/scripts/generate_block_docs.py +++ b/autogpt_platform/backend/scripts/generate_block_docs.py @@ -34,7 +34,10 @@ logger = logging.getLogger(__name__) # Default output directory relative to repo root DEFAULT_OUTPUT_DIR = ( - Path(__file__).parent.parent.parent.parent / "docs" / "integrations" + Path(__file__).parent.parent.parent.parent + / "docs" + / "integrations" + / "block-integrations" ) @@ -421,6 +424,14 @@ def generate_block_markdown( lines.append("") lines.append("") + # Optional per-block extras (only include if has content) + extras = manual_content.get("extras", "") + if extras: + lines.append("") + lines.append(extras) + lines.append("") + lines.append("") + lines.append("---") lines.append("") @@ -456,25 +467,52 @@ def get_block_file_mapping(blocks: list[BlockDoc]) -> dict[str, list[BlockDoc]]: return dict(file_mapping) -def generate_overview_table(blocks: list[BlockDoc]) -> str: - """Generate the overview table markdown (blocks.md).""" +def generate_overview_table(blocks: list[BlockDoc], block_dir_prefix: str = "") -> str: + """Generate the overview table markdown (blocks.md). + + Args: + blocks: List of block documentation objects + block_dir_prefix: Prefix for block file links (e.g., "block-integrations/") + """ lines = [] + # GitBook YAML frontmatter + lines.append("---") + lines.append("layout:") + lines.append(" width: default") + lines.append(" title:") + lines.append(" visible: true") + lines.append(" description:") + lines.append(" visible: true") + lines.append(" tableOfContents:") + lines.append(" visible: false") + lines.append(" outline:") + lines.append(" visible: true") + lines.append(" pagination:") + lines.append(" visible: true") + lines.append(" metadata:") + lines.append(" visible: true") + lines.append("---") + lines.append("") + lines.append("# AutoGPT Blocks Overview") lines.append("") lines.append( 'AutoGPT uses a modular approach with various "blocks" to handle different tasks. These blocks are the building blocks of AutoGPT workflows, allowing users to create complex automations by combining simple, specialized components.' ) lines.append("") - lines.append('!!! info "Creating Your Own Blocks"') - lines.append(" Want to create your own custom blocks? Check out our guides:") - lines.append(" ") + lines.append('{% hint style="info" %}') + lines.append("**Creating Your Own Blocks**") + lines.append("") + lines.append("Want to create your own custom blocks? Check out our guides:") + lines.append("") lines.append( - " - [Build your own Blocks](https://docs.agpt.co/platform/new_blocks/) - Step-by-step tutorial with examples" + "* [Build your own Blocks](https://docs.agpt.co/platform/new_blocks/) - Step-by-step tutorial with examples" ) lines.append( - " - [Block SDK Guide](https://docs.agpt.co/platform/block-sdk-guide/) - Advanced SDK patterns with OAuth, webhooks, and provider configuration" + "* [Block SDK Guide](https://docs.agpt.co/platform/block-sdk-guide/) - Advanced SDK patterns with OAuth, webhooks, and provider configuration" ) + lines.append("{% endhint %}") lines.append("") lines.append( "Below is a comprehensive list of all available blocks, categorized by their primary function. Click on any block name to view its detailed documentation." @@ -537,7 +575,8 @@ def generate_overview_table(blocks: list[BlockDoc]) -> str: else "No description" ) short_desc = short_desc.replace("\n", " ").replace("|", "\\|") - lines.append(f"| [{block.name}]({file_path}#{anchor}) | {short_desc} |") + link_path = f"{block_dir_prefix}{file_path}" + lines.append(f"| [{block.name}]({link_path}#{anchor}) | {short_desc} |") lines.append("") continue @@ -563,13 +602,55 @@ def generate_overview_table(blocks: list[BlockDoc]) -> str: ) short_desc = short_desc.replace("\n", " ").replace("|", "\\|") - lines.append(f"| [{block.name}]({file_path}#{anchor}) | {short_desc} |") + link_path = f"{block_dir_prefix}{file_path}" + lines.append(f"| [{block.name}]({link_path}#{anchor}) | {short_desc} |") lines.append("") return "\n".join(lines) +def generate_summary_md( + blocks: list[BlockDoc], root_dir: Path, block_dir_prefix: str = "" +) -> str: + """Generate SUMMARY.md for GitBook navigation. + + Args: + blocks: List of block documentation objects + root_dir: The root docs directory (e.g., docs/integrations/) + block_dir_prefix: Prefix for block file links (e.g., "block-integrations/") + """ + lines = [] + lines.append("# Table of contents") + lines.append("") + lines.append("* [AutoGPT Blocks Overview](README.md)") + lines.append("") + + # Check for guides/ directory at the root level (docs/integrations/guides/) + guides_dir = root_dir / "guides" + if guides_dir.exists(): + lines.append("## Guides") + lines.append("") + for guide_file in sorted(guides_dir.glob("*.md")): + # Use just the file name for title (replace hyphens/underscores with spaces) + title = file_path_to_title(guide_file.stem.replace("-", "_") + ".md") + lines.append(f"* [{title}](guides/{guide_file.name})") + lines.append("") + + lines.append("## Block Integrations") + lines.append("") + + file_mapping = get_block_file_mapping(blocks) + for file_path in sorted(file_mapping.keys()): + title = file_path_to_title(file_path) + link_path = f"{block_dir_prefix}{file_path}" + lines.append(f"* [{title}]({link_path})") + + lines.append("") + + return "\n".join(lines) + + def load_all_blocks_for_docs() -> list[BlockDoc]: """Load all blocks and extract documentation.""" from backend.blocks import load_all_blocks @@ -653,6 +734,16 @@ def write_block_docs( ) ) + # Add file-level additional_content section if present + file_additional = extract_manual_content(existing_content).get( + "additional_content", "" + ) + if file_additional: + content_parts.append("") + content_parts.append(file_additional) + content_parts.append("") + content_parts.append("") + full_content = file_header + "\n" + "\n".join(content_parts) generated_files[str(file_path)] = full_content @@ -661,14 +752,28 @@ def write_block_docs( full_path.write_text(full_content) - # Generate overview file - overview_content = generate_overview_table(blocks) - overview_path = output_dir / "README.md" + # Generate overview file at the parent directory (docs/integrations/) + # with links prefixed to point into block-integrations/ + root_dir = output_dir.parent + block_dir_name = output_dir.name # "block-integrations" + block_dir_prefix = f"{block_dir_name}/" + + overview_content = generate_overview_table(blocks, block_dir_prefix) + overview_path = root_dir / "README.md" generated_files["README.md"] = overview_content overview_path.write_text(overview_content) if verbose: - print(" Writing README.md (overview)") + print(" Writing README.md (overview) to parent directory") + + # Generate SUMMARY.md for GitBook navigation at the parent directory + summary_content = generate_summary_md(blocks, root_dir, block_dir_prefix) + summary_path = root_dir / "SUMMARY.md" + generated_files["SUMMARY.md"] = summary_content + summary_path.write_text(summary_content) + + if verbose: + print(" Writing SUMMARY.md (navigation) to parent directory") return generated_files @@ -748,6 +853,16 @@ def check_docs_in_sync(output_dir: Path, blocks: list[BlockDoc]) -> bool: elif block_match.group(1).strip() != expected_block_content.strip(): mismatched_blocks.append(block.name) + # Add file-level additional_content to expected content (matches write_block_docs) + file_additional = extract_manual_content(existing_content).get( + "additional_content", "" + ) + if file_additional: + content_parts.append("") + content_parts.append(file_additional) + content_parts.append("") + content_parts.append("") + expected_content = file_header + "\n" + "\n".join(content_parts) if existing_content.strip() != expected_content.strip(): @@ -757,11 +872,15 @@ def check_docs_in_sync(output_dir: Path, blocks: list[BlockDoc]) -> bool: out_of_sync_details.append((file_path, mismatched_blocks)) all_match = False - # Check overview - overview_path = output_dir / "README.md" + # Check overview at the parent directory (docs/integrations/) + root_dir = output_dir.parent + block_dir_name = output_dir.name # "block-integrations" + block_dir_prefix = f"{block_dir_name}/" + + overview_path = root_dir / "README.md" if overview_path.exists(): existing_overview = overview_path.read_text() - expected_overview = generate_overview_table(blocks) + expected_overview = generate_overview_table(blocks, block_dir_prefix) if existing_overview.strip() != expected_overview.strip(): print("OUT OF SYNC: README.md (overview)") print(" The blocks overview table needs regeneration") @@ -772,6 +891,21 @@ def check_docs_in_sync(output_dir: Path, blocks: list[BlockDoc]) -> bool: out_of_sync_details.append(("README.md", ["overview table"])) all_match = False + # Check SUMMARY.md at the parent directory + summary_path = root_dir / "SUMMARY.md" + if summary_path.exists(): + existing_summary = summary_path.read_text() + expected_summary = generate_summary_md(blocks, root_dir, block_dir_prefix) + if existing_summary.strip() != expected_summary.strip(): + print("OUT OF SYNC: SUMMARY.md (navigation)") + print(" The GitBook navigation needs regeneration") + out_of_sync_details.append(("SUMMARY.md", ["navigation"])) + all_match = False + else: + print("MISSING: SUMMARY.md (navigation)") + out_of_sync_details.append(("SUMMARY.md", ["navigation"])) + all_match = False + # Check for unfilled manual sections unfilled_patterns = [ "_Add a description of this category of blocks._", diff --git a/docs/integrations/SUMMARY.md b/docs/integrations/SUMMARY.md index 036305da78..9ce440ca45 100644 --- a/docs/integrations/SUMMARY.md +++ b/docs/integrations/SUMMARY.md @@ -2,39 +2,132 @@ * [AutoGPT Blocks Overview](README.md) +## Guides + +* [LLM Providers](guides/llm-providers.md) +* [Voice Providers](guides/voice-providers.md) + ## Block Integrations -* [Basic Operations Blocks](block-integrations/basic.md) -* [Read CSV](block-integrations/csv.md) -* [Data Sampling](block-integrations/sampling.md) -* [Text](block-integrations/text.md) -* [Text Decoder](block-integrations/text-decoder.md) -* [AI and Large Language Models](block-integrations/ai-and-llm.md) -* [Send Web Request](block-integrations/send-web-request.md) -* [Read RSS Feed](block-integrations/rss.md) +* [Airtable Bases](block-integrations/airtable/bases.md) +* [Airtable Records](block-integrations/airtable/records.md) +* [Airtable Schema](block-integrations/airtable/schema.md) +* [Airtable Triggers](block-integrations/airtable/triggers.md) +* [Apollo Organization](block-integrations/apollo/organization.md) +* [Apollo People](block-integrations/apollo/people.md) +* [Apollo Person](block-integrations/apollo/person.md) +* [Ayrshare Post To Bluesky](block-integrations/ayrshare/post_to_bluesky.md) +* [Ayrshare Post To Facebook](block-integrations/ayrshare/post_to_facebook.md) +* [Ayrshare Post To GMB](block-integrations/ayrshare/post_to_gmb.md) +* [Ayrshare Post To Instagram](block-integrations/ayrshare/post_to_instagram.md) +* [Ayrshare Post To LinkedIn](block-integrations/ayrshare/post_to_linkedin.md) +* [Ayrshare Post To Pinterest](block-integrations/ayrshare/post_to_pinterest.md) +* [Ayrshare Post To Reddit](block-integrations/ayrshare/post_to_reddit.md) +* [Ayrshare Post To Snapchat](block-integrations/ayrshare/post_to_snapchat.md) +* [Ayrshare Post To Telegram](block-integrations/ayrshare/post_to_telegram.md) +* [Ayrshare Post To Threads](block-integrations/ayrshare/post_to_threads.md) +* [Ayrshare Post To TikTok](block-integrations/ayrshare/post_to_tiktok.md) +* [Ayrshare Post To X](block-integrations/ayrshare/post_to_x.md) +* [Ayrshare Post To YouTube](block-integrations/ayrshare/post_to_youtube.md) +* [Baas Bots](block-integrations/baas/bots.md) +* [Bannerbear Text Overlay](block-integrations/bannerbear/text_overlay.md) +* [Basic](block-integrations/basic.md) +* [Compass Triggers](block-integrations/compass/triggers.md) +* [Data](block-integrations/data.md) +* [Dataforseo Keyword Suggestions](block-integrations/dataforseo/keyword_suggestions.md) +* [Dataforseo Related Keywords](block-integrations/dataforseo/related_keywords.md) +* [Discord Bot Blocks](block-integrations/discord/bot_blocks.md) +* [Discord OAuth Blocks](block-integrations/discord/oauth_blocks.md) +* [Enrichlayer LinkedIn](block-integrations/enrichlayer/linkedin.md) +* [Exa Answers](block-integrations/exa/answers.md) +* [Exa Code Context](block-integrations/exa/code_context.md) +* [Exa Contents](block-integrations/exa/contents.md) +* [Exa Research](block-integrations/exa/research.md) +* [Exa Search](block-integrations/exa/search.md) +* [Exa Similar](block-integrations/exa/similar.md) +* [Exa Webhook Blocks](block-integrations/exa/webhook_blocks.md) +* [Exa Websets](block-integrations/exa/websets.md) +* [Exa Websets Enrichment](block-integrations/exa/websets_enrichment.md) +* [Exa Websets Import Export](block-integrations/exa/websets_import_export.md) +* [Exa Websets Items](block-integrations/exa/websets_items.md) +* [Exa Websets Monitor](block-integrations/exa/websets_monitor.md) +* [Exa Websets Polling](block-integrations/exa/websets_polling.md) +* [Exa Websets Search](block-integrations/exa/websets_search.md) +* [Fal AI Video Generator](block-integrations/fal/ai_video_generator.md) +* [Firecrawl Crawl](block-integrations/firecrawl/crawl.md) +* [Firecrawl Extract](block-integrations/firecrawl/extract.md) +* [Firecrawl Map](block-integrations/firecrawl/map.md) +* [Firecrawl Scrape](block-integrations/firecrawl/scrape.md) +* [Firecrawl Search](block-integrations/firecrawl/search.md) +* [Generic Webhook Triggers](block-integrations/generic_webhook/triggers.md) +* [GitHub Checks](block-integrations/github/checks.md) +* [GitHub CI](block-integrations/github/ci.md) +* [GitHub Issues](block-integrations/github/issues.md) +* [GitHub Pull Requests](block-integrations/github/pull_requests.md) +* [GitHub Repo](block-integrations/github/repo.md) +* [GitHub Reviews](block-integrations/github/reviews.md) +* [GitHub Statuses](block-integrations/github/statuses.md) +* [GitHub Triggers](block-integrations/github/triggers.md) +* [Google Calendar](block-integrations/google/calendar.md) +* [Google Docs](block-integrations/google/docs.md) +* [Google Gmail](block-integrations/google/gmail.md) +* [Google Sheets](block-integrations/google/sheets.md) +* [HubSpot Company](block-integrations/hubspot/company.md) +* [HubSpot Contact](block-integrations/hubspot/contact.md) +* [HubSpot Engagement](block-integrations/hubspot/engagement.md) +* [Jina Chunking](block-integrations/jina/chunking.md) +* [Jina Embeddings](block-integrations/jina/embeddings.md) +* [Jina Fact Checker](block-integrations/jina/fact_checker.md) +* [Jina Search](block-integrations/jina/search.md) +* [Linear Comment](block-integrations/linear/comment.md) +* [Linear Issues](block-integrations/linear/issues.md) +* [Linear Projects](block-integrations/linear/projects.md) +* [LLM](block-integrations/llm.md) +* [Logic](block-integrations/logic.md) +* [Misc](block-integrations/misc.md) +* [Multimedia](block-integrations/multimedia.md) +* [Notion Create Page](block-integrations/notion/create_page.md) +* [Notion Read Database](block-integrations/notion/read_database.md) +* [Notion Read Page](block-integrations/notion/read_page.md) +* [Notion Read Page Markdown](block-integrations/notion/read_page_markdown.md) +* [Notion Search](block-integrations/notion/search.md) +* [Nvidia Deepfake](block-integrations/nvidia/deepfake.md) +* [Replicate Flux Advanced](block-integrations/replicate/flux_advanced.md) +* [Replicate Replicate Block](block-integrations/replicate/replicate_block.md) * [Search](block-integrations/search.md) -* [Google Maps Search](block-integrations/google-maps.md) -* [Reddit Interaction Blocks](block-integrations/reddit.md) -* [Publish to Medium](block-integrations/medium.md) -* [Discord](block-integrations/discord.md) -* [Time and Date](block-integrations/time-and-date.md) -* [Mathematical Operations](block-integrations/maths.md) -* [Ideogram Model](block-integrations/ideogram.md) -* [Create Talking Avatar Video](block-integrations/talking-head.md) -* [Unreal Text to Speech](block-integrations/text-to-speech.md) -* [AI Shortform Video Creator](block-integrations/ai-shortform-video.md) -* [Replicate Flux Advanced Model](block-integrations/replicate-flux-advanced.md) -* [Flux Kontext](block-integrations/flux-kontext.md) -* [Using D-ID](block-integrations/d-id.md) -* [Transcribe YouTube Video](block-integrations/youtube.md) -* [Send Email](block-integrations/email.md) -* [Condition Block](block-integrations/branching.md) -* [Step Through Items](block-integrations/iteration.md) -* [AI Condition Block](block-integrations/ai-condition.md) -* [Gmail](block-integrations/gmail.md) -* [Google Sheets](block-integrations/sheet.md) -* [GitHub Issues](block-integrations/github-issues.md) -* [GitHub Pull Requests](block-integrations/github-pull-requests.md) -* [GitHub Repository](block-integrations/github-repo.md) -* [Twitter](block-integrations/twitter.md) -* [Todoist](block-integrations/todoist.md) +* [Slant3D Filament](block-integrations/slant3d/filament.md) +* [Slant3D Order](block-integrations/slant3d/order.md) +* [Slant3D Slicing](block-integrations/slant3d/slicing.md) +* [Slant3D Webhook](block-integrations/slant3d/webhook.md) +* [Smartlead Campaign](block-integrations/smartlead/campaign.md) +* [Stagehand Blocks](block-integrations/stagehand/blocks.md) +* [System Library Operations](block-integrations/system/library_operations.md) +* [System Store Operations](block-integrations/system/store_operations.md) +* [Text](block-integrations/text.md) +* [Todoist Comments](block-integrations/todoist/comments.md) +* [Todoist Labels](block-integrations/todoist/labels.md) +* [Todoist Projects](block-integrations/todoist/projects.md) +* [Todoist Sections](block-integrations/todoist/sections.md) +* [Todoist Tasks](block-integrations/todoist/tasks.md) +* [Twitter Blocks](block-integrations/twitter/blocks.md) +* [Twitter Bookmark](block-integrations/twitter/bookmark.md) +* [Twitter Follows](block-integrations/twitter/follows.md) +* [Twitter Hide](block-integrations/twitter/hide.md) +* [Twitter Like](block-integrations/twitter/like.md) +* [Twitter List Follows](block-integrations/twitter/list_follows.md) +* [Twitter List Lookup](block-integrations/twitter/list_lookup.md) +* [Twitter List Members](block-integrations/twitter/list_members.md) +* [Twitter List Tweets Lookup](block-integrations/twitter/list_tweets_lookup.md) +* [Twitter Manage](block-integrations/twitter/manage.md) +* [Twitter Manage Lists](block-integrations/twitter/manage_lists.md) +* [Twitter Mutes](block-integrations/twitter/mutes.md) +* [Twitter Pinned Lists](block-integrations/twitter/pinned_lists.md) +* [Twitter Quote](block-integrations/twitter/quote.md) +* [Twitter Retweet](block-integrations/twitter/retweet.md) +* [Twitter Search Spaces](block-integrations/twitter/search_spaces.md) +* [Twitter Spaces Lookup](block-integrations/twitter/spaces_lookup.md) +* [Twitter Timeline](block-integrations/twitter/timeline.md) +* [Twitter Tweet Lookup](block-integrations/twitter/tweet_lookup.md) +* [Twitter User Lookup](block-integrations/twitter/user_lookup.md) +* [Wolfram LLM API](block-integrations/wolfram/llm_api.md) +* [Zerobounce Validate Emails](block-integrations/zerobounce/validate_emails.md) diff --git a/docs/integrations/basic.md b/docs/integrations/basic.md deleted file mode 100644 index f92d19002f..0000000000 --- a/docs/integrations/basic.md +++ /dev/null @@ -1,1454 +0,0 @@ -# Basic - -Core utility blocks for storing values, printing output, file operations, type conversion, and basic data manipulation. - - -## Add Memory - -### What it is -Add new memories to Mem0 with user segmentation - -### How it works - -This block integrates with Mem0, a memory layer service that stores and retrieves information across conversations. When you add a memory, the content is stored with the user's context and can optionally be segmented by run or agent, allowing for scoped memory retrieval later. - -The block accepts either plain text or structured message objects (like those from AI blocks). You can attach metadata to memories for better organization and filtering. Memories persist across workflow executions, enabling your agents to "remember" past interactions. - - -### Inputs - -| Input | Description | Type | Required | -|-------|-------------|------|----------| -| content | Content to add - either a string or list of message objects as output from an AI block | Content | No | -| metadata | Optional metadata for the memory | Dict[str, Any] | No | -| limit_memory_to_run | Limit the memory to the run | bool | No | -| limit_memory_to_agent | Limit the memory to the agent | bool | No | - -### Outputs - -| Output | Description | Type | -|--------|-------------|------| -| error | Error message if the operation failed | str | -| action | Action of the operation | str | -| memory | Memory created | str | -| results | List of all results from the operation | List[Dict[str, str]] | - -### Possible use case - -**Personalized Assistants**: Store user preferences, past interactions, or learned information so your AI agent can provide personalized responses in future conversations. - -**Context Carryover**: Save important details from one workflow run (like customer issues or project context) to reference in subsequent runs without asking the user again. - -**Knowledge Building**: Accumulate facts and insights over time, creating a growing knowledge base that improves your agent's helpfulness with each interaction. - - ---- - -## Add To Dictionary - -### What it is -Adds a new key-value pair to a dictionary. If no dictionary is provided, a new one is created. - -### How it works - -This block adds one or more key-value pairs to a dictionary. If you don't provide an existing dictionary, it creates a new one. You can add entries one at a time using the key/value fields, or add multiple entries at once using the entries field. - -The block outputs the updated dictionary with all new entries added. This is useful for building up structured data objects as your workflow progresses, collecting information from multiple sources into a single data structure. - - -### Inputs - -| Input | Description | Type | Required | -|-------|-------------|------|----------| -| dictionary | The dictionary to add the entry to. If not provided, a new dictionary will be created. | Dict[str, Any] | No | -| key | The key for the new entry. | str | No | -| value | The value for the new entry. | Value | No | -| entries | The entries to add to the dictionary. This is the batch version of the `key` and `value` fields. | Dict[str, Any] | No | - -### Outputs - -| Output | Description | Type | -|--------|-------------|------| -| error | Error message if the operation failed | str | -| updated_dictionary | The dictionary with the new entry added. | Dict[str, Any] | - -### Possible use case - -**Building API Payloads**: Construct complex JSON objects by adding fields from different workflow branches before sending to an API. - -**Aggregating Form Data**: Collect user inputs from multiple form fields into a single structured object for processing or storage. - -**Creating Configuration Objects**: Build up settings or configuration dictionaries dynamically based on conditional logic in your workflow. - - ---- - -## Add To List - -### What it is -Adds a new entry to a list. The entry can be of any type. If no list is provided, a new one is created. - -### How it works - -This block appends items to a list or creates a new list if none is provided. You can add a single entry or multiple entries at once. The optional position parameter lets you insert items at a specific index rather than appending to the end. - -Items can be of any type—strings, numbers, dictionaries, or other lists. This flexibility makes the block useful for building up collections of data as your workflow processes multiple items or accumulates results. - - -### Inputs - -| Input | Description | Type | Required | -|-------|-------------|------|----------| -| list | The list to add the entry to. If not provided, a new list will be created. | List[Any] | No | -| entry | The entry to add to the list. Can be of any type (string, int, dict, etc.). | Entry | No | -| entries | The entries to add to the list. This is the batch version of the `entry` field. | List[Any] | No | -| position | The position to insert the new entry. If not provided, the entry will be appended to the end of the list. | int | No | - -### Outputs - -| Output | Description | Type | -|--------|-------------|------| -| error | Error message if the operation failed | str | -| updated_list | The list with the new entry added. | List[Any] | - -### Possible use case - -**Collecting Search Results**: Accumulate items from paginated API responses into a single list for batch processing or display. - -**Building Email Recipients**: Gather email addresses from various sources into a recipient list before sending a message. - -**Aggregating Errors**: Collect validation errors or warnings from multiple checks into a list for consolidated error reporting. - - ---- - -## Agent Date Input - -### What it is -Block for date input. - -### How it works - -This block provides a date picker input field for users interacting with your agent. When the agent runs, users see a calendar widget to select a date, which is then passed to your workflow in YYYY-MM-DD format. - -The block is part of the Agent Input family, allowing you to collect structured input from users at runtime rather than hardcoding values. This makes your agents interactive and reusable for different scenarios. - - -### Inputs - -| Input | Description | Type | Required | -|-------|-------------|------|----------| -| name | The name of the input. | str | Yes | -| value | Date input (YYYY-MM-DD). | str (date) | No | -| title | The title of the input. | str | No | -| description | The description of the input. | str | No | -| advanced | Whether to show the input in the advanced section, if the field is not required. | bool | No | -| secret | Whether the input should be treated as a secret. | bool | No | - -### Outputs - -| Output | Description | Type | -|--------|-------------|------| -| result | Date result. | str (date) | - -### Possible use case - -**Appointment Scheduling**: Let users select a date for booking appointments, meetings, or reservations through your agent. - -**Report Generation**: Allow users to specify a date range start or end point for generating custom reports. - -**Deadline Setting**: Enable users to set due dates for tasks or projects when creating them through your workflow. - - ---- - -## Agent Dropdown Input - -### What it is -Block for dropdown text selection. - -### How it works - -This block provides a dropdown selection input for users interacting with your agent. You define the available options using placeholder_values, and users select one option from the list at runtime. - -This is ideal when you want to constrain user input to a predefined set of choices, ensuring valid input and simplifying the user experience. The selected value is passed to downstream blocks in your workflow. - - -### Inputs - -| Input | Description | Type | Required | -|-------|-------------|------|----------| -| name | The name of the input. | str | Yes | -| value | Text selected from a dropdown. | str | No | -| title | The title of the input. | str | No | -| description | The description of the input. | str | No | -| placeholder_values | Possible values for the dropdown. | List[Any] | No | -| advanced | Whether to show the input in the advanced section, if the field is not required. | bool | No | -| secret | Whether the input should be treated as a secret. | bool | No | - -### Outputs - -| Output | Description | Type | -|--------|-------------|------| -| result | Selected dropdown value. | str | - -### Possible use case - -**Service Selection**: Let users choose from available service tiers (Basic, Pro, Enterprise) when configuring their request. - -**Language Selection**: Allow users to select their preferred language from a list of supported options. - -**Category Filtering**: Enable users to select a category (Sales, Support, Billing) to route their inquiry appropriately. - - ---- - -## Agent File Input - -### What it is -Block for file upload input (string path for example). - -### How it works - -This block provides a file upload input for users interacting with your agent. Users can upload files which are stored temporarily and passed to your workflow as a file path reference. - -By default, the block outputs a file path string that other blocks can use to access the uploaded file. The optional base64 mode converts the file content to base64 encoding, though using file paths is generally recommended for better performance with large files. - - -### Inputs - -| Input | Description | Type | Required | -|-------|-------------|------|----------| -| name | The name of the input. | str | Yes | -| value | Path or reference to an uploaded file. | str (file) | No | -| title | The title of the input. | str | No | -| description | The description of the input. | str | No | -| advanced | Whether to show the input in the advanced section, if the field is not required. | bool | No | -| secret | Whether the input should be treated as a secret. | bool | No | -| base_64 | Whether produce an output in base64 format (not recommended, you can pass the string path just fine accross blocks). | bool | No | - -### Outputs - -| Output | Description | Type | -|--------|-------------|------| -| result | File reference/path result. | str | - -### Possible use case - -**Document Processing**: Accept PDF or Word documents from users for analysis, summarization, or data extraction. - -**Image Upload**: Allow users to upload images for processing, resizing, or AI-based analysis. - -**Data Import**: Enable users to upload CSV or Excel files to import data into your workflow for processing. - - ---- - -## Agent Google Drive File Input - -### What it is -Block for selecting a file from Google Drive. - -### How it works - -This block integrates with Google Drive to let users select files directly from their connected Drive account. The Google Drive file picker appears at runtime, allowing users to browse and select files without manually copying file IDs or URLs. - -You can configure which file types to display (documents, spreadsheets, presentations) using the allowed_views option. The block outputs the selected file's metadata including its ID, name, and URL for use by other Google-integrated blocks. - - -### Inputs - -| Input | Description | Type | Required | -|-------|-------------|------|----------| -| name | The name of the input. | str | Yes | -| value | The selected Google Drive file. | GoogleDriveFile | No | -| title | The title of the input. | str | No | -| description | The description of the input. | str | No | -| advanced | Whether to show the input in the advanced section, if the field is not required. | bool | No | -| secret | Whether the input should be treated as a secret. | bool | No | -| allowed_views | Which views to show in the file picker (DOCS, SPREADSHEETS, PRESENTATIONS, etc.). | List["DOCS" \| "DOCUMENTS" \| "SPREADSHEETS" \| "PRESENTATIONS" \| "DOCS_IMAGES" \| "FOLDERS"] | No | -| allow_folder_selection | Whether to allow selecting folders. | bool | No | - -### Outputs - -| Output | Description | Type | -|--------|-------------|------| -| result | The selected Google Drive file with ID, name, URL, and other metadata. | GoogleDriveFile | - -### Possible use case - -**Document Workflow**: Let users select a Google Doc to read, analyze, or append content to without knowing the file ID. - -**Spreadsheet Data Import**: Allow users to pick a Google Sheet to import data from for processing or analysis. - -**File Organization**: Enable users to select folders or files for bulk operations like moving, copying, or organizing content. - - ---- - -## Agent Input - -### What it is -A block that accepts and processes user input values within a workflow, supporting various input types and validation. - -### How it works - -It accepts a value from the user, along with metadata such as name, description, and optional placeholder values. The block then outputs the provided value. - - -### Inputs - -| Input | Description | Type | Required | -|-------|-------------|------|----------| -| name | The name of the input. | str | Yes | -| value | The value to be passed as input. | Value | No | -| title | The title of the input. | str | No | -| description | The description of the input. | str | No | -| advanced | Whether to show the input in the advanced section, if the field is not required. | bool | No | -| secret | Whether the input should be treated as a secret. | bool | No | - -### Outputs - -| Output | Description | Type | -|--------|-------------|------| -| result | The value passed as input. | Result | - -### Possible use case - -Collecting user preferences at the start of a personalized recommendation workflow. - - ---- - -## Agent Long Text Input - -### What it is -Block for long text input (multi-line). - -### How it works - -This block provides a multi-line text area input for users interacting with your agent. Unlike the short text input, this displays a larger text area suitable for paragraphs, descriptions, or any content that may span multiple lines. - -The block is ideal for collecting longer-form content like messages, descriptions, or code snippets from users at runtime. The text is passed as-is to downstream blocks in your workflow. - - -### Inputs - -| Input | Description | Type | Required | -|-------|-------------|------|----------| -| name | The name of the input. | str | Yes | -| value | Long text input (potentially multi-line). | str (long-text) | No | -| title | The title of the input. | str | No | -| description | The description of the input. | str | No | -| advanced | Whether to show the input in the advanced section, if the field is not required. | bool | No | -| secret | Whether the input should be treated as a secret. | bool | No | - -### Outputs - -| Output | Description | Type | -|--------|-------------|------| -| result | Long text result. | str | - -### Possible use case - -**Feedback Collection**: Accept detailed user feedback, reviews, or comments that may require multiple paragraphs. - -**Content Submission**: Let users submit articles, blog posts, or documentation content for processing or publication. - -**Query Input**: Allow users to enter complex questions or prompts for AI processing that require detailed context. - - ---- - -## Agent Number Input - -### What it is -Block for number input. - -### How it works - -This block provides a numeric input field for users interacting with your agent. The input validates that the user enters a valid integer, preventing text or invalid values from being submitted. - -This is useful when you need numeric parameters like quantities, counts, limits, or any integer value from users at runtime. The number is passed to downstream blocks for use in calculations or configurations. - - -### Inputs - -| Input | Description | Type | Required | -|-------|-------------|------|----------| -| name | The name of the input. | str | Yes | -| value | Number input. | int | No | -| title | The title of the input. | str | No | -| description | The description of the input. | str | No | -| advanced | Whether to show the input in the advanced section, if the field is not required. | bool | No | -| secret | Whether the input should be treated as a secret. | bool | No | - -### Outputs - -| Output | Description | Type | -|--------|-------------|------| -| result | Number result. | int | - -### Possible use case - -**Quantity Selection**: Let users specify how many items to process, order, or generate. - -**Pagination Control**: Allow users to specify page numbers or result limits for data retrieval. - -**Threshold Setting**: Enable users to set numeric thresholds or limits for alerts, filtering, or processing logic. - - ---- - -## Agent Output - -### What it is -A block that records and formats workflow results for display to users, with optional Jinja2 template formatting support. - -### How it works - -It accepts an input value along with a name, description, and optional format string. If a format string is provided, it attempts to apply the formatting to the input value before outputting it. - - -### Inputs - -| Input | Description | Type | Required | -|-------|-------------|------|----------| -| value | The value to be recorded as output. | Value | No | -| name | The name of the output. | str | Yes | -| title | The title of the output. | str | No | -| description | The description of the output. | str | No | -| format | The format string to be used to format the recorded_value. Use Jinja2 syntax. | str | No | -| escape_html | Whether to escape special characters in the inserted values to be HTML-safe. Enable for HTML output, disable for plain text. | bool | No | -| advanced | Whether to treat the output as advanced. | bool | No | -| secret | Whether the output should be treated as a secret. | bool | No | - -### Outputs - -| Output | Description | Type | -|--------|-------------|------| -| output | The value recorded as output. | Output | -| name | The name of the value recorded as output. | Name | - -### Possible use case - -Presenting the final results of a data analysis workflow in a specific format. - - ---- - -## Agent Short Text Input - -### What it is -Block for short text input (single-line). - -### How it works - -This block provides a single-line text input field for users interacting with your agent. It's designed for brief text entries like names, titles, URLs, or short responses. - -The input displays as a standard text field and passes the entered text to downstream blocks. Use this for collecting concise information that doesn't require multiple lines or extensive formatting. - - -### Inputs - -| Input | Description | Type | Required | -|-------|-------------|------|----------| -| name | The name of the input. | str | Yes | -| value | Short text input. | str (short-text) | No | -| title | The title of the input. | str | No | -| description | The description of the input. | str | No | -| advanced | Whether to show the input in the advanced section, if the field is not required. | bool | No | -| secret | Whether the input should be treated as a secret. | bool | No | - -### Outputs - -| Output | Description | Type | -|--------|-------------|------| -| result | Short text result. | str | - -### Possible use case - -**Name Collection**: Gather user names, company names, or project names for personalization. - -**Search Queries**: Accept search terms or keywords from users to drive search functionality. - -**URL Input**: Let users provide URLs for websites, APIs, or resources to process in your workflow. - - ---- - -## Agent Table Input - -### What it is -Block for table data input with customizable headers. - -### How it works - -This block provides a tabular data input interface for users interacting with your agent. Users can enter data in a spreadsheet-like table format with customizable column headers. - -The table input is ideal for structured data entry where users need to provide multiple records with consistent fields. The block outputs the data as a list of dictionaries, with each row becoming a dictionary where column headers are keys. - - -### Inputs - -| Input | Description | Type | Required | -|-------|-------------|------|----------| -| name | The name of the input. | str | Yes | -| value | The table data as a list of dictionaries. | List[Dict[str, Any]] | No | -| title | The title of the input. | str | No | -| description | The description of the input. | str | No | -| advanced | Whether to show the input in the advanced section, if the field is not required. | bool | No | -| secret | Whether the input should be treated as a secret. | bool | No | -| column_headers | Column headers for the table. | List[str] | No | - -### Outputs - -| Output | Description | Type | -|--------|-------------|------| -| result | The table data as a list of dictionaries with headers as keys. | List[Dict[str, Any]] | - -### Possible use case - -**Bulk Data Entry**: Let users input multiple records at once, like a list of contacts with name, email, and phone columns. - -**Order Processing**: Accept line items for an order with product, quantity, and price columns. - -**Task Lists**: Allow users to submit multiple tasks with columns for title, assignee, and priority. - - ---- - -## Agent Time Input - -### What it is -Block for time input. - -### How it works - -This block provides a time picker input for users interacting with your agent. Users select a time (hours, minutes, and optionally seconds) which is passed to your workflow in HH:MM:SS format. - -The time picker provides a user-friendly interface for selecting times without requiring users to type in a specific format. This ensures valid time values and improves the user experience. - - -### Inputs - -| Input | Description | Type | Required | -|-------|-------------|------|----------| -| name | The name of the input. | str | Yes | -| value | Time input (HH:MM:SS). | str (time) | No | -| title | The title of the input. | str | No | -| description | The description of the input. | str | No | -| advanced | Whether to show the input in the advanced section, if the field is not required. | bool | No | -| secret | Whether the input should be treated as a secret. | bool | No | - -### Outputs - -| Output | Description | Type | -|--------|-------------|------| -| result | Time result. | str (time) | - -### Possible use case - -**Appointment Scheduling**: Let users specify a time for meetings, calls, or appointments. - -**Reminder Setting**: Allow users to set reminder times for notifications or alerts. - -**Shift Configuration**: Enable users to define start or end times for work shifts or availability windows. - - ---- - -## Agent Toggle Input - -### What it is -Block for boolean toggle input. - -### How it works - -This block provides a boolean toggle (on/off switch) input for users interacting with your agent. Users simply click to toggle between true and false states, making yes/no decisions quick and error-free. - -The toggle is ideal for binary choices like enabling features, confirming actions, or setting preferences. The boolean value is passed to downstream blocks for conditional logic. - - -### Inputs - -| Input | Description | Type | Required | -|-------|-------------|------|----------| -| name | The name of the input. | str | Yes | -| value | Boolean toggle input. | bool | No | -| title | The title of the input. | str | No | -| description | The description of the input. | str | No | -| advanced | Whether to show the input in the advanced section, if the field is not required. | bool | No | -| secret | Whether the input should be treated as a secret. | bool | No | - -### Outputs - -| Output | Description | Type | -|--------|-------------|------| -| result | Boolean toggle result. | bool | - -### Possible use case - -**Feature Flags**: Let users enable or disable optional features in your workflow. - -**Confirmation Toggles**: Require users to acknowledge terms, confirm destructive actions, or opt into notifications. - -**Mode Selection**: Allow users to switch between modes like "test mode" vs "production mode" or "verbose" vs "quiet" output. - - ---- - -## Block Installation - -### What it is -Given a code string, this block allows the verification and installation of a block code into the system. - -### How it works - -This block allows dynamic installation of new block types into the system from Python code. The code is verified for safety and correctness before installation. Once installed, the new block becomes available for use in workflows. - -This enables extensibility by allowing custom blocks to be added without modifying the core system, though it requires the code to follow the block specification format. - - -### Inputs - -| Input | Description | Type | Required | -|-------|-------------|------|----------| -| code | Python code of the block to be installed | str | Yes | - -### Outputs - -| Output | Description | Type | -|--------|-------------|------| -| error | Error message if the block installation fails | str | -| success | Success message if the block is installed successfully | str | - -### Possible use case - -**Custom Integrations**: Install blocks that connect to proprietary or internal APIs not covered by built-in blocks. - -**Dynamic Workflows**: Allow administrators to extend workflow capabilities without redeploying the entire system. - -**Experimental Features**: Test new block implementations before formally adding them to the block library. - - ---- - -## Concatenate Lists - -### What it is -Concatenates multiple lists into a single list. All elements from all input lists are combined in order. - -### How it works - -The block iterates through each list in the input and extends a result list with all elements from each one. It processes lists in order, so `[[1, 2], [3, 4]]` becomes `[1, 2, 3, 4]`. - -The block includes validation to ensure each item is actually a list. If a non-list value (like a string or number) is encountered, the block outputs an error message instead of proceeding. None values are skipped automatically. - - -### Inputs - -| Input | Description | Type | Required | -|-------|-------------|------|----------| -| lists | A list of lists to concatenate together. All lists will be combined in order into a single list. | List[List[Any]] | Yes | - -### Outputs - -| Output | Description | Type | -|--------|-------------|------| -| error | Error message if concatenation failed due to invalid input types. | str | -| concatenated_list | The concatenated list containing all elements from all input lists in order. | List[Any] | - -### Possible use case - -**Paginated API Merging**: Combine results from multiple API pages into a single list for batch processing or display. - -**Parallel Task Aggregation**: Merge outputs from parallel workflow branches that each produce a list of results. - -**Multi-Source Data Collection**: Combine data collected from different sources (like multiple RSS feeds or API endpoints) into one unified list. - - ---- - -## Dictionary Is Empty - -### What it is -Checks if a dictionary is empty. - -### How it works - -This block checks whether a dictionary has any entries and returns a boolean result. An empty dictionary (no key-value pairs) returns true, while a dictionary with any entries returns false. - -This is useful for conditional logic where you need to verify if data was returned from an API, if user input was provided, or if a collection process yielded any results. - - -### Inputs - -| Input | Description | Type | Required | -|-------|-------------|------|----------| -| dictionary | The dictionary to check. | Dict[str, Any] | Yes | - -### Outputs - -| Output | Description | Type | -|--------|-------------|------| -| error | Error message if the operation failed | str | -| is_empty | True if the dictionary is empty. | bool | - -### Possible use case - -**Response Validation**: Check if an API returned an empty response before processing data. - -**Input Verification**: Verify that user-provided form data contains at least one field before submission. - -**Conditional Processing**: Skip processing steps when no matching data was found in a search or filter operation. - - ---- - -## File Store - -### What it is -Stores the input file in the temporary directory. - -### How it works - -This block takes a file from various sources (URL, data URI, or local path) and stores it in a temporary directory for use by other blocks in your workflow. This normalizes file handling regardless of the original source. - -The block outputs a file path that other blocks can use to access the stored file. The optional base64 output mode is available but file paths are recommended for better performance with large files. - - -### Inputs - -| Input | Description | Type | Required | -|-------|-------------|------|----------| -| file_in | The file to store in the temporary directory, it can be a URL, data URI, or local path. | str (file) | Yes | -| base_64 | Whether produce an output in base64 format (not recommended, you can pass the string path just fine accross blocks). | bool | No | - -### Outputs - -| Output | Description | Type | -|--------|-------------|------| -| error | Error message if the operation failed | str | -| file_out | The relative path to the stored file in the temporary directory. | str (file) | - -### Possible use case - -**URL File Download**: Fetch a file from a URL and make it available for local processing by other blocks. - -**Data URI Conversion**: Convert base64-encoded data URIs (like from a web form) into accessible file paths. - -**File Normalization**: Standardize file access across different input sources (URLs, uploads, local files) for consistent downstream processing. - - ---- - -## Find In Dictionary - -### What it is -A block that looks up a value in a dictionary, list, or object by key or index and returns the corresponding value. - -### How it works - -This block extracts a value from a dictionary (object) or list using a key or index. If the key exists, the value is output through the "output" pin. If the key is missing, the original input is output through the "missing" pin. - -This enables safe data access with built-in handling for missing keys, preventing workflow errors when expected data isn't present. You can use string keys for dictionaries or integer indices for lists. - - -### Inputs - -| Input | Description | Type | Required | -|-------|-------------|------|----------| -| input | Dictionary to lookup from | Input | Yes | -| key | Key to lookup in the dictionary | str \| int | Yes | - -### Outputs - -| Output | Description | Type | -|--------|-------------|------| -| error | Error message if the operation failed | str | -| output | Value found for the given key | Output | -| missing | Value of the input that missing the key | Missing | - -### Possible use case - -**API Response Parsing**: Extract specific fields (like "data" or "results") from API response objects. - -**Configuration Access**: Retrieve settings from a configuration dictionary by key name. - -**User Data Extraction**: Pull specific user attributes (name, email, preferences) from a user profile object. - - ---- - -## Find In List - -### What it is -Finds the index of the value in the list. - -### How it works - -This block searches a list for a specific value and returns its position (index). If found, it outputs the zero-based index and sets "found" to true. If not found, it outputs the original value through "not_found_value" and sets "found" to false. - -This enables conditional logic based on list membership and helps locate items for subsequent list operations like replacement or removal. - - -### Inputs - -| Input | Description | Type | Required | -|-------|-------------|------|----------| -| list | The list to search in. | List[Any] | Yes | -| value | The value to search for. | Value | Yes | - -### Outputs - -| Output | Description | Type | -|--------|-------------|------| -| error | Error message if the operation failed | str | -| index | The index of the value in the list. | int | -| found | Whether the value was found in the list. | bool | -| not_found_value | The value that was not found in the list. | Not Found Value | - -### Possible use case - -**Duplicate Detection**: Check if an item already exists in a list before adding it. - -**Status Lookup**: Find if a value is in a list of valid states or allowed values. - -**Position Finding**: Locate an item's position for subsequent operations like updates or removals. - - ---- - -## Get All Memories - -### What it is -Retrieve all memories from Mem0 with optional conversation filtering - -### How it works - -This block retrieves all stored memories from Mem0 for the current user context. You can filter results by categories or metadata, and scope the retrieval to the current run or agent using the limit options. - -Memories are returned as a list that your workflow can iterate through. This is useful for reviewing accumulated knowledge, debugging what your agent has learned, or aggregating past interactions for analysis. - - -### Inputs - -| Input | Description | Type | Required | -|-------|-------------|------|----------| -| trigger | An unused field that is used to trigger the block when you have no other inputs | bool | No | -| categories | Filter by categories | List[str] | No | -| metadata_filter | Optional metadata filters to apply | Dict[str, Any] | No | -| limit_memory_to_run | Limit the memory to the run | bool | No | -| limit_memory_to_agent | Limit the memory to the agent | bool | No | - -### Outputs - -| Output | Description | Type | -|--------|-------------|------| -| error | Error message if the operation failed | str | -| memories | List of memories | Memories | - -### Possible use case - -**Context Review**: Retrieve all memories at the start of a session to understand what your agent already knows about a user. - -**Memory Export**: Collect all stored memories for backup, analysis, or migration to another system. - -**Memory Management**: List all memories to identify outdated or incorrect information that needs updating. - - ---- - -## Get Latest Memory - -### What it is -Retrieve the latest memory from Mem0 with optional key filtering - -### How it works - -This block retrieves the most recently stored memory from Mem0. You can filter by categories, metadata, or conversation ID to find the latest relevant memory. The block indicates whether a memory was found and returns it if available. - -This is useful for quickly accessing the last piece of information stored without iterating through all memories, such as checking the most recent user preference or the last conversation topic. - - -### Inputs - -| Input | Description | Type | Required | -|-------|-------------|------|----------| -| trigger | An unused field that is used to trigger the block when you have no other inputs | bool | No | -| categories | Filter by categories | List[str] | No | -| conversation_id | Optional conversation ID to retrieve the latest memory from (uses run_id) | str | No | -| metadata_filter | Optional metadata filters to apply | Dict[str, Any] | No | -| limit_memory_to_run | Limit the memory to the run | bool | No | -| limit_memory_to_agent | Limit the memory to the agent | bool | No | - -### Outputs - -| Output | Description | Type | -|--------|-------------|------| -| error | Error message if the operation failed | str | -| memory | Latest memory if found | Dict[str, Any] | -| found | Whether a memory was found | bool | - -### Possible use case - -**Conversation Continuity**: Retrieve the last topic discussed to provide context when resuming a conversation. - -**Status Tracking**: Get the most recent status update or progress report stored during a workflow. - -**Quick Recall**: Access the last user preference or setting without loading the full memory history. - - ---- - -## Get List Item - -### What it is -Returns the element at the given index. - -### How it works - -This block retrieves an item from a list at a specific index position. It uses zero-based indexing (first item is 0) and supports negative indices for accessing items from the end (e.g., -1 for the last item). - -If the index is out of range, the block outputs an error. This is useful for accessing specific elements without iterating through the entire list. - - -### Inputs - -| Input | Description | Type | Required | -|-------|-------------|------|----------| -| list | The list to get the item from. | List[Any] | Yes | -| index | The 0-based index of the item (supports negative indices). | int | Yes | - -### Outputs - -| Output | Description | Type | -|--------|-------------|------| -| error | Error message if the operation failed | str | -| item | The item at the specified index. | Item | - -### Possible use case - -**First/Last Item Access**: Get the first item (index 0) or last item (index -1) from a list of results. - -**Ordered Selection**: Access a specific position in a ranked list, like the second-highest score or third most recent entry. - -**Array Unpacking**: Extract individual elements from a fixed-structure list where each position has a known meaning. - - ---- - -## Get Weather Information - -### What it is -Retrieves weather information for a specified location using OpenWeatherMap API. - -### How it works - -The block sends a request to a weather API (like OpenWeatherMap) with the provided location. It then processes the response to extract relevant weather data. - - -### Inputs - -| Input | Description | Type | Required | -|-------|-------------|------|----------| -| location | Location to get weather information for | str | Yes | -| use_celsius | Whether to use Celsius or Fahrenheit for temperature | bool | No | - -### Outputs - -| Output | Description | Type | -|--------|-------------|------| -| error | Error message if the weather information cannot be retrieved | str | -| temperature | Temperature in the specified location | str | -| humidity | Humidity in the specified location | str | -| condition | Weather condition in the specified location | str | - -### Possible use case - -A travel planning application could use this block to provide users with current weather information for their destination cities. - - ---- - -## Human In The Loop - -### What it is -Pause execution and wait for human approval or modification of data - -### How it works - -This block pauses workflow execution and presents data to a human reviewer for approval. The workflow waits until the human approves or rejects the data, then routes to the corresponding output. If editable is enabled, the reviewer can modify the data before approving. - -This enables human oversight at critical points in automated workflows, ensuring important decisions have human verification before proceeding. - - -### Inputs - -| Input | Description | Type | Required | -|-------|-------------|------|----------| -| data | The data to be reviewed by a human user | Data | Yes | -| name | A descriptive name for what this data represents | str | Yes | -| editable | Whether the human reviewer can edit the data | bool | No | - -### Outputs - -| Output | Description | Type | -|--------|-------------|------| -| error | Error message if the operation failed | str | -| approved_data | The data when approved (may be modified by reviewer) | Approved Data | -| rejected_data | The data when rejected (may be modified by reviewer) | Rejected Data | -| review_message | Any message provided by the reviewer | str | - -### Possible use case - -**Content Moderation**: Review AI-generated content before publishing to ensure quality and appropriateness. - -**Approval Workflows**: Require manager approval for actions like large purchases, access requests, or configuration changes. - -**Quality Assurance**: Let reviewers verify data transformations or calculations before they're committed to production systems. - - ---- - -## List Is Empty - -### What it is -Checks if a list is empty. - -### How it works - -This block checks whether a list contains any items and returns a boolean result. An empty list (no elements) returns true, while a list with any elements returns false. - -This is useful for conditional logic where you need to verify if search results were found, if items are available for processing, or if a collection has any entries to iterate over. - - -### Inputs - -| Input | Description | Type | Required | -|-------|-------------|------|----------| -| list | The list to check. | List[Any] | Yes | - -### Outputs - -| Output | Description | Type | -|--------|-------------|------| -| error | Error message if the operation failed | str | -| is_empty | True if the list is empty. | bool | - -### Possible use case - -**Search Result Handling**: Check if a search returned any results before processing, displaying "no results found" when empty. - -**Batch Processing Guard**: Verify that a list has items before starting a batch operation to avoid empty iterations. - -**Conditional Messaging**: Send different notifications based on whether pending items exist or the queue is empty. - - ---- - -## Note - -### What it is -A visual annotation block that displays a sticky note in the workflow editor for documentation and organization purposes. - -### How it works - -It simply accepts a text input and passes it through as an output to be displayed as a note. - - -### Inputs - -| Input | Description | Type | Required | -|-------|-------------|------|----------| -| text | The text to display in the sticky note. | str | Yes | - -### Outputs - -| Output | Description | Type | -|--------|-------------|------| -| error | Error message if the operation failed | str | -| output | The text to display in the sticky note. | str | - -### Possible use case - -Adding explanatory notes or reminders within a complex workflow to help users understand different stages or provide additional context. - - ---- - -## Print To Console - -### What it is -A debugging block that outputs text to the console for monitoring and troubleshooting workflow execution. - -### How it works - -This block outputs the provided data to the server console log and passes it through as output. It's primarily used for debugging workflows by allowing you to inspect values at any point in the data flow. - -The block accepts any data type and both prints it for debugging visibility and forwards it to downstream blocks, making it easy to insert into existing connections without disrupting the workflow. - - -### Inputs - -| Input | Description | Type | Required | -|-------|-------------|------|----------| -| text | The data to print to the console. | Text | Yes | - -### Outputs - -| Output | Description | Type | -|--------|-------------|------| -| error | Error message if the operation failed | str | -| output | The data printed to the console. | Output | -| status | The status of the print operation. | str | - -### Possible use case - -**Workflow Debugging**: Insert at any point to inspect what data is flowing through that connection during testing. - -**Variable Inspection**: Log the values of variables or API responses to understand what your workflow is receiving. - -**Progress Tracking**: Add print statements at key stages to monitor workflow progress in the server logs. - - ---- - -## Remove From Dictionary - -### What it is -Removes a key-value pair from a dictionary. - -### How it works - -This block removes a key-value pair from a dictionary by specifying the key. The updated dictionary without that entry is output. Optionally, you can retrieve the value that was removed by enabling return_value. - -If the key doesn't exist in the dictionary, the operation may error or return the dictionary unchanged depending on the implementation. This is useful for cleaning up data or extracting and removing values in one step. - - -### Inputs - -| Input | Description | Type | Required | -|-------|-------------|------|----------| -| dictionary | The dictionary to modify. | Dict[str, Any] | Yes | -| key | Key to remove from the dictionary. | str \| int | Yes | -| return_value | Whether to return the removed value. | bool | No | - -### Outputs - -| Output | Description | Type | -|--------|-------------|------| -| error | Error message if the operation failed | str | -| updated_dictionary | The dictionary after removal. | Dict[str, Any] | -| removed_value | The removed value if requested. | Removed Value | - -### Possible use case - -**Data Cleaning**: Remove sensitive fields (like passwords or tokens) from data before logging or storing. - -**Pop Pattern**: Extract and remove a value from a dictionary in a single operation, like dequeuing items. - -**Object Trimming**: Remove unnecessary or deprecated fields from configuration objects before processing. - - ---- - -## Remove From List - -### What it is -Removes an item from a list by value or index. - -### How it works - -This block removes an item from a list either by value (remove first occurrence) or by index (remove at specific position). Negative indices are supported for removal from the end. Optionally, the removed item can be returned. - -This provides flexibility for both "remove this specific item" and "remove the item at this position" use cases in a single block. - - -### Inputs - -| Input | Description | Type | Required | -|-------|-------------|------|----------| -| list | The list to modify. | List[Any] | Yes | -| value | Value to remove from the list. | Value | No | -| index | Index of the item to pop (supports negative indices). | int | No | -| return_item | Whether to return the removed item. | bool | No | - -### Outputs - -| Output | Description | Type | -|--------|-------------|------| -| error | Error message if the operation failed | str | -| updated_list | The list after removal. | List[Any] | -| removed_item | The removed item if requested. | Removed Item | - -### Possible use case - -**Queue Processing**: Pop items from the front of a list to process them one at a time (FIFO queue). - -**Exclusion Lists**: Remove specific values from a list, like filtering out certain options or invalid entries. - -**Stack Operations**: Pop items from the end of a list for last-in-first-out processing. - - ---- - -## Replace Dictionary Value - -### What it is -Replaces the value for a specified key in a dictionary. - -### How it works - -This block updates the value for an existing key in a dictionary. The old value is replaced with the new one, and the updated dictionary is output. The block also returns the old value that was replaced. - -This is useful for updating specific fields in a data object while preserving all other fields, or for tracking what value was changed during an update operation. - - -### Inputs - -| Input | Description | Type | Required | -|-------|-------------|------|----------| -| dictionary | The dictionary to modify. | Dict[str, Any] | Yes | -| key | Key to replace the value for. | str \| int | Yes | -| value | The new value for the given key. | Value | Yes | - -### Outputs - -| Output | Description | Type | -|--------|-------------|------| -| error | Error message if the operation failed | str | -| updated_dictionary | The dictionary after replacement. | Dict[str, Any] | -| old_value | The value that was replaced. | Old Value | - -### Possible use case - -**Status Updates**: Change the status field in a record from "pending" to "completed" while preserving all other data. - -**Configuration Changes**: Update a single setting in a configuration object without rebuilding the entire config. - -**Field Transformations**: Replace a raw value with a processed or formatted version while tracking the original. - - ---- - -## Replace List Item - -### What it is -Replaces an item at the specified index. - -### How it works - -This block replaces an item at a specific position in a list with a new value. It uses zero-based indexing and supports negative indices for accessing positions from the end. The old item that was replaced is also returned. - -This is useful for updating specific elements in an ordered list without rebuilding the entire list or losing other elements. - - -### Inputs - -| Input | Description | Type | Required | -|-------|-------------|------|----------| -| list | The list to modify. | List[Any] | Yes | -| index | Index of the item to replace (supports negative indices). | int | Yes | -| value | The new value for the given index. | Value | Yes | - -### Outputs - -| Output | Description | Type | -|--------|-------------|------| -| error | Error message if the operation failed | str | -| updated_list | The list after replacement. | List[Any] | -| old_item | The item that was replaced. | Old Item | - -### Possible use case - -**List Updates**: Replace an outdated entry in a list with updated information while keeping other entries intact. - -**Correction Workflows**: Fix a specific item in a results list after validation identifies an error at a known position. - -**Value Swapping**: Replace placeholder values in a list with computed or fetched actual values at known positions. - - ---- - -## Reverse List Order - -### What it is -Reverses the order of elements in a list - -### How it works - -This block takes a list and returns a new list with all elements in reverse order. The first element becomes the last, and the last element becomes the first. The original list is not modified. - -This is useful for changing the processing order of items or displaying lists in a different order than they were collected. - - -### Inputs - -| Input | Description | Type | Required | -|-------|-------------|------|----------| -| input_list | The list to reverse | List[Any] | Yes | - -### Outputs - -| Output | Description | Type | -|--------|-------------|------| -| error | Error message if the operation failed | str | -| reversed_list | The list in reversed order | List[Any] | - -### Possible use case - -**Chronological Reversal**: Display the most recent items first when data was collected oldest-to-newest. - -**Processing Order Change**: Process a stack of items last-in-first-out by reversing a first-in-first-out list. - -**Display Formatting**: Reverse leaderboard rankings to show from lowest to highest or vice versa. - - ---- - -## Search Memory - -### What it is -Search memories in Mem0 by user - -### How it works - -This block searches through stored memories using a natural language query. It uses semantic search to find memories that are relevant to your query, not just exact matches. Results can be filtered by categories or metadata. - -The search is performed against the Mem0 memory store and returns memories ranked by relevance to your query. This enables intelligent recall of past information based on meaning rather than keywords. - - -### Inputs - -| Input | Description | Type | Required | -|-------|-------------|------|----------| -| query | Search query | str | Yes | -| trigger | An unused field that is used to (re-)trigger the block when you have no other inputs | bool | No | -| categories_filter | Categories to filter by | List[str] | No | -| metadata_filter | Optional metadata filters to apply | Dict[str, Any] | No | -| limit_memory_to_run | Limit the memory to the run | bool | No | -| limit_memory_to_agent | Limit the memory to the agent | bool | No | - -### Outputs - -| Output | Description | Type | -|--------|-------------|------| -| error | Error message if the operation failed | str | -| memories | List of matching memories | Memories | - -### Possible use case - -**Contextual Recall**: Search for memories related to a user's current question to provide informed, contextual responses. - -**Knowledge Retrieval**: Find previously stored facts or insights that are relevant to a new task or decision. - -**Conversation History**: Search past interactions to recall what was discussed about a specific topic or person. - - ---- - -## Store Value - -### What it is -A basic block that stores and forwards a value throughout workflows, allowing it to be reused without changes across multiple blocks. - -### How it works - -It accepts an input value and optionally a data value. If a data value is provided, it is used as the output. Otherwise, the input value is used as the output. - - -### Inputs - -| Input | Description | Type | Required | -|-------|-------------|------|----------| -| input | Trigger the block to produce the output. The value is only used when `data` is None. | Input | Yes | -| data | The constant data to be retained in the block. This value is passed as `output`. | Data | No | - -### Outputs - -| Output | Description | Type | -|--------|-------------|------| -| error | Error message if the operation failed | str | -| output | The stored data retained in the block. | Output | - -### Possible use case - -Storing a user's name at the beginning of a workflow to use it in multiple subsequent blocks without asking for it again. - - ---- - -## Universal Type Converter - -### What it is -This block is used to convert a value to a universal type. - -### How it works - -This block converts values between common data types: string, number, boolean, list, and dictionary. It handles type coercion intelligently—for example, converting the string "true" to boolean true, or the string "42" to the number 42. - -This is useful when data from different sources needs to be in a consistent type for processing, comparison, or API requirements. - - -### Inputs - -| Input | Description | Type | Required | -|-------|-------------|------|----------| -| value | The value to convert to a universal type. | Value | Yes | -| type | The type to convert the value to. | "string" \| "number" \| "boolean" \| "list" \| "dictionary" | Yes | - -### Outputs - -| Output | Description | Type | -|--------|-------------|------| -| error | Error message if the operation failed | str | -| value | The converted value. | Value | - -### Possible use case - -**API Compatibility**: Convert string inputs to numbers or booleans as required by specific API parameters. - -**User Input Processing**: Transform user-entered text values into appropriate types for calculations or logic. - -**Data Normalization**: Standardize mixed-type data from various sources into consistent types for processing. - - ---- - -## XML Parser - -### What it is -Parses XML using gravitasml to tokenize and coverts it to dict - -### How it works - -This block parses XML content and converts it into a dictionary structure that can be easily navigated and processed in workflows. It uses the gravitasml library to tokenize the XML and produces a nested dictionary matching the XML hierarchy. - -This makes XML data accessible using standard dictionary operations, allowing you to extract values, iterate over elements, and process XML-based API responses or data files. - - -### Inputs - -| Input | Description | Type | Required | -|-------|-------------|------|----------| -| input_xml | input xml to be parsed | str | Yes | - -### Outputs - -| Output | Description | Type | -|--------|-------------|------| -| error | Error in parsing | str | -| parsed_xml | output parsed xml to dict | Dict[str, Any] | - -### Possible use case - -**API Response Processing**: Parse XML responses from SOAP APIs or legacy systems to extract the data you need. - -**Configuration File Reading**: Read XML configuration files and convert them to dictionaries for easy access. - -**Data Import**: Transform XML data exports from other systems into a format suitable for your workflow processing. - - ---- diff --git a/docs/integrations/block-integrations/ai-and-llm.md b/docs/integrations/block-integrations/ai-and-llm.md deleted file mode 100644 index ff23e67443..0000000000 --- a/docs/integrations/block-integrations/ai-and-llm.md +++ /dev/null @@ -1,208 +0,0 @@ -# AI and Large Language Models - -## Large Language Model (LLM) Blocks - -### AI Structured Response Generator - -#### What it is - -A block that generates structured responses using a Large Language Model (LLM). - -#### What it does - -It takes a prompt and other parameters, sends them to an LLM, and returns a structured response in a specified format. - -#### How it works - -The block sends the input prompt to a chosen LLM, along with any system prompts and expected response format. It then processes the LLM's response, ensuring it matches the expected format, and returns the structured data. - -#### Inputs - -| Input | Description | -| --------------- | ------------------------------------------------------------- | -| Prompt | The main text prompt to send to the LLM | -| Expected Format | A dictionary specifying the structure of the desired response | -| Model | The specific LLM to use (e.g., GPT-4 Turbo, Claude 3) | -| API Key | The secret key for accessing the LLM service | -| System Prompt | An optional prompt to guide the LLM's behavior | -| Retry | Number of attempts to generate a valid response | -| Prompt Values | Dictionary of values to fill in the prompt template | - -#### Outputs - -| Output | Description | -| -------- | -------------------------------------- | -| Response | The structured response from the LLM | -| Error | Any error message if the process fails | - -#### Possible use case - -Extracting specific information from unstructured text, such as generating a product description with predefined fields (name, features, price) from a lengthy product review. - -*** - -### AI Text Generator - -#### What it is - -A block that generates text responses using a Large Language Model (LLM). - -#### What it does - -It takes a prompt and other parameters, sends them to an LLM, and returns a text response. - -#### How it works - -The block sends the input prompt to a chosen LLM, processes the response, and returns the generated text. - -#### Inputs - -| Input | Description | -| ------------- | ----------------------------------------------------- | -| Prompt | The main text prompt to send to the LLM | -| Model | The specific LLM to use (e.g., GPT-4 Turbo, Claude 3) | -| API Key | The secret key for accessing the LLM service | -| System Prompt | An optional prompt to guide the LLM's behavior | -| Retry | Number of attempts to generate a valid response | -| Prompt Values | Dictionary of values to fill in the prompt template | - -#### Outputs - -| Output | Description | -| -------- | -------------------------------------- | -| Response | The text response from the LLM | -| Error | Any error message if the process fails | - -#### Possible use case - -Generating creative writing, such as short stories or poetry, based on a given theme or starting sentence. - -*** - -### AI Text Summarizer - -#### What it is - -A block that summarizes long texts using a Large Language Model (LLM). - -#### What it does - -It takes a long text, breaks it into manageable chunks, summarizes each chunk, and then combines these summaries into a final summary. - -#### How it works - -The block splits the input text into smaller chunks, sends each chunk to an LLM for summarization, and then combines these summaries. If the combined summary is still too long, it repeats the process until a concise summary is achieved. - -#### Inputs - -| Input | Description | -| ------------- | ------------------------------------------------------------------------- | -| Text | The long text to be summarized | -| Model | The specific LLM to use for summarization | -| Focus | The main topic or aspect to focus on in the summary | -| Style | The desired style of the summary (e.g., concise, detailed, bullet points) | -| API Key | The secret key for accessing the LLM service | -| Max Tokens | The maximum number of tokens for each chunk | -| Chunk Overlap | The number of overlapping tokens between chunks | - -#### Outputs - -| Output | Description | -| ------- | -------------------------------------- | -| Summary | The final summarized text | -| Error | Any error message if the process fails | - -#### Possible use case - -Summarizing lengthy research papers or articles to quickly grasp the main points and key findings. - -*** - -### AI Conversation - -#### What it is - -A block that facilitates multi-turn conversations using a Large Language Model (LLM). - -#### What it does - -It takes a list of conversation messages, sends them to an LLM, and returns the model's response to continue the conversation. - -#### How it works - -The block sends the entire conversation history to the chosen LLM, including system messages, user inputs, and previous responses. It then returns the LLM's response as the next part of the conversation. - -#### Inputs - -| Input | Description | -| ---------- | -------------------------------------------------------- | -| Messages | A list of previous messages in the conversation | -| Model | The specific LLM to use for the conversation | -| API Key | The secret key for accessing the LLM service | -| Max Tokens | The maximum number of tokens to generate in the response | - -#### Outputs - -| Output | Description | -| -------- | ----------------------------------------------- | -| Response | The LLM's response to continue the conversation | -| Error | Any error message if the process fails | - -#### Possible use case - -Creating an interactive chatbot that can maintain context over multiple exchanges, such as a customer service assistant or a language learning companion. - -*** - -### AI List Generator - -#### What it is - -A block that generates lists based on given prompts or source data using a Large Language Model (LLM). - -#### What it does - -It takes a focus or source data, sends it to an LLM, and returns a generated list based on the input. - -#### How it works - -The block formulates a prompt based on the given focus or source data, sends it to the chosen LLM, and then processes the response to ensure it's a valid Python list. It can retry multiple times if the initial attempts fail. - -#### Inputs - -| Input | Description | -| ----------- | ------------------------------------------------------- | -| Focus | The main topic or theme for the list to be generated | -| Source Data | Optional data to use as a basis for list generation | -| Model | The specific LLM to use for list generation | -| API Key | The secret key for accessing the LLM service | -| Max Retries | The maximum number of attempts to generate a valid list | - -#### Outputs - -| Output | Description | -| -------------- | ------------------------------------------ | -| Generated List | The full list generated by the LLM | -| List Item | Each individual item in the generated list | -| Error | Any error message if the process fails | - -#### Possible use case - -Automatically generating a list of key points or action items from a long meeting transcript or summarizing the main topics discussed in a series of documents. - -## Providers - -There are severals providers that AutoGPT users can use for running inference with LLM models. - -### Llama API - -Llama API is a Meta-hosted API service that helps you integrate Llama models quickly and efficiently. Using OpenAI comptability endpoints, you can easily access the power of Llama models without the need for complex setup or configuration! - -Join the [waitlist](https://llama.developer.meta.com/?utm_source=partner-autogpt\&utm_medium=readme) to get access! - -Try the Llama API provider by selecting any of the following LLM Model names from the AI blocks mentioned above: - -* Llama-4-Scout-17B-16E-Instruct-FP8 -* Llama-4-Maverick-17B-128E-Instruct-FP8 -* Llama-3.3-8B-Instruct -* Llama-3-70B-Instruct diff --git a/docs/integrations/block-integrations/ai-condition.md b/docs/integrations/block-integrations/ai-condition.md deleted file mode 100644 index ccf027518e..0000000000 --- a/docs/integrations/block-integrations/ai-condition.md +++ /dev/null @@ -1,87 +0,0 @@ -# AI Condition Block - -## What it is - -The AI Condition Block is a logical component that uses artificial intelligence to evaluate natural language conditions and produces outputs based on the result. This block allows you to define conditions in plain English rather than using traditional comparison operators. - -## What it does - -This block takes an input value and a natural language condition, then uses AI to determine whether the input satisfies the condition. Based on the result, it provides conditional outputs similar to a traditional if/else statement but with the flexibility of natural language evaluation. - -## How it works - -The block uses a Large Language Model (LLM) to evaluate the condition by: 1. Converting the input value to a string representation 2. Sending a carefully crafted prompt to the AI asking it to evaluate whether the input meets the specified condition 3. Parsing the AI's response to determine a true/false result 4. Outputting the appropriate value based on the result. - -## Inputs - -| Input | Description | -| ----------- | --------------------------------------------------------------------------------------------------- | -| Input Value | The value to be evaluated (can be text, number, or any data type) | -| Condition | A plaintext English description of the condition to evaluate | -| Yes Value | (Optional) The value to output if the condition is true. If not provided, Input Value will be used | -| No Value | (Optional) The value to output if the condition is false. If not provided, Input Value will be used | -| Model | The LLM model to use for evaluation (defaults to GPT-4o) | -| Credentials | API credentials for the LLM provider | - -## Outputs - -| Output | Description | -| ------------- | -------------------------------------------------------------------------------------------------------- | -| Result | A boolean value (true or false) indicating whether the condition was met | -| Yes Output | The output value if the condition is true. This will be the Yes Value if provided, or Input Value if not | -| No Output | The output value if the condition is false. This will be the No Value if provided, or Input Value if not | -| Error Message | Error message if the AI evaluation is uncertain or fails (empty string if successful) | - -## Examples - -### Email Address Validation - -* **Input Value**: `"john@example.com"` -* **Condition**: `"the input is an email address"` -* **Result**: `true` -* **Yes Output**: `"john@example.com"` (or custom Yes Value) - -### Geographic Location Check - -* **Input Value**: `"San Francisco"` -* **Condition**: `"the input is a city in the USA"` -* **Result**: `true` -* **Yes Output**: `"San Francisco"` (or custom Yes Value) - -### Error Detection - -* **Input Value**: `"Error: Connection timeout"` -* **Condition**: `"the input is an error message or refusal"` -* **Result**: `true` -* **Yes Output**: `"Error: Connection timeout"` (or custom Yes Value) - -### Content Classification - -* **Input Value**: `"This is a detailed explanation of how machine learning works..."` -* **Condition**: `"the input is the body of an email"` -* **Result**: `false` (it's more like article content) -* **No Output**: Custom No Value or the input value - -## Possible Use Cases - -* **Content Classification**: Automatically classify text content (emails, articles, comments, etc.) -* **Data Validation**: Validate input data using natural language rules -* **Smart Routing**: Route data through different paths based on AI-evaluated conditions -* **Quality Control**: Check if content meets certain quality or format standards -* **Language Detection**: Determine if text is in a specific language or style -* **Sentiment Analysis**: Evaluate if content has positive, negative, or neutral sentiment -* **Error Handling**: Detect and route error messages or problematic inputs - -## Advantages over Traditional Condition Blocks - -* **Flexibility**: Can handle complex, nuanced conditions that would be difficult to express with simple comparisons -* **Natural Language**: Uses everyday language instead of programming logic -* **Context Awareness**: AI can understand context and meaning, not just exact matches -* **Adaptability**: Can handle variations in input format and wording - -## Considerations - -* **Performance**: Requires an API call to an LLM, which adds latency compared to traditional conditions -* **Cost**: Each evaluation consumes LLM tokens, which has associated costs -* **Reliability**: AI responses may occasionally be inconsistent, so critical logic should include fallback handling -* **Network Dependency**: Requires internet connectivity to access the LLM API diff --git a/docs/integrations/block-integrations/ai-shortform-video.md b/docs/integrations/block-integrations/ai-shortform-video.md deleted file mode 100644 index 66b98776e3..0000000000 --- a/docs/integrations/block-integrations/ai-shortform-video.md +++ /dev/null @@ -1,38 +0,0 @@ -# AI Shortform Video Creator - -## What it is - -The AI Shortform Video Creator is a tool that generates short-form videos using artificial intelligence and various customization options. - -## What it does - -This block creates short videos by combining AI-generated visuals, narration, and background music based on user input. It can produce different styles of videos, including stock videos, moving AI images, or AI-generated videos. - -## How it works - -The block takes user input for script, visual style, audio, and other parameters. It then sends this information to the revid.ai API, which processes the request and generates the video. The block monitors the video creation process and provides the final video URL once it's ready. - -## Inputs - -| Input | Description | -| ----------------- | -------------------------------------------------------------------------------- | -| API Key | Your revid.ai API key for authentication | -| Script | The text content for the video, including spoken narration and visual directions | -| Ratio | The aspect ratio of the video (e.g., "9 / 16" for vertical videos) | -| Resolution | The video resolution (e.g., "720p") | -| Frame Rate | The number of frames per second in the video | -| Generation Preset | The visual style for AI-generated content (e.g., "Default", "Anime", "Realist") | -| Background Music | The choice of background music track | -| Voice | The AI voice to use for narration | -| Video Style | The type of visual media to use (stock videos, moving AI images, or AI video) | - -## Outputs - -| Output | Description | -| --------- | ----------------------------------------------------------------------------------- | -| Video URL | The web address where the created video can be accessed | -| Error | A message explaining any issues that occurred during video creation (if applicable) | - -## Possible use case - -A social media marketer could use this block to quickly create engaging short-form videos for platforms like TikTok or Instagram Reels. They could input a script about a new product, choose a suitable visual style and background music, and get a professional-looking video without needing advanced video editing skills. diff --git a/docs/integrations/ai_condition.md b/docs/integrations/block-integrations/ai_condition.md similarity index 100% rename from docs/integrations/ai_condition.md rename to docs/integrations/block-integrations/ai_condition.md diff --git a/docs/integrations/ai_shortform_video_block.md b/docs/integrations/block-integrations/ai_shortform_video_block.md similarity index 100% rename from docs/integrations/ai_shortform_video_block.md rename to docs/integrations/block-integrations/ai_shortform_video_block.md diff --git a/docs/integrations/airtable/bases.md b/docs/integrations/block-integrations/airtable/bases.md similarity index 100% rename from docs/integrations/airtable/bases.md rename to docs/integrations/block-integrations/airtable/bases.md diff --git a/docs/integrations/airtable/records.md b/docs/integrations/block-integrations/airtable/records.md similarity index 100% rename from docs/integrations/airtable/records.md rename to docs/integrations/block-integrations/airtable/records.md diff --git a/docs/integrations/airtable/schema.md b/docs/integrations/block-integrations/airtable/schema.md similarity index 100% rename from docs/integrations/airtable/schema.md rename to docs/integrations/block-integrations/airtable/schema.md diff --git a/docs/integrations/airtable/triggers.md b/docs/integrations/block-integrations/airtable/triggers.md similarity index 100% rename from docs/integrations/airtable/triggers.md rename to docs/integrations/block-integrations/airtable/triggers.md diff --git a/docs/integrations/apollo/organization.md b/docs/integrations/block-integrations/apollo/organization.md similarity index 100% rename from docs/integrations/apollo/organization.md rename to docs/integrations/block-integrations/apollo/organization.md diff --git a/docs/integrations/apollo/people.md b/docs/integrations/block-integrations/apollo/people.md similarity index 100% rename from docs/integrations/apollo/people.md rename to docs/integrations/block-integrations/apollo/people.md diff --git a/docs/integrations/apollo/person.md b/docs/integrations/block-integrations/apollo/person.md similarity index 100% rename from docs/integrations/apollo/person.md rename to docs/integrations/block-integrations/apollo/person.md diff --git a/docs/integrations/ayrshare/post_to_bluesky.md b/docs/integrations/block-integrations/ayrshare/post_to_bluesky.md similarity index 100% rename from docs/integrations/ayrshare/post_to_bluesky.md rename to docs/integrations/block-integrations/ayrshare/post_to_bluesky.md diff --git a/docs/integrations/ayrshare/post_to_facebook.md b/docs/integrations/block-integrations/ayrshare/post_to_facebook.md similarity index 100% rename from docs/integrations/ayrshare/post_to_facebook.md rename to docs/integrations/block-integrations/ayrshare/post_to_facebook.md diff --git a/docs/integrations/ayrshare/post_to_gmb.md b/docs/integrations/block-integrations/ayrshare/post_to_gmb.md similarity index 100% rename from docs/integrations/ayrshare/post_to_gmb.md rename to docs/integrations/block-integrations/ayrshare/post_to_gmb.md diff --git a/docs/integrations/ayrshare/post_to_instagram.md b/docs/integrations/block-integrations/ayrshare/post_to_instagram.md similarity index 100% rename from docs/integrations/ayrshare/post_to_instagram.md rename to docs/integrations/block-integrations/ayrshare/post_to_instagram.md diff --git a/docs/integrations/ayrshare/post_to_linkedin.md b/docs/integrations/block-integrations/ayrshare/post_to_linkedin.md similarity index 100% rename from docs/integrations/ayrshare/post_to_linkedin.md rename to docs/integrations/block-integrations/ayrshare/post_to_linkedin.md diff --git a/docs/integrations/ayrshare/post_to_pinterest.md b/docs/integrations/block-integrations/ayrshare/post_to_pinterest.md similarity index 100% rename from docs/integrations/ayrshare/post_to_pinterest.md rename to docs/integrations/block-integrations/ayrshare/post_to_pinterest.md diff --git a/docs/integrations/ayrshare/post_to_reddit.md b/docs/integrations/block-integrations/ayrshare/post_to_reddit.md similarity index 100% rename from docs/integrations/ayrshare/post_to_reddit.md rename to docs/integrations/block-integrations/ayrshare/post_to_reddit.md diff --git a/docs/integrations/ayrshare/post_to_snapchat.md b/docs/integrations/block-integrations/ayrshare/post_to_snapchat.md similarity index 100% rename from docs/integrations/ayrshare/post_to_snapchat.md rename to docs/integrations/block-integrations/ayrshare/post_to_snapchat.md diff --git a/docs/integrations/ayrshare/post_to_telegram.md b/docs/integrations/block-integrations/ayrshare/post_to_telegram.md similarity index 100% rename from docs/integrations/ayrshare/post_to_telegram.md rename to docs/integrations/block-integrations/ayrshare/post_to_telegram.md diff --git a/docs/integrations/ayrshare/post_to_threads.md b/docs/integrations/block-integrations/ayrshare/post_to_threads.md similarity index 100% rename from docs/integrations/ayrshare/post_to_threads.md rename to docs/integrations/block-integrations/ayrshare/post_to_threads.md diff --git a/docs/integrations/ayrshare/post_to_tiktok.md b/docs/integrations/block-integrations/ayrshare/post_to_tiktok.md similarity index 100% rename from docs/integrations/ayrshare/post_to_tiktok.md rename to docs/integrations/block-integrations/ayrshare/post_to_tiktok.md diff --git a/docs/integrations/ayrshare/post_to_x.md b/docs/integrations/block-integrations/ayrshare/post_to_x.md similarity index 100% rename from docs/integrations/ayrshare/post_to_x.md rename to docs/integrations/block-integrations/ayrshare/post_to_x.md diff --git a/docs/integrations/ayrshare/post_to_youtube.md b/docs/integrations/block-integrations/ayrshare/post_to_youtube.md similarity index 100% rename from docs/integrations/ayrshare/post_to_youtube.md rename to docs/integrations/block-integrations/ayrshare/post_to_youtube.md diff --git a/docs/integrations/baas/bots.md b/docs/integrations/block-integrations/baas/bots.md similarity index 100% rename from docs/integrations/baas/bots.md rename to docs/integrations/block-integrations/baas/bots.md diff --git a/docs/integrations/bannerbear/text_overlay.md b/docs/integrations/block-integrations/bannerbear/text_overlay.md similarity index 100% rename from docs/integrations/bannerbear/text_overlay.md rename to docs/integrations/block-integrations/bannerbear/text_overlay.md diff --git a/docs/integrations/block-integrations/basic.md b/docs/integrations/block-integrations/basic.md index ccc3b8d8b1..f92d19002f 100644 --- a/docs/integrations/block-integrations/basic.md +++ b/docs/integrations/block-integrations/basic.md @@ -1,271 +1,1454 @@ -# Basic Operations Blocks +# Basic + +Core utility blocks for storing values, printing output, file operations, type conversion, and basic data manipulation. + -## Store Value +## Add Memory ### What it is - -A basic block that stores and forwards a value. - -### What it does - -This block takes an input value and stores it, allowing it to be reused without changes. +Add new memories to Mem0 with user segmentation ### How it works + +This block integrates with Mem0, a memory layer service that stores and retrieves information across conversations. When you add a memory, the content is stored with the user's context and can optionally be segmented by run or agent, allowing for scoped memory retrieval later. -It accepts an input value and optionally a data value. If a data value is provided, it is used as the output. Otherwise, the input value is used as the output. +The block accepts either plain text or structured message objects (like those from AI blocks). You can attach metadata to memories for better organization and filtering. Memories persist across workflow executions, enabling your agents to "remember" past interactions. + ### Inputs -| Input | Description | -| ----- | ------------------------------------------------------------ | -| Input | The value to be stored or forwarded | -| Data | An optional constant value to be stored instead of the input | +| Input | Description | Type | Required | +|-------|-------------|------|----------| +| content | Content to add - either a string or list of message objects as output from an AI block | Content | No | +| metadata | Optional metadata for the memory | Dict[str, Any] | No | +| limit_memory_to_run | Limit the memory to the run | bool | No | +| limit_memory_to_agent | Limit the memory to the agent | bool | No | ### Outputs -| Output | Description | -| ------ | ----------------------------------------------- | -| Output | The stored value (either the input or the data) | +| Output | Description | Type | +|--------|-------------|------| +| error | Error message if the operation failed | str | +| action | Action of the operation | str | +| memory | Memory created | str | +| results | List of all results from the operation | List[Dict[str, str]] | ### Possible use case + +**Personalized Assistants**: Store user preferences, past interactions, or learned information so your AI agent can provide personalized responses in future conversations. -Storing a user's name at the beginning of a workflow to use it in multiple subsequent blocks without asking for it again. +**Context Carryover**: Save important details from one workflow run (like customer issues or project context) to reference in subsequent runs without asking the user again. -*** +**Knowledge Building**: Accumulate facts and insights over time, creating a growing knowledge base that improves your agent's helpfulness with each interaction. + -## Print to Console +--- + +## Add To Dictionary ### What it is - -A basic block that prints text to the console for debugging purposes. - -### What it does - -This block takes a text input and prints it to the console, then outputs a status message. +Adds a new key-value pair to a dictionary. If no dictionary is provided, a new one is created. ### How it works + +This block adds one or more key-value pairs to a dictionary. If you don't provide an existing dictionary, it creates a new one. You can add entries one at a time using the key/value fields, or add multiple entries at once using the entries field. -It receives a text input, prints it to the console with a "Print: " prefix, and then yields a "printed" status. +The block outputs the updated dictionary with all new entries added. This is useful for building up structured data objects as your workflow progresses, collecting information from multiple sources into a single data structure. + ### Inputs -| Input | Description | -| ----- | ------------------------------------- | -| Text | The text to be printed to the console | +| Input | Description | Type | Required | +|-------|-------------|------|----------| +| dictionary | The dictionary to add the entry to. If not provided, a new dictionary will be created. | Dict[str, Any] | No | +| key | The key for the new entry. | str | No | +| value | The value for the new entry. | Value | No | +| entries | The entries to add to the dictionary. This is the batch version of the `key` and `value` fields. | Dict[str, Any] | No | ### Outputs -| Output | Description | -| ------ | ---------------------------------------------------------- | -| Status | A message indicating that the text was printed ("printed") | +| Output | Description | Type | +|--------|-------------|------| +| error | Error message if the operation failed | str | +| updated_dictionary | The dictionary with the new entry added. | Dict[str, Any] | ### Possible use case + +**Building API Payloads**: Construct complex JSON objects by adding fields from different workflow branches before sending to an API. -Debugging a workflow by printing intermediate results or messages at various stages. +**Aggregating Form Data**: Collect user inputs from multiple form fields into a single structured object for processing or storage. -*** +**Creating Configuration Objects**: Build up settings or configuration dictionaries dynamically based on conditional logic in your workflow. + -## Find in Dictionary +--- + +## Add To List ### What it is - -A basic block that looks up a value in a dictionary, object, or list using a given key. - -### What it does - -This block searches for a specified key in the input data structure and returns the corresponding value if found. +Adds a new entry to a list. The entry can be of any type. If no list is provided, a new one is created. ### How it works + +This block appends items to a list or creates a new list if none is provided. You can add a single entry or multiple entries at once. The optional position parameter lets you insert items at a specific index rather than appending to the end. -It accepts an input (dictionary, object, or list) and a key. It then attempts to find the key in the input and return the corresponding value. If the key is not found, it returns the entire input as "missing". +Items can be of any type—strings, numbers, dictionaries, or other lists. This flexibility makes the block useful for building up collections of data as your workflow processes multiple items or accumulates results. + ### Inputs -| Input | Description | -| ----- | -------------------------------------------- | -| Input | The dictionary, object, or list to search in | -| Key | The key to look up in the input | +| Input | Description | Type | Required | +|-------|-------------|------|----------| +| list | The list to add the entry to. If not provided, a new list will be created. | List[Any] | No | +| entry | The entry to add to the list. Can be of any type (string, int, dict, etc.). | Entry | No | +| entries | The entries to add to the list. This is the batch version of the `entry` field. | List[Any] | No | +| position | The position to insert the new entry. If not provided, the entry will be appended to the end of the list. | int | No | ### Outputs -| Output | Description | -| ------- | ----------------------------------------- | -| Output | The value found for the given key | -| Missing | The entire input if the key was not found | +| Output | Description | Type | +|--------|-------------|------| +| error | Error message if the operation failed | str | +| updated_list | The list with the new entry added. | List[Any] | ### Possible use case + +**Collecting Search Results**: Accumulate items from paginated API responses into a single list for batch processing or display. -Extracting specific information from a complex data structure, such as finding a user's email address in a user profile dictionary. +**Building Email Recipients**: Gather email addresses from various sources into a recipient list before sending a message. -*** +**Aggregating Errors**: Collect validation errors or warnings from multiple checks into a list for consolidated error reporting. + + +--- + +## Agent Date Input + +### What it is +Block for date input. + +### How it works + +This block provides a date picker input field for users interacting with your agent. When the agent runs, users see a calendar widget to select a date, which is then passed to your workflow in YYYY-MM-DD format. + +The block is part of the Agent Input family, allowing you to collect structured input from users at runtime rather than hardcoding values. This makes your agents interactive and reusable for different scenarios. + + +### Inputs + +| Input | Description | Type | Required | +|-------|-------------|------|----------| +| name | The name of the input. | str | Yes | +| value | Date input (YYYY-MM-DD). | str (date) | No | +| title | The title of the input. | str | No | +| description | The description of the input. | str | No | +| advanced | Whether to show the input in the advanced section, if the field is not required. | bool | No | +| secret | Whether the input should be treated as a secret. | bool | No | + +### Outputs + +| Output | Description | Type | +|--------|-------------|------| +| result | Date result. | str (date) | + +### Possible use case + +**Appointment Scheduling**: Let users select a date for booking appointments, meetings, or reservations through your agent. + +**Report Generation**: Allow users to specify a date range start or end point for generating custom reports. + +**Deadline Setting**: Enable users to set due dates for tasks or projects when creating them through your workflow. + + +--- + +## Agent Dropdown Input + +### What it is +Block for dropdown text selection. + +### How it works + +This block provides a dropdown selection input for users interacting with your agent. You define the available options using placeholder_values, and users select one option from the list at runtime. + +This is ideal when you want to constrain user input to a predefined set of choices, ensuring valid input and simplifying the user experience. The selected value is passed to downstream blocks in your workflow. + + +### Inputs + +| Input | Description | Type | Required | +|-------|-------------|------|----------| +| name | The name of the input. | str | Yes | +| value | Text selected from a dropdown. | str | No | +| title | The title of the input. | str | No | +| description | The description of the input. | str | No | +| placeholder_values | Possible values for the dropdown. | List[Any] | No | +| advanced | Whether to show the input in the advanced section, if the field is not required. | bool | No | +| secret | Whether the input should be treated as a secret. | bool | No | + +### Outputs + +| Output | Description | Type | +|--------|-------------|------| +| result | Selected dropdown value. | str | + +### Possible use case + +**Service Selection**: Let users choose from available service tiers (Basic, Pro, Enterprise) when configuring their request. + +**Language Selection**: Allow users to select their preferred language from a list of supported options. + +**Category Filtering**: Enable users to select a category (Sales, Support, Billing) to route their inquiry appropriately. + + +--- + +## Agent File Input + +### What it is +Block for file upload input (string path for example). + +### How it works + +This block provides a file upload input for users interacting with your agent. Users can upload files which are stored temporarily and passed to your workflow as a file path reference. + +By default, the block outputs a file path string that other blocks can use to access the uploaded file. The optional base64 mode converts the file content to base64 encoding, though using file paths is generally recommended for better performance with large files. + + +### Inputs + +| Input | Description | Type | Required | +|-------|-------------|------|----------| +| name | The name of the input. | str | Yes | +| value | Path or reference to an uploaded file. | str (file) | No | +| title | The title of the input. | str | No | +| description | The description of the input. | str | No | +| advanced | Whether to show the input in the advanced section, if the field is not required. | bool | No | +| secret | Whether the input should be treated as a secret. | bool | No | +| base_64 | Whether produce an output in base64 format (not recommended, you can pass the string path just fine accross blocks). | bool | No | + +### Outputs + +| Output | Description | Type | +|--------|-------------|------| +| result | File reference/path result. | str | + +### Possible use case + +**Document Processing**: Accept PDF or Word documents from users for analysis, summarization, or data extraction. + +**Image Upload**: Allow users to upload images for processing, resizing, or AI-based analysis. + +**Data Import**: Enable users to upload CSV or Excel files to import data into your workflow for processing. + + +--- + +## Agent Google Drive File Input + +### What it is +Block for selecting a file from Google Drive. + +### How it works + +This block integrates with Google Drive to let users select files directly from their connected Drive account. The Google Drive file picker appears at runtime, allowing users to browse and select files without manually copying file IDs or URLs. + +You can configure which file types to display (documents, spreadsheets, presentations) using the allowed_views option. The block outputs the selected file's metadata including its ID, name, and URL for use by other Google-integrated blocks. + + +### Inputs + +| Input | Description | Type | Required | +|-------|-------------|------|----------| +| name | The name of the input. | str | Yes | +| value | The selected Google Drive file. | GoogleDriveFile | No | +| title | The title of the input. | str | No | +| description | The description of the input. | str | No | +| advanced | Whether to show the input in the advanced section, if the field is not required. | bool | No | +| secret | Whether the input should be treated as a secret. | bool | No | +| allowed_views | Which views to show in the file picker (DOCS, SPREADSHEETS, PRESENTATIONS, etc.). | List["DOCS" \| "DOCUMENTS" \| "SPREADSHEETS" \| "PRESENTATIONS" \| "DOCS_IMAGES" \| "FOLDERS"] | No | +| allow_folder_selection | Whether to allow selecting folders. | bool | No | + +### Outputs + +| Output | Description | Type | +|--------|-------------|------| +| result | The selected Google Drive file with ID, name, URL, and other metadata. | GoogleDriveFile | + +### Possible use case + +**Document Workflow**: Let users select a Google Doc to read, analyze, or append content to without knowing the file ID. + +**Spreadsheet Data Import**: Allow users to pick a Google Sheet to import data from for processing or analysis. + +**File Organization**: Enable users to select folders or files for bulk operations like moving, copying, or organizing content. + + +--- ## Agent Input ### What it is - -An input block that provides a way to accept user input in a workflow. - -### What it does - -This block allows users to input values into the workflow, with options for naming, describing, and setting placeholder values. +A block that accepts and processes user input values within a workflow, supporting various input types and validation. ### How it works - + It accepts a value from the user, along with metadata such as name, description, and optional placeholder values. The block then outputs the provided value. + ### Inputs -| Input | Description | -| --------------------------- | --------------------------------------------------- | -| Value | The actual input value provided by the user | -| Name | A name for the input field | -| Description | An optional description of the input | -| Placeholder Values | Optional list of suggested values | -| Limit to Placeholder Values | Option to restrict input to placeholder values only | +| Input | Description | Type | Required | +|-------|-------------|------|----------| +| name | The name of the input. | str | Yes | +| value | The value to be passed as input. | Value | No | +| title | The title of the input. | str | No | +| description | The description of the input. | str | No | +| advanced | Whether to show the input in the advanced section, if the field is not required. | bool | No | +| secret | Whether the input should be treated as a secret. | bool | No | ### Outputs -| Output | Description | -| ------ | --------------------------- | -| Result | The value provided as input | +| Output | Description | Type | +|--------|-------------|------| +| result | The value passed as input. | Result | ### Possible use case - + Collecting user preferences at the start of a personalized recommendation workflow. + -*** +--- + +## Agent Long Text Input + +### What it is +Block for long text input (multi-line). + +### How it works + +This block provides a multi-line text area input for users interacting with your agent. Unlike the short text input, this displays a larger text area suitable for paragraphs, descriptions, or any content that may span multiple lines. + +The block is ideal for collecting longer-form content like messages, descriptions, or code snippets from users at runtime. The text is passed as-is to downstream blocks in your workflow. + + +### Inputs + +| Input | Description | Type | Required | +|-------|-------------|------|----------| +| name | The name of the input. | str | Yes | +| value | Long text input (potentially multi-line). | str (long-text) | No | +| title | The title of the input. | str | No | +| description | The description of the input. | str | No | +| advanced | Whether to show the input in the advanced section, if the field is not required. | bool | No | +| secret | Whether the input should be treated as a secret. | bool | No | + +### Outputs + +| Output | Description | Type | +|--------|-------------|------| +| result | Long text result. | str | + +### Possible use case + +**Feedback Collection**: Accept detailed user feedback, reviews, or comments that may require multiple paragraphs. + +**Content Submission**: Let users submit articles, blog posts, or documentation content for processing or publication. + +**Query Input**: Allow users to enter complex questions or prompts for AI processing that require detailed context. + + +--- + +## Agent Number Input + +### What it is +Block for number input. + +### How it works + +This block provides a numeric input field for users interacting with your agent. The input validates that the user enters a valid integer, preventing text or invalid values from being submitted. + +This is useful when you need numeric parameters like quantities, counts, limits, or any integer value from users at runtime. The number is passed to downstream blocks for use in calculations or configurations. + + +### Inputs + +| Input | Description | Type | Required | +|-------|-------------|------|----------| +| name | The name of the input. | str | Yes | +| value | Number input. | int | No | +| title | The title of the input. | str | No | +| description | The description of the input. | str | No | +| advanced | Whether to show the input in the advanced section, if the field is not required. | bool | No | +| secret | Whether the input should be treated as a secret. | bool | No | + +### Outputs + +| Output | Description | Type | +|--------|-------------|------| +| result | Number result. | int | + +### Possible use case + +**Quantity Selection**: Let users specify how many items to process, order, or generate. + +**Pagination Control**: Allow users to specify page numbers or result limits for data retrieval. + +**Threshold Setting**: Enable users to set numeric thresholds or limits for alerts, filtering, or processing logic. + + +--- ## Agent Output ### What it is - -An output block that records and formats the final results of a workflow. - -### What it does - -This block takes a value and associated metadata, optionally formats it, and presents it as the output of the workflow. +A block that records and formats workflow results for display to users, with optional Jinja2 template formatting support. ### How it works - + It accepts an input value along with a name, description, and optional format string. If a format string is provided, it attempts to apply the formatting to the input value before outputting it. + ### Inputs -| Input | Description | -| ----------- | ----------------------------------------------- | -| Value | The value to be recorded as output | -| Name | A name for the output | -| Description | An optional description of the output | -| Format | An optional format string to apply to the value | +| Input | Description | Type | Required | +|-------|-------------|------|----------| +| value | The value to be recorded as output. | Value | No | +| name | The name of the output. | str | Yes | +| title | The title of the output. | str | No | +| description | The description of the output. | str | No | +| format | The format string to be used to format the recorded_value. Use Jinja2 syntax. | str | No | +| escape_html | Whether to escape special characters in the inserted values to be HTML-safe. Enable for HTML output, disable for plain text. | bool | No | +| advanced | Whether to treat the output as advanced. | bool | No | +| secret | Whether the output should be treated as a secret. | bool | No | ### Outputs -| Output | Description | -| ------ | ------------------------------------------ | -| Output | The formatted (if applicable) output value | +| Output | Description | Type | +|--------|-------------|------| +| output | The value recorded as output. | Output | +| name | The name of the value recorded as output. | Name | ### Possible use case - + Presenting the final results of a data analysis workflow in a specific format. + -*** +--- -## Add to Dictionary +## Agent Short Text Input ### What it is - -A basic block that adds a new key-value pair to a dictionary. - -### What it does - -This block takes an existing dictionary (or creates a new one), a key, and a value, and adds the key-value pair to the dictionary. +Block for short text input (single-line). ### How it works + +This block provides a single-line text input field for users interacting with your agent. It's designed for brief text entries like names, titles, URLs, or short responses. -It accepts an optional input dictionary, a key, and a value. If no dictionary is provided, it creates a new one. It then adds the key-value pair to the dictionary and returns the updated dictionary. +The input displays as a standard text field and passes the entered text to downstream blocks. Use this for collecting concise information that doesn't require multiple lines or extensive formatting. + ### Inputs -| Input | Description | -| ---------- | ----------------------------------------- | -| Dictionary | An optional existing dictionary to add to | -| Key | The key for the new entry | -| Value | The value for the new entry | +| Input | Description | Type | Required | +|-------|-------------|------|----------| +| name | The name of the input. | str | Yes | +| value | Short text input. | str (short-text) | No | +| title | The title of the input. | str | No | +| description | The description of the input. | str | No | +| advanced | Whether to show the input in the advanced section, if the field is not required. | bool | No | +| secret | Whether the input should be treated as a secret. | bool | No | ### Outputs -| Output | Description | -| ------------------ | --------------------------------------- | -| Updated Dictionary | The dictionary with the new entry added | -| Error | An error message if the operation fails | +| Output | Description | Type | +|--------|-------------|------| +| result | Short text result. | str | ### Possible use case + +**Name Collection**: Gather user names, company names, or project names for personalization. -Building a user profile by gradually adding new information as it's collected throughout a workflow. +**Search Queries**: Accept search terms or keywords from users to drive search functionality. -*** +**URL Input**: Let users provide URLs for websites, APIs, or resources to process in your workflow. + -## Add to List +--- + +## Agent Table Input ### What it is - -A basic block that adds a new entry to a list. - -### What it does - -This block takes an existing list (or creates a new one) and adds a new entry to it, optionally at a specified position. +Block for table data input with customizable headers. ### How it works + +This block provides a tabular data input interface for users interacting with your agent. Users can enter data in a spreadsheet-like table format with customizable column headers. -It accepts an optional input list, an entry to add, and an optional position. If no list is provided, it creates a new one. It then adds the entry to the list at the specified position (or at the end if no position is given) and returns the updated list. +The table input is ideal for structured data entry where users need to provide multiple records with consistent fields. The block outputs the data as a list of dictionaries, with each row becoming a dictionary where column headers are keys. + ### Inputs -| Input | Description | -| -------- | -------------------------------------------- | -| List | An optional existing list to add to | -| Entry | The new item to add to the list | -| Position | An optional position to insert the new entry | +| Input | Description | Type | Required | +|-------|-------------|------|----------| +| name | The name of the input. | str | Yes | +| value | The table data as a list of dictionaries. | List[Dict[str, Any]] | No | +| title | The title of the input. | str | No | +| description | The description of the input. | str | No | +| advanced | Whether to show the input in the advanced section, if the field is not required. | bool | No | +| secret | Whether the input should be treated as a secret. | bool | No | +| column_headers | Column headers for the table. | List[str] | No | ### Outputs -| Output | Description | -| ------------ | --------------------------------------- | -| Updated List | The list with the new entry added | -| Error | An error message if the operation fails | +| Output | Description | Type | +|--------|-------------|------| +| result | The table data as a list of dictionaries with headers as keys. | List[Dict[str, Any]] | ### Possible use case + +**Bulk Data Entry**: Let users input multiple records at once, like a list of contacts with name, email, and phone columns. -Maintaining a to-do list in a task management workflow, where new tasks can be added at specific priorities (positions). +**Order Processing**: Accept line items for an order with product, quantity, and price columns. -*** +**Task Lists**: Allow users to submit multiple tasks with columns for title, assignee, and priority. + + +--- + +## Agent Time Input + +### What it is +Block for time input. + +### How it works + +This block provides a time picker input for users interacting with your agent. Users select a time (hours, minutes, and optionally seconds) which is passed to your workflow in HH:MM:SS format. + +The time picker provides a user-friendly interface for selecting times without requiring users to type in a specific format. This ensures valid time values and improves the user experience. + + +### Inputs + +| Input | Description | Type | Required | +|-------|-------------|------|----------| +| name | The name of the input. | str | Yes | +| value | Time input (HH:MM:SS). | str (time) | No | +| title | The title of the input. | str | No | +| description | The description of the input. | str | No | +| advanced | Whether to show the input in the advanced section, if the field is not required. | bool | No | +| secret | Whether the input should be treated as a secret. | bool | No | + +### Outputs + +| Output | Description | Type | +|--------|-------------|------| +| result | Time result. | str (time) | + +### Possible use case + +**Appointment Scheduling**: Let users specify a time for meetings, calls, or appointments. + +**Reminder Setting**: Allow users to set reminder times for notifications or alerts. + +**Shift Configuration**: Enable users to define start or end times for work shifts or availability windows. + + +--- + +## Agent Toggle Input + +### What it is +Block for boolean toggle input. + +### How it works + +This block provides a boolean toggle (on/off switch) input for users interacting with your agent. Users simply click to toggle between true and false states, making yes/no decisions quick and error-free. + +The toggle is ideal for binary choices like enabling features, confirming actions, or setting preferences. The boolean value is passed to downstream blocks for conditional logic. + + +### Inputs + +| Input | Description | Type | Required | +|-------|-------------|------|----------| +| name | The name of the input. | str | Yes | +| value | Boolean toggle input. | bool | No | +| title | The title of the input. | str | No | +| description | The description of the input. | str | No | +| advanced | Whether to show the input in the advanced section, if the field is not required. | bool | No | +| secret | Whether the input should be treated as a secret. | bool | No | + +### Outputs + +| Output | Description | Type | +|--------|-------------|------| +| result | Boolean toggle result. | bool | + +### Possible use case + +**Feature Flags**: Let users enable or disable optional features in your workflow. + +**Confirmation Toggles**: Require users to acknowledge terms, confirm destructive actions, or opt into notifications. + +**Mode Selection**: Allow users to switch between modes like "test mode" vs "production mode" or "verbose" vs "quiet" output. + + +--- + +## Block Installation + +### What it is +Given a code string, this block allows the verification and installation of a block code into the system. + +### How it works + +This block allows dynamic installation of new block types into the system from Python code. The code is verified for safety and correctness before installation. Once installed, the new block becomes available for use in workflows. + +This enables extensibility by allowing custom blocks to be added without modifying the core system, though it requires the code to follow the block specification format. + + +### Inputs + +| Input | Description | Type | Required | +|-------|-------------|------|----------| +| code | Python code of the block to be installed | str | Yes | + +### Outputs + +| Output | Description | Type | +|--------|-------------|------| +| error | Error message if the block installation fails | str | +| success | Success message if the block is installed successfully | str | + +### Possible use case + +**Custom Integrations**: Install blocks that connect to proprietary or internal APIs not covered by built-in blocks. + +**Dynamic Workflows**: Allow administrators to extend workflow capabilities without redeploying the entire system. + +**Experimental Features**: Test new block implementations before formally adding them to the block library. + + +--- + +## Concatenate Lists + +### What it is +Concatenates multiple lists into a single list. All elements from all input lists are combined in order. + +### How it works + +The block iterates through each list in the input and extends a result list with all elements from each one. It processes lists in order, so `[[1, 2], [3, 4]]` becomes `[1, 2, 3, 4]`. + +The block includes validation to ensure each item is actually a list. If a non-list value (like a string or number) is encountered, the block outputs an error message instead of proceeding. None values are skipped automatically. + + +### Inputs + +| Input | Description | Type | Required | +|-------|-------------|------|----------| +| lists | A list of lists to concatenate together. All lists will be combined in order into a single list. | List[List[Any]] | Yes | + +### Outputs + +| Output | Description | Type | +|--------|-------------|------| +| error | Error message if concatenation failed due to invalid input types. | str | +| concatenated_list | The concatenated list containing all elements from all input lists in order. | List[Any] | + +### Possible use case + +**Paginated API Merging**: Combine results from multiple API pages into a single list for batch processing or display. + +**Parallel Task Aggregation**: Merge outputs from parallel workflow branches that each produce a list of results. + +**Multi-Source Data Collection**: Combine data collected from different sources (like multiple RSS feeds or API endpoints) into one unified list. + + +--- + +## Dictionary Is Empty + +### What it is +Checks if a dictionary is empty. + +### How it works + +This block checks whether a dictionary has any entries and returns a boolean result. An empty dictionary (no key-value pairs) returns true, while a dictionary with any entries returns false. + +This is useful for conditional logic where you need to verify if data was returned from an API, if user input was provided, or if a collection process yielded any results. + + +### Inputs + +| Input | Description | Type | Required | +|-------|-------------|------|----------| +| dictionary | The dictionary to check. | Dict[str, Any] | Yes | + +### Outputs + +| Output | Description | Type | +|--------|-------------|------| +| error | Error message if the operation failed | str | +| is_empty | True if the dictionary is empty. | bool | + +### Possible use case + +**Response Validation**: Check if an API returned an empty response before processing data. + +**Input Verification**: Verify that user-provided form data contains at least one field before submission. + +**Conditional Processing**: Skip processing steps when no matching data was found in a search or filter operation. + + +--- + +## File Store + +### What it is +Stores the input file in the temporary directory. + +### How it works + +This block takes a file from various sources (URL, data URI, or local path) and stores it in a temporary directory for use by other blocks in your workflow. This normalizes file handling regardless of the original source. + +The block outputs a file path that other blocks can use to access the stored file. The optional base64 output mode is available but file paths are recommended for better performance with large files. + + +### Inputs + +| Input | Description | Type | Required | +|-------|-------------|------|----------| +| file_in | The file to store in the temporary directory, it can be a URL, data URI, or local path. | str (file) | Yes | +| base_64 | Whether produce an output in base64 format (not recommended, you can pass the string path just fine accross blocks). | bool | No | + +### Outputs + +| Output | Description | Type | +|--------|-------------|------| +| error | Error message if the operation failed | str | +| file_out | The relative path to the stored file in the temporary directory. | str (file) | + +### Possible use case + +**URL File Download**: Fetch a file from a URL and make it available for local processing by other blocks. + +**Data URI Conversion**: Convert base64-encoded data URIs (like from a web form) into accessible file paths. + +**File Normalization**: Standardize file access across different input sources (URLs, uploads, local files) for consistent downstream processing. + + +--- + +## Find In Dictionary + +### What it is +A block that looks up a value in a dictionary, list, or object by key or index and returns the corresponding value. + +### How it works + +This block extracts a value from a dictionary (object) or list using a key or index. If the key exists, the value is output through the "output" pin. If the key is missing, the original input is output through the "missing" pin. + +This enables safe data access with built-in handling for missing keys, preventing workflow errors when expected data isn't present. You can use string keys for dictionaries or integer indices for lists. + + +### Inputs + +| Input | Description | Type | Required | +|-------|-------------|------|----------| +| input | Dictionary to lookup from | Input | Yes | +| key | Key to lookup in the dictionary | str \| int | Yes | + +### Outputs + +| Output | Description | Type | +|--------|-------------|------| +| error | Error message if the operation failed | str | +| output | Value found for the given key | Output | +| missing | Value of the input that missing the key | Missing | + +### Possible use case + +**API Response Parsing**: Extract specific fields (like "data" or "results") from API response objects. + +**Configuration Access**: Retrieve settings from a configuration dictionary by key name. + +**User Data Extraction**: Pull specific user attributes (name, email, preferences) from a user profile object. + + +--- + +## Find In List + +### What it is +Finds the index of the value in the list. + +### How it works + +This block searches a list for a specific value and returns its position (index). If found, it outputs the zero-based index and sets "found" to true. If not found, it outputs the original value through "not_found_value" and sets "found" to false. + +This enables conditional logic based on list membership and helps locate items for subsequent list operations like replacement or removal. + + +### Inputs + +| Input | Description | Type | Required | +|-------|-------------|------|----------| +| list | The list to search in. | List[Any] | Yes | +| value | The value to search for. | Value | Yes | + +### Outputs + +| Output | Description | Type | +|--------|-------------|------| +| error | Error message if the operation failed | str | +| index | The index of the value in the list. | int | +| found | Whether the value was found in the list. | bool | +| not_found_value | The value that was not found in the list. | Not Found Value | + +### Possible use case + +**Duplicate Detection**: Check if an item already exists in a list before adding it. + +**Status Lookup**: Find if a value is in a list of valid states or allowed values. + +**Position Finding**: Locate an item's position for subsequent operations like updates or removals. + + +--- + +## Get All Memories + +### What it is +Retrieve all memories from Mem0 with optional conversation filtering + +### How it works + +This block retrieves all stored memories from Mem0 for the current user context. You can filter results by categories or metadata, and scope the retrieval to the current run or agent using the limit options. + +Memories are returned as a list that your workflow can iterate through. This is useful for reviewing accumulated knowledge, debugging what your agent has learned, or aggregating past interactions for analysis. + + +### Inputs + +| Input | Description | Type | Required | +|-------|-------------|------|----------| +| trigger | An unused field that is used to trigger the block when you have no other inputs | bool | No | +| categories | Filter by categories | List[str] | No | +| metadata_filter | Optional metadata filters to apply | Dict[str, Any] | No | +| limit_memory_to_run | Limit the memory to the run | bool | No | +| limit_memory_to_agent | Limit the memory to the agent | bool | No | + +### Outputs + +| Output | Description | Type | +|--------|-------------|------| +| error | Error message if the operation failed | str | +| memories | List of memories | Memories | + +### Possible use case + +**Context Review**: Retrieve all memories at the start of a session to understand what your agent already knows about a user. + +**Memory Export**: Collect all stored memories for backup, analysis, or migration to another system. + +**Memory Management**: List all memories to identify outdated or incorrect information that needs updating. + + +--- + +## Get Latest Memory + +### What it is +Retrieve the latest memory from Mem0 with optional key filtering + +### How it works + +This block retrieves the most recently stored memory from Mem0. You can filter by categories, metadata, or conversation ID to find the latest relevant memory. The block indicates whether a memory was found and returns it if available. + +This is useful for quickly accessing the last piece of information stored without iterating through all memories, such as checking the most recent user preference or the last conversation topic. + + +### Inputs + +| Input | Description | Type | Required | +|-------|-------------|------|----------| +| trigger | An unused field that is used to trigger the block when you have no other inputs | bool | No | +| categories | Filter by categories | List[str] | No | +| conversation_id | Optional conversation ID to retrieve the latest memory from (uses run_id) | str | No | +| metadata_filter | Optional metadata filters to apply | Dict[str, Any] | No | +| limit_memory_to_run | Limit the memory to the run | bool | No | +| limit_memory_to_agent | Limit the memory to the agent | bool | No | + +### Outputs + +| Output | Description | Type | +|--------|-------------|------| +| error | Error message if the operation failed | str | +| memory | Latest memory if found | Dict[str, Any] | +| found | Whether a memory was found | bool | + +### Possible use case + +**Conversation Continuity**: Retrieve the last topic discussed to provide context when resuming a conversation. + +**Status Tracking**: Get the most recent status update or progress report stored during a workflow. + +**Quick Recall**: Access the last user preference or setting without loading the full memory history. + + +--- + +## Get List Item + +### What it is +Returns the element at the given index. + +### How it works + +This block retrieves an item from a list at a specific index position. It uses zero-based indexing (first item is 0) and supports negative indices for accessing items from the end (e.g., -1 for the last item). + +If the index is out of range, the block outputs an error. This is useful for accessing specific elements without iterating through the entire list. + + +### Inputs + +| Input | Description | Type | Required | +|-------|-------------|------|----------| +| list | The list to get the item from. | List[Any] | Yes | +| index | The 0-based index of the item (supports negative indices). | int | Yes | + +### Outputs + +| Output | Description | Type | +|--------|-------------|------| +| error | Error message if the operation failed | str | +| item | The item at the specified index. | Item | + +### Possible use case + +**First/Last Item Access**: Get the first item (index 0) or last item (index -1) from a list of results. + +**Ordered Selection**: Access a specific position in a ranked list, like the second-highest score or third most recent entry. + +**Array Unpacking**: Extract individual elements from a fixed-structure list where each position has a known meaning. + + +--- + +## Get Weather Information + +### What it is +Retrieves weather information for a specified location using OpenWeatherMap API. + +### How it works + +The block sends a request to a weather API (like OpenWeatherMap) with the provided location. It then processes the response to extract relevant weather data. + + +### Inputs + +| Input | Description | Type | Required | +|-------|-------------|------|----------| +| location | Location to get weather information for | str | Yes | +| use_celsius | Whether to use Celsius or Fahrenheit for temperature | bool | No | + +### Outputs + +| Output | Description | Type | +|--------|-------------|------| +| error | Error message if the weather information cannot be retrieved | str | +| temperature | Temperature in the specified location | str | +| humidity | Humidity in the specified location | str | +| condition | Weather condition in the specified location | str | + +### Possible use case + +A travel planning application could use this block to provide users with current weather information for their destination cities. + + +--- + +## Human In The Loop + +### What it is +Pause execution and wait for human approval or modification of data + +### How it works + +This block pauses workflow execution and presents data to a human reviewer for approval. The workflow waits until the human approves or rejects the data, then routes to the corresponding output. If editable is enabled, the reviewer can modify the data before approving. + +This enables human oversight at critical points in automated workflows, ensuring important decisions have human verification before proceeding. + + +### Inputs + +| Input | Description | Type | Required | +|-------|-------------|------|----------| +| data | The data to be reviewed by a human user | Data | Yes | +| name | A descriptive name for what this data represents | str | Yes | +| editable | Whether the human reviewer can edit the data | bool | No | + +### Outputs + +| Output | Description | Type | +|--------|-------------|------| +| error | Error message if the operation failed | str | +| approved_data | The data when approved (may be modified by reviewer) | Approved Data | +| rejected_data | The data when rejected (may be modified by reviewer) | Rejected Data | +| review_message | Any message provided by the reviewer | str | + +### Possible use case + +**Content Moderation**: Review AI-generated content before publishing to ensure quality and appropriateness. + +**Approval Workflows**: Require manager approval for actions like large purchases, access requests, or configuration changes. + +**Quality Assurance**: Let reviewers verify data transformations or calculations before they're committed to production systems. + + +--- + +## List Is Empty + +### What it is +Checks if a list is empty. + +### How it works + +This block checks whether a list contains any items and returns a boolean result. An empty list (no elements) returns true, while a list with any elements returns false. + +This is useful for conditional logic where you need to verify if search results were found, if items are available for processing, or if a collection has any entries to iterate over. + + +### Inputs + +| Input | Description | Type | Required | +|-------|-------------|------|----------| +| list | The list to check. | List[Any] | Yes | + +### Outputs + +| Output | Description | Type | +|--------|-------------|------| +| error | Error message if the operation failed | str | +| is_empty | True if the list is empty. | bool | + +### Possible use case + +**Search Result Handling**: Check if a search returned any results before processing, displaying "no results found" when empty. + +**Batch Processing Guard**: Verify that a list has items before starting a batch operation to avoid empty iterations. + +**Conditional Messaging**: Send different notifications based on whether pending items exist or the queue is empty. + + +--- ## Note ### What it is - -A basic block that displays a sticky note with custom text. - -### What it does - -This block takes a text input and displays it as a sticky note in the workflow interface. +A visual annotation block that displays a sticky note in the workflow editor for documentation and organization purposes. ### How it works - + It simply accepts a text input and passes it through as an output to be displayed as a note. + ### Inputs -| Input | Description | -| ----- | -------------------------------------- | -| Text | The text to display in the sticky note | +| Input | Description | Type | Required | +|-------|-------------|------|----------| +| text | The text to display in the sticky note. | str | Yes | ### Outputs -| Output | Description | -| ------ | -------------------------------------- | -| Output | The text to display in the sticky note | +| Output | Description | Type | +|--------|-------------|------| +| error | Error message if the operation failed | str | +| output | The text to display in the sticky note. | str | ### Possible use case - + Adding explanatory notes or reminders within a complex workflow to help users understand different stages or provide additional context. + + +--- + +## Print To Console + +### What it is +A debugging block that outputs text to the console for monitoring and troubleshooting workflow execution. + +### How it works + +This block outputs the provided data to the server console log and passes it through as output. It's primarily used for debugging workflows by allowing you to inspect values at any point in the data flow. + +The block accepts any data type and both prints it for debugging visibility and forwards it to downstream blocks, making it easy to insert into existing connections without disrupting the workflow. + + +### Inputs + +| Input | Description | Type | Required | +|-------|-------------|------|----------| +| text | The data to print to the console. | Text | Yes | + +### Outputs + +| Output | Description | Type | +|--------|-------------|------| +| error | Error message if the operation failed | str | +| output | The data printed to the console. | Output | +| status | The status of the print operation. | str | + +### Possible use case + +**Workflow Debugging**: Insert at any point to inspect what data is flowing through that connection during testing. + +**Variable Inspection**: Log the values of variables or API responses to understand what your workflow is receiving. + +**Progress Tracking**: Add print statements at key stages to monitor workflow progress in the server logs. + + +--- + +## Remove From Dictionary + +### What it is +Removes a key-value pair from a dictionary. + +### How it works + +This block removes a key-value pair from a dictionary by specifying the key. The updated dictionary without that entry is output. Optionally, you can retrieve the value that was removed by enabling return_value. + +If the key doesn't exist in the dictionary, the operation may error or return the dictionary unchanged depending on the implementation. This is useful for cleaning up data or extracting and removing values in one step. + + +### Inputs + +| Input | Description | Type | Required | +|-------|-------------|------|----------| +| dictionary | The dictionary to modify. | Dict[str, Any] | Yes | +| key | Key to remove from the dictionary. | str \| int | Yes | +| return_value | Whether to return the removed value. | bool | No | + +### Outputs + +| Output | Description | Type | +|--------|-------------|------| +| error | Error message if the operation failed | str | +| updated_dictionary | The dictionary after removal. | Dict[str, Any] | +| removed_value | The removed value if requested. | Removed Value | + +### Possible use case + +**Data Cleaning**: Remove sensitive fields (like passwords or tokens) from data before logging or storing. + +**Pop Pattern**: Extract and remove a value from a dictionary in a single operation, like dequeuing items. + +**Object Trimming**: Remove unnecessary or deprecated fields from configuration objects before processing. + + +--- + +## Remove From List + +### What it is +Removes an item from a list by value or index. + +### How it works + +This block removes an item from a list either by value (remove first occurrence) or by index (remove at specific position). Negative indices are supported for removal from the end. Optionally, the removed item can be returned. + +This provides flexibility for both "remove this specific item" and "remove the item at this position" use cases in a single block. + + +### Inputs + +| Input | Description | Type | Required | +|-------|-------------|------|----------| +| list | The list to modify. | List[Any] | Yes | +| value | Value to remove from the list. | Value | No | +| index | Index of the item to pop (supports negative indices). | int | No | +| return_item | Whether to return the removed item. | bool | No | + +### Outputs + +| Output | Description | Type | +|--------|-------------|------| +| error | Error message if the operation failed | str | +| updated_list | The list after removal. | List[Any] | +| removed_item | The removed item if requested. | Removed Item | + +### Possible use case + +**Queue Processing**: Pop items from the front of a list to process them one at a time (FIFO queue). + +**Exclusion Lists**: Remove specific values from a list, like filtering out certain options or invalid entries. + +**Stack Operations**: Pop items from the end of a list for last-in-first-out processing. + + +--- + +## Replace Dictionary Value + +### What it is +Replaces the value for a specified key in a dictionary. + +### How it works + +This block updates the value for an existing key in a dictionary. The old value is replaced with the new one, and the updated dictionary is output. The block also returns the old value that was replaced. + +This is useful for updating specific fields in a data object while preserving all other fields, or for tracking what value was changed during an update operation. + + +### Inputs + +| Input | Description | Type | Required | +|-------|-------------|------|----------| +| dictionary | The dictionary to modify. | Dict[str, Any] | Yes | +| key | Key to replace the value for. | str \| int | Yes | +| value | The new value for the given key. | Value | Yes | + +### Outputs + +| Output | Description | Type | +|--------|-------------|------| +| error | Error message if the operation failed | str | +| updated_dictionary | The dictionary after replacement. | Dict[str, Any] | +| old_value | The value that was replaced. | Old Value | + +### Possible use case + +**Status Updates**: Change the status field in a record from "pending" to "completed" while preserving all other data. + +**Configuration Changes**: Update a single setting in a configuration object without rebuilding the entire config. + +**Field Transformations**: Replace a raw value with a processed or formatted version while tracking the original. + + +--- + +## Replace List Item + +### What it is +Replaces an item at the specified index. + +### How it works + +This block replaces an item at a specific position in a list with a new value. It uses zero-based indexing and supports negative indices for accessing positions from the end. The old item that was replaced is also returned. + +This is useful for updating specific elements in an ordered list without rebuilding the entire list or losing other elements. + + +### Inputs + +| Input | Description | Type | Required | +|-------|-------------|------|----------| +| list | The list to modify. | List[Any] | Yes | +| index | Index of the item to replace (supports negative indices). | int | Yes | +| value | The new value for the given index. | Value | Yes | + +### Outputs + +| Output | Description | Type | +|--------|-------------|------| +| error | Error message if the operation failed | str | +| updated_list | The list after replacement. | List[Any] | +| old_item | The item that was replaced. | Old Item | + +### Possible use case + +**List Updates**: Replace an outdated entry in a list with updated information while keeping other entries intact. + +**Correction Workflows**: Fix a specific item in a results list after validation identifies an error at a known position. + +**Value Swapping**: Replace placeholder values in a list with computed or fetched actual values at known positions. + + +--- + +## Reverse List Order + +### What it is +Reverses the order of elements in a list + +### How it works + +This block takes a list and returns a new list with all elements in reverse order. The first element becomes the last, and the last element becomes the first. The original list is not modified. + +This is useful for changing the processing order of items or displaying lists in a different order than they were collected. + + +### Inputs + +| Input | Description | Type | Required | +|-------|-------------|------|----------| +| input_list | The list to reverse | List[Any] | Yes | + +### Outputs + +| Output | Description | Type | +|--------|-------------|------| +| error | Error message if the operation failed | str | +| reversed_list | The list in reversed order | List[Any] | + +### Possible use case + +**Chronological Reversal**: Display the most recent items first when data was collected oldest-to-newest. + +**Processing Order Change**: Process a stack of items last-in-first-out by reversing a first-in-first-out list. + +**Display Formatting**: Reverse leaderboard rankings to show from lowest to highest or vice versa. + + +--- + +## Search Memory + +### What it is +Search memories in Mem0 by user + +### How it works + +This block searches through stored memories using a natural language query. It uses semantic search to find memories that are relevant to your query, not just exact matches. Results can be filtered by categories or metadata. + +The search is performed against the Mem0 memory store and returns memories ranked by relevance to your query. This enables intelligent recall of past information based on meaning rather than keywords. + + +### Inputs + +| Input | Description | Type | Required | +|-------|-------------|------|----------| +| query | Search query | str | Yes | +| trigger | An unused field that is used to (re-)trigger the block when you have no other inputs | bool | No | +| categories_filter | Categories to filter by | List[str] | No | +| metadata_filter | Optional metadata filters to apply | Dict[str, Any] | No | +| limit_memory_to_run | Limit the memory to the run | bool | No | +| limit_memory_to_agent | Limit the memory to the agent | bool | No | + +### Outputs + +| Output | Description | Type | +|--------|-------------|------| +| error | Error message if the operation failed | str | +| memories | List of matching memories | Memories | + +### Possible use case + +**Contextual Recall**: Search for memories related to a user's current question to provide informed, contextual responses. + +**Knowledge Retrieval**: Find previously stored facts or insights that are relevant to a new task or decision. + +**Conversation History**: Search past interactions to recall what was discussed about a specific topic or person. + + +--- + +## Store Value + +### What it is +A basic block that stores and forwards a value throughout workflows, allowing it to be reused without changes across multiple blocks. + +### How it works + +It accepts an input value and optionally a data value. If a data value is provided, it is used as the output. Otherwise, the input value is used as the output. + + +### Inputs + +| Input | Description | Type | Required | +|-------|-------------|------|----------| +| input | Trigger the block to produce the output. The value is only used when `data` is None. | Input | Yes | +| data | The constant data to be retained in the block. This value is passed as `output`. | Data | No | + +### Outputs + +| Output | Description | Type | +|--------|-------------|------| +| error | Error message if the operation failed | str | +| output | The stored data retained in the block. | Output | + +### Possible use case + +Storing a user's name at the beginning of a workflow to use it in multiple subsequent blocks without asking for it again. + + +--- + +## Universal Type Converter + +### What it is +This block is used to convert a value to a universal type. + +### How it works + +This block converts values between common data types: string, number, boolean, list, and dictionary. It handles type coercion intelligently—for example, converting the string "true" to boolean true, or the string "42" to the number 42. + +This is useful when data from different sources needs to be in a consistent type for processing, comparison, or API requirements. + + +### Inputs + +| Input | Description | Type | Required | +|-------|-------------|------|----------| +| value | The value to convert to a universal type. | Value | Yes | +| type | The type to convert the value to. | "string" \| "number" \| "boolean" \| "list" \| "dictionary" | Yes | + +### Outputs + +| Output | Description | Type | +|--------|-------------|------| +| error | Error message if the operation failed | str | +| value | The converted value. | Value | + +### Possible use case + +**API Compatibility**: Convert string inputs to numbers or booleans as required by specific API parameters. + +**User Input Processing**: Transform user-entered text values into appropriate types for calculations or logic. + +**Data Normalization**: Standardize mixed-type data from various sources into consistent types for processing. + + +--- + +## XML Parser + +### What it is +Parses XML using gravitasml to tokenize and coverts it to dict + +### How it works + +This block parses XML content and converts it into a dictionary structure that can be easily navigated and processed in workflows. It uses the gravitasml library to tokenize the XML and produces a nested dictionary matching the XML hierarchy. + +This makes XML data accessible using standard dictionary operations, allowing you to extract values, iterate over elements, and process XML-based API responses or data files. + + +### Inputs + +| Input | Description | Type | Required | +|-------|-------------|------|----------| +| input_xml | input xml to be parsed | str | Yes | + +### Outputs + +| Output | Description | Type | +|--------|-------------|------| +| error | Error in parsing | str | +| parsed_xml | output parsed xml to dict | Dict[str, Any] | + +### Possible use case + +**API Response Processing**: Parse XML responses from SOAP APIs or legacy systems to extract the data you need. + +**Configuration File Reading**: Read XML configuration files and convert them to dictionaries for easy access. + +**Data Import**: Transform XML data exports from other systems into a format suitable for your workflow processing. + + +--- diff --git a/docs/integrations/block-integrations/branching.md b/docs/integrations/block-integrations/branching.md index 5438e110f5..7e3932d007 100644 --- a/docs/integrations/block-integrations/branching.md +++ b/docs/integrations/block-integrations/branching.md @@ -1,35 +1,29 @@ # Condition Block ## What it is - The Condition Block is a logical component that evaluates comparisons between two values and produces outputs based on the result. ## What it does - This block compares two input values using a specified comparison operator and determines whether the condition is true or false. It then outputs the result of the comparison and provides corresponding output values for both true and false cases. ## How it works - The block takes two values and a comparison operator as inputs. It then performs the comparison using the specified operator. Based on the result of the comparison, it outputs a boolean value (true or false) and the corresponding output value for the true or false case. ## Inputs - -| Input | Description | -| --------- | ----------------------------------------------------------------------------------------------- | -| Value 1 | The first value to be compared. This can be any type of value (number, text, or boolean) | -| Operator | The comparison operator to use (e.g., equal to, not equal to, greater than, less than) | -| Value 2 | The second value to be compared. This can be any type of value (number, text, or boolean) | -| Yes Value | (Optional) The value to output if the condition is true. If not provided, Value 1 will be used | -| No Value | (Optional) The value to output if the condition is false. If not provided, Value 1 will be used | +| Input | Description | +|-------|-------------| +| Value 1 | The first value to be compared. This can be any type of value (number, text, or boolean) | +| Operator | The comparison operator to use (e.g., equal to, not equal to, greater than, less than) | +| Value 2 | The second value to be compared. This can be any type of value (number, text, or boolean) | +| Yes Value | (Optional) The value to output if the condition is true. If not provided, Value 1 will be used | +| No Value | (Optional) The value to output if the condition is false. If not provided, Value 1 will be used | ## Outputs - -| Output | Description | -| ---------- | ---------------------------------------------------------------------------------------------------- | -| Result | A boolean value (true or false) indicating whether the condition was met | +| Output | Description | +|--------|-------------| +| Result | A boolean value (true or false) indicating whether the condition was met | | Yes Output | The output value if the condition is true. This will be the Yes Value if provided, or Value 1 if not | -| No Output | The output value if the condition is false. This will be the No Value if provided, or Value 1 if not | +| No Output | The output value if the condition is false. This will be the No Value if provided, or Value 1 if not | ## Possible use case - -This block could be used in a customer loyalty program to determine if a customer qualifies for a discount. For example, you could compare the customer's total purchases (Value 1) with a threshold amount (Value 2) using the "greater than or equal to" operator. The Yes Value could be "Qualified for discount" and the No Value could be "Not qualified". The block would then output whether the customer qualifies and the appropriate message. +This block could be used in a customer loyalty program to determine if a customer qualifies for a discount. For example, you could compare the customer's total purchases (Value 1) with a threshold amount (Value 2) using the "greater than or equal to" operator. The Yes Value could be "Qualified for discount" and the No Value could be "Not qualified". The block would then output whether the customer qualifies and the appropriate message. \ No newline at end of file diff --git a/docs/integrations/compass/triggers.md b/docs/integrations/block-integrations/compass/triggers.md similarity index 100% rename from docs/integrations/compass/triggers.md rename to docs/integrations/block-integrations/compass/triggers.md diff --git a/docs/integrations/block-integrations/csv.md b/docs/integrations/block-integrations/csv.md index 303e4d4c7f..7117b57be2 100644 --- a/docs/integrations/block-integrations/csv.md +++ b/docs/integrations/block-integrations/csv.md @@ -1,37 +1,31 @@ # Read CSV -## What It Is - +## What it is A block that reads and processes CSV (Comma-Separated Values) files. -## What It Does - +## What it does This block takes CSV content as input, processes it, and outputs the data as individual rows and a complete dataset. -## How It Works - +## How it works The Read CSV block takes the contents of a CSV file and splits it into rows and columns. It can handle different formatting options, such as custom delimiters and quote characters. The block processes the CSV data and outputs each row individually, as well as the complete dataset. -## Inputs +## Inputs +| Input | Description | +|-------|-------------| +| Contents | The CSV data as a string | +| Delimiter | The character used to separate values in the CSV (default is comma ",") | +| Quotechar | The character used to enclose fields containing special characters (default is double quote '"') | +| Escapechar | The character used to escape special characters (default is backslash "\") | +| Has_header | Indicates whether the CSV has a header row (default is true) | +| Skip_rows | The number of rows to skip at the beginning of the CSV (default is 0) | +| Strip | Whether to remove leading and trailing whitespace from values (default is true) | +| Skip_columns | A list of column names to exclude from the output (default is an empty list) | -| Input | Description | -| ------------- | ------------------------------------------------------------------------------------------------ | -| Contents | The CSV data as a string | -| Delimiter | The character used to separate values in the CSV (default is comma ",") | -| Quotechar | The character used to enclose fields containing special characters (default is double quote '"') | -| Escapechar | The character used to escape special characters (default is backslash "") | -| Has\_header | Indicates whether the CSV has a header row (default is true) | -| Skip\_rows | The number of rows to skip at the beginning of the CSV (default is 0) | -| Strip | Whether to remove leading and trailing whitespace from values (default is true) | -| Skip\_columns | A list of column names to exclude from the output (default is an empty list) | +## Outputs +| Output | Description | +|--------|-------------| +| Row | A dictionary representing a single row of the CSV, with column names as keys and cell values as values | +| All_data | A list of dictionaries containing all rows from the CSV | -## Outputs - -| Output | Description | -| --------- | ------------------------------------------------------------------------------------------------------ | -| Row | A dictionary representing a single row of the CSV, with column names as keys and cell values as values | -| All\_data | A list of dictionaries containing all rows from the CSV | - -## Possible Use Case - -This block could be used in a data analysis pipeline to import and process customer information from a CSV file. The individual rows could be used for real-time processing, while the complete dataset could be used for batch analysis or reporting. +## Possible use case +This block could be used in a data analysis pipeline to import and process customer information from a CSV file. The individual rows could be used for real-time processing, while the complete dataset could be used for batch analysis or reporting. \ No newline at end of file diff --git a/docs/integrations/block-integrations/d-id.md b/docs/integrations/block-integrations/d-id.md deleted file mode 100644 index 673e3ee10b..0000000000 --- a/docs/integrations/block-integrations/d-id.md +++ /dev/null @@ -1,20 +0,0 @@ -# Using D-ID - -## **ElevenLabs** - -1. Select any voice from the voice list: [https://api.elevenlabs.io/v1/voices](https://api.elevenlabs.io/v1/voices) -2. Copy the voice\_id -3. Use it as a string in the voice\_id field in the CreateTalkingAvatarClip Block - -## **Microsoft Azure Voices** - -1. Select any voice from the voice gallery: [https://speech.microsoft.com/portal/voicegallery](https://speech.microsoft.com/portal/voicegallery) -2. Click on the "Sample code" tab on the right -3. Copy the voice name, for example: config.SpeechSynthesisVoiceName ="en-GB-AbbiNeural" -4. Use this string en-GB-AbbiNeural in the voice\_id field in the CreateTalkingAvatarClip Block - -## **Amazon Polly Voices** - -1. Select any voice from the voice list: [https://docs.aws.amazon.com/polly/latest/dg/available-voices.html](https://docs.aws.amazon.com/polly/latest/dg/available-voices.html) -2. Copy the voice name / ID -3. Use it as string in the voice\_id field in the CreateTalkingAvatarClip Block diff --git a/docs/integrations/data.md b/docs/integrations/block-integrations/data.md similarity index 100% rename from docs/integrations/data.md rename to docs/integrations/block-integrations/data.md diff --git a/docs/integrations/dataforseo/keyword_suggestions.md b/docs/integrations/block-integrations/dataforseo/keyword_suggestions.md similarity index 100% rename from docs/integrations/dataforseo/keyword_suggestions.md rename to docs/integrations/block-integrations/dataforseo/keyword_suggestions.md diff --git a/docs/integrations/dataforseo/related_keywords.md b/docs/integrations/block-integrations/dataforseo/related_keywords.md similarity index 100% rename from docs/integrations/dataforseo/related_keywords.md rename to docs/integrations/block-integrations/dataforseo/related_keywords.md diff --git a/docs/integrations/decoder_block.md b/docs/integrations/block-integrations/decoder_block.md similarity index 100% rename from docs/integrations/decoder_block.md rename to docs/integrations/block-integrations/decoder_block.md diff --git a/docs/integrations/block-integrations/discord.md b/docs/integrations/block-integrations/discord.md index 0afc64e386..fa08093463 100644 --- a/docs/integrations/block-integrations/discord.md +++ b/docs/integrations/block-integrations/discord.md @@ -1,68 +1,54 @@ -# Discord - -### Read Discord Messages - -#### What it is +## Read Discord Messages +### What it is A block that reads messages from a Discord channel using a bot token. -#### What it does - +### What it does This block connects to Discord using a bot token and retrieves messages from a specified channel. It can operate continuously or retrieve a single message. -#### How it works - +### How it works The block uses a Discord bot to log into a server and listen for new messages. When a message is received, it extracts the content, channel name, and username of the sender. If the message contains a text file attachment, the block also retrieves and includes the file's content. -#### Inputs +### Inputs +| Input | Description | +|-------|-------------| +| Discord Bot Token | A secret token used to authenticate the bot with Discord | +| Continuous Read | A boolean flag indicating whether to continuously read messages or stop after one message | -| Input | Description | -| ----------------- | ----------------------------------------------------------------------------------------- | -| Discord Bot Token | A secret token used to authenticate the bot with Discord | -| Continuous Read | A boolean flag indicating whether to continuously read messages or stop after one message | - -#### Outputs - -| Output | Description | -| --------------- | ----------------------------------------------------------------------------- | +### Outputs +| Output | Description | +|--------|-------------| | Message Content | The text content of the received message, including any attached file content | -| Channel Name | The name of the Discord channel where the message was received | -| Username | The name of the user who sent the message | - -#### Possible use case +| Channel Name | The name of the Discord channel where the message was received | +| Username | The name of the user who sent the message | +### Possible use case This block could be used to monitor a Discord channel for support requests. When a user posts a message, the block captures it, allowing another part of the system to process and respond to the request. -*** +--- -### Send Discord Message - -#### What it is +## Send Discord Message +### What it is A block that sends messages to a Discord channel using a bot token. -#### What it does - +### What it does This block connects to Discord using a bot token and sends a specified message to a designated channel. -#### How it works - +### How it works The block uses a Discord bot to log into a server, locate the specified channel, and send the provided message. If the message is longer than Discord's character limit, it automatically splits the message into smaller chunks and sends them sequentially. -#### Inputs - -| Input | Description | -| ----------------- | -------------------------------------------------------- | +### Inputs +| Input | Description | +|-------|-------------| | Discord Bot Token | A secret token used to authenticate the bot with Discord | -| Message Content | The text content of the message to be sent | -| Channel Name | Channel ID or channel name to send the message to | +| Message Content | The text content of the message to be sent | +| Channel Name | Channel ID or channel name to send the message to | -#### Outputs - -| Output | Description | -| ------ | --------------------------------------------------------------------------------------------- | +### Outputs +| Output | Description | +|--------|-------------| | Status | A string indicating the result of the operation (e.g., "Message sent" or "Channel not found") | -#### Possible use case - -This block could be used as part of an automated notification system. For example, it could send alerts to a Discord channel when certain events occur in another system, such as when a new user signs up or when a critical error is detected. +### Possible use case +This block could be used as part of an automated notification system. For example, it could send alerts to a Discord channel when certain events occur in another system, such as when a new user signs up or when a critical error is detected. \ No newline at end of file diff --git a/docs/integrations/discord/bot_blocks.md b/docs/integrations/block-integrations/discord/bot_blocks.md similarity index 100% rename from docs/integrations/discord/bot_blocks.md rename to docs/integrations/block-integrations/discord/bot_blocks.md diff --git a/docs/integrations/discord/oauth_blocks.md b/docs/integrations/block-integrations/discord/oauth_blocks.md similarity index 100% rename from docs/integrations/discord/oauth_blocks.md rename to docs/integrations/block-integrations/discord/oauth_blocks.md diff --git a/docs/integrations/block-integrations/email.md b/docs/integrations/block-integrations/email.md deleted file mode 100644 index 560151f825..0000000000 --- a/docs/integrations/block-integrations/email.md +++ /dev/null @@ -1,42 +0,0 @@ -# Send Email - -## What it is - -The Send Email block is a tool for sending emails using SMTP (Simple Mail Transfer Protocol) credentials. - -## What it does - -This block allows users to send an email to a specified recipient with a custom subject and body. It uses provided SMTP credentials to connect to an email server and send the message. - -## How it works - -The block takes the recipient's email address, subject, and body of the email as inputs. It also requires SMTP credentials, including the server address, port, username, and password. The block then connects to the specified SMTP server, authenticates using the provided credentials, and sends the email. After attempting to send the email, it reports back whether the operation was successful or if an error occurred. - -## Inputs - -| Input | Description | -| ---------------- | ------------------------------------------------------- | -| To Email | The email address of the recipient | -| Subject | The subject line of the email | -| Body | The main content of the email message | -| SMTP Credentials | Server, port, username, and password for authentication | - -### SMTP Credentials Details - -| Credential | Description | Default | -| ------------- | ---------------------------------------------------- | -------------- | -| SMTP Server | The address of the SMTP server | smtp.gmail.com | -| SMTP Port | The port number for the SMTP server | 25 | -| SMTP Username | The username for authenticating with the SMTP server | - | -| SMTP Password | The password for authenticating with the SMTP server | - | - -## Outputs - -| Output | Description | -| ------ | -------------------------------------------------------------------------------------- | -| Status | A message indicating whether the email was sent successfully | -| Error | If the email sending fails, this output provides details about the error that occurred | - -## Possible use case - -This block could be used in an automated customer support system. When a customer submits a support ticket through a website, the Send Email block could automatically send a confirmation email to the customer, acknowledging receipt of their request and providing them with a ticket number for future reference. diff --git a/docs/integrations/email_block.md b/docs/integrations/block-integrations/email_block.md similarity index 100% rename from docs/integrations/email_block.md rename to docs/integrations/block-integrations/email_block.md diff --git a/docs/integrations/enrichlayer/linkedin.md b/docs/integrations/block-integrations/enrichlayer/linkedin.md similarity index 100% rename from docs/integrations/enrichlayer/linkedin.md rename to docs/integrations/block-integrations/enrichlayer/linkedin.md diff --git a/docs/integrations/exa/answers.md b/docs/integrations/block-integrations/exa/answers.md similarity index 100% rename from docs/integrations/exa/answers.md rename to docs/integrations/block-integrations/exa/answers.md diff --git a/docs/integrations/exa/code_context.md b/docs/integrations/block-integrations/exa/code_context.md similarity index 100% rename from docs/integrations/exa/code_context.md rename to docs/integrations/block-integrations/exa/code_context.md diff --git a/docs/integrations/exa/contents.md b/docs/integrations/block-integrations/exa/contents.md similarity index 100% rename from docs/integrations/exa/contents.md rename to docs/integrations/block-integrations/exa/contents.md diff --git a/docs/integrations/exa/research.md b/docs/integrations/block-integrations/exa/research.md similarity index 100% rename from docs/integrations/exa/research.md rename to docs/integrations/block-integrations/exa/research.md diff --git a/docs/integrations/exa/search.md b/docs/integrations/block-integrations/exa/search.md similarity index 100% rename from docs/integrations/exa/search.md rename to docs/integrations/block-integrations/exa/search.md diff --git a/docs/integrations/exa/similar.md b/docs/integrations/block-integrations/exa/similar.md similarity index 100% rename from docs/integrations/exa/similar.md rename to docs/integrations/block-integrations/exa/similar.md diff --git a/docs/integrations/exa/webhook_blocks.md b/docs/integrations/block-integrations/exa/webhook_blocks.md similarity index 100% rename from docs/integrations/exa/webhook_blocks.md rename to docs/integrations/block-integrations/exa/webhook_blocks.md diff --git a/docs/integrations/exa/websets.md b/docs/integrations/block-integrations/exa/websets.md similarity index 100% rename from docs/integrations/exa/websets.md rename to docs/integrations/block-integrations/exa/websets.md diff --git a/docs/integrations/exa/websets_enrichment.md b/docs/integrations/block-integrations/exa/websets_enrichment.md similarity index 100% rename from docs/integrations/exa/websets_enrichment.md rename to docs/integrations/block-integrations/exa/websets_enrichment.md diff --git a/docs/integrations/exa/websets_import_export.md b/docs/integrations/block-integrations/exa/websets_import_export.md similarity index 100% rename from docs/integrations/exa/websets_import_export.md rename to docs/integrations/block-integrations/exa/websets_import_export.md diff --git a/docs/integrations/exa/websets_items.md b/docs/integrations/block-integrations/exa/websets_items.md similarity index 100% rename from docs/integrations/exa/websets_items.md rename to docs/integrations/block-integrations/exa/websets_items.md diff --git a/docs/integrations/exa/websets_monitor.md b/docs/integrations/block-integrations/exa/websets_monitor.md similarity index 100% rename from docs/integrations/exa/websets_monitor.md rename to docs/integrations/block-integrations/exa/websets_monitor.md diff --git a/docs/integrations/exa/websets_polling.md b/docs/integrations/block-integrations/exa/websets_polling.md similarity index 100% rename from docs/integrations/exa/websets_polling.md rename to docs/integrations/block-integrations/exa/websets_polling.md diff --git a/docs/integrations/exa/websets_search.md b/docs/integrations/block-integrations/exa/websets_search.md similarity index 100% rename from docs/integrations/exa/websets_search.md rename to docs/integrations/block-integrations/exa/websets_search.md diff --git a/docs/integrations/fal/ai_video_generator.md b/docs/integrations/block-integrations/fal/ai_video_generator.md similarity index 100% rename from docs/integrations/fal/ai_video_generator.md rename to docs/integrations/block-integrations/fal/ai_video_generator.md diff --git a/docs/integrations/firecrawl/crawl.md b/docs/integrations/block-integrations/firecrawl/crawl.md similarity index 100% rename from docs/integrations/firecrawl/crawl.md rename to docs/integrations/block-integrations/firecrawl/crawl.md diff --git a/docs/integrations/firecrawl/extract.md b/docs/integrations/block-integrations/firecrawl/extract.md similarity index 100% rename from docs/integrations/firecrawl/extract.md rename to docs/integrations/block-integrations/firecrawl/extract.md diff --git a/docs/integrations/firecrawl/map.md b/docs/integrations/block-integrations/firecrawl/map.md similarity index 100% rename from docs/integrations/firecrawl/map.md rename to docs/integrations/block-integrations/firecrawl/map.md diff --git a/docs/integrations/firecrawl/scrape.md b/docs/integrations/block-integrations/firecrawl/scrape.md similarity index 100% rename from docs/integrations/firecrawl/scrape.md rename to docs/integrations/block-integrations/firecrawl/scrape.md diff --git a/docs/integrations/firecrawl/search.md b/docs/integrations/block-integrations/firecrawl/search.md similarity index 100% rename from docs/integrations/firecrawl/search.md rename to docs/integrations/block-integrations/firecrawl/search.md diff --git a/docs/integrations/block-integrations/flux-kontext.md b/docs/integrations/block-integrations/flux-kontext.md deleted file mode 100644 index 5e8ede6d6d..0000000000 --- a/docs/integrations/block-integrations/flux-kontext.md +++ /dev/null @@ -1,37 +0,0 @@ -# Flux Kontext - -## What it is - -An internal block that performs text-based image editing using BlackForest Labs' Flux Kontext models. - -## What it does - -Takes a prompt describing the desired transformation and optionally a reference image, then returns a new image URL. - -## How it works - -The block sends your prompt, image, and settings to the selected Flux Kontext model on Replicate. The service processes the request and returns a link to the edited image. - -## Inputs - -| Input | Description | -| ------------ | ------------------------------------------------------------------------------- | -| Credentials | Replicate API key with permissions for Flux Kontext models | -| Prompt | Text instruction describing the desired edit | -| Input Image | (Optional) Reference image URI (jpeg, png, gif, webp) | -| Aspect Ratio | Aspect ratio of the generated image (e.g. match\_input\_image, 1:1, 16:9, etc.) | -| Seed | (Optional, advanced) Random seed for reproducible generation | -| Model | Model variant to use: Flux Kontext Pro or Flux Kontext Max | - -## Outputs - -| Output | Description | -| ---------- | ---------------------------------- | -| image\_url | URL of the transformed image | -| error | Error message if generation failed | - -## Use Cases - -* Enhance a marketing image by requesting "add soft lighting and a subtle vignette" while providing the original asset as the reference image. -* Generate social media assets with specific aspect ratios and style prompts. -* Apply creative edits to product photos using text instructions. diff --git a/docs/integrations/flux_kontext.md b/docs/integrations/block-integrations/flux_kontext.md similarity index 100% rename from docs/integrations/flux_kontext.md rename to docs/integrations/block-integrations/flux_kontext.md diff --git a/docs/integrations/generic_webhook/triggers.md b/docs/integrations/block-integrations/generic_webhook/triggers.md similarity index 100% rename from docs/integrations/generic_webhook/triggers.md rename to docs/integrations/block-integrations/generic_webhook/triggers.md diff --git a/docs/integrations/block-integrations/github-issues.md b/docs/integrations/block-integrations/github-issues.md deleted file mode 100644 index 73757eec2c..0000000000 --- a/docs/integrations/block-integrations/github-issues.md +++ /dev/null @@ -1,284 +0,0 @@ -# GitHub Issues - -## Github Comment - -### What it is - -A block that posts comments on GitHub issues or pull requests. - -### What it does - -This block allows users to add comments to existing GitHub issues or pull requests using the GitHub API. - -### How it works - -The block takes the GitHub credentials, the URL of the issue or pull request, and the comment text as inputs. It then sends a request to the GitHub API to post the comment on the specified issue or pull request. - -### Inputs - -| Input | Description | -| ----------- | ---------------------------------------------------------------------------- | -| Credentials | GitHub authentication information | -| Issue URL | The URL of the GitHub issue or pull request where the comment will be posted | -| Comment | The text content of the comment to be posted | - -### Outputs - -| Output | Description | -| ------ | ----------------------------------------------- | -| ID | The unique identifier of the created comment | -| URL | The direct link to the posted comment on GitHub | -| Error | Any error message if the comment posting fails | - -### Possible use case - -Automating responses to issues in a GitHub repository, such as thanking contributors for their submissions or providing status updates on reported bugs. - -*** - -## Github Make Issue - -### What it is - -A block that creates new issues on GitHub repositories. - -### What it does - -This block allows users to create new issues in a specified GitHub repository with a title and body content. - -### How it works - -The block takes the GitHub credentials, repository URL, issue title, and issue body as inputs. It then sends a request to the GitHub API to create a new issue with the provided information. - -### Inputs - -| Input | Description | -| ----------- | ---------------------------------------------------------------- | -| Credentials | GitHub authentication information | -| Repo URL | The URL of the GitHub repository where the issue will be created | -| Title | The title of the new issue | -| Body | The main content or description of the new issue | - -### Outputs - -| Output | Description | -| ------ | ---------------------------------------------------- | -| Number | The issue number assigned by GitHub | -| URL | The direct link to the newly created issue on GitHub | -| Error | Any error message if the issue creation fails | - -### Possible use case - -Automatically creating issues for bug reports or feature requests submitted through an external system or form. - -*** - -## Github Read Issue - -### What it is - -A block that retrieves information about a specific GitHub issue. - -### What it does - -This block fetches the details of a given GitHub issue, including its title, body content, and the user who created it. - -### How it works - -The block takes the GitHub credentials and the issue URL as inputs. It then sends a request to the GitHub API to fetch the issue's details and returns the relevant information. - -### Inputs - -| Input | Description | -| ----------- | -------------------------------------- | -| Credentials | GitHub authentication information | -| Issue URL | The URL of the GitHub issue to be read | - -### Outputs - -| Output | Description | -| ------ | ------------------------------------------------ | -| Title | The title of the issue | -| Body | The main content or description of the issue | -| User | The username of the person who created the issue | -| Error | Any error message if reading the issue fails | - -### Possible use case - -Gathering information about reported issues for analysis or to display on a dashboard. - -*** - -## Github List Issues - -### What it is - -A block that retrieves a list of issues from a GitHub repository. - -### What it does - -This block fetches all open issues from a specified GitHub repository and provides their titles and URLs. - -### How it works - -The block takes the GitHub credentials and repository URL as inputs. It then sends a request to the GitHub API to fetch the list of issues and returns their details. - -### Inputs - -| Input | Description | -| ----------- | ---------------------------------------------------- | -| Credentials | GitHub authentication information | -| Repo URL | The URL of the GitHub repository to list issues from | - -### Outputs - -| Output | Description | -| ------- | --------------------------------------------- | -| Issue | A list of issues, each containing: | -| - Title | The title of the issue | -| - URL | The direct link to the issue on GitHub | -| Error | Any error message if listing the issues fails | - -### Possible use case - -Creating a summary of open issues for a project status report or displaying them on a project management dashboard. - -*** - -## Github Add Label - -### What it is - -A block that adds a label to a GitHub issue or pull request. - -### What it does - -This block allows users to add a specified label to an existing GitHub issue or pull request. - -### How it works - -The block takes the GitHub credentials, the URL of the issue or pull request, and the label to be added as inputs. It then sends a request to the GitHub API to add the label to the specified issue or pull request. - -### Inputs - -| Input | Description | -| ----------- | --------------------------------------------------------------- | -| Credentials | GitHub authentication information | -| Issue URL | The URL of the GitHub issue or pull request to add the label to | -| Label | The name of the label to be added | - -### Outputs - -| Output | Description | -| ------ | ------------------------------------------------------------- | -| Status | A message indicating whether the label was successfully added | -| Error | Any error message if adding the label fails | - -### Possible use case - -Automatically categorizing issues based on their content or assigning priority labels to newly created issues. - -*** - -## Github Remove Label - -### What it is - -A block that removes a label from a GitHub issue or pull request. - -### What it does - -This block allows users to remove a specified label from an existing GitHub issue or pull request. - -### How it works - -The block takes the GitHub credentials, the URL of the issue or pull request, and the label to be removed as inputs. It then sends a request to the GitHub API to remove the label from the specified issue or pull request. - -### Inputs - -| Input | Description | -| ----------- | -------------------------------------------------------------------- | -| Credentials | GitHub authentication information | -| Issue URL | The URL of the GitHub issue or pull request to remove the label from | -| Label | The name of the label to be removed | - -### Outputs - -| Output | Description | -| ------ | --------------------------------------------------------------- | -| Status | A message indicating whether the label was successfully removed | -| Error | Any error message if removing the label fails | - -### Possible use case - -Updating the status of issues as they progress through a workflow, such as removing a "In Progress" label when an issue is completed. - -*** - -## Github Assign Issue - -### What it is - -A block that assigns a user to a GitHub issue. - -### What it does - -This block allows users to assign a specific GitHub user to an existing issue. - -### How it works - -The block takes the GitHub credentials, the URL of the issue, and the username of the person to be assigned as inputs. It then sends a request to the GitHub API to assign the specified user to the issue. - -### Inputs - -| Input | Description | -| ----------- | ------------------------------------------------------ | -| Credentials | GitHub authentication information | -| Issue URL | The URL of the GitHub issue to assign | -| Assignee | The username of the person to be assigned to the issue | - -### Outputs - -| Output | Description | -| ------ | ---------------------------------------------------------------- | -| Status | A message indicating whether the issue was successfully assigned | -| Error | Any error message if assigning the issue fails | - -### Possible use case - -Automatically assigning new issues to team members based on their expertise or workload. - -*** - -## Github Unassign Issue - -### What it is - -A block that unassigns a user from a GitHub issue. - -### What it does - -This block allows users to remove a specific GitHub user's assignment from an existing issue. - -### How it works - -The block takes the GitHub credentials, the URL of the issue, and the username of the person to be unassigned as inputs. It then sends a request to the GitHub API to remove the specified user's assignment from the issue. - -### Inputs - -| Input | Description | -| ----------- | ---------------------------------------------------------- | -| Credentials | GitHub authentication information | -| Issue URL | The URL of the GitHub issue to unassign | -| Assignee | The username of the person to be unassigned from the issue | - -### Outputs - -| Output | Description | -| ------ | ------------------------------------------------------------------ | -| Status | A message indicating whether the issue was successfully unassigned | -| Error | Any error message if unassigning the issue fails | - -### Possible use case - -Automatically unassigning issues that have been inactive for a certain period or when reassigning workload among team members. diff --git a/docs/integrations/block-integrations/github-pull-requests.md b/docs/integrations/block-integrations/github-pull-requests.md deleted file mode 100644 index 420010d35c..0000000000 --- a/docs/integrations/block-integrations/github-pull-requests.md +++ /dev/null @@ -1,218 +0,0 @@ -# GitHub Pull Requests - -## GitHub List Pull Requests - -### What it is - -A block that retrieves a list of pull requests from a specified GitHub repository. - -### What it does - -This block fetches all open pull requests for a given GitHub repository and provides their titles and URLs. - -### How it works - -It connects to the GitHub API using the provided credentials and repository URL, then retrieves the list of pull requests and formats the information for easy viewing. - -### Inputs - -| Input | Description | -| -------------- | ------------------------------------------------------------ | -| Credentials | GitHub authentication details to access the repository | -| Repository URL | The URL of the GitHub repository to fetch pull requests from | - -### Outputs - -| Output | Description | -| ------------ | ----------------------------------------- | -| Pull Request | A list of pull requests, each containing: | -| - Title | The title of the pull request | -| - URL | The web address of the pull request | -| Error | An error message if the operation fails | - -### Possible use case - -A development team leader wants to quickly review all open pull requests in their project repository to prioritize code reviews. - -*** - -## GitHub Make Pull Request - -### What it is - -A block that creates a new pull request in a specified GitHub repository. - -### What it does - -This block allows users to create a new pull request by providing details such as title, body, and branch information. - -### How it works - -It uses the GitHub API to create a new pull request with the given information, including the source and target branches for the changes. - -### Inputs - -| Input | Description | -| -------------- | ----------------------------------------------------------------------- | -| Credentials | GitHub authentication details to access the repository | -| Repository URL | The URL of the GitHub repository where the pull request will be created | -| Title | The title of the new pull request | -| Body | The description or content of the pull request | -| Head | The name of the branch containing the changes | -| Base | The name of the branch you want to merge the changes into | - -### Outputs - -| Output | Description | -| ------ | --------------------------------------------------- | -| Number | The unique identifier of the created pull request | -| URL | The web address of the newly created pull request | -| Error | An error message if the pull request creation fails | - -### Possible use case - -A developer has finished working on a new feature in a separate branch and wants to create a pull request to merge their changes into the main branch for review. - -*** - -## GitHub Read Pull Request - -### What it is - -A block that retrieves detailed information about a specific GitHub pull request. - -### What it does - -This block fetches and provides comprehensive information about a given pull request, including its title, body, author, and optionally, the changes made. - -### How it works - -It connects to the GitHub API using the provided credentials and pull request URL, then retrieves and formats the requested information. - -### Inputs - -| Input | Description | -| ------------------ | ---------------------------------------------------------------- | -| Credentials | GitHub authentication details to access the repository | -| Pull Request URL | The URL of the specific GitHub pull request to read | -| Include PR Changes | An option to include the actual changes made in the pull request | - -### Outputs - -| Output | Description | -| ------- | --------------------------------------------------------- | -| Title | The title of the pull request | -| Body | The description or content of the pull request | -| Author | The username of the person who created the pull request | -| Changes | A list of changes made in the pull request (if requested) | -| Error | An error message if reading the pull request fails | - -### Possible use case - -A code reviewer wants to get a comprehensive overview of a pull request, including its description and changes, before starting the review process. - -*** - -## GitHub Assign PR Reviewer - -### What it is - -A block that assigns a reviewer to a specific GitHub pull request. - -### What it does - -This block allows users to assign a designated reviewer to a given pull request in a GitHub repository. - -### How it works - -It uses the GitHub API to add the specified user as a reviewer for the given pull request. - -### Inputs - -| Input | Description | -| ---------------- | ------------------------------------------------------------------- | -| Credentials | GitHub authentication details to access the repository | -| Pull Request URL | The URL of the specific GitHub pull request to assign a reviewer to | -| Reviewer | The username of the GitHub user to be assigned as a reviewer | - -### Outputs - -| Output | Description | -| ------ | ------------------------------------------------------------------- | -| Status | A message indicating whether the reviewer was successfully assigned | -| Error | An error message if the reviewer assignment fails | - -### Possible use case - -A project manager wants to assign a specific team member to review a newly created pull request for a critical feature. - -*** - -## GitHub Unassign PR Reviewer - -### What it is - -A block that removes an assigned reviewer from a specific GitHub pull request. - -### What it does - -This block allows users to unassign a previously designated reviewer from a given pull request in a GitHub repository. - -### How it works - -It uses the GitHub API to remove the specified user from the list of reviewers for the given pull request. - -### Inputs - -| Input | Description | -| ---------------- | ----------------------------------------------------------------------- | -| Credentials | GitHub authentication details to access the repository | -| Pull Request URL | The URL of the specific GitHub pull request to unassign a reviewer from | -| Reviewer | The username of the GitHub user to be unassigned as a reviewer | - -### Outputs - -| Output | Description | -| ------ | --------------------------------------------------------------------- | -| Status | A message indicating whether the reviewer was successfully unassigned | -| Error | An error message if the reviewer unassignment fails | - -### Possible use case - -A team lead realizes that an assigned reviewer is unavailable and wants to remove them from a pull request to reassign it to another team member. - -*** - -## GitHub List PR Reviewers - -### What it is - -A block that retrieves a list of all assigned reviewers for a specific GitHub pull request. - -### What it does - -This block fetches and provides information about all the reviewers currently assigned to a given pull request in a GitHub repository. - -### How it works - -It connects to the GitHub API using the provided credentials and pull request URL, then retrieves and formats the list of assigned reviewers. - -### Inputs - -| Input | Description | -| ---------------- | ----------------------------------------------------------------- | -| Credentials | GitHub authentication details to access the repository | -| Pull Request URL | The URL of the specific GitHub pull request to list reviewers for | - -### Outputs - -| Output | Description | -| ---------- | ----------------------------------------------- | -| Reviewer | A list of assigned reviewers, each containing: | -| - Username | The GitHub username of the reviewer | -| - URL | The profile URL of the reviewer | -| Error | An error message if listing the reviewers fails | - -### Possible use case - -A project coordinator wants to check who is currently assigned to review a specific pull request to ensure all necessary team members are involved in the code review process. diff --git a/docs/integrations/block-integrations/github-repo.md b/docs/integrations/block-integrations/github-repo.md deleted file mode 100644 index df33d6d0e4..0000000000 --- a/docs/integrations/block-integrations/github-repo.md +++ /dev/null @@ -1,282 +0,0 @@ -# GitHub Repository - -## GitHub List Tags - -### What it is - -A block that retrieves and lists all tags for a specified GitHub repository. - -### What it does - -This block fetches all tags associated with a given GitHub repository and provides their names and URLs. - -### How it works - -The block connects to the GitHub API using provided credentials, sends a request to retrieve tag information for the specified repository, and then processes the response to extract tag names and URLs. - -### Inputs - -| Input | Description | -| -------------- | ------------------------------------------------------------------- | -| Credentials | GitHub authentication credentials required to access the repository | -| Repository URL | The URL of the GitHub repository to fetch tags from | - -### Outputs - -| Output | Description | -| ------ | ------------------------------------------------------ | -| Tag | Information about each tag, including its name and URL | -| Error | Any error message if the tag listing process fails | - -### Possible use case - -A developer wants to quickly view all release tags for a project to identify the latest version or track the project's release history. - -*** - -## GitHub List Branches - -### What it is - -A block that retrieves and lists all branches for a specified GitHub repository. - -### What it does - -This block fetches all branches associated with a given GitHub repository and provides their names and URLs. - -### How it works - -The block authenticates with the GitHub API, sends a request to get branch information for the specified repository, and then processes the response to extract branch names and URLs. - -### Inputs - -| Input | Description | -| -------------- | ------------------------------------------------------------------- | -| Credentials | GitHub authentication credentials required to access the repository | -| Repository URL | The URL of the GitHub repository to fetch branches from | - -### Outputs - -| Output | Description | -| ------ | --------------------------------------------------------- | -| Branch | Information about each branch, including its name and URL | -| Error | Any error message if the branch listing process fails | - -### Possible use case - -A project manager wants to review all active branches in a repository to track ongoing development efforts and feature implementations. - -*** - -## GitHub List Discussions - -### What it is - -A block that retrieves and lists recent discussions for a specified GitHub repository. - -### What it does - -This block fetches a specified number of recent discussions from a given GitHub repository and provides their titles and URLs. - -### How it works - -The block uses the GitHub GraphQL API to request discussion data for the specified repository, processes the response, and extracts discussion titles and URLs. - -### Inputs - -| Input | Description | -| --------------------- | ------------------------------------------------------------------- | -| Credentials | GitHub authentication credentials required to access the repository | -| Repository URL | The URL of the GitHub repository to fetch discussions from | -| Number of Discussions | The number of recent discussions to retrieve (default is 5) | - -### Outputs - -| Output | Description | -| ---------- | -------------------------------------------------------------- | -| Discussion | Information about each discussion, including its title and URL | -| Error | Any error message if the discussion listing process fails | - -### Possible use case - -A community manager wants to monitor recent discussions in a project's repository to identify trending topics or issues that need attention. - -*** - -## GitHub List Releases - -### What it is - -A block that retrieves and lists all releases for a specified GitHub repository. - -### What it does - -This block fetches all releases associated with a given GitHub repository and provides their names and URLs. - -### How it works - -The block connects to the GitHub API, sends a request to get release information for the specified repository, and then processes the response to extract release names and URLs. - -### Inputs - -| Input | Description | -| -------------- | ------------------------------------------------------------------- | -| Credentials | GitHub authentication credentials required to access the repository | -| Repository URL | The URL of the GitHub repository to fetch releases from | - -### Outputs - -| Output | Description | -| ------- | ---------------------------------------------------------- | -| Release | Information about each release, including its name and URL | -| Error | Any error message if the release listing process fails | - -### Possible use case - -A user wants to view all official releases of a software project to choose the appropriate version for installation or to track the project's release history. - -*** - -## GitHub Read File - -### What it is - -A block that reads the content of a specified file from a GitHub repository. - -### What it does - -This block retrieves the content of a specified file from a given GitHub repository, providing both the raw and decoded text content along with the file size. - -### How it works - -The block authenticates with the GitHub API, sends a request to fetch the specified file's content, and then processes the response to provide the file's raw content, decoded text content, and size. - -### Inputs - -| Input | Description | -| -------------- | ------------------------------------------------------------------- | -| Credentials | GitHub authentication credentials required to access the repository | -| Repository URL | The URL of the GitHub repository containing the file | -| File Path | The path to the file within the repository | -| Branch | The branch name to read from (defaults to "master") | - -### Outputs - -| Output | Description | -| ------------ | --------------------------------------------------- | -| Text Content | The content of the file decoded as UTF-8 text | -| Raw Content | The raw base64-encoded content of the file | -| Size | The size of the file in bytes | -| Error | Any error message if the file reading process fails | - -### Possible use case - -A developer wants to quickly view the contents of a configuration file or source code file in a GitHub repository without having to clone the entire repository. - -*** - -## GitHub Read Folder - -### What it is - -A block that reads the content of a specified folder from a GitHub repository. - -### What it does - -This block retrieves the list of files and directories within a specified folder from a given GitHub repository. - -### How it works - -The block connects to the GitHub API, sends a request to fetch the contents of the specified folder, and then processes the response to provide information about files and directories within that folder. - -### Inputs - -| Input | Description | -| -------------- | ------------------------------------------------------------------- | -| Credentials | GitHub authentication credentials required to access the repository | -| Repository URL | The URL of the GitHub repository containing the folder | -| Folder Path | The path to the folder within the repository | -| Branch | The branch name to read from (defaults to "master") | - -### Outputs - -| Output | Description | -| --------- | ----------------------------------------------------------------------------- | -| File | Information about each file in the folder, including its name, path, and size | -| Directory | Information about each directory in the folder, including its name and path | -| Error | Any error message if the folder reading process fails | - -### Possible use case - -A project manager wants to explore the structure of a repository or specific folder to understand the organization of files and directories without cloning the entire repository. - -*** - -## GitHub Make Branch - -### What it is - -A block that creates a new branch in a GitHub repository. - -### What it does - -This block creates a new branch in a specified GitHub repository, based on an existing source branch. - -### How it works - -The block authenticates with the GitHub API, retrieves the latest commit SHA of the source branch, and then creates a new branch pointing to that commit. - -### Inputs - -| Input | Description | -| -------------- | ------------------------------------------------------------------------------- | -| Credentials | GitHub authentication credentials required to access the repository | -| Repository URL | The URL of the GitHub repository where the new branch will be created | -| New Branch | The name of the new branch to create | -| Source Branch | The name of the existing branch to use as the starting point for the new branch | - -### Outputs - -| Output | Description | -| ------ | ----------------------------------------------------------------- | -| Status | A message indicating the success of the branch creation operation | -| Error | Any error message if the branch creation process fails | - -### Possible use case - -A developer wants to start working on a new feature and needs to create a new branch based on the current state of the main development branch. - -*** - -## GitHub Delete Branch - -### What it is - -A block that deletes a specified branch from a GitHub repository. - -### What it does - -This block removes a specified branch from a given GitHub repository. - -### How it works - -The block authenticates with the GitHub API and sends a delete request for the specified branch. - -### Inputs - -| Input | Description | -| -------------- | -------------------------------------------------------------------- | -| Credentials | GitHub authentication credentials required to access the repository | -| Repository URL | The URL of the GitHub repository containing the branch to be deleted | -| Branch | The name of the branch to delete | - -### Outputs - -| Output | Description | -| ------ | ----------------------------------------------------------------- | -| Status | A message indicating the success of the branch deletion operation | -| Error | Any error message if the branch deletion process fails | - -### Possible use case - -After merging a feature branch into the main development branch, a developer wants to clean up the repository by removing the now-obsolete feature branch. diff --git a/docs/integrations/github/checks.md b/docs/integrations/block-integrations/github/checks.md similarity index 100% rename from docs/integrations/github/checks.md rename to docs/integrations/block-integrations/github/checks.md diff --git a/docs/integrations/github/ci.md b/docs/integrations/block-integrations/github/ci.md similarity index 100% rename from docs/integrations/github/ci.md rename to docs/integrations/block-integrations/github/ci.md diff --git a/docs/integrations/github/issues.md b/docs/integrations/block-integrations/github/issues.md similarity index 100% rename from docs/integrations/github/issues.md rename to docs/integrations/block-integrations/github/issues.md diff --git a/docs/integrations/github/pull_requests.md b/docs/integrations/block-integrations/github/pull_requests.md similarity index 100% rename from docs/integrations/github/pull_requests.md rename to docs/integrations/block-integrations/github/pull_requests.md diff --git a/docs/integrations/github/repo.md b/docs/integrations/block-integrations/github/repo.md similarity index 100% rename from docs/integrations/github/repo.md rename to docs/integrations/block-integrations/github/repo.md diff --git a/docs/integrations/github/reviews.md b/docs/integrations/block-integrations/github/reviews.md similarity index 100% rename from docs/integrations/github/reviews.md rename to docs/integrations/block-integrations/github/reviews.md diff --git a/docs/integrations/github/statuses.md b/docs/integrations/block-integrations/github/statuses.md similarity index 100% rename from docs/integrations/github/statuses.md rename to docs/integrations/block-integrations/github/statuses.md diff --git a/docs/integrations/github/triggers.md b/docs/integrations/block-integrations/github/triggers.md similarity index 100% rename from docs/integrations/github/triggers.md rename to docs/integrations/block-integrations/github/triggers.md diff --git a/docs/integrations/block-integrations/gmail.md b/docs/integrations/block-integrations/gmail.md deleted file mode 100644 index 4d11b92363..0000000000 --- a/docs/integrations/block-integrations/gmail.md +++ /dev/null @@ -1,243 +0,0 @@ -# Gmail - -## Gmail Read - -### What it is - -A block that retrieves and reads emails from a Gmail account. - -### What it does - -This block searches for and retrieves emails from a specified Gmail account based on given search criteria. It can fetch multiple emails and provide detailed information about each email, including subject, sender, recipient, date, body content, and attachments. - -### How it works - -The block connects to the user's Gmail account using their credentials, performs a search based on the provided query, and retrieves the specified number of email messages. It then processes each email to extract relevant information and returns the results. - -### Inputs - -| Input | Description | -| ----------- | ------------------------------------------------------------------------------------------------------------------------ | -| Credentials | The user's Gmail account credentials for authentication | -| Query | A search query to filter emails (e.g., "is:unread" for unread emails). Ignored if using only the `gmail.metadata` scope. | -| Max Results | The maximum number of emails to retrieve | - -### Outputs - -| Output | Description | -| ------ | ------------------------------------------------------------------- | -| Email | Detailed information about a single email (now includes `threadId`) | -| Emails | A list of email data for multiple emails | -| Error | An error message if something goes wrong during the process | - -### Possible use case - -Automatically checking for new customer inquiries in a support email inbox and organizing them for quick response. - -*** - -## Gmail Send - -### What it is - -A block that sends emails using a Gmail account. - -### What it does - -This block allows users to compose and send emails through their Gmail account. It handles the creation of the email message and sends it to the specified recipient. - -### How it works - -The block authenticates with the user's Gmail account, creates an email message with the provided details (recipient, subject, and body), and then sends the email using Gmail's API. - -### Inputs - -| Input | Description | -| ----------- | ------------------------------------------------------- | -| Credentials | The user's Gmail account credentials for authentication | -| To | The recipient's email address | -| Subject | The subject line of the email | -| Body | The main content of the email | - -### Outputs - -| Output | Description | -| ------ | ----------------------------------------------------------- | -| Result | Confirmation of the sent email, including a message ID | -| Error | An error message if something goes wrong during the process | - -### Possible use case - -Automatically sending confirmation emails to customers after they make a purchase on an e-commerce website. - -*** - -## Gmail List Labels - -### What it is - -A block that retrieves all labels (categories) from a Gmail account. - -### What it does - -This block fetches and lists all the labels or categories that are set up in the user's Gmail account. These labels are used to organize and categorize emails. - -### How it works - -The block connects to the user's Gmail account and requests a list of all labels. It then processes this information and returns a simplified list of label names and their corresponding IDs. - -### Inputs - -| Input | Description | -| ----------- | ------------------------------------------------------- | -| Credentials | The user's Gmail account credentials for authentication | - -### Outputs - -| Output | Description | -| ------ | ----------------------------------------------------------- | -| Result | A list of labels, including their names and IDs | -| Error | An error message if something goes wrong during the process | - -### Possible use case - -Creating a dashboard that shows an overview of how many emails are in each category or label in a business email account. - -*** - -## Gmail Add Label - -### What it is - -A block that adds a label to a specific email in a Gmail account. - -### What it does - -This block allows users to add a label (category) to a particular email message in their Gmail account. If the label doesn't exist, it creates a new one. - -### How it works - -The block first checks if the specified label exists in the user's Gmail account. If it doesn't, it creates the label. Then, it adds the label to the specified email message using the message ID. - -### Inputs - -| Input | Description | -| ----------- | -------------------------------------------------------- | -| Credentials | The user's Gmail account credentials for authentication | -| Message ID | The unique identifier of the email message to be labeled | -| Label Name | The name of the label to add to the email | - -### Outputs - -| Output | Description | -| ------ | ----------------------------------------------------------- | -| Result | Confirmation of the label addition, including the label ID | -| Error | An error message if something goes wrong during the process | - -### Possible use case - -Automatically categorizing incoming customer emails based on their content, adding labels like "Urgent," "Feedback," or "Invoice" for easier processing. - -*** - -## Gmail Remove Label - -### What it is - -A block that removes a label from a specific email in a Gmail account. - -### What it does - -This block allows users to remove a label (category) from a particular email message in their Gmail account. - -### How it works - -The block first finds the ID of the specified label in the user's Gmail account. If the label exists, it removes it from the specified email message using the message ID. - -### Inputs - -| Input | Description | -| ----------- | ------------------------------------------------------------------- | -| Credentials | The user's Gmail account credentials for authentication | -| Message ID | The unique identifier of the email message to remove the label from | -| Label Name | The name of the label to remove from the email | - -### Outputs - -| Output | Description | -| ------ | ----------------------------------------------------------- | -| Result | Confirmation of the label removal, including the label ID | -| Error | An error message if something goes wrong during the process | - -### Possible use case - -Automatically removing the "Unread" label from emails after they have been processed by a customer service representative. - -*** - -## Gmail Get Thread - -### What it is - -A block that retrieves an entire Gmail thread. - -### What it does - -Given a `threadId`, this block fetches all messages in that thread and decodes the text bodies. - -### Inputs - -| Input | Description | -| ----------- | ------------------------------------------------------- | -| Credentials | The user's Gmail account credentials for authentication | -| threadId | The ID of the thread to fetch | - -### Outputs - -| Output | Description | -| ------ | ---------------------------------------- | -| Thread | Gmail thread with decoded messages | -| Error | An error message if something goes wrong | - -### Possible use case - -Checking if a recipient replied in an existing conversation. - -*** - -## Gmail Reply - -### What it is - -A block that sends a reply within an existing Gmail thread. - -### What it does - -This block builds a properly formatted reply email and sends it so Gmail keeps it in the same conversation. - -### Inputs - -| Input | Description | -| --------------- | ------------------------------------------------------- | -| Credentials | The user's Gmail account credentials for authentication | -| threadId | The thread to reply in | -| parentMessageId | The ID of the message you are replying to | -| To | List of recipients | -| Cc | List of CC recipients | -| Bcc | List of BCC recipients | -| Subject | Optional subject (defaults to `Re:` prefix) | -| Body | The email body | -| Attachments | Optional files to include | - -### Outputs - -| Output | Description | -| --------- | ------------------------------------- | -| MessageId | The ID of the sent message | -| ThreadId | The thread the reply belongs to | -| Message | Full Gmail message object | -| Error | Error message if something goes wrong | - -### Possible use case - -Automatically respond "Thanks, see you then" to a scheduling email while keeping the conversation tidy. diff --git a/docs/integrations/block-integrations/google-maps.md b/docs/integrations/block-integrations/google-maps.md deleted file mode 100644 index bac0e20d8a..0000000000 --- a/docs/integrations/block-integrations/google-maps.md +++ /dev/null @@ -1,39 +0,0 @@ -# Google Maps Search - -## What it is - -A block that searches for local businesses using the Google Maps API. - -## What it does - -This block allows users to search for places of interest, such as restaurants, shops, or attractions, within a specified area using Google Maps data. - -## How it works - -The block takes a search query, location details, and API credentials as input. It then communicates with the Google Maps API to fetch information about relevant places. The results are processed and returned as structured data containing details about each place found. - -## Inputs - -| Input | Description | -| ----------- | ---------------------------------------------------------------------------------- | -| API Key | A secret key required to authenticate and use the Google Maps API | -| Query | The search term for finding local businesses (e.g., "restaurants in New York") | -| Radius | The search area radius in meters, with a maximum of 50,000 meters (about 31 miles) | -| Max Results | The maximum number of places to return, up to 60 results | - -## Outputs - -| Output | Description | -| --------- | ----------------------------------------------------------------------- | -| Place | Information about a found place, including: | -| - Name | The name of the business or location | -| - Address | The full address of the place | -| - Phone | The contact phone number | -| - Rating | The average rating (out of 5) given by users | -| - Reviews | The total number of user reviews | -| - Website | The official website of the place, if available | -| Error | A message describing any issues that occurred during the search process | - -## Possible use case - -A travel planning application could use this block to help users discover popular restaurants, attractions, or accommodations in their destination city. By inputting a search query like "family-friendly restaurants in Paris" and specifying a search radius around their hotel, travelers could quickly get a list of suitable dining options with ratings, contact information, and websites for making reservations. diff --git a/docs/integrations/google/calendar.md b/docs/integrations/block-integrations/google/calendar.md similarity index 100% rename from docs/integrations/google/calendar.md rename to docs/integrations/block-integrations/google/calendar.md diff --git a/docs/integrations/google/docs.md b/docs/integrations/block-integrations/google/docs.md similarity index 100% rename from docs/integrations/google/docs.md rename to docs/integrations/block-integrations/google/docs.md diff --git a/docs/integrations/google/gmail.md b/docs/integrations/block-integrations/google/gmail.md similarity index 100% rename from docs/integrations/google/gmail.md rename to docs/integrations/block-integrations/google/gmail.md diff --git a/docs/integrations/google/sheet.md b/docs/integrations/block-integrations/google/sheet.md similarity index 100% rename from docs/integrations/google/sheet.md rename to docs/integrations/block-integrations/google/sheet.md diff --git a/docs/integrations/google/sheets.md b/docs/integrations/block-integrations/google/sheets.md similarity index 100% rename from docs/integrations/google/sheets.md rename to docs/integrations/block-integrations/google/sheets.md diff --git a/docs/integrations/google_maps.md b/docs/integrations/block-integrations/google_maps.md similarity index 100% rename from docs/integrations/google_maps.md rename to docs/integrations/block-integrations/google_maps.md diff --git a/docs/integrations/http.md b/docs/integrations/block-integrations/http.md similarity index 100% rename from docs/integrations/http.md rename to docs/integrations/block-integrations/http.md diff --git a/docs/integrations/hubspot/company.md b/docs/integrations/block-integrations/hubspot/company.md similarity index 100% rename from docs/integrations/hubspot/company.md rename to docs/integrations/block-integrations/hubspot/company.md diff --git a/docs/integrations/hubspot/contact.md b/docs/integrations/block-integrations/hubspot/contact.md similarity index 100% rename from docs/integrations/hubspot/contact.md rename to docs/integrations/block-integrations/hubspot/contact.md diff --git a/docs/integrations/hubspot/engagement.md b/docs/integrations/block-integrations/hubspot/engagement.md similarity index 100% rename from docs/integrations/hubspot/engagement.md rename to docs/integrations/block-integrations/hubspot/engagement.md diff --git a/docs/integrations/block-integrations/ideogram.md b/docs/integrations/block-integrations/ideogram.md index f58d792125..e5c5222e77 100644 --- a/docs/integrations/block-integrations/ideogram.md +++ b/docs/integrations/block-integrations/ideogram.md @@ -1,39 +1,33 @@ # Ideogram Model ## What it is - The Ideogram Model block is an AI-powered image generation tool that creates custom images based on text prompts and various settings. ## What it does - This block generates images using the Ideogram AI model, allowing users to create unique visuals by describing what they want in text. It offers various customization options, including different model versions, aspect ratios, and style preferences. ## How it works - The block takes a text prompt and several optional parameters as input. It then sends this information to the Ideogram API, which processes the request and generates an image. The resulting image URL is returned as output. If requested, the block can also upscale the generated image for higher quality. ## Inputs - -| Input | Description | -| ---------------------- | ------------------------------------------------------ | -| API Key | Your personal Ideogram API key for authentication | -| Prompt | The text description of the image you want to generate | -| Image Generation Model | Choose from different versions of the Ideogram model | -| Aspect Ratio | Select the desired dimensions for your image | -| Upscale Image | Option to enhance the image quality after generation | -| Magic Prompt Option | Enables automatic enhancement of your text prompt | -| Seed | An optional number for reproducible image generation | -| Style Type | Choose a specific artistic style for your image | -| Negative Prompt | Describe elements you want to exclude from the image | -| Color Palette Preset | Select a predefined color scheme for your image | +| Input | Description | +|-------|-------------| +| API Key | Your personal Ideogram API key for authentication | +| Prompt | The text description of the image you want to generate | +| Image Generation Model | Choose from different versions of the Ideogram model | +| Aspect Ratio | Select the desired dimensions for your image | +| Upscale Image | Option to enhance the image quality after generation | +| Magic Prompt Option | Enables automatic enhancement of your text prompt | +| Seed | An optional number for reproducible image generation | +| Style Type | Choose a specific artistic style for your image | +| Negative Prompt | Describe elements you want to exclude from the image | +| Color Palette Preset | Select a predefined color scheme for your image | ## Outputs - -| Output | Description | -| ------ | ----------------------------------------------------------- | -| Result | The URL of the generated image | -| Error | An error message if something goes wrong during the process | +| Output | Description | +|--------|-------------| +| Result | The URL of the generated image | +| Error | An error message if something goes wrong during the process | ## Possible use case - -A marketing team needs unique visuals for a new product campaign. They can use the Ideogram Model block to quickly generate custom images based on their product descriptions and brand guidelines, exploring different styles and aspect ratios without the need for a professional designer. +A marketing team needs unique visuals for a new product campaign. They can use the Ideogram Model block to quickly generate custom images based on their product descriptions and brand guidelines, exploring different styles and aspect ratios without the need for a professional designer. \ No newline at end of file diff --git a/docs/integrations/block-integrations/iteration.md b/docs/integrations/block-integrations/iteration.md index c4d88af4ab..d835b217e7 100644 --- a/docs/integrations/block-integrations/iteration.md +++ b/docs/integrations/block-integrations/iteration.md @@ -1,30 +1,24 @@ -# Step Through Items - -## What it is +## Step Through Items +### What it is A block that iterates through a list or dictionary, processing each item one by one. -## What it does - +### What it does This block takes a list or dictionary as input and goes through each item, outputting the current item and its corresponding key or index. -## How it works - +### How it works When given a list or dictionary, the block processes each item individually. For lists, it keeps track of the item's position (index). For dictionaries, it focuses on the values, using the value as both the item and the key in the output. -## Inputs +### Inputs +| Input | Description | +|-------|-------------| +| Items | A list or dictionary that you want to process item by item. For example, you could input a list of numbers [1, 2, 3, 4, 5] or a dictionary of key-value pairs {'key1': 'value1', 'key2': 'value2'} | -| Input | Description | -| ----- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Items | A list or dictionary that you want to process item by item. For example, you could input a list of numbers \[1, 2, 3, 4, 5] or a dictionary of key-value pairs {'key1': 'value1', 'key2': 'value2'} | +### Outputs +| Output | Description | +|--------|-------------| +| Item | The current item being processed from the input list or dictionary | +| Key | For lists, this is the index (position) of the current item. For dictionaries, this is the same as the item (the dictionary's value) | -## Outputs - -| Output | Description | -| ------ | ------------------------------------------------------------------------------------------------------------------------------------ | -| Item | The current item being processed from the input list or dictionary | -| Key | For lists, this is the index (position) of the current item. For dictionaries, this is the same as the item (the dictionary's value) | - -## Possible use case - -Imagine you have a list of customer names and you want to perform a specific action for each customer, like sending a personalized email. This block could help you go through the list one by one, allowing you to process each customer individually. +### Possible use case +Imagine you have a list of customer names and you want to perform a specific action for each customer, like sending a personalized email. This block could help you go through the list one by one, allowing you to process each customer individually. \ No newline at end of file diff --git a/docs/integrations/jina/chunking.md b/docs/integrations/block-integrations/jina/chunking.md similarity index 100% rename from docs/integrations/jina/chunking.md rename to docs/integrations/block-integrations/jina/chunking.md diff --git a/docs/integrations/jina/embeddings.md b/docs/integrations/block-integrations/jina/embeddings.md similarity index 100% rename from docs/integrations/jina/embeddings.md rename to docs/integrations/block-integrations/jina/embeddings.md diff --git a/docs/integrations/jina/fact_checker.md b/docs/integrations/block-integrations/jina/fact_checker.md similarity index 100% rename from docs/integrations/jina/fact_checker.md rename to docs/integrations/block-integrations/jina/fact_checker.md diff --git a/docs/integrations/jina/search.md b/docs/integrations/block-integrations/jina/search.md similarity index 100% rename from docs/integrations/jina/search.md rename to docs/integrations/block-integrations/jina/search.md diff --git a/docs/integrations/linear/comment.md b/docs/integrations/block-integrations/linear/comment.md similarity index 100% rename from docs/integrations/linear/comment.md rename to docs/integrations/block-integrations/linear/comment.md diff --git a/docs/integrations/linear/issues.md b/docs/integrations/block-integrations/linear/issues.md similarity index 100% rename from docs/integrations/linear/issues.md rename to docs/integrations/block-integrations/linear/issues.md diff --git a/docs/integrations/linear/projects.md b/docs/integrations/block-integrations/linear/projects.md similarity index 100% rename from docs/integrations/linear/projects.md rename to docs/integrations/block-integrations/linear/projects.md diff --git a/docs/integrations/llm.md b/docs/integrations/block-integrations/llm.md similarity index 100% rename from docs/integrations/llm.md rename to docs/integrations/block-integrations/llm.md diff --git a/docs/integrations/logic.md b/docs/integrations/block-integrations/logic.md similarity index 100% rename from docs/integrations/logic.md rename to docs/integrations/block-integrations/logic.md diff --git a/docs/integrations/block-integrations/maths.md b/docs/integrations/block-integrations/maths.md index 158724a02e..d024afe8cb 100644 --- a/docs/integrations/block-integrations/maths.md +++ b/docs/integrations/block-integrations/maths.md @@ -1,66 +1,54 @@ -# Mathematical Operations +# Mathematical Operations Blocks ## Calculator ### What it is - A block that performs mathematical operations on two numbers. ### What it does - This block takes two numbers and performs a selected mathematical operation (addition, subtraction, multiplication, division, or exponentiation) on them. It can also optionally round the result to a whole number. ### How it works - The Calculator block takes in two numbers and an operation choice. It then applies the chosen operation to the numbers and returns the result. If rounding is selected, it rounds the result to the nearest whole number. ### Inputs - -| Input | Description | -| ------------ | ----------------------------------------------------------------------------------------- | -| Operation | Choose the math operation you want to perform (Add, Subtract, Multiply, Divide, or Power) | -| A | Enter the first number for the calculation | -| B | Enter the second number for the calculation | -| Round result | Choose whether to round the result to a whole number (True or False) | +| Input | Description | +|-------|-------------| +| Operation | Choose the math operation you want to perform (Add, Subtract, Multiply, Divide, or Power) | +| A | Enter the first number for the calculation | +| B | Enter the second number for the calculation | +| Round result | Choose whether to round the result to a whole number (True or False) | ### Outputs - -| Output | Description | -| ------ | ------------------------------ | +| Output | Description | +|--------|-------------| | Result | The result of your calculation | ### Possible use case - A user wants to quickly perform a calculation, such as adding two numbers or calculating a percentage. They can input the numbers and operation into this block and receive the result instantly. -*** +--- ## Count Items ### What it is - A block that counts the number of items in a collection. ### What it does - This block takes a collection (such as a list, dictionary, or string) and counts the number of items within it. ### How it works - The Count Items block receives a collection as input. It then determines the type of collection and uses the appropriate method to count the items. For most collections, it uses the length function. For other iterable objects, it counts the items one by one. ### Inputs - -| Input | Description | -| ---------- | ---------------------------------------------------------------------------- | +| Input | Description | +|-------|-------------| | Collection | Enter the collection you want to count (e.g., a list, dictionary, or string) | ### Outputs - -| Output | Description | -| ------ | ------------------------------------- | -| Count | The number of items in the collection | +| Output | Description | +|--------|-------------| +| Count | The number of items in the collection | ### Possible use case - -A user has a list of customer names and wants to quickly determine how many customers are in the list. They can input the list into this block and receive the total count immediately. +A user has a list of customer names and wants to quickly determine how many customers are in the list. They can input the list into this block and receive the total count immediately. \ No newline at end of file diff --git a/docs/integrations/block-integrations/medium.md b/docs/integrations/block-integrations/medium.md index 3f5a73edaa..644f70d8ab 100644 --- a/docs/integrations/block-integrations/medium.md +++ b/docs/integrations/block-integrations/medium.md @@ -1,41 +1,35 @@ # Publish to Medium ## What it is - The Publish to Medium block is a tool that enables direct publication of content to the Medium platform from within an automated workflow. ## What it does - This block takes a fully formatted blog post, along with associated metadata, and publishes it to Medium using the platform's API. It handles all aspects of the publication process, including setting the title, content, tags, and other post-specific details. ## How it works - The block uses the provided Medium API key and author ID to authenticate with the Medium platform. It then constructs an API request containing all the post details and sends it to Medium's servers. After the post is published, the block retrieves and returns relevant information about the newly created post, such as its unique ID and public URL. ## Inputs - -| Input | Description | -| ---------------- | ------------------------------------------------------------------- | -| Author ID | The unique identifier for the Medium author account | -| Title | The headline of the Medium post | -| Content | The main body of the post (in HTML or Markdown format) | -| Content Format | Specifies whether the content is in 'html' or 'markdown' format | -| Tags | Up to 5 topic tags to categorize the post (comma-separated) | -| Canonical URL | The original URL if the content was first published elsewhere | -| Publish Status | Sets the post visibility: 'public', 'draft', or 'unlisted' | -| License | The copyright license for the post (default: 'all-rights-reserved') | -| Notify Followers | Boolean flag to notify the author's followers about the new post | -| API Key | The Medium API key for authentication | +| Input | Description | +|-------|-------------| +| Author ID | The unique identifier for the Medium author account | +| Title | The headline of the Medium post | +| Content | The main body of the post (in HTML or Markdown format) | +| Content Format | Specifies whether the content is in 'html' or 'markdown' format | +| Tags | Up to 5 topic tags to categorize the post (comma-separated) | +| Canonical URL | The original URL if the content was first published elsewhere | +| Publish Status | Sets the post visibility: 'public', 'draft', or 'unlisted' | +| License | The copyright license for the post (default: 'all-rights-reserved') | +| Notify Followers | Boolean flag to notify the author's followers about the new post | +| API Key | The Medium API key for authentication | ## Outputs - -| Output | Description | -| ------------ | -------------------------------------------------------------- | -| Post ID | The unique identifier assigned to the published post by Medium | -| Post URL | The public web address where the post can be viewed | -| Published At | The timestamp indicating when the post was published | -| Error | Any error message returned if the publication process fails | +| Output | Description | +|--------|-------------| +| Post ID | The unique identifier assigned to the published post by Medium | +| Post URL | The public web address where the post can be viewed | +| Published At | The timestamp indicating when the post was published | +| Error | Any error message returned if the publication process fails | ## Possible use case - -A digital marketing team could integrate this block into their content management system to streamline their cross-platform publishing strategy. After creating and approving a blog post in their main system, they could use this block to automatically publish the content to Medium, ensuring consistent and timely distribution across multiple platforms without manual intervention. +A digital marketing team could integrate this block into their content management system to streamline their cross-platform publishing strategy. After creating and approving a blog post in their main system, they could use this block to automatically publish the content to Medium, ensuring consistent and timely distribution across multiple platforms without manual intervention. \ No newline at end of file diff --git a/docs/integrations/misc.md b/docs/integrations/block-integrations/misc.md similarity index 100% rename from docs/integrations/misc.md rename to docs/integrations/block-integrations/misc.md diff --git a/docs/integrations/multimedia.md b/docs/integrations/block-integrations/multimedia.md similarity index 100% rename from docs/integrations/multimedia.md rename to docs/integrations/block-integrations/multimedia.md diff --git a/docs/integrations/notion/create_page.md b/docs/integrations/block-integrations/notion/create_page.md similarity index 100% rename from docs/integrations/notion/create_page.md rename to docs/integrations/block-integrations/notion/create_page.md diff --git a/docs/integrations/notion/read_database.md b/docs/integrations/block-integrations/notion/read_database.md similarity index 100% rename from docs/integrations/notion/read_database.md rename to docs/integrations/block-integrations/notion/read_database.md diff --git a/docs/integrations/notion/read_page.md b/docs/integrations/block-integrations/notion/read_page.md similarity index 100% rename from docs/integrations/notion/read_page.md rename to docs/integrations/block-integrations/notion/read_page.md diff --git a/docs/integrations/notion/read_page_markdown.md b/docs/integrations/block-integrations/notion/read_page_markdown.md similarity index 100% rename from docs/integrations/notion/read_page_markdown.md rename to docs/integrations/block-integrations/notion/read_page_markdown.md diff --git a/docs/integrations/notion/search.md b/docs/integrations/block-integrations/notion/search.md similarity index 100% rename from docs/integrations/notion/search.md rename to docs/integrations/block-integrations/notion/search.md diff --git a/docs/integrations/nvidia/deepfake.md b/docs/integrations/block-integrations/nvidia/deepfake.md similarity index 100% rename from docs/integrations/nvidia/deepfake.md rename to docs/integrations/block-integrations/nvidia/deepfake.md diff --git a/docs/integrations/block-integrations/reddit.md b/docs/integrations/block-integrations/reddit.md index cc5296df97..d3d7d83a88 100644 --- a/docs/integrations/block-integrations/reddit.md +++ b/docs/integrations/block-integrations/reddit.md @@ -3,66 +3,54 @@ ## Get Reddit Posts ### What it is - A block that retrieves posts from a specified subreddit on Reddit. ### What it does - This block fetches a set number of recent posts from a given subreddit, allowing users to collect content from Reddit for various purposes. ### How it works - The block connects to Reddit using provided credentials, accesses the specified subreddit, and retrieves posts based on the given parameters. It can limit the number of posts, stop at a specific post, or fetch posts within a certain time frame. ### Inputs - -| Input | Description | -| ------------------ | ---------------------------------------------------------- | -| Subreddit | The name of the subreddit to fetch posts from | -| Reddit Credentials | Login information for accessing Reddit | -| Last Minutes | An optional time limit to stop fetching posts (in minutes) | -| Last Post | An optional post ID to stop fetching when reached | -| Post Limit | The maximum number of posts to fetch (default is 10) | +| Input | Description | +|-------|-------------| +| Subreddit | The name of the subreddit to fetch posts from | +| Reddit Credentials | Login information for accessing Reddit | +| Last Minutes | An optional time limit to stop fetching posts (in minutes) | +| Last Post | An optional post ID to stop fetching when reached | +| Post Limit | The maximum number of posts to fetch (default is 10) | ### Outputs - -| Output | Description | -| ------ | -------------------------------------------------------------------------- | -| Post | A Reddit post containing the post ID, subreddit name, title, and body text | +| Output | Description | +|--------|-------------| +| Post | A Reddit post containing the post ID, subreddit name, title, and body text | ### Possible use case - A content curator could use this block to gather recent posts from a specific subreddit for analysis, summarization, or inclusion in a newsletter. -*** +--- ## Post Reddit Comment ### What it is - A block that posts a comment on a specified Reddit post. ### What it does - This block allows users to submit a comment to a particular Reddit post using provided credentials and comment data. ### How it works - The block connects to Reddit using the provided credentials, locates the specified post, and then adds the given comment to that post. ### Inputs - -| Input | Description | -| ------------------ | ------------------------------------------------------- | -| Reddit Credentials | Login information for accessing Reddit | -| Comment Data | Contains the post ID to comment on and the comment text | +| Input | Description | +|-------|-------------| +| Reddit Credentials | Login information for accessing Reddit | +| Comment Data | Contains the post ID to comment on and the comment text | ### Outputs - -| Output | Description | -| ---------- | ------------------------------------------------- | +| Output | Description | +|--------|-------------| | Comment ID | The unique identifier of the newly posted comment | ### Possible use case - -An automated moderation system could use this block to post pre-defined responses or warnings on Reddit posts that violate community guidelines. +An automated moderation system could use this block to post pre-defined responses or warnings on Reddit posts that violate community guidelines. \ No newline at end of file diff --git a/docs/integrations/block-integrations/replicate-flux-advanced.md b/docs/integrations/block-integrations/replicate-flux-advanced.md deleted file mode 100644 index fa785f9b00..0000000000 --- a/docs/integrations/block-integrations/replicate-flux-advanced.md +++ /dev/null @@ -1,61 +0,0 @@ -# Replicate Flux Advanced Model - -## What it is - -The Replicate Flux Advanced Model block is an AI-powered image generation tool that creates images based on text prompts and various customizable settings. - -## What it does - -This block generates high-quality images using advanced AI models from Replicate, specifically the Flux series of models. It allows users to input a text description and adjust various parameters to fine-tune the image generation process. - -## How it works - -The block takes a text prompt and several customization options as input. It then sends this information to the selected Flux model on the Replicate platform. The AI model processes the input and generates an image based on the provided specifications. Finally, the block returns a URL to the generated image. - -## Inputs - -| Input | Description | -| ---------------------- | ----------------------------------------------------------------------------------------------- | -| API Key | Your Replicate API key for authentication | -| Prompt | A text description of the image you want to generate (e.g., "A futuristic cityscape at sunset") | -| Image Generation Model | Choose from Flux Schnell, Flux Pro, or Flux Pro 1.1 | -| Seed | An optional number for reproducible image generation | -| Steps | The number of diffusion steps in the image generation process | -| Guidance | Controls how closely the image follows the text prompt | -| Interval | Affects the variety of possible outputs | -| Aspect Ratio | The width-to-height ratio of the generated image | -| Output Format | Choose between WEBP, JPG, or PNG file formats | -| Output Quality | Image quality setting (0-100) for JPG and WEBP formats | -| Safety Tolerance | Content safety setting, from 1 (strictest) to 5 (most permissive) | - -## Outputs - -| Output | Description | -| ------ | ------------------------------------------------------ | -| Result | A URL link to the generated image | -| Error | An error message if the image generation process fails | - -## Possible use case - -A graphic designer could use this block to quickly generate concept art for a sci-fi game. They might input a prompt like "A futuristic spaceport on a distant planet with multiple moons in the sky" and adjust the settings to get the desired style and quality. The generated image could then serve as inspiration or a starting point for further design work. - -* API Key: Your Replicate API key for authentication -* Prompt: A text description of the image you want to generate (e.g., "A futuristic cityscape at sunset") -* Image Generation Model: Choose from Flux Schnell, Flux Pro, or Flux Pro 1.1 -* Seed: An optional number for reproducible image generation -* Steps: The number of diffusion steps in the image generation process -* Guidance: Controls how closely the image follows the text prompt -* Interval: Affects the variety of possible outputs -* Aspect Ratio: The width-to-height ratio of the generated image -* Output Format: Choose between WEBP, JPG, or PNG file formats -* Output Quality: Image quality setting (0-100) for JPG and WEBP formats -* Safety Tolerance: Content safety setting, from 1 (strictest) to 5 (most permissive) - -## Outputs - -* Result: A URL link to the generated image -* Error: An error message if the image generation process fails - -## Possible use case - -A graphic designer could use this block to quickly generate concept art for a sci-fi game. They might input a prompt like "A futuristic spaceport on a distant planet with multiple moons in the sky" and adjust the settings to get the desired style and quality. The generated image could then serve as inspiration or a starting point for further design work. diff --git a/docs/integrations/replicate/flux_advanced.md b/docs/integrations/block-integrations/replicate/flux_advanced.md similarity index 100% rename from docs/integrations/replicate/flux_advanced.md rename to docs/integrations/block-integrations/replicate/flux_advanced.md diff --git a/docs/integrations/replicate/replicate_block.md b/docs/integrations/block-integrations/replicate/replicate_block.md similarity index 100% rename from docs/integrations/replicate/replicate_block.md rename to docs/integrations/block-integrations/replicate/replicate_block.md diff --git a/docs/integrations/replicate_flux_advanced.md b/docs/integrations/block-integrations/replicate_flux_advanced.md similarity index 100% rename from docs/integrations/replicate_flux_advanced.md rename to docs/integrations/block-integrations/replicate_flux_advanced.md diff --git a/docs/integrations/block-integrations/rss.md b/docs/integrations/block-integrations/rss.md index 574cd048a2..9ca29353fa 100644 --- a/docs/integrations/block-integrations/rss.md +++ b/docs/integrations/block-integrations/rss.md @@ -1,38 +1,32 @@ # Read RSS Feed -## What It Is - +## What it is A block that retrieves and processes entries from an RSS feed. -## What It Does - +## What it does This block reads entries from a specified RSS feed URL, filters them based on a given time period, and outputs the entries one by one. -## How It Works - +## How it works The block connects to the provided RSS feed URL, fetches the feed content, and processes each entry. It checks if the entry's publication date falls within the specified time period and, if so, formats and outputs the entry information. ## Inputs - -| Input | Description | -| ---------------- | --------------------------------------------------------------------------------------------- | -| RSS URL | The web address of the RSS feed you want to read from | -| Time Period | The number of minutes to look back for new entries, relative to when the block starts running | -| Polling Rate | How often (in seconds) the block should check for new entries | -| Run Continuously | Whether the block should keep checking for new entries indefinitely or just run once | +| Input | Description | +|-------|-------------| +| RSS URL | The web address of the RSS feed you want to read from | +| Time Period | The number of minutes to look back for new entries, relative to when the block starts running | +| Polling Rate | How often (in seconds) the block should check for new entries | +| Run Continuously | Whether the block should keep checking for new entries indefinitely or just run once | ## Outputs +| Output | Description | +|--------|-------------| +| Entry | An RSS feed item containing the following information: | +| | - Title: The headline or name of the item | +| | - Link: The web address where the full item can be found | +| | - Description: A brief summary or excerpt of the item | +| | - Publication Date: When the item was published | +| | - Author: Who wrote or created the item | +| | - Categories: Topics or tags associated with the item | -| Output | Description | -| ------ | -------------------------------------------------------- | -| Entry | An RSS feed item containing the following information: | -| | - Title: The headline or name of the item | -| | - Link: The web address where the full item can be found | -| | - Description: A brief summary or excerpt of the item | -| | - Publication Date: When the item was published | -| | - Author: Who wrote or created the item | -| | - Categories: Topics or tags associated with the item | - -## Possible Use Case - -A news aggregator application could use this block to continuously monitor multiple RSS feeds from different news sources. The application could then display the latest news items to users, categorized by topic and sorted by publication date. +## Possible use case +A news aggregator application could use this block to continuously monitor multiple RSS feeds from different news sources. The application could then display the latest news items to users, categorized by topic and sorted by publication date. \ No newline at end of file diff --git a/docs/integrations/block-integrations/sampling.md b/docs/integrations/block-integrations/sampling.md index dfe864c799..d29dfcd0f8 100644 --- a/docs/integrations/block-integrations/sampling.md +++ b/docs/integrations/block-integrations/sampling.md @@ -1,37 +1,31 @@ # Data Sampling -## What It Is - +## What it is The Data Sampling block is a tool for selecting a subset of data from a larger dataset using various sampling methods. -## What It Does - +## What it does This block takes a dataset as input and returns a smaller sample of that data based on specified criteria. It supports multiple sampling methods, allowing users to choose the most appropriate technique for their needs. -## How It Works - +## How it works The block processes the input data and applies the chosen sampling method to select a subset of items. It can work with different data structures and supports data accumulation for scenarios where data is received in batches. -## Inputs - -| Input | Description | -| --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | -| Data | The dataset to sample from. This can be a single dictionary, a list of dictionaries, or a list of lists. | -| Sample Size | The number of items to select from the dataset. | +## Inputs +| Input | Description | +|-------|-------------| +| Data | The dataset to sample from. This can be a single dictionary, a list of dictionaries, or a list of lists. | +| Sample Size | The number of items to select from the dataset. | | Sampling Method | The technique used to select the sample. Options include random, systematic, top, bottom, stratified, weighted, reservoir, and cluster sampling. | -| Accumulate | A flag indicating whether to accumulate data before sampling. This is useful for scenarios where data is received in batches. | -| Random Seed | An optional value to ensure reproducible random sampling. | -| Stratify Key | The key to use for stratified sampling (required when using the stratified sampling method). | -| Weight Key | The key to use for weighted sampling (required when using the weighted sampling method). | -| Cluster Key | The key to use for cluster sampling (required when using the cluster sampling method). | +| Accumulate | A flag indicating whether to accumulate data before sampling. This is useful for scenarios where data is received in batches. | +| Random Seed | An optional value to ensure reproducible random sampling. | +| Stratify Key | The key to use for stratified sampling (required when using the stratified sampling method). | +| Weight Key | The key to use for weighted sampling (required when using the weighted sampling method). | +| Cluster Key | The key to use for cluster sampling (required when using the cluster sampling method). | ## Outputs - -| Output | Description | -| -------------- | --------------------------------------------------------- | -| Sampled Data | The selected subset of the input data. | +| Output | Description | +|--------|-------------| +| Sampled Data | The selected subset of the input data. | | Sample Indices | The indices of the sampled items in the original dataset. | -## Possible Use Case - -A data scientist working with a large customer dataset wants to create a representative sample for analysis. They could use this Data Sampling block to select a smaller subset of customers using stratified sampling, ensuring that the sample maintains the same proportions of different customer segments as the full dataset. +## Possible use case +A data scientist working with a large customer dataset wants to create a representative sample for analysis. They could use this Data Sampling block to select a smaller subset of customers using stratified sampling, ensuring that the sample maintains the same proportions of different customer segments as the full dataset. \ No newline at end of file diff --git a/docs/integrations/block-integrations/search.md b/docs/integrations/block-integrations/search.md index d45c3998a8..bc6e775233 100644 --- a/docs/integrations/block-integrations/search.md +++ b/docs/integrations/block-integrations/search.md @@ -1,137 +1,72 @@ # Search + +Blocks for web searching, content extraction, and information retrieval from various search engines and APIs. + ## Get Wikipedia Summary -### What It Is - -A block that retrieves a summary of a given topic from Wikipedia. - -### What It Does - -This block takes a topic as input and fetches a concise summary about that topic from Wikipedia's API. - -### How It Works +### What it is +This block fetches the summary of a given topic from Wikipedia. +### How it works + The block sends a request to Wikipedia's API with the provided topic. It then extracts the summary from the response and returns it. If there's an error during this process, it will return an error message instead. + ### Inputs -| Input | Description | -| ----- | ---------------------------------------------------------- | -| Topic | The subject you want to get a summary about from Wikipedia | +| Input | Description | Type | Required | +|-------|-------------|------|----------| +| topic | The topic to fetch the summary for | str | Yes | ### Outputs -| Output | Description | -| ------- | ------------------------------------------------------ | -| Summary | A brief overview of the requested topic from Wikipedia | -| Error | An error message if the summary retrieval fails | - -### Possible Use Case +| Output | Description | Type | +|--------|-------------|------| +| error | Error message if the summary cannot be retrieved | str | +| summary | The summary of the given topic | str | +### Possible use case + A student researching for a project could use this block to quickly get overviews of various topics, helping them decide which areas to focus on for more in-depth study. + -*** +--- -## Search The Web +## Google Maps Search -### What It Is +### What it is +This block searches for local businesses using Google Maps API. -A block that performs web searches and returns the results. +### How it works + +This block uses the Google Maps Places API to search for businesses and locations based on a query. Configure radius (up to 50km) to limit the search area and max_results (up to 60) to control how many places are returned. -### What it Does - -This block takes a search query and returns a list of relevant web pages, including their titles, URLs, and brief descriptions. - -### How It Works - -The block sends the search query to a search engine API, processes the results, and returns them in a structured format. +Each place result includes name, address, rating, reviews, and geographic coordinates for integration with mapping or navigation workflows. + ### Inputs -| Input | Description | -| ----------------- | -------------------------------------------------------------- | -| Query | The search term or phrase to look up on the web | -| Number of Results | How many search results to return (optional, default may vary) | +| Input | Description | Type | Required | +|-------|-------------|------|----------| +| query | Search query for local businesses | str | Yes | +| radius | Search radius in meters (max 50000) | int | No | +| max_results | Maximum number of results to return (max 60) | int | No | ### Outputs -| Output | Description | -| ------- | ----------------------------------------------------------------------- | -| Results | A list of search results, each containing a title, URL, and description | -| Error | An error message if the search fails | +| Output | Description | Type | +|--------|-------------|------| +| error | Error message if the operation failed | str | +| place | Place found | Place | -### Possible Use Case +### Possible use case + +**Lead Generation**: Find businesses in a specific area for sales outreach. -A content creator could use this block to research trending topics in their field, gathering ideas for new articles or videos. +**Competitive Analysis**: Search for competitors in target locations to analyze their presence and ratings. -*** +**Local SEO**: Gather data on local businesses for market research or directory building. + -## Extract Website Content - -### What It Is - -A block that retrieves and extracts content from specified websites. - -### What it Does - -This block takes a URL as input, visits the webpage, and extracts the main content, removing navigation elements, ads, and other non-essential parts. - -### How It Works - -The block sends a request to the given URL, downloads the HTML content, and uses content extraction algorithms to identify and extract the main text content of the page. - -### Inputs - -| Input | Description | -| ----- | --------------------------------------------------- | -| URL | The web address of the page to extract content from | - -### Outputs - -| Output | Description | -| ------- | ------------------------------------------------ | -| Content | The main text content extracted from the webpage | -| Title | The title of the webpage | -| Error | An error message if the content extraction fails | - -### Possible Use Case - -A data analyst could use this block to automatically extract article content from news websites for sentiment analysis or topic modeling. - -*** - -## Get Weather Information - -### What It Is - -A block that fetches current weather data for a specified location. - -### What it Does - -This block takes a location name as input and returns current weather information such as temperature, humidity, and weather conditions. - -### How It Works - -The block sends a request to a weather API (like OpenWeatherMap) with the provided location. It then processes the response to extract relevant weather data. - -### Inputs - -| Input | Description | -| ----------- | -------------------------------------------------------------------------------- | -| Location | The city or area you want to get weather information for | -| API Key | Your personal OpenWeatherMap API key (this is kept secret) | -| Use Celsius | An option to choose between Celsius (true) or Fahrenheit (false) for temperature | - -### Outputs - -| Output | Description | -| ----------- | ------------------------------------------------------------------------ | -| Temperature | The current temperature in the specified location | -| Humidity | The current humidity percentage in the specified location | -| Condition | A description of the current weather condition (e.g., "overcast clouds") | -| Error | A message explaining what went wrong if the weather data retrieval fails | - -### Possible Use Case - -A travel planning application could use this block to provide users with current weather information for their destination cities. +--- diff --git a/docs/integrations/block-integrations/send-web-request.md b/docs/integrations/block-integrations/send-web-request.md deleted file mode 100644 index 080d2e6bb7..0000000000 --- a/docs/integrations/block-integrations/send-web-request.md +++ /dev/null @@ -1,34 +0,0 @@ -# Send Web Request - -## What It Is - -The Send Web Request block is a tool for making HTTP requests to specified web addresses. - -## What It Does - -This block allows you to send various types of web requests (such as GET, POST, PUT, etc.) to a given URL, optionally including headers and a request body. It then processes the response and categorizes it based on the status code received. - -## How It Works - -When activated, the block takes the provided URL, request method, headers, and body. It then sends the request to the specified web address. Upon receiving a response, it analyzes the status code and returns the response data in one of three categories: successful response, client error, or server error. - -## Inputs - -| Input | Description | -| ------- | ------------------------------------------------------------------------------------------------------------- | -| URL | The web address to which the request will be sent | -| Method | The type of HTTP request (e.g., GET, POST, PUT). Default is POST | -| Headers | Additional information sent with the request, such as authentication tokens or content type. This is optional | -| Body | The main content of the request, typically used for sending data in POST or PUT requests. This is optional | - -## Outputs - -| Output | Description | -| ------------ | ---------------------------------------------------------------------------------------------- | -| Response | The data received from a successful request (status codes 200-299) | -| Client Error | Information about errors caused by the client, such as invalid requests (status codes 400-499) | -| Server Error | Information about errors on the server side (status codes 500-599) | - -## Possible Use Case - -This block could be used in an application that needs to interact with external APIs. For example, it could send user data to a registration service, retrieve product information from an e-commerce platform, or post updates to a social media service. The block's ability to handle different types of responses makes it versatile for various web-based interactions. diff --git a/docs/integrations/block-integrations/sheet.md b/docs/integrations/block-integrations/sheet.md deleted file mode 100644 index 6f0332e209..0000000000 --- a/docs/integrations/block-integrations/sheet.md +++ /dev/null @@ -1,70 +0,0 @@ -# Google Sheets - -### Google Sheets Read - -#### What it is - -A block that reads data from a Google Sheets spreadsheet. - -#### What it does - -This block retrieves information from a specified range within a Google Sheets spreadsheet. - -#### How it works - -The block connects to Google Sheets using provided credentials, then fetches data from the specified spreadsheet and range. - -#### Inputs - -| Input | Description | -| -------------- | ---------------------------------------------------------------------------- | -| Credentials | Authentication information required to access Google Sheets | -| Spreadsheet ID | The unique identifier of the spreadsheet you want to read from | -| Range | The specific area of the spreadsheet you want to read (e.g., "Sheet1!A1:B2") | - -#### Outputs - -| Output | Description | -| ------ | ---------------------------------------------------------------------- | -| Result | The data retrieved from the spreadsheet, organized in rows and columns | -| Error | Any error message that occurred during the process | - -#### Possible use case - -A marketing team could use this block to automatically retrieve the latest campaign performance data from a shared Google Sheets document for analysis and reporting. - -*** - -### Google Sheets Write - -#### What it is - -A block that writes data to a Google Sheets spreadsheet. - -#### What it does - -This block allows you to input data into a specified range within a Google Sheets spreadsheet. - -#### How it works - -The block authenticates with Google Sheets using provided credentials, then updates the specified spreadsheet range with the given data. - -#### Inputs - -| Input | Description | -| -------------- | ---------------------------------------------------------------------------------------- | -| Credentials | Authentication information required to access Google Sheets | -| Spreadsheet ID | The unique identifier of the spreadsheet you want to write to | -| Range | The specific area of the spreadsheet where you want to write data (e.g., "Sheet1!A1:B2") | -| Values | The data you want to write to the spreadsheet, organized in rows and columns | - -#### Outputs - -| Output | Description | -| ------ | --------------------------------------------------------------------------------------------- | -| Result | Information about the write operation, such as the number of cells, columns, and rows updated | -| Error | Any error message that occurred during the process | - -#### Possible use case - -An automated inventory system could use this block to update stock levels in a Google Sheets spreadsheet whenever products are sold or restocked, ensuring real-time inventory tracking. diff --git a/docs/integrations/slant3d/filament.md b/docs/integrations/block-integrations/slant3d/filament.md similarity index 100% rename from docs/integrations/slant3d/filament.md rename to docs/integrations/block-integrations/slant3d/filament.md diff --git a/docs/integrations/slant3d/order.md b/docs/integrations/block-integrations/slant3d/order.md similarity index 100% rename from docs/integrations/slant3d/order.md rename to docs/integrations/block-integrations/slant3d/order.md diff --git a/docs/integrations/slant3d/slicing.md b/docs/integrations/block-integrations/slant3d/slicing.md similarity index 100% rename from docs/integrations/slant3d/slicing.md rename to docs/integrations/block-integrations/slant3d/slicing.md diff --git a/docs/integrations/slant3d/webhook.md b/docs/integrations/block-integrations/slant3d/webhook.md similarity index 100% rename from docs/integrations/slant3d/webhook.md rename to docs/integrations/block-integrations/slant3d/webhook.md diff --git a/docs/integrations/smartlead/campaign.md b/docs/integrations/block-integrations/smartlead/campaign.md similarity index 100% rename from docs/integrations/smartlead/campaign.md rename to docs/integrations/block-integrations/smartlead/campaign.md diff --git a/docs/integrations/stagehand/blocks.md b/docs/integrations/block-integrations/stagehand/blocks.md similarity index 100% rename from docs/integrations/stagehand/blocks.md rename to docs/integrations/block-integrations/stagehand/blocks.md diff --git a/docs/integrations/system/library_operations.md b/docs/integrations/block-integrations/system/library_operations.md similarity index 100% rename from docs/integrations/system/library_operations.md rename to docs/integrations/block-integrations/system/library_operations.md diff --git a/docs/integrations/system/store_operations.md b/docs/integrations/block-integrations/system/store_operations.md similarity index 100% rename from docs/integrations/system/store_operations.md rename to docs/integrations/block-integrations/system/store_operations.md diff --git a/docs/integrations/block-integrations/talking-head.md b/docs/integrations/block-integrations/talking-head.md deleted file mode 100644 index 352ef9c439..0000000000 --- a/docs/integrations/block-integrations/talking-head.md +++ /dev/null @@ -1,41 +0,0 @@ -# Create Talking Avatar Video - -## What it is - -This block is an AI-powered tool that creates video clips featuring a talking avatar using the D-ID service. - -## What it does - -It generates a video of a digital avatar speaking a given script, with customizable voice, presenter, and visual settings. - -## How it works - -The block sends a request to the D-ID API with your specified parameters. It then regularly checks the status of the video creation process until it's complete or an error occurs. - -## Inputs - -| Input | Description | -| -------------------- | ------------------------------------------------------------------ | -| API Key | Your D-ID API key for authentication | -| Script Input | The text you want the avatar to speak | -| Provider | The voice provider to use (options: microsoft, elevenlabs, amazon) | -| Voice ID | The specific voice to use for the avatar | -| Presenter ID | The visual appearance of the avatar | -| Driver ID | The animation style for the avatar | -| Result Format | The file format of the final video (options: mp4, gif, wav) | -| Crop Type | How the video should be cropped (options: wide, square, vertical) | -| Subtitles | Whether to include subtitles in the video | -| SSML | Whether the input script uses Speech Synthesis Markup Language | -| Max Polling Attempts | Maximum number of times to check for video completion | -| Polling Interval | Time to wait between each status check (in seconds) | - -## Outputs - -| Output | Description | -| --------- | ----------------------------------------------------------------- | -| Video URL | The web address where you can access the completed video | -| Error | A message explaining what went wrong if the video creation failed | - -## Possible use case - -A marketing team could use this block to create engaging video content for social media. They could input a script promoting a new product, select a friendly-looking avatar, and generate a video that explains the product's features in an appealing way. diff --git a/docs/integrations/talking_head.md b/docs/integrations/block-integrations/talking_head.md similarity index 100% rename from docs/integrations/talking_head.md rename to docs/integrations/block-integrations/talking_head.md diff --git a/docs/integrations/block-integrations/text-decoder.md b/docs/integrations/block-integrations/text-decoder.md deleted file mode 100644 index 5070cc5267..0000000000 --- a/docs/integrations/block-integrations/text-decoder.md +++ /dev/null @@ -1,38 +0,0 @@ -# Text Decoder - -## What It Is - -A tool that converts text with special characters into regular, readable text. - -## What It Does - -It takes a string of text that contains escaped characters (like '\n' for new lines or '"' for quotation marks) and converts them into their actual representations in the text. - -## How It Works - -The Text Decoder looks at the input text and identifies special character sequences. It then replaces these sequences with their actual characters, making the text more readable and removing any escape characters. - -## Inputs - -| Input | Description | -| ----- | -------------------------------------------------------------------------------------------------------------------- | -| Text | The text you want to decode, which may contain escaped characters like '\n' for new lines or '"' for quotation marks | - -## Outputs - -| Output | Description | -| ------------ | ------------------------------------------------------------------------------------------- | -| Decoded Text | The text after processing, with all escape sequences converted to their actual characters | -| Error | If there's a problem during the decoding process, an error message will be provided instead | - -## Possible Use Case - -Imagine you receive a text message that looks like this: "Hello\nWorld!\nThis is a "quoted" string." The Text Decoder can convert it into a more readable format: - -``` -Hello -World! -This is a "quoted" string. -``` - -This could be useful when working with data from various sources where text might be encoded to preserve special characters, such as when importing data from a file or receiving it from an API. diff --git a/docs/integrations/block-integrations/text-to-speech.md b/docs/integrations/block-integrations/text-to-speech.md deleted file mode 100644 index d54b3a673b..0000000000 --- a/docs/integrations/block-integrations/text-to-speech.md +++ /dev/null @@ -1,32 +0,0 @@ -# Unreal Text to Speech - -## What it is - -A block that converts text into speech using the Unreal Speech API. - -## What it does - -This block takes a text input and generates an audio file of that text being spoken. It allows users to specify the voice they want to use for the speech conversion. - -## How it works - -The block sends the provided text and voice selection to the Unreal Speech API. The API processes this information and returns a URL where the generated audio file can be accessed. - -## Inputs - -| Input | Description | -| -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Text | The text you want to convert into speech. This could be a sentence, paragraph, or any written content you'd like to hear spoken aloud. | -| Voice ID | The identifier for the voice you want to use for the speech. By default, it uses a voice called "Scarlett," but you can change this to other available voices. | -| API Key | Your personal key to access the Unreal Speech API. This is kept secret and secure. | - -## Outputs - -| Output | Description | -| ------- | ------------------------------------------------------------------------------------------------- | -| MP3 URL | The web address where you can access or download the generated audio file in MP3 format. | -| Error | If something goes wrong during the process, this will contain a message explaining what happened. | - -## Possible use case - -This block could be used in an application that helps visually impaired users consume written content. For example, a news app could use this block to convert articles into audio format, allowing users to listen to the news instead of reading it. diff --git a/docs/integrations/block-integrations/text.md b/docs/integrations/block-integrations/text.md index f17e61a135..e47375196c 100644 --- a/docs/integrations/block-integrations/text.md +++ b/docs/integrations/block-integrations/text.md @@ -1,139 +1,494 @@ # Text + +Blocks for text processing including formatting, extraction, transformation, splitting, combining, and template rendering. + -## Match Text Pattern +## Code Extraction -### What It Is +### What it is +Extracts code blocks from text and identifies their programming languages -A block that matches text against a specified pattern. +### How it works + +This block parses text content (typically from AI responses) and extracts code blocks enclosed in markdown-style triple backticks. It identifies the programming language from the code fence annotation (e.g., ```python) and routes each extracted code block to the appropriate language-specific output. -### What It Does - -This block takes input text and a pattern, then checks if the text matches the pattern. It forwards the data to either a positive or negative output based on whether a match is found. - -### How It Works - -The block uses regular expressions to search for the specified pattern within the input text. It considers options like case sensitivity and whether the dot should match all characters. +The block supports 16 programming languages including Python, JavaScript, HTML, CSS, SQL, and more. Any text that remains after extracting all code blocks is output as "remaining_text", allowing you to process both the code and surrounding context separately. + ### Inputs -| Input | Description | -| -------------- | ------------------------------------------------------------------------- | -| Text | The text to be matched against the pattern | -| Match | The pattern (regular expression) to search for in the text | -| Data | Additional information to be forwarded to the output | -| Case sensitive | Option to make the match case-sensitive or not | -| Dot all | Option to make the dot character match all characters, including newlines | +| Input | Description | Type | Required | +|-------|-------------|------|----------| +| text | Text containing code blocks to extract (e.g., AI response) | str | Yes | ### Outputs -| Output | Description | -| -------- | ------------------------------------ | -| Positive | The output data if a match is found | -| Negative | The output data if no match is found | +| Output | Description | Type | +|--------|-------------|------| +| error | Error message if the operation failed | str | +| html | Extracted HTML code | str | +| css | Extracted CSS code | str | +| javascript | Extracted JavaScript code | str | +| python | Extracted Python code | str | +| sql | Extracted SQL code | str | +| java | Extracted Java code | str | +| cpp | Extracted C++ code | str | +| csharp | Extracted C# code | str | +| json_code | Extracted JSON code | str | +| bash | Extracted Bash code | str | +| php | Extracted PHP code | str | +| ruby | Extracted Ruby code | str | +| yaml | Extracted YAML code | str | +| markdown | Extracted Markdown code | str | +| typescript | Extracted TypeScript code | str | +| xml | Extracted XML code | str | +| remaining_text | Remaining text after code extraction | str | -### Possible Use Case +### Possible use case + +**AI Code Generation Pipeline**: When an AI model generates a response containing multiple code blocks (HTML, CSS, JavaScript), use this block to separate each language into individual files for a complete web component. -Filtering customer feedback messages based on specific keywords or phrases to categorize them as positive or negative reviews. +**Code Review Automation**: Extract Python code from documentation or chat logs to run automated linting, testing, or security scanning on the code portions only. -*** +**Technical Documentation Processing**: Parse developer tutorials or README files to extract executable code samples while preserving the explanatory text for different processing paths. + -## Extract Text Information - -### What It Is - -A block that extracts specific information from text using a pattern. - -### What It Does - -This block searches for a pattern within the input text and extracts a portion of the text based on that pattern. - -### How It Works - -The block uses regular expressions to find the specified pattern in the text. It then extracts a particular group from the match, which can be the entire match or a specific captured group. - -### Inputs - -| Input | Description | -| -------------- | ------------------------------------------------------------------------- | -| Text | The text from which to extract information | -| Pattern | The pattern (regular expression) used to find the desired information | -| Group | The group number to extract from the match (0 for the entire match) | -| Case sensitive | Option to make the match case-sensitive or not | -| Dot all | Option to make the dot character match all characters, including newlines | - -### Outputs - -| Output | Description | -| -------- | -------------------------------------- | -| Positive | The extracted text if a match is found | -| Negative | The original text if no match is found | - -### Possible Use Case - -Extracting phone numbers or email addresses from a large body of text, such as a customer database. - -*** - -## Fill Text Template - -### What It Is - -A block that fills a text template with provided values. - -### What It Does - -This block takes a template string and a dictionary of values, then replaces placeholders in the template with the corresponding values. - -### How It Works - -The block uses a template engine to replace placeholders in the format string with the provided values. It supports both simple placeholder replacement and more complex operations like loops. - -### Inputs - -| Input | Description | -| ------ | ------------------------------------------------------------------- | -| Values | A dictionary containing the values to be inserted into the template | -| Format | The template string with placeholders for the values | - -### Outputs - -| Output | Description | -| ------ | -------------------------------------------------------------- | -| Output | The formatted text with placeholders replaced by actual values | - -### Possible Use Case - -Generating personalized email messages by filling a template with customer-specific information like name, order details, or account status. - -*** +--- ## Combine Texts -### What It Is - -A block that combines multiple text inputs into a single output. - -### What It Does - -This block takes a list of text inputs and joins them together, optionally using a specified delimiter. - -### How It Works +### What it is +This block combines multiple input texts into a single output text. +### How it works + The block concatenates all the input texts in the order they are provided, inserting the specified delimiter (if any) between each text. + ### Inputs -| Input | Description | -| --------- | -------------------------------------------------------------------------------------- | -| Input | A list of text strings to be combined | -| Delimiter | An optional string to be inserted between each text input (default is an empty string) | +| Input | Description | Type | Required | +|-------|-------------|------|----------| +| input | text input to combine | List[str] | Yes | +| delimiter | Delimiter to combine texts | str | No | ### Outputs -| Output | Description | -| ------ | ----------------- | -| Output | The combined text | - -### Possible Use Case +| Output | Description | Type | +|--------|-------------|------| +| error | Error message if the operation failed | str | +| output | Combined text | str | +### Possible use case + Merging multiple parts of an address (street, city, state, zip code) into a single, formatted address string. + + +--- + +## Countdown Timer + +### What it is +This block triggers after a specified duration. + +### How it works + +The Countdown Timer block pauses workflow execution for a specified duration before continuing. You can set the delay using any combination of seconds, minutes, hours, and days. When the timer completes, it outputs your specified message (or "timer finished" by default). + +The block supports a repeat parameter, allowing the timer to fire multiple times in sequence—useful for creating periodic triggers within your workflow. The timer uses async sleep, so it doesn't block other concurrent operations in the system. + + +### Inputs + +| Input | Description | Type | Required | +|-------|-------------|------|----------| +| input_message | Message to output after the timer finishes | Input Message | No | +| seconds | Duration in seconds | int \| str | No | +| minutes | Duration in minutes | int \| str | No | +| hours | Duration in hours | int \| str | No | +| days | Duration in days | int \| str | No | +| repeat | Number of times to repeat the timer | int | No | + +### Outputs + +| Output | Description | Type | +|--------|-------------|------| +| error | Error message if the operation failed | str | +| output_message | Message after the timer finishes | Output Message | + +### Possible use case + +**Rate Limiting**: Add a delay between API calls to respect rate limits when processing large batches of data through external services. + +**Scheduled Notifications**: Create a workflow that waits a specific time after an event (like a form submission) before sending a follow-up email or notification. + +**Polling Workflows**: Use the repeat feature to periodically check for updates, such as monitoring a file location or checking an API endpoint every few minutes. + + +--- + +## Extract Text Information + +### What it is +This block extracts the text from the given text using the pattern (regex). + +### How it works + +The block uses regular expressions to find the specified pattern in the text. It then extracts a particular group from the match, which can be the entire match or a specific captured group. + + +### Inputs + +| Input | Description | Type | Required | +|-------|-------------|------|----------| +| text | Text to parse | Text | Yes | +| pattern | Pattern (Regex) to parse | str | Yes | +| group | Group number to extract | int | No | +| case_sensitive | Case sensitive match | bool | No | +| dot_all | Dot matches all | bool | No | +| find_all | Find all matches | bool | No | + +### Outputs + +| Output | Description | Type | +|--------|-------------|------| +| error | Error message if the operation failed | str | +| positive | Extracted text | str | +| negative | Original text | str | +| matched_results | List of matched results | List[str] | +| matched_count | Number of matched results | int | + +### Possible use case + +Extracting phone numbers or email addresses from a large body of text, such as a customer database. + + +--- + +## Fill Text Template + +### What it is +This block formats the given texts using the format template. + +### How it works + +The block uses a template engine to replace placeholders in the format string with the provided values. It supports both simple placeholder replacement and more complex operations like loops. + + +### Inputs + +| Input | Description | Type | Required | +|-------|-------------|------|----------| +| values | Values (dict) to be used in format. These values can be used by putting them in double curly braces in the format template. e.g. {{value_name}}. | Dict[str, Any] | Yes | +| format | Template to format the text using `values`. Use Jinja2 syntax. | str | Yes | +| escape_html | Whether to escape special characters in the inserted values to be HTML-safe. Enable for HTML output, disable for plain text. | bool | No | + +### Outputs + +| Output | Description | Type | +|--------|-------------|------| +| error | Error message if the operation failed | str | +| output | Formatted text | str | + +### Possible use case + +Generating personalized email messages by filling a template with customer-specific information like name, order details, or account status. + + +--- + +## Get Current Date + +### What it is +This block outputs the current date with an optional offset. + +### How it works + +This block retrieves the current date from the system clock and formats it according to your preferences. You can specify an offset in days to get past or future dates (negative values for past dates, positive for future). + +The block supports two format types: strftime (customizable format strings like "%Y-%m-%d" or "%B %d, %Y") and ISO 8601 (standard format YYYY-MM-DD). You can also configure the timezone—either specify a specific timezone or use the user's profile timezone setting. + + +### Inputs + +| Input | Description | Type | Required | +|-------|-------------|------|----------| +| trigger | Trigger any data to output the current date | str | Yes | +| offset | Offset in days from the current date | int \| str | No | +| format_type | Format type for date output (strftime with custom format or ISO 8601) | Format Type | No | + +### Outputs + +| Output | Description | Type | +|--------|-------------|------| +| error | Error message if the operation failed | str | +| date | Current date in the specified format (default: YYYY-MM-DD) | str | + +### Possible use case + +**Daily Report Generation**: Use the current date as a filename suffix or report header when generating automated daily summaries or exports. + +**Deadline Tracking**: Calculate dates relative to today using the offset feature—for example, find the date 30 days from now for payment due dates or project milestones. + +**Date-Based Filtering**: Get today's date to filter records, events, or tasks that are relevant to the current day in your workflow. + + +--- + +## Get Current Date And Time + +### What it is +This block outputs the current date and time. + +### How it works + +This block outputs the current date and time from the system clock, formatted according to your specifications. It supports both strftime custom formats (like "%Y-%m-%d %H:%M:%S") and ISO 8601/RFC 3339 format for maximum compatibility with APIs and databases. + +You can configure the timezone to use either a specific timezone (e.g., "America/New_York") or the user's profile timezone. The ISO 8601 format option includes an optional microseconds precision setting for applications requiring high-resolution timestamps. + + +### Inputs + +| Input | Description | Type | Required | +|-------|-------------|------|----------| +| trigger | Trigger any data to output the current date and time | str | Yes | +| format_type | Format type for date and time output (strftime with custom format or ISO 8601/RFC 3339) | Format Type | No | + +### Outputs + +| Output | Description | Type | +|--------|-------------|------| +| error | Error message if the operation failed | str | +| date_time | Current date and time in the specified format (default: YYYY-MM-DD HH:MM:SS) | str | + +### Possible use case + +**Audit Logging**: Add precise timestamps to records when logging user actions, system events, or data changes in your workflow. + +**API Requests**: Generate ISO 8601 formatted timestamps required by many REST APIs for request authentication or data submission. + +**Scheduling Logic**: Compare the current date/time against scheduled events to trigger time-sensitive automations like sending reminders or processing batch jobs. + + +--- + +## Get Current Time + +### What it is +This block outputs the current time. + +### How it works + +This block outputs just the current time (without date) from the system clock. It supports strftime custom formats (like "%H:%M:%S" for 24-hour time or "%I:%M %p" for 12-hour time with AM/PM) and ISO 8601 time format. + +The timezone can be configured to a specific timezone or to use the user's profile timezone setting. When using ISO 8601 format, the output includes the timezone offset and an optional microseconds component for precision timing needs. + + +### Inputs + +| Input | Description | Type | Required | +|-------|-------------|------|----------| +| trigger | Trigger any data to output the current time | str | Yes | +| format_type | Format type for time output (strftime with custom format or ISO 8601) | Format Type | No | + +### Outputs + +| Output | Description | Type | +|--------|-------------|------| +| error | Error message if the operation failed | str | +| time | Current time in the specified format (default: %H:%M:%S) | str | + +### Possible use case + +**Business Hours Check**: Get the current time to determine if a request falls within business hours and route it accordingly (live support vs. after-hours message). + +**Time-Based Greetings**: Generate personalized greetings ("Good morning", "Good afternoon") based on the current time of day. + +**Shift Scheduling**: Determine which team or process should handle a task based on the current time and configured shift schedules. + + +--- + +## Match Text Pattern + +### What it is +Matches text against a regex pattern and forwards data to positive or negative output based on the match. + +### How it works + +The block uses regular expressions to search for the specified pattern within the input text. It considers options like case sensitivity and whether the dot should match all characters. + + +### Inputs + +| Input | Description | Type | Required | +|-------|-------------|------|----------| +| text | Text to match | Text | Yes | +| match | Pattern (Regex) to match | str | Yes | +| data | Data to be forwarded to output | Data | Yes | +| case_sensitive | Case sensitive match | bool | No | +| dot_all | Dot matches all | bool | No | + +### Outputs + +| Output | Description | Type | +|--------|-------------|------| +| error | Error message if the operation failed | str | +| positive | Output data if match is found | Positive | +| negative | Output data if match is not found | Negative | + +### Possible use case + +Filtering customer feedback messages based on specific keywords or phrases to categorize them as positive or negative reviews. + + +--- + +## Text Decoder + +### What it is +Decodes a string containing escape sequences into actual text + +### How it works + +This block processes a text string and converts escape sequences (like \n, \t, \\, \uXXXX) into their actual character representations. For example, the literal text "Hello\nWorld" becomes "Hello" followed by an actual newline, then "World". + +This is useful when working with data from APIs or files where escape sequences are stored as literal text rather than being interpreted as special characters. The block handles standard escape sequences including newlines, tabs, Unicode characters, and more. + + +### Inputs + +| Input | Description | Type | Required | +|-------|-------------|------|----------| +| text | A string containing escaped characters to be decoded | str | Yes | + +### Outputs + +| Output | Description | Type | +|--------|-------------|------| +| error | Error message if the operation failed | str | +| decoded_text | The decoded text with escape sequences processed | str | + +### Possible use case + +**JSON Data Processing**: When parsing JSON strings that contain escaped characters (like "\n" for newlines in a message field), decode them to display properly formatted text to users. + +**Log File Processing**: Process log entries where special characters are escaped, converting them to their actual representations for proper parsing or display. + +**API Response Handling**: Decode text from APIs that return escaped content, ensuring special characters like tabs and newlines render correctly in your output. + + +--- + +## Text Replace + +### What it is +This block is used to replace a text with a new text. + +### How it works + +This block performs a simple find-and-replace operation on text. It searches for all occurrences of the "old" string within your input text and replaces each one with the "new" string. The replacement is case-sensitive and matches exact strings. + +Unlike regex-based replacements, this block performs literal string matching, making it straightforward and predictable for common text substitution tasks. All instances of the target string are replaced in a single operation. + + +### Inputs + +| Input | Description | Type | Required | +|-------|-------------|------|----------| +| text | The text to replace. | str | Yes | +| old | The old text to replace. | str | Yes | +| new | The new text to replace with. | str | Yes | + +### Outputs + +| Output | Description | Type | +|--------|-------------|------| +| error | Error message if the operation failed | str | +| output | The text with the replaced text. | str | + +### Possible use case + +**Data Sanitization**: Replace sensitive information like placeholder tokens with actual values, or redact personal information before displaying or storing text. + +**Template Customization**: Swap out placeholder text in templates (like "[COMPANY_NAME]" or "{{user}}") with actual values before sending emails or generating documents. + +**URL Manipulation**: Modify URLs by replacing domain names, query parameters, or path segments to redirect requests or update links dynamically. + + +--- + +## Text Split + +### What it is +This block is used to split a text into a list of strings. + +### How it works + +This block takes a text string and divides it into a list of substrings based on a specified delimiter. For example, splitting "apple,banana,cherry" by comma results in ["apple", "banana", "cherry"]. + +By default, the block also strips whitespace from each resulting substring (controlled by the "strip" option). If your input text is empty, the block returns an empty list. This is useful for parsing structured text data like CSV values, tags, or any delimited content. + + +### Inputs + +| Input | Description | Type | Required | +|-------|-------------|------|----------| +| text | The text to split. | str | Yes | +| delimiter | The delimiter to split the text by. | str | Yes | +| strip | Whether to strip the text. | bool | No | + +### Outputs + +| Output | Description | Type | +|--------|-------------|------| +| error | Error message if the operation failed | str | +| texts | The text split into a list of strings. | List[str] | + +### Possible use case + +**Tag Processing**: Split a comma-separated list of tags or keywords into individual items for processing, filtering, or database storage. + +**Line-by-Line Processing**: Split a multi-line text file by newline characters to process each line independently in your workflow. + +**Parsing User Input**: Break apart user-submitted lists (like email addresses separated by semicolons) into individual items for validation and processing. + + +--- + +## Word Character Count + +### What it is +Counts the number of words and characters in a given text. + +### How it works + +This block analyzes input text and returns two metrics: the total number of words and the total number of characters. Words are counted by splitting the text on whitespace, so "Hello World" counts as 2 words. Characters include all characters in the text, including spaces and punctuation. + +This provides a quick way to measure text length for validation, summarization checks, or content analysis without needing custom logic. + + +### Inputs + +| Input | Description | Type | Required | +|-------|-------------|------|----------| +| text | Input text to count words and characters | str | Yes | + +### Outputs + +| Output | Description | Type | +|--------|-------------|------| +| error | Error message if the counting operation failed | str | +| word_count | Number of words in the input text | int | +| character_count | Number of characters in the input text | int | + +### Possible use case + +**Content Validation**: Check if user-submitted text (like reviews or comments) meets minimum or maximum length requirements before accepting it. + +**AI Prompt Optimization**: Measure prompt length to ensure it fits within token limits before sending to language models, potentially triggering summarization if too long. + +**Social Media Preparation**: Verify that text content fits within platform character limits (like Twitter's 280 characters) before attempting to post. + + +--- diff --git a/docs/integrations/text_to_speech_block.md b/docs/integrations/block-integrations/text_to_speech_block.md similarity index 100% rename from docs/integrations/text_to_speech_block.md rename to docs/integrations/block-integrations/text_to_speech_block.md diff --git a/docs/integrations/block-integrations/time-and-date.md b/docs/integrations/block-integrations/time-and-date.md deleted file mode 100644 index 3bdad602ee..0000000000 --- a/docs/integrations/block-integrations/time-and-date.md +++ /dev/null @@ -1,132 +0,0 @@ -# Time and Date - -### Get Current Time - -#### What it is - -A block that provides the current time. - -#### What it does - -This block outputs the current time in hours, minutes, and seconds. - -#### How it works - -When triggered, the block retrieves the current system time and formats it as a string in the HH:MM:SS format. - -#### Inputs - -| Input | Description | -| ------- | --------------------------------------------------------------------------------------------- | -| trigger | A string input that activates the block. The content of this input doesn't affect the output. | - -#### Outputs - -| Output | Description | -| ------ | --------------------------------------------------------------------------------- | -| time | A string representing the current time in the format HH:MM:SS (e.g., "14:30:45"). | - -#### Possible use case - -This block could be used in a chatbot that needs to provide the current time to users when asked. - -*** - -### Get Current Date - -#### What it is - -A block that provides the current date, with an optional offset. - -#### What it does - -This block outputs the current date or a date offset from the current date by a specified number of days. - -#### How it works - -When triggered, the block retrieves the current system date. If an offset is provided, it calculates a new date by subtracting the offset number of days from the current date. The resulting date is then formatted as a string in the YYYY-MM-DD format. - -#### Inputs - -| Input | Description | -| ------- | ------------------------------------------------------------------------------------------------------------------------------------- | -| trigger | A string input that activates the block. The content of this input doesn't affect the output. | -| offset | An integer or string representing the number of days to subtract from the current date. If not provided or invalid, it defaults to 0. | - -#### Outputs - -| Output | Description | -| ------ | ----------------------------------------------------------------------------- | -| date | A string representing the date in the format YYYY-MM-DD (e.g., "2023-05-15"). | - -#### Possible use case - -This block could be used in a scheduling application to calculate and display dates for upcoming events or deadlines. - -*** - -### Get Current Date and Time - -#### What it is - -A block that provides both the current date and time. - -#### What it does - -This block outputs the current date and time combined into a single string. - -#### How it works - -When triggered, the block retrieves the current system date and time, then formats them together as a string in the YYYY-MM-DD HH:MM:SS format. - -#### Inputs - -| Input | Description | -| ------- | --------------------------------------------------------------------------------------------- | -| trigger | A string input that activates the block. The content of this input doesn't affect the output. | - -#### Outputs - -| Output | Description | -| ---------- | ---------------------------------------------------------------------------------------------------------------- | -| date\_time | A string representing the current date and time in the format YYYY-MM-DD HH:MM:SS (e.g., "2023-05-15 14:30:45"). | - -#### Possible use case - -This block could be used in a logging system to timestamp events with both date and time information. - -*** - -### Countdown Timer - -#### What it is - -A block that acts as a countdown timer, triggering after a specified duration. - -#### What it does - -This block waits for a specified amount of time and then outputs a message. - -#### How it works - -The block takes input for the duration in days, hours, minutes, and seconds. It calculates the total wait time in seconds, pauses execution for that duration, and then outputs the specified message. - -#### Inputs - -| Input | Description | Default | -| -------------- | ------------------------------------------------- | ---------------- | -| input\_message | The message to be output when the timer finishes. | "timer finished" | -| seconds | The number of seconds to wait. | 0 | -| minutes | The number of minutes to wait. | 0 | -| hours | The number of hours to wait. | 0 | -| days | The number of days to wait. | 0 | - -#### Outputs - -| Output | Description | -| --------------- | ------------------------------------------------------------------------------ | -| output\_message | The message specified in the input\_message, output after the timer completes. | - -#### Possible use case - -This block could be used in a reminder application to trigger notifications after a set amount of time, or in a cooking app to notify users when a recipe step is complete. diff --git a/docs/integrations/time_blocks.md b/docs/integrations/block-integrations/time_blocks.md similarity index 100% rename from docs/integrations/time_blocks.md rename to docs/integrations/block-integrations/time_blocks.md diff --git a/docs/integrations/block-integrations/todoist.md b/docs/integrations/block-integrations/todoist.md index b7fd449da9..65195f0b81 100644 --- a/docs/integrations/block-integrations/todoist.md +++ b/docs/integrations/block-integrations/todoist.md @@ -1,860 +1,722 @@ -# Todoist +# Todoist Blocks ## Todoist Create Label ### What it is - A block that creates a new label in Todoist. ### What it does - Creates a new label in Todoist with specified name, order, color and favorite status. ### How it works - It takes label details as input, connects to Todoist API, creates the label and returns the created label's details. ### Inputs - -| Input | Description | -| ----------- | ----------------------------------- | -| Credentials | Todoist API credentials | -| Name | Name of the label | -| Order | Optional label order | -| Color | Optional color of the label icon | +| Input | Description | +|-------|-------------| +| Credentials | Todoist API credentials | +| Name | Name of the label | +| Order | Optional label order | +| Color | Optional color of the label icon | | Is Favorite | Whether label is marked as favorite | ### Outputs - -| Output | Description | -| ----------- | ------------------------------- | -| ID | ID of the created label | -| Name | Name of the label | -| Color | Color of the label | -| Order | Label order | -| Is Favorite | Favorite status | -| Error | Error message if request failed | +| Output | Description | +|--------|-------------| +| ID | ID of the created label | +| Name | Name of the label | +| Color | Color of the label | +| Order | Label order | +| Is Favorite | Favorite status | +| Error | Error message if request failed | ### Possible use case - Creating new labels to organize and categorize tasks in Todoist. -*** +--- ## Todoist List Labels ### What it is - A block that retrieves all personal labels from Todoist. ### What it does - Fetches all personal labels from the user's Todoist account. ### How it works - Connects to Todoist API using provided credentials and retrieves all labels. ### Inputs - -| Input | Description | -| ----------- | ----------------------- | +| Input | Description | +|-------|-------------| | Credentials | Todoist API credentials | ### Outputs - -| Output | Description | -| ----------- | ------------------------------- | -| Labels | List of complete label data | -| Label IDs | List of label IDs | -| Label Names | List of label names | -| Error | Error message if request failed | +| Output | Description | +|--------|-------------| +| Labels | List of complete label data | +| Label IDs | List of label IDs | +| Label Names | List of label names | +| Error | Error message if request failed | ### Possible use case - Getting an overview of all labels to organize tasks or find specific labels. -*** +--- ## Todoist Get Label ### What it is - A block that retrieves a specific label by ID. ### What it does - Fetches details of a specific label using its ID. ### How it works - Uses the label ID to retrieve label details from Todoist API. ### Inputs - -| Input | Description | -| ----------- | ----------------------- | +| Input | Description | +|-------|-------------| | Credentials | Todoist API credentials | -| Label ID | ID of label to retrieve | +| Label ID | ID of label to retrieve | ### Outputs - -| Output | Description | -| ----------- | ------------------------------- | -| ID | Label ID | -| Name | Label name | -| Color | Label color | -| Order | Label order | -| Is Favorite | Favorite status | -| Error | Error message if request failed | +| Output | Description | +|--------|-------------| +| ID | Label ID | +| Name | Label name | +| Color | Label color | +| Order | Label order | +| Is Favorite | Favorite status | +| Error | Error message if request failed | ### Possible use case - Looking up details of a specific label for editing or verification. -*** +--- ## Todoist Create Task ### What it is - A block that creates a new task in Todoist. ### What it does - Creates a new task with specified content, description, project assignment and other optional parameters. ### How it works - Takes task details and creates a new task via Todoist API. ### Inputs - -| Input | Description | -| ------------- | ------------------------------- | -| Credentials | Todoist API credentials | -| Content | Task content | -| Description | Optional task description | -| Project ID | Optional project to add task to | -| Section ID | Optional section to add task to | -| Parent ID | Optional parent task ID | -| Order | Optional task order | -| Labels | Optional task labels | -| Priority | Optional priority (1-4) | -| Due Date | Optional due date | -| Deadline Date | Optional deadline date | -| Assignee ID | Optional assignee | -| Duration Unit | Optional duration unit | -| Duration | Optional duration amount | +| Input | Description | +|-------|-------------| +| Credentials | Todoist API credentials | +| Content | Task content | +| Description | Optional task description | +| Project ID | Optional project to add task to | +| Section ID | Optional section to add task to | +| Parent ID | Optional parent task ID | +| Order | Optional task order | +| Labels | Optional task labels | +| Priority | Optional priority (1-4) | +| Due Date | Optional due date | +| Deadline Date | Optional deadline date | +| Assignee ID | Optional assignee | +| Duration Unit | Optional duration unit | +| Duration | Optional duration amount | ### Outputs - -| Output | Description | -| ------------- | ------------------------------- | -| ID | Created task ID | -| URL | Task URL | -| Complete Data | Complete task data | -| Error | Error message if request failed | +| Output | Description | +|--------|-------------| +| ID | Created task ID | +| URL | Task URL | +| Complete Data | Complete task data | +| Error | Error message if request failed | ### Possible use case - Creating new tasks with full customization of parameters. -*** +--- ## Todoist Get Tasks ### What it is - A block that retrieves active tasks from Todoist. ### What it does - Fetches tasks based on optional filters like project, section, label etc. ### How it works - Queries Todoist API with provided filters to get matching tasks. ### Inputs - -| Input | Description | -| ----------- | ----------------------------- | -| Credentials | Todoist API credentials | -| Project ID | Optional filter by project | -| Section ID | Optional filter by section | -| Label | Optional filter by label | -| Filter | Optional custom filter string | -| Lang | Optional filter language | -| IDs | Optional specific task IDs | +| Input | Description | +|-------|-------------| +| Credentials | Todoist API credentials | +| Project ID | Optional filter by project | +| Section ID | Optional filter by section | +| Label | Optional filter by label | +| Filter | Optional custom filter string | +| Lang | Optional filter language | +| IDs | Optional specific task IDs | ### Outputs - -| Output | Description | -| ------------- | ------------------------------- | -| IDs | List of task IDs | -| URLs | List of task URLs | -| Complete Data | Complete task data | -| Error | Error message if request failed | +| Output | Description | +|--------|-------------| +| IDs | List of task IDs | +| URLs | List of task URLs | +| Complete Data | Complete task data | +| Error | Error message if request failed | ### Possible use case - Retrieving tasks matching specific criteria for review or processing. -*** +--- ## Todoist Update Task ### What it is - A block that updates an existing task. ### What it does - Updates specified fields of an existing task. ### How it works - Takes task ID and updated fields, applies changes via Todoist API. ### Inputs - -| Input | Description | -| ------------- | ----------------------- | -| Credentials | Todoist API credentials | -| Task ID | ID of task to update | -| Content | New task content | -| Description | New description | -| Project ID | New project ID | -| Section ID | New section ID | -| Parent ID | New parent task ID | -| Order | New order | -| Labels | New labels | -| Priority | New priority | -| Due Date | New due date | -| Deadline Date | New deadline date | -| Assignee ID | New assignee | -| Duration Unit | New duration unit | -| Duration | New duration | +| Input | Description | +|-------|-------------| +| Credentials | Todoist API credentials | +| Task ID | ID of task to update | +| Content | New task content | +| Description | New description | +| Project ID | New project ID | +| Section ID | New section ID | +| Parent ID | New parent task ID | +| Order | New order | +| Labels | New labels | +| Priority | New priority | +| Due Date | New due date | +| Deadline Date | New deadline date | +| Assignee ID | New assignee | +| Duration Unit | New duration unit | +| Duration | New duration | ### Outputs - -| Output | Description | -| ------- | ------------------------ | +| Output | Description | +|--------|-------------| | Success | Whether update succeeded | -| Error | Error message if failed | +| Error | Error message if failed | ### Possible use case - Modifying task details like due dates, priority etc. -*** +--- ## Todoist Close Task ### What it is - A block that completes/closes a task. ### What it does - Marks a task as complete in Todoist. ### How it works - Uses task ID to mark it complete via Todoist API. ### Inputs - -| Input | Description | -| ----------- | ----------------------- | +| Input | Description | +|-------|-------------| | Credentials | Todoist API credentials | -| Task ID | ID of task to close | +| Task ID | ID of task to close | ### Outputs - -| Output | Description | -| ------- | ----------------------- | +| Output | Description | +|--------|-------------| | Success | Whether task was closed | -| Error | Error message if failed | +| Error | Error message if failed | ### Possible use case - Marking tasks as done in automated workflows. -*** +--- ## Todoist Reopen Task ### What it is - A block that reopens a completed task. ### What it does - Marks a completed task as active again. ### How it works - Uses task ID to reactivate via Todoist API. ### Inputs - -| Input | Description | -| ----------- | ----------------------- | +| Input | Description | +|-------|-------------| | Credentials | Todoist API credentials | -| Task ID | ID of task to reopen | +| Task ID | ID of task to reopen | ### Outputs - -| Output | Description | -| ------- | ------------------------- | +| Output | Description | +|--------|-------------| | Success | Whether task was reopened | -| Error | Error message if failed | +| Error | Error message if failed | ### Possible use case - Reactivating tasks that were closed accidentally or need to be repeated. -*** +--- ## Todoist Delete Task ### What it is - A block that permanently deletes a task. ### What it does - Removes a task completely from Todoist. ### How it works - Uses task ID to delete via Todoist API. ### Inputs - -| Input | Description | -| ----------- | ----------------------- | +| Input | Description | +|-------|-------------| | Credentials | Todoist API credentials | -| Task ID | ID of task to delete | +| Task ID | ID of task to delete | ### Outputs - -| Output | Description | -| ------- | -------------------------- | +| Output | Description | +|--------|-------------| | Success | Whether deletion succeeded | -| Error | Error message if failed | +| Error | Error message if failed | ### Possible use case - Removing unwanted or obsolete tasks from the system. -*** +--- ## Todoist List Projects ### What it is - A block that retrieves all projects from Todoist. ### What it does - Fetches all projects and their details from a user's Todoist account. ### How it works - Connects to Todoist API using provided credentials and retrieves all projects. ### Inputs - -| Input | Description | -| ----------- | ----------------------- | +| Input | Description | +|-------|-------------| | Credentials | Todoist API credentials | ### Outputs - -| Output | Description | -| ------------- | ------------------------------- | -| Names List | List of project names | -| IDs List | List of project IDs | -| URL List | List of project URLs | -| Complete Data | Complete project data | -| Error | Error message if request failed | +| Output | Description | +|--------|-------------| +| Names List | List of project names | +| IDs List | List of project IDs | +| URL List | List of project URLs | +| Complete Data | Complete project data | +| Error | Error message if request failed | ### Possible use case - Getting an overview of all projects for organization or automation. -*** +--- ## Todoist Create Project ### What it is - A block that creates a new project in Todoist. ### What it does - Creates a new project with specified name, parent project, color and other settings. ### How it works - Takes project details and creates via Todoist API. ### Inputs - -| Input | Description | -| ----------- | ------------------------------ | -| Credentials | Todoist API credentials | -| Name | Name of the project | -| Parent ID | Optional parent project ID | -| Color | Optional color of project icon | -| Is Favorite | Whether project is favorite | -| View Style | Display style (list/board) | +| Input | Description | +|-------|-------------| +| Credentials | Todoist API credentials | +| Name | Name of the project | +| Parent ID | Optional parent project ID | +| Color | Optional color of project icon | +| Is Favorite | Whether project is favorite | +| View Style | Display style (list/board) | ### Outputs - -| Output | Description | -| ------- | -------------------------- | +| Output | Description | +|--------|-------------| | Success | Whether creation succeeded | -| Error | Error message if failed | +| Error | Error message if failed | ### Possible use case - Creating new projects programmatically for workflow automation. -*** +--- ## Todoist Get Project ### What it is - A block that retrieves details for a specific project. ### What it does - Fetches complete details of a single project by ID. ### How it works - Uses project ID to retrieve details via Todoist API. ### Inputs - -| Input | Description | -| ----------- | ----------------------- | +| Input | Description | +|-------|-------------| | Credentials | Todoist API credentials | -| Project ID | ID of project to get | +| Project ID | ID of project to get | ### Outputs - -| Output | Description | -| ------------- | ----------------------- | -| Project ID | ID of the project | -| Project Name | Name of the project | -| Project URL | URL of the project | -| Complete Data | Complete project data | -| Error | Error message if failed | +| Output | Description | +|--------|-------------| +| Project ID | ID of the project | +| Project Name | Name of the project | +| Project URL | URL of the project | +| Complete Data | Complete project data | +| Error | Error message if failed | ### Possible use case - Looking up project details for verification or editing. -*** +--- ## Todoist Update Project ### What it is - A block that updates an existing project. ### What it does - Updates specified fields of an existing project. ### How it works - Takes project ID and updated fields, applies via Todoist API. ### Inputs - -| Input | Description | -| ----------- | ----------------------- | +| Input | Description | +|-------|-------------| | Credentials | Todoist API credentials | -| Project ID | ID of project to update | -| Name | New project name | -| Color | New color for icon | -| Is Favorite | New favorite status | -| View Style | New display style | +| Project ID | ID of project to update | +| Name | New project name | +| Color | New color for icon | +| Is Favorite | New favorite status | +| View Style | New display style | ### Outputs - -| Output | Description | -| ------- | ------------------------ | +| Output | Description | +|--------|-------------| | Success | Whether update succeeded | -| Error | Error message if failed | +| Error | Error message if failed | ### Possible use case - Modifying project settings or reorganizing projects. -*** +--- ## Todoist Delete Project ### What it is - A block that deletes a project and its contents. ### What it does - Permanently removes a project including sections and tasks. ### How it works - Uses project ID to delete via Todoist API. ### Inputs - -| Input | Description | -| ----------- | ----------------------- | +| Input | Description | +|-------|-------------| | Credentials | Todoist API credentials | -| Project ID | ID of project to delete | +| Project ID | ID of project to delete | ### Outputs - -| Output | Description | -| ------- | -------------------------- | +| Output | Description | +|--------|-------------| | Success | Whether deletion succeeded | -| Error | Error message if failed | +| Error | Error message if failed | ### Possible use case - Removing completed or obsolete projects. -*** +--- ## Todoist List Collaborators ### What it is - A block that retrieves collaborators on a project. ### What it does - Fetches all collaborators and their details for a specific project. ### How it works - Uses project ID to get collaborator list via Todoist API. ### Inputs - -| Input | Description | -| ----------- | ----------------------- | +| Input | Description | +|-------|-------------| | Credentials | Todoist API credentials | -| Project ID | ID of project to check | +| Project ID | ID of project to check | ### Outputs - -| Output | Description | -| ------------------- | --------------------------- | -| Collaborator IDs | List of collaborator IDs | -| Collaborator Names | List of collaborator names | +| Output | Description | +|--------|-------------| +| Collaborator IDs | List of collaborator IDs | +| Collaborator Names | List of collaborator names | | Collaborator Emails | List of collaborator emails | -| Complete Data | Complete collaborator data | -| Error | Error message if failed | +| Complete Data | Complete collaborator data | +| Error | Error message if failed | ### Possible use case - Managing project sharing and collaboration. -*** +--- ## Todoist List Sections ### What it is - A block that retrieves sections from Todoist. ### What it does - Fetches all sections, optionally filtered by project. ### How it works - Connects to Todoist API to retrieve sections list. ### Inputs - -| Input | Description | -| ----------- | ----------------------- | +| Input | Description | +|-------|-------------| | Credentials | Todoist API credentials | -| Project ID | Optional project filter | +| Project ID | Optional project filter | ### Outputs - -| Output | Description | -| ------------- | ----------------------- | -| Names List | List of section names | -| IDs List | List of section IDs | -| Complete Data | Complete section data | -| Error | Error message if failed | +| Output | Description | +|--------|-------------| +| Names List | List of section names | +| IDs List | List of section IDs | +| Complete Data | Complete section data | +| Error | Error message if failed | ### Possible use case - Getting section information for task organization. -*** +--- ## Todoist Get Section ### What it is - A block that retrieves details for a specific section. ### What it does - Fetches complete details of a single section by ID. ### How it works - Uses section ID to retrieve details via Todoist API. ### Inputs - -| Input | Description | -| ----------- | ----------------------- | +| Input | Description | +|-------|-------------| | Credentials | Todoist API credentials | -| Section ID | ID of section to get | +| Section ID | ID of section to get | ### Outputs - -| Output | Description | -| ---------- | ----------------------- | -| ID | Section ID | -| Project ID | Parent project ID | -| Order | Section order | -| Name | Section name | -| Error | Error message if failed | +| Output | Description | +|--------|-------------| +| ID | Section ID | +| Project ID | Parent project ID | +| Order | Section order | +| Name | Section name | +| Error | Error message if failed | ### Possible use case - Looking up section details for task management. -*** +--- ## Todoist Delete Section ### What it is - A block that deletes a section and its tasks. ### What it does - Permanently removes a section including all tasks. ### How it works - Uses section ID to delete via Todoist API. ### Inputs - -| Input | Description | -| ----------- | ----------------------- | +| Input | Description | +|-------|-------------| | Credentials | Todoist API credentials | -| Section ID | ID of section to delete | +| Section ID | ID of section to delete | ### Outputs - -| Output | Description | -| ------- | -------------------------- | +| Output | Description | +|--------|-------------| | Success | Whether deletion succeeded | -| Error | Error message if failed | +| Error | Error message if failed | ### Possible use case - Removing unused sections or reorganizing projects. -*** +--- ## Todoist Create Comment ### What it is - A block that creates a new comment on a Todoist task or project. ### What it does - Creates a comment with specified content on either a task or project. ### How it works - Takes comment content and task/project ID, creates comment via Todoist API. ### Inputs - -| Input | Description | -| ----------- | ----------------------------------- | -| Credentials | Todoist API credentials | -| Content | Comment content | -| ID Type | Task ID or Project ID to comment on | -| Attachment | Optional file attachment | +| Input | Description | +|-------|-------------| +| Credentials | Todoist API credentials | +| Content | Comment content | +| ID Type | Task ID or Project ID to comment on | +| Attachment | Optional file attachment | ### Outputs - -| Output | Description | -| ---------- | ------------------------------- | -| ID | ID of created comment | -| Content | Comment content | -| Posted At | Comment timestamp | -| Task ID | Associated task ID | -| Project ID | Associated project ID | -| Error | Error message if request failed | +| Output | Description | +|--------|-------------| +| ID | ID of created comment | +| Content | Comment content | +| Posted At | Comment timestamp | +| Task ID | Associated task ID | +| Project ID | Associated project ID | +| Error | Error message if request failed | ### Possible use case - Adding notes and comments to tasks or projects automatically. -*** +--- ## Todoist Get Comments ### What it is - A block that retrieves all comments for a task or project. ### What it does - Fetches all comments associated with a specific task or project. ### How it works - Uses task/project ID to get comments list via Todoist API. ### Inputs - -| Input | Description | -| ----------- | ----------------------------------------- | -| Credentials | Todoist API credentials | -| ID Type | Task ID or Project ID to get comments for | +| Input | Description | +|-------|-------------| +| Credentials | Todoist API credentials | +| ID Type | Task ID or Project ID to get comments for | ### Outputs - -| Output | Description | -| -------- | ------------------------------- | -| Comments | List of comments | -| Error | Error message if request failed | +| Output | Description | +|--------|-------------| +| Comments | List of comments | +| Error | Error message if request failed | ### Possible use case - Reviewing comment history on tasks or projects. -*** +--- ## Todoist Get Comment ### What it is - A block that retrieves a specific comment by ID. ### What it does - Fetches details of a single comment using its ID. ### How it works - Uses comment ID to retrieve details via Todoist API. ### Inputs - -| Input | Description | -| ----------- | ------------------------- | -| Credentials | Todoist API credentials | -| Comment ID | ID of comment to retrieve | +| Input | Description | +|-------|-------------| +| Credentials | Todoist API credentials | +| Comment ID | ID of comment to retrieve | ### Outputs - -| Output | Description | -| ---------- | ------------------------------- | -| Content | Comment content | -| ID | Comment ID | -| Posted At | Comment timestamp | -| Project ID | Associated project ID | -| Task ID | Associated task ID | -| Attachment | Optional file attachment | -| Error | Error message if request failed | +| Output | Description | +|--------|-------------| +| Content | Comment content | +| ID | Comment ID | +| Posted At | Comment timestamp | +| Project ID | Associated project ID | +| Task ID | Associated task ID | +| Attachment | Optional file attachment | +| Error | Error message if request failed | ### Possible use case - Looking up specific comment details for reference. -*** +--- ## Todoist Update Comment ### What it is - A block that updates an existing comment. ### What it does - Updates the content of a specific comment. ### How it works - Takes comment ID and new content, updates via Todoist API. ### Inputs - -| Input | Description | -| ----------- | --------------------------- | -| Credentials | Todoist API credentials | -| Comment ID | ID of comment to update | -| Content | New content for the comment | +| Input | Description | +|-------|-------------| +| Credentials | Todoist API credentials | +| Comment ID | ID of comment to update | +| Content | New content for the comment | ### Outputs - -| Output | Description | -| ------- | ------------------------------- | -| Success | Whether update succeeded | -| Error | Error message if request failed | +| Output | Description | +|--------|-------------| +| Success | Whether update succeeded | +| Error | Error message if request failed | ### Possible use case - Modifying existing comments to fix errors or update information. -*** +--- ## Todoist Delete Comment ### What it is - A block that deletes a comment. ### What it does - Permanently removes a comment from a task or project. ### How it works - Uses comment ID to delete via Todoist API. ### Inputs - -| Input | Description | -| ----------- | ----------------------- | +| Input | Description | +|-------|-------------| | Credentials | Todoist API credentials | -| Comment ID | ID of comment to delete | +| Comment ID | ID of comment to delete | ### Outputs - -| Output | Description | -| ------- | ------------------------------- | -| Success | Whether deletion succeeded | -| Error | Error message if request failed | +| Output | Description | +|--------|-------------| +| Success | Whether deletion succeeded | +| Error | Error message if request failed | ### Possible use case - Removing outdated or incorrect comments from tasks/projects. diff --git a/docs/integrations/todoist/comments.md b/docs/integrations/block-integrations/todoist/comments.md similarity index 100% rename from docs/integrations/todoist/comments.md rename to docs/integrations/block-integrations/todoist/comments.md diff --git a/docs/integrations/todoist/labels.md b/docs/integrations/block-integrations/todoist/labels.md similarity index 100% rename from docs/integrations/todoist/labels.md rename to docs/integrations/block-integrations/todoist/labels.md diff --git a/docs/integrations/todoist/projects.md b/docs/integrations/block-integrations/todoist/projects.md similarity index 100% rename from docs/integrations/todoist/projects.md rename to docs/integrations/block-integrations/todoist/projects.md diff --git a/docs/integrations/todoist/sections.md b/docs/integrations/block-integrations/todoist/sections.md similarity index 100% rename from docs/integrations/todoist/sections.md rename to docs/integrations/block-integrations/todoist/sections.md diff --git a/docs/integrations/todoist/tasks.md b/docs/integrations/block-integrations/todoist/tasks.md similarity index 100% rename from docs/integrations/todoist/tasks.md rename to docs/integrations/block-integrations/todoist/tasks.md diff --git a/docs/integrations/block-integrations/twitter.md b/docs/integrations/block-integrations/twitter.md deleted file mode 100644 index ed9ca4ef96..0000000000 --- a/docs/integrations/block-integrations/twitter.md +++ /dev/null @@ -1,2298 +0,0 @@ -# Twitter - -## Twitter Post Tweet Block - -### What it is - -A block that creates tweets on Twitter with various optional attachments and settings. - -### What it does - -This block allows posting tweets with text content and optional attachments like media, polls, quotes, or deep links. - -### How it works - -It uses the Twitter API (Tweepy) to create a tweet with the specified content and settings, handling authentication and error cases. - -### Inputs - -| Input | Description | -| --------------------------- | ---------------------------------------------------------- | -| credentials | Twitter API credentials with required scopes | -| tweet\_text | Main text content of the tweet | -| attachment | Optional media, deep link, poll, place or quote attachment | -| for\_super\_followers\_only | Whether the tweet is exclusively for super followers | -| exclude\_reply\_user\_ids | User IDs to exclude from reply thread | -| in\_reply\_to\_tweet\_id | ID of tweet being replied to | -| reply\_settings | Who can reply to the tweet | - -### Outputs - -| Output | Description | -| ---------- | ------------------------------- | -| tweet\_id | ID of the created tweet | -| tweet\_url | URL to view the tweet | -| error | Error message if posting failed | - -### Possible use case - -Automating tweet publishing with rich content like polls, media or quotes. - -*** - -## Twitter Delete Tweet Block - -### What it is - -A block that deletes a specified tweet on Twitter. - -### What it does - -This block removes an existing tweet using its tweet ID. - -### How it works - -It uses the Twitter API (Tweepy) to delete the tweet with the given ID, handling authentication and error cases. - -### Inputs - -| Input | Description | -| ----------- | -------------------------------------------- | -| credentials | Twitter API credentials with required scopes | -| tweet\_id | ID of the tweet to delete | - -### Outputs - -| Output | Description | -| ------- | -------------------------------- | -| success | Whether deletion was successful | -| error | Error message if deletion failed | - -### Possible use case - -Automated cleanup of old or irrelevant tweets. - -*** - -## Twitter Search Recent Tweets Block - -### What it is - -A block that searches recent public tweets on Twitter. - -### What it does - -This block searches for tweets matching specified criteria with options for filtering and pagination. - -### How it works - -It queries the Twitter API (Tweepy) search endpoint with the provided parameters and returns matching tweets and metadata. - -### Inputs - -| Input | Description | -| ------------ | -------------------------------------------- | -| credentials | Twitter API credentials with required scopes | -| query | Search query string | -| max\_results | Maximum number of results per page | -| pagination | Token for getting next page of results | -| expansions | Additional data fields to include | -| start\_time | Start of search time window | -| end\_time | End of search time window | -| since\_id | Return results after this tweet ID | -| until\_id | Return results before this tweet ID | -| sort\_order | Order of returned results | - -### Outputs - -| Output | Description | -| ------------ | ------------------------------ | -| tweet\_ids | List of matching tweet IDs | -| tweet\_texts | List of tweet text contents | -| next\_token | Token for retrieving next page | -| data | Complete tweet data | -| included | Additional requested data | -| meta | Pagination and result metadata | -| error | Error message if search failed | - -### Possible use case - -Monitoring Twitter for mentions of specific topics or hashtags. - -*** - -## Twitter Get Quote Tweets Block - -### What it is - -A block that retrieves quote tweets (tweets that quote a specific tweet) from Twitter. - -### What it does - -This block gets a list of tweets that quote the specified tweet ID, with options for pagination and filtering. - -### How it works - -It uses the Twitter API (Tweepy) to fetch quote tweets for a given tweet ID, handling authentication and returning tweet data with optional expansions. - -### Inputs - -| Input | Description | -| ----------------- | ------------------------------------------------------------------------ | -| credentials | Twitter API credentials with required scopes | -| tweet\_id | ID of the tweet to get quotes for | -| max\_results | Maximum number of results to return (max 100) | -| exclude | Types of tweets to exclude | -| pagination\_token | Token for getting next page of results | -| expansions | Additional data fields to include [more info](twitter.md#common-input). | -| media\_fields | Media-related fields to include [more info](twitter.md#common-input). | -| place\_fields | Location-related fields to include [more info](twitter.md#common-input). | -| poll\_fields | Poll-related fields to include [more info](twitter.md#common-input). | -| tweet\_fields | Tweet-specific fields to include [more info](twitter.md#common-input). | -| user\_fields | User-related fields to include [more info](twitter.md#common-input). | - -### Outputs - -| Output | Description | -| ----------- | --------------------------------------------------------------------- | -| ids | List of quote tweet IDs | -| texts | List of quote tweet text contents | -| next\_token | Token for retrieving next page [more info](twitter.md#common-output). | -| data | Complete tweet data | -| included | Additional requested data [more info](twitter.md#common-output). | -| meta | Pagination and result metadata [more info](twitter.md#common-output). | -| error | Error message if request failed | - -### Possible use case - -Monitoring engagement and responses to specific tweets through quote tweets. - -*** - -## Twitter Retweet Block - -### What it is - -A block that retweets an existing tweet on Twitter. - -### What it does - -This block creates a retweet of the specified tweet using its tweet ID. - -### How it works - -It uses the Twitter API (Tweepy) to retweet the tweet with the given ID, handling authentication and error cases. - -### Inputs - -| Input | Description | -| ----------- | -------------------------------------------- | -| credentials | Twitter API credentials with required scopes | -| tweet\_id | ID of the tweet to retweet | - -### Outputs - -| Output | Description | -| ------- | ------------------------------- | -| success | Whether retweet was successful | -| error | Error message if retweet failed | - -### Possible use case - -Automated retweeting of content matching specific criteria. - -*** - -## Twitter Remove Retweet Block - -### What it is - -A block that removes a retweet on Twitter. - -### What it does - -This block removes an existing retweet of the specified tweet. - -### How it works - -It uses the Twitter API (Tweepy) to remove the retweet with the given tweet ID, handling authentication and error cases. - -### Inputs - -| Input | Description | -| ----------- | -------------------------------------------- | -| credentials | Twitter API credentials with required scopes | -| tweet\_id | ID of the tweet to remove retweet from | - -### Outputs - -| Output | Description | -| ------- | -------------------------------------- | -| success | Whether retweet removal was successful | -| error | Error message if removal failed | - -### Possible use case - -Automated cleanup of retweets based on certain conditions. - -*** - -## Twitter Get Retweeters Block - -### What it is - -A block that retrieves information about users who have retweeted a specific tweet. - -### What it does - -This block gets a list of users who have retweeted the specified tweet ID, with options for pagination and filtering. - -### How it works - -It uses the Twitter API (Tweepy) to fetch retweeter information for a given tweet ID, handling authentication and returning user data with optional expansions. - -### Inputs - -| Input | Description | -| ----------------- | ------------------------------------------------------------------------ | -| credentials | Twitter API credentials with required scopes | -| tweet\_id | ID of the tweet to get retweeters for | -| max\_results | Maximum number of results per page (1-100) | -| pagination\_token | Token for getting next page of results | -| expansions | Additional data fields to include [more info](twitter.md#common-input). | -| media\_fields | Media-related fields to include [more info](twitter.md#common-input). | -| place\_fields | Location-related fields to include [more info](twitter.md#common-input). | -| poll\_fields | Poll-related fields to include [more info](twitter.md#common-input). | -| tweet\_fields | Tweet-specific fields to include [more info](twitter.md#common-input). | -| user\_fields | User-related fields to include [more info](twitter.md#common-input). | - -### Outputs - -| Output | Description | -| ----------- | --------------------------------------------------------------------- | -| ids | List of user IDs who retweeted | -| names | List of user names who retweeted | -| usernames | List of usernames who retweeted | -| next\_token | Token for retrieving next page | -| data | Complete user data | -| included | Additional requested data [more info](twitter.md#common-output). | -| meta | Pagination and result metadata [more info](twitter.md#common-output). | -| error | Error message if request failed | - -### Possible use case - -Monitoring engagement and analyzing user behavior through retweet patterns. - -*** - -## Twitter Get User Mentions Block - -### What it is - -A block that retrieves tweets mentioning a specific Twitter user. - -### What it does - -This block gets tweets where a user is mentioned, using their user ID. - -### How it works - -It queries the Twitter API (Tweepy) with the provided user ID to fetch tweets mentioning that user, handling pagination and filters. - -### Inputs - -| Input | Description | -| ----------------- | ------------------------------------------------------------------------ | -| credentials | Twitter API credentials with required scopes | -| user\_id | ID of user to get mentions for | -| max\_results | Number of results per page (5-100) | -| pagination\_token | Token for getting next page of results | -| expansions | Additional data fields to include [more info](twitter.md#common-input). | -| media\_fields | Media-related fields to include [more info](twitter.md#common-input). | -| place\_fields | Location-related fields to include [more info](twitter.md#common-input). | -| poll\_fields | Poll-related fields to include [more info](twitter.md#common-input). | -| tweet\_fields | Tweet-specific fields to include [more info](twitter.md#common-input). | -| user\_fields | User-related fields to include [more info](twitter.md#common-input). | - -### Outputs - -| Output | Description | -| ----------- | --------------------------------------------------------------------- | -| ids | List of Tweet IDs | -| texts | List of tweet text contents | -| userIds | List of user IDs who mentioned target user | -| userNames | List of usernames who mentioned target user | -| next\_token | Token for retrieving next page | -| data | Complete tweet data | -| included | Additional requested data [more info](twitter.md#common-output). | -| meta | Pagination and result metadata [more info](twitter.md#common-output). | -| error | Error message if request failed | - -### Possible use case - -Monitoring mentions of specific accounts for community management. - -*** - -## Twitter Get Home Timeline Block - -### What it is - -A block that retrieves tweets from a user's home timeline. - -### What it does - -This block returns a collection of recent tweets and retweets posted by the authenticated user and accounts they follow. - -### How it works - -It uses the Twitter API (Tweepy) to fetch tweets from the home timeline, handling pagination and applying filters. - -### Inputs - -| Input | Description | -| ----------------- | ------------------------------------------------------------------------ | -| credentials | Twitter API credentials with required scopes | -| max\_results | Number of results per page (5-100) | -| pagination\_token | Token for getting next page of results | -| expansions | Additional data fields to include [more info](twitter.md#common-input). | -| media\_fields | Media-related fields to include [more info](twitter.md#common-input). | -| place\_fields | Location-related fields to include [more info](twitter.md#common-input). | -| poll\_fields | Poll-related fields to include [more info](twitter.md#common-input). | -| tweet\_fields | Tweet-specific fields to include [more info](twitter.md#common-input). | -| user\_fields | User-related fields to include [more info](twitter.md#common-input). | - -### Outputs - -| Output | Description | -| ----------- | --------------------------------------------------------------------- | -| ids | List of Tweet IDs | -| texts | List of tweet text contents | -| userIds | List of user IDs who authored tweets | -| userNames | List of usernames who authored tweets | -| next\_token | Token for retrieving next page | -| data | Complete tweet data | -| included | Additional requested data [more info](twitter.md#common-output). | -| meta | Pagination and result metadata [more info](twitter.md#common-output). | -| error | Error message if request failed | - -### Possible use case - -Monitoring and analyzing content from followed accounts. - -*** - -## Twitter Get User Tweets Block - -### What it is - -A block that retrieves tweets posted by a specific Twitter user. - -### What it does - -This block returns tweets authored by a single user, identified by their user ID. - -### How it works - -It uses the Twitter API (Tweepy) to fetch tweets from a specified user's timeline, handling pagination and filters. - -### Inputs - -| Input | Description | -| ----------------- | ------------------------------------------------------------------------ | -| credentials | Twitter API credentials with required scopes | -| user\_id | ID of user to get tweets from | -| max\_results | Number of results per page (5-100) | -| pagination\_token | Token for getting next page of results | -| expansions | Additional data fields to include [more info](twitter.md#common-input). | -| media\_fields | Media-related fields to include [more info](twitter.md#common-input). | -| place\_fields | Location-related fields to include [more info](twitter.md#common-input). | -| poll\_fields | Poll-related fields to include [more info](twitter.md#common-input). | -| tweet\_fields | Tweet-specific fields to include [more info](twitter.md#common-input). | -| user\_fields | User-related fields to include [more info](twitter.md#common-input). | - -### Outputs - -| Output | Description | -| ----------- | --------------------------------------------------------------------- | -| ids | List of Tweet IDs | -| texts | List of tweet text contents | -| userIds | List of user IDs who authored tweets | -| userNames | List of usernames who authored tweets | -| next\_token | Token for retrieving next page | -| data | Complete tweet data | -| included | Additional requested data [more info](twitter.md#common-output). | -| meta | Pagination and result metadata [more info](twitter.md#common-output). | -| error | Error message if request failed | - -### Possible use case - -Analyzing content and activity patterns of specific Twitter accounts. - -*** - -## Twitter Get Tweet Block - -### What it is - -A block that retrieves detailed information about a specific tweet by its ID. - -### What it does - -This block fetches information about a single tweet specified by the tweet ID, including tweet content, author details, and optional expanded data. - -### How it works - -It uses the Twitter API (Tweepy) to fetch a single tweet by its ID, handling authentication and returning tweet data with optional expansions. - -### Inputs - -| Input | Description | -| ------------- | ------------------------------------------------------------------------ | -| credentials | Twitter API credentials with required scopes | -| tweet\_id | ID of the tweet to fetch | -| expansions | Additional data fields to include [more info](twitter.md#common-input). | -| media\_fields | Media-related fields to include [more info](twitter.md#common-input). | -| place\_fields | Location-related fields to include [more info](twitter.md#common-input). | -| poll\_fields | Poll-related fields to include [more info](twitter.md#common-input). | -| tweet\_fields | Tweet-specific fields to include [more info](twitter.md#common-input). | -| user\_fields | User-related fields to include [more info](twitter.md#common-input). | - -### Outputs - -| Output | Description | -| -------- | ---------------------------------------------------------------- | -| id | Tweet ID | -| text | Tweet text content | -| userId | ID of tweet author | -| userName | Username of tweet author | -| data | Complete tweet data | -| included | Additional requested data [more info](twitter.md#common-output). | -| meta | Tweet metadata [more info](twitter.md#common-output). | -| error | Error message if request failed | - -### Possible use case - -Retrieving detailed information about specific tweets for analysis or monitoring. - -*** - -## Twitter Get Tweets Block - -### What it is - -A block that retrieves information about multiple tweets by their IDs. - -### What it does - -This block fetches information about multiple tweets (up to 100) specified by their tweet IDs. - -### How it works - -It uses the Twitter API (Tweepy) to batch fetch tweets by their IDs, handling authentication and returning tweet data with optional expansions. - -### Inputs - -| Input | Description | -| ------------- | ------------------------------------------------------------------------ | -| credentials | Twitter API credentials with required scopes | -| tweet\_ids | List of tweet IDs to fetch (max 100) | -| expansions | Additional data fields to include [more info](twitter.md#common-input). | -| media\_fields | Media-related fields to include [more info](twitter.md#common-input). | -| place\_fields | Location-related fields to include [more info](twitter.md#common-input). | -| poll\_fields | Poll-related fields to include [more info](twitter.md#common-input). | -| tweet\_fields | Tweet-specific fields to include [more info](twitter.md#common-input). | -| user\_fields | User-related fields to include [more info](twitter.md#common-input). | - -### Outputs - -| Output | Description | -| --------- | ---------------------------------------------------------------- | -| ids | List of tweet IDs | -| texts | List of tweet text contents | -| userIds | List of tweet author IDs | -| userNames | List of tweet author usernames | -| data | Complete tweet data array | -| included | Additional requested data [more info](twitter.md#common-output). | -| meta | Tweet metadata [more info](twitter.md#common-output). | -| error | Error message if request failed | - -### Possible use case - -Batch retrieval of tweet information for analysis or archival purposes. - -*** - -## Twitter Like Tweet Block - -### What it is - -A block that likes a tweet on Twitter. - -### What it does - -This block creates a like on a specified tweet using its tweet ID. - -### How it works - -It uses the Twitter API (Tweepy) to like the tweet with the given ID, handling authentication and error cases. - -### Inputs - -| Input | Description | -| ----------- | -------------------------------------------- | -| credentials | Twitter API credentials with required scopes | -| tweet\_id | ID of the tweet to like | - -### Outputs - -| Output | Description | -| ------- | ---------------------------- | -| success | Whether like was successful | -| error | Error message if like failed | - -### Possible use case - -Automated liking of tweets matching specific criteria. - -*** - -## Twitter Get Liking Users Block - -### What it is - -A block that retrieves information about users who liked a specific tweet. - -### What it does - -This block gets a list of users who have liked the specified tweet ID, with options for pagination and filtering. - -### How it works - -It uses the Twitter API (Tweepy) to fetch information about users who liked a given tweet ID, handling authentication and returning user data with optional expansions. - -### Inputs - -| Input | Description | -| ----------------- | ----------------------------------------------------------------------- | -| credentials | Twitter API credentials with required scopes | -| tweet\_id | ID of tweet to get liking users for | -| max\_results | Maximum number of results to return (1-100) | -| pagination\_token | Token for getting next page of results | -| expansions | Additional data fields to include [more info](twitter.md#common-input). | -| tweet\_fields | Tweet-specific fields to include [more info](twitter.md#common-input). | -| user\_fields | User-related fields to include [more info](twitter.md#common-input). | - -### Outputs - -| Output | Description | -| ----------- | --------------------------------------------------------------------- | -| id | List of user IDs who liked | -| username | List of usernames who liked | -| next\_token | Token for retrieving next page | -| data | Complete user data | -| included | Additional requested data [more info](twitter.md#common-output). | -| meta | Pagination and result metadata [more info](twitter.md#common-output). | -| error | Error message if request failed | - -### Possible use case - -Analyzing engagement patterns through tracking tweet likes. - -*** - -## Twitter Get Liked Tweets Block - -### What it is - -A block that retrieves tweets liked by a specific Twitter user. - -### What it does - -This block gets a list of tweets that have been liked by the specified user ID. - -### How it works - -It uses the Twitter API (Tweepy) to fetch tweets liked by a given user ID, handling pagination and filters. - -### Inputs - -| Input | Description | -| ----------------- | ------------------------------------------------------------------------ | -| credentials | Twitter API credentials with required scopes | -| user\_id | ID of user to get liked tweets for | -| max\_results | Maximum number of results per page (5-100) | -| pagination\_token | Token for getting next page of results | -| expansions | Additional data fields to include [more info](twitter.md#common-input). | -| media\_fields | Media-related fields to include [more info](twitter.md#common-input). | -| place\_fields | Location-related fields to include [more info](twitter.md#common-input). | -| poll\_fields | Poll-related fields to include [more info](twitter.md#common-input). | -| tweet\_fields | Tweet-specific fields to include [more info](twitter.md#common-input). | -| user\_fields | User-related fields to include [more info](twitter.md#common-input). | - -### Outputs - -| Output | Description | -| ----------- | --------------------------------------------------------------------- | -| ids | List of liked tweet IDs | -| texts | List of liked tweet text contents | -| userIds | List of tweet author IDs | -| userNames | List of tweet author usernames | -| next\_token | Token for retrieving next page | -| data | Complete tweet data | -| included | Additional requested data [more info](twitter.md#common-output). | -| meta | Pagination and result metadata [more info](twitter.md#common-output). | -| error | Error message if request failed | - -### Possible use case - -Analyzing user interests and preferences through liked tweet patterns. - -*** - -## Twitter Unlike Tweet Block - -### What it is - -A block that unlikes a previously liked tweet on Twitter. - -### What it does - -This block removes a like from the specified tweet using its tweet ID. - -### How it works - -It uses the Twitter API (Tweepy) to unlike the tweet with the given ID, handling authentication and error cases. - -### Inputs - -| Input | Description | -| ----------- | -------------------------------------------- | -| credentials | Twitter API credentials with required scopes | -| tweet\_id | ID of the tweet to unlike | - -### Outputs - -| Output | Description | -| ------- | ------------------------------ | -| success | Whether unlike was successful | -| error | Error message if unlike failed | - -### Possible use case - -Automated cleanup of likes based on certain conditions. - -*** - -## Twitter Hide Reply Block - -### What it is - -A block that hides a reply to one of your tweets. - -### What it does - -This block hides a specified reply tweet from being visible in the main conversation thread. - -### How it works - -It uses the Twitter API (Tweepy) to hide a reply tweet with the given tweet ID, handling authentication and error cases. - -### Inputs - -| Input | Description | -| ----------- | -------------------------------------------- | -| credentials | Twitter API credentials with required scopes | -| tweet\_id | ID of the tweet reply to hide | - -### Outputs - -| Output | Description | -| ------- | ------------------------------ | -| success | Whether hiding was successful | -| error | Error message if hiding failed | - -### Possible use case - -Moderating conversations by hiding inappropriate or unwanted replies. - -*** - -## Twitter Unhide Reply Block - -### What it is - -A block that unhides a previously hidden reply to a tweet. - -### What it does - -This block makes a hidden reply tweet visible again in the conversation thread. - -### How it works - -It uses the Twitter API (Tweepy) to unhide a reply tweet with the given tweet ID, handling authentication and error cases. - -### Inputs - -| Input | Description | -| ----------- | -------------------------------------------- | -| credentials | Twitter API credentials with required scopes | -| tweet\_id | ID of the tweet reply to unhide | - -### Outputs - -| Output | Description | -| ------- | -------------------------------- | -| success | Whether unhiding was successful | -| error | Error message if unhiding failed | - -### Possible use case - -Restoring previously hidden replies when moderation is no longer needed. - -*** - -## Twitter Bookmark Tweet Block - -### What it is - -A block that bookmarks a specified tweet on Twitter. - -### What it does - -This block creates a bookmark for a tweet using its tweet ID. - -### How it works - -It uses the Twitter API (Tweepy) to bookmark the tweet with the given ID, handling authentication and error cases. - -### Inputs - -| Input | Description | -| ----------- | -------------------------------------------- | -| credentials | Twitter API credentials with required scopes | -| tweet\_id | ID of the tweet to bookmark | - -### Outputs - -| Output | Description | -| ------- | -------------------------------- | -| success | Whether bookmark was successful | -| error | Error message if bookmark failed | - -### Possible use case - -Saving tweets for later reference and organization. - -*** - -## Twitter Get Bookmarked Tweets Block - -### What it is - -A block that retrieves a user's bookmarked tweets from Twitter. - -### What it does - -This block gets a list of tweets that have been bookmarked by the authenticated user. - -### How it works - -It uses the Twitter API (Tweepy) to fetch bookmarked tweets, handling pagination and optional data expansions. - -### Inputs - -| Input | Description | -| ----------------- | ------------------------------------------------------------------------ | -| credentials | Twitter API credentials with required scopes | -| max\_results | Maximum number of results per page (1-100) | -| pagination\_token | Token for getting next page of results | -| expansions | Additional data fields to include [more info](twitter.md#common-input). | -| media\_fields | Media-related fields to include [more info](twitter.md#common-input). | -| place\_fields | Location-related fields to include [more info](twitter.md#common-input). | -| poll\_fields | Poll-related fields to include [more info](twitter.md#common-input). | -| tweet\_fields | Tweet-specific fields to include [more info](twitter.md#common-input). | -| user\_fields | User-related fields to include [more info](twitter.md#common-input). | - -### Outputs - -| Output | Description | -| ----------- | --------------------------------------------------------------------- | -| id | List of bookmarked tweet IDs | -| text | List of bookmarked tweet text contents | -| userId | List of tweet author IDs | -| userName | List of tweet author usernames | -| next\_token | Token for retrieving next page | -| data | Complete tweet data | -| included | Additional requested data [more info](twitter.md#common-output). | -| meta | Pagination and result metadata [more info](twitter.md#common-output). | -| error | Error message if request failed | - -### Possible use case - -Retrieving and analyzing saved tweets for content curation or research. - -*** - -## Twitter Remove Bookmark Tweet Block - -### What it is - -A block that removes a bookmark from a tweet on Twitter. - -### What it does - -This block removes an existing bookmark from a specified tweet using its tweet ID. - -### How it works - -It uses the Twitter API (Tweepy) to remove the bookmark with the given tweet ID, handling authentication and error cases. - -### Inputs - -| Input | Description | -| ----------- | -------------------------------------------- | -| credentials | Twitter API credentials with required scopes | -| tweet\_id | ID of the tweet to remove bookmark from | - -### Outputs - -| Output | Description | -| ------- | --------------------------------------- | -| success | Whether bookmark removal was successful | -| error | Error message if removal failed | - -### Possible use case - -Managing bookmarks by removing outdated or no longer relevant saved tweets. - -*** - -## Twitter Unblock User Block - -### What it is - -A block that unblocks a user that has been previously blocked on Twitter. - -### What it does - -This block removes a block from a specified user using their user ID. - -### How it works - -It uses the Twitter API (Tweepy) to unblock a user with the given user ID, handling authentication and error cases. - -### Inputs - -| Input | Description | -| ---------------- | -------------------------------------------- | -| credentials | Twitter API credentials with required scopes | -| target\_user\_id | ID of the user to unblock | - -### Outputs - -| Output | Description | -| ------- | ------------------------------- | -| success | Whether unblock was successful | -| error | Error message if unblock failed | - -### Possible use case - -Reverting previously blocked users when access should be restored. - -*** - -## Twitter Get Blocked Users Block - -### What it is - -A block that retrieves a list of users that have been blocked by the authenticated user. - -### What it does - -This block gets information about users who have been blocked, with options for pagination and filtering. - -### How it works - -It uses the Twitter API (Tweepy) to fetch a list of blocked users, handling authentication and returning user data with optional expansions. - -### Inputs - -| Input | Description | -| ----------------- | -------------------------------------------- | -| credentials | Twitter API credentials with required scopes | -| max\_results | Maximum number of results to return (1-1000) | -| pagination\_token | Token for getting next page of results | -| expansions | Additional data fields to include | -| tweet\_fields | Tweet-specific fields to include | -| user\_fields | User-related fields to include | - -### Outputs - -| Output | Description | -| ----------- | ------------------------------- | -| user\_ids | List of blocked user IDs | -| usernames\_ | List of blocked usernames | -| included | Additional requested data | -| meta | Pagination and result metadata | -| next\_token | Token for retrieving next page | -| error | Error message if request failed | - -### Possible use case - -Monitoring and managing blocked users for account safety and moderation. - -*** - -## Twitter Block User Block - -### What it is - -A block that blocks a user on Twitter. - -### What it does - -This block blocks a specified user using their user ID. - -### How it works - -It uses the Twitter API (Tweepy) to block a user with the given user ID, handling authentication and error cases. - -### Inputs - -| Input | Description | -| ---------------- | -------------------------------------------- | -| credentials | Twitter API credentials with required scopes | -| target\_user\_id | ID of the user to block | - -### Outputs - -| Output | Description | -| ------- | ----------------------------- | -| success | Whether block was successful | -| error | Error message if block failed | - -### Possible use case - -Automating user blocking based on specific criteria or behaviors. - -## Twitter Unfollow User Block - -### What it is - -A block that unfollows a Twitter user. - -### What it does - -This block unfollows a specified user using their user ID. - -### How it works - -It uses the Twitter API (Tweepy) to unfollow a user with the given user ID, handling authentication and error cases. - -### Inputs - -| Input | Description | -| ---------------- | -------------------------------------------- | -| credentials | Twitter API credentials with required scopes | -| target\_user\_id | ID of the user to unfollow | - -### Outputs - -| Output | Description | -| ------- | -------------------------------- | -| success | Whether unfollow was successful | -| error | Error message if unfollow failed | - -### Possible use case - -Automating unfollowing users based on specific criteria. - -*** - -## Twitter Follow User Block - -### What it is - -A block that follows a Twitter user. - -### What it does - -This block follows a specified user using their user ID. - -### How it works - -It uses the Twitter API (Tweepy) to follow a user with the given user ID, handling authentication and error cases. If the target user has protected tweets, this will send a follow request. - -### Inputs - -| Input | Description | -| ---------------- | -------------------------------------------- | -| credentials | Twitter API credentials with required scopes | -| target\_user\_id | ID of the user to follow | - -### Outputs - -| Output | Description | -| ------- | ------------------------------ | -| success | Whether follow was successful | -| error | Error message if follow failed | - -### Possible use case - -Automating following of users matching specific criteria. - -*** - -## Twitter Get Followers Block - -### What it is - -A block that retrieves a list of followers for a specified Twitter user. - -### What it does - -This block gets a list of users who follow the specified user ID, with options for pagination and filtering. - -### How it works - -It uses the Twitter API (Tweepy) to fetch followers for a given user ID, handling authentication and returning user data with optional expansions. - -### Inputs - -| Input | Description | -| ----------------- | ----------------------------------------------------------------------- | -| credentials | Twitter API credentials with required scopes | -| target\_user\_id | ID of user to get followers for | -| max\_results | Maximum number of results per page (1-1000) | -| pagination\_token | Token for getting next page of results | -| expansions | Additional data fields to include [more info](twitter.md#common-input). | -| tweet\_fields | Tweet-specific fields to include [more info](twitter.md#common-input). | -| user\_fields | User-related fields to include [more info](twitter.md#common-input). | - -### Outputs - -| Output | Description | -| ----------- | --------------------------------------------------------------------- | -| ids | List of follower user IDs | -| usernames | List of follower usernames | -| next\_token | Token for retrieving next page | -| data | Complete user data | -| includes | Additional requested data [more info](twitter.md#common-output). | -| meta | Pagination and result metadata [more info](twitter.md#common-output). | -| error | Error message if request failed | - -### Possible use case - -Analyzing follower patterns and demographics. - -*** - -## Twitter Get Following Block - -### What it is - -A block that retrieves a list of users that a specified Twitter user follows. - -### What it does - -This block gets a list of users being followed by the specified user ID, with options for pagination and filtering. - -### How it works - -It uses the Twitter API (Tweepy) to fetch following list for a given user ID, handling authentication and returning user data with optional expansions. - -### Inputs - -| Input | Description | -| ----------------- | ----------------------------------------------------------------------- | -| credentials | Twitter API credentials with required scopes | -| target\_user\_id | ID of user to get following list for | -| max\_results | Maximum number of results per page (1-1000) | -| pagination\_token | Token for getting next page of results | -| expansions | Additional data fields to include [more info](twitter.md#common-input). | -| tweet\_fields | Tweet-specific fields to include [more info](twitter.md#common-input). | -| user\_fields | User-related fields to include [more info](twitter.md#common-input). | - -### Outputs - -| Output | Description | -| ----------- | --------------------------------------------------------------------- | -| ids | List of following user IDs | -| usernames | List of following usernames | -| next\_token | Token for retrieving next page | -| data | Complete user data | -| includes | Additional requested data [more info](twitter.md#common-output). | -| meta | Pagination and result metadata [more info](twitter.md#common-output). | -| error | Error message if request failed | - -### Possible use case - -Analyzing following patterns and network connections. - -*** - -## Twitter Unmute User Block - -### What it is - -A block that unmutes a previously muted user on Twitter. - -### What it does - -This block unmutes a specified user using their user ID. The request succeeds with no action if the target user is not currently muted. - -### How it works - -It uses the Twitter API (Tweepy) to unmute a user with the given user ID, handling authentication and error cases. - -### Inputs - -| Input | Description | -| ---------------- | -------------------------------------------- | -| credentials | Twitter API credentials with required scopes | -| target\_user\_id | ID of the user to unmute | - -### Outputs - -| Output | Description | -| ------- | ------------------------------ | -| success | Whether unmute was successful | -| error | Error message if unmute failed | - -### Possible use case - -Reverting muted users when communication should be restored. - -*** - -## Twitter Get Muted Users Block - -### What it is - -A block that retrieves a list of users muted by the authenticated user. - -### What it does - -This block gets a list of muted users with options for pagination and filtering. - -### How it works - -It uses the Twitter API (Tweepy) to fetch muted users, handling authentication and returning user data with optional expansions. - -### Inputs - -| Input | Description | -| ----------------- | ----------------------------------------------------------------------- | -| credentials | Twitter API credentials with required scopes | -| max\_results | Maximum results per page (1-1000, default 10) | -| pagination\_token | Token for getting next/previous page | -| expansions | Additional data fields to include [more info](twitter.md#common-input). | -| tweet\_fields | Tweet-specific fields to include [more info](twitter.md#common-input). | -| user\_fields | User-related fields to include [more info](twitter.md#common-input). | - -### Outputs - -| Output | Description | -| ----------- | ---------------------------------- | -| ids | List of muted user IDs | -| usernames | List of muted usernames | -| next\_token | Token for retrieving next page | -| data | Complete user data for muted users | -| includes | Additional requested data | -| meta | Metadata including pagination info | -| error | Error message if request failed | - -### Possible use case - -Monitoring and managing muted users list for content filtering. - -*** - -## Twitter Mute User Block - -### What it is - -A block that mutes a specified user on Twitter. - -### What it does - -This block mutes a user using their user ID to stop seeing their tweets. - -### How it works - -It uses the Twitter API (Tweepy) to mute a user with the given user ID, handling authentication and error cases. - -### Inputs - -| Input | Description | -| ---------------- | -------------------------------------------- | -| credentials | Twitter API credentials with required scopes | -| target\_user\_id | ID of the user to mute | - -### Outputs - -| Output | Description | -| ------- | ---------------------------- | -| success | Whether mute was successful | -| error | Error message if mute failed | - -### Possible use case - -Automating user muting based on specific criteria or behaviors. - -*** - -## Twitter Get User Block - -### What it is - -A block that retrieves information about a single Twitter user by either their user ID or username. - -### What it does - -This block fetches detailed user information, including basic profile data and optional expanded information, for a specified Twitter user. - -### How it works - -It uses the Twitter API (Tweepy) to fetch user data for a single user identified by either ID or username, handling authentication and returning user data with optional expansions. - -### Inputs - -| Input | Description | -| ------------- | ----------------------------------------------------------------------- | -| credentials | Twitter API credentials with required scopes | -| identifier | User identifier (either user ID or username) | -| expansions | Additional data fields to include [more info](twitter.md#common-input). | -| tweet\_fields | Tweet-specific fields to include [more info](twitter.md#common-input). | -| user\_fields | User-related fields to include [more info](twitter.md#common-input). | - -### Outputs - -| Output | Description | -| ---------- | ------------------------------- | -| id | User ID | -| username\_ | Twitter username | -| name\_ | Display name | -| data | Complete user data | -| included | Additional requested data | -| error | Error message if request failed | - -### Possible use case - -Retrieving detailed user profile information for analysis or verification. - -*** - -## Twitter Get Users Block - -### What it is - -A block that retrieves information about multiple Twitter users by their IDs or usernames. - -### What it does - -This block fetches detailed user information for up to 100 users at once, including basic profile data and optional expanded information. - -### How it works - -It uses the Twitter API (Tweepy) to batch fetch user data for multiple users identified by either IDs or usernames, handling authentication and returning user data with optional expansions. - -### Inputs - -| Input | Description | -| ------------- | ----------------------------------------------------------------------- | -| credentials | Twitter API credentials with required scopes | -| identifier | List of user identifiers (either user IDs or usernames, max 100) | -| expansions | Additional data fields to include [more info](twitter.md#common-input). | -| tweet\_fields | Tweet-specific fields to include [more info](twitter.md#common-input). | -| user\_fields | User-related fields to include [more info](twitter.md#common-input). | - -### Outputs - -| Output | Description | -| ----------- | ------------------------------- | -| ids | List of user IDs | -| usernames\_ | List of Twitter usernames | -| names\_ | List of display names | -| data | Complete user data array | -| included | Additional requested data | -| error | Error message if request failed | - -### Possible use case - -Batch retrieval of user profile information for analysis or monitoring. - -*** - -## Twitter Search Spaces Block - -### What it is - -A block that searches for live or scheduled Twitter Spaces by specified search terms. - -### What it does - -This block searches for Twitter Spaces based on title keywords, with options to filter by state (live/scheduled) and pagination. - -### How it works - -It uses the Twitter API (Tweepy) to search for Spaces matching the query parameters, handling authentication and returning Space data with optional expansions. - -### Inputs - -| Input | Description | -| ------------- | ----------------------------------------------------------------------- | -| credentials | Twitter API credentials with required scopes | -| query | Search term to find in Space titles | -| max\_results | Maximum number of results to return (1-100, default 10) | -| state | Type of Spaces to return (live, scheduled, or all) | -| expansions | Additional data fields to include [more info](twitter.md#common-input). | -| space\_fields | Space-specific fields to include [more info](twitter.md#common-input). | -| user\_fields | User-related fields to include [more info](twitter.md#common-input). | - -### Outputs - -| Output | Description | -| ----------- | ---------------------------------- | -| ids | List of space IDs | -| titles | List of space titles | -| host\_ids | List of host IDs | -| next\_token | Token for retrieving next page | -| data | Complete space data | -| includes | Additional requested data | -| meta | Metadata including pagination info | -| error | Error message if request failed | - -### Possible use case - -Finding relevant Twitter Spaces for content discovery and engagement. - -*** - -## Twitter Get Spaces Block - -### What it is - -A block that retrieves information about multiple Twitter Spaces specified by Space IDs or creator user IDs. - -### What it does - -This block fetches detailed information for up to 100 Spaces using either their Space IDs or creator user IDs. - -### How it works - -It uses the Twitter API (Tweepy) to batch fetch Space data for multiple Spaces, handling authentication and returning Space data with optional expansions. - -### Inputs - -| Input | Description | -| ------------- | ----------------------------------------------------------------------- | -| credentials | Twitter API credentials with required scopes | -| identifier | Choice of lookup by Space IDs or creator user IDs | -| expansions | Additional data fields to include [more info](twitter.md#common-input). | -| space\_fields | Space-specific fields to include [more info](twitter.md#common-input). | -| user\_fields | User-related fields to include [more info](twitter.md#common-input). | - -### Outputs - -| Output | Description | -| -------- | ------------------------------- | -| ids | List of Space IDs | -| titles | List of Space titles | -| data | Complete Space data array | -| includes | Additional requested data | -| error | Error message if request failed | - -### Possible use case - -Batch retrieval of Space information for analytics or monitoring. - -*** - -## Twitter Get Space By ID Block - -### What it is - -A block that retrieves information about a single Twitter Space specified by Space ID. - -### What it does - -This block fetches detailed information about a single Space, including host information and other metadata. - -### How it works - -It uses the Twitter API (Tweepy) to fetch Space data for a single Space ID, handling authentication and returning Space data with optional expansions. - -### Inputs - -| Input | Description | -| ------------- | ----------------------------------------------------------------------- | -| credentials | Twitter API credentials with required scopes | -| space\_id | ID of Space to retrieve | -| expansions | Additional data fields to include [more info](twitter.md#common-input). | -| space\_fields | Space-specific fields to include [more info](twitter.md#common-input). | -| user\_fields | User-related fields to include [more info](twitter.md#common-input). | - -### Outputs - -| Output | Description | -| --------- | ------------------------------- | -| id | Space ID | -| title | Space title | -| host\_ids | List of host IDs | -| data | Complete Space data | -| includes | Additional requested data | -| error | Error message if request failed | - -### Possible use case - -Retrieving detailed information about a specific Space for analysis or display. - -*** - -## Twitter Get Space Buyers Block - -### What it is - -A block that retrieves a list of users who purchased tickets to a Twitter Space. - -### What it does - -This block gets information about users who bought tickets to attend a specific Space. - -### How it works - -It uses the Twitter API (Tweepy) to fetch buyer information for a Space, handling authentication and returning user data with optional expansions. - -### Inputs - -| Input | Description | -| ------------ | ----------------------------------------------------------------------- | -| credentials | Twitter API credentials with required scopes | -| space\_id | ID of Space to get buyers for | -| expansions | Additional data fields to include [more info](twitter.md#common-input). | -| user\_fields | User-related fields to include [more info](twitter.md#common-input). | - -### Outputs - -| Output | Description | -| ---------- | ------------------------------- | -| buyer\_ids | List of buyer user IDs | -| usernames | List of buyer usernames | -| data | Complete buyer user data | -| includes | Additional requested data | -| error | Error message if request failed | - -### Possible use case - -Analyzing ticket sales and attendee information for monetized Spaces. - -*** - -## Twitter Get Space Tweets Block - -### What it is - -A block that retrieves tweets shared in a specific Twitter Space. - -### What it does - -This block gets tweets that were shared during a Space session. - -### How it works - -It uses the Twitter API (Tweepy) to fetch tweets from a Space, handling authentication and returning tweet data with optional expansions. - -### Inputs - -| Input | Description | -| ------------- | ------------------------------------------------------------------------ | -| credentials | Twitter API credentials with required scopes | -| space\_id | ID of Space to get tweets for | -| expansions | Additional data fields to include [more info](twitter.md#common-input). | -| media\_fields | Media-related fields to include [more info](twitter.md#common-input). | -| place\_fields | Location-related fields to include [more info](twitter.md#common-input). | -| poll\_fields | Poll-related fields to include [more info](twitter.md#common-input). | -| tweet\_fields | Tweet-specific fields to include [more info](twitter.md#common-input). | -| user\_fields | User-related fields to include [more info](twitter.md#common-input). | - -### Outputs - -| Output | Description | -| ---------- | ------------------------------- | -| tweet\_ids | List of tweet IDs | -| texts | List of tweet texts | -| data | Complete tweet data | -| includes | Additional requested data | -| meta | Response metadata | -| error | Error message if request failed | - -### Possible use case - -Capturing and analyzing content shared during Space sessions. - -*** - -## Twitter Get List Block - -### What it is - -A block that retrieves detailed information about a specific Twitter List. - -### What it does - -This block fetches information about a Twitter List specified by its ID, including basic list data and optional expanded information. - -### How it works - -It uses the Twitter API (Tweepy) to fetch list data for a single list ID, handling authentication and returning list data with optional expansions. - -### Inputs - -| Input | Description | -| ------------ | ----------------------------------------------------------------------- | -| credentials | Twitter API credentials with required scopes | -| list\_id | ID of the Twitter List to retrieve | -| expansions | Additional data fields to include [more info](twitter.md#common-input). | -| list\_fields | List-specific fields to include [more info](twitter.md#common-input). | -| user\_fields | User-related fields to include [more info](twitter.md#common-input). | - -### Outputs - -| Output | Description | -| --------------- | ------------------------------- | -| id | List ID | -| name | List name | -| owner\_id | ID of List owner | -| owner\_username | Username of List owner | -| data | Complete list data | -| included | Additional requested data | -| meta | Response metadata | -| error | Error message if request failed | - -### Possible use case - -Retrieving detailed information about specific Twitter Lists for analysis or display. - -*** - -## Twitter Get Owned Lists Block - -### What it is - -A block that retrieves all Twitter Lists owned by a specified user. - -### What it does - -This block fetches a list of Twitter Lists owned by a user ID, with options for pagination and filtering. - -### How it works - -It uses the Twitter API (Tweepy) to fetch owned lists for a given user ID, handling authentication and returning list data with optional expansions. - -### Inputs - -| Input | Description | -| ----------------- | ----------------------------------------------------------------------- | -| credentials | Twitter API credentials with required scopes | -| user\_id | ID of user whose Lists to retrieve | -| max\_results | Maximum results per page (1-100, default 10) | -| pagination\_token | Token for getting next page | -| expansions | Additional data fields to include [more info](twitter.md#common-input). | -| list\_fields | List-specific fields to include [more info](twitter.md#common-input). | -| user\_fields | User-related fields to include [more info](twitter.md#common-input). | - -### Outputs - -| Output | Description | -| ----------- | ---------------------------------- | -| list\_ids | List of owned List IDs | -| list\_names | List of owned List names | -| next\_token | Token for retrieving next page | -| data | Complete List data array | -| included | Additional requested data | -| meta | Metadata including pagination info | -| error | Error message if request failed | - -### Possible use case - -Analyzing owned Lists for content curation and audience management. - -*** - -## Twitter Remove List Member Block - -### What it is - -A block that removes a member from a specified Twitter List owned by the authenticated user. - -### What it does - -This block removes a specified user from a Twitter List they are currently a member of. - -### How it works - -It uses the Twitter API (Tweepy) to remove a user from a specified List, handling authentication and error cases. - -### Inputs - -| Input | Description | -| ----------- | -------------------------------------------- | -| credentials | Twitter API credentials with required scopes | -| list\_id | ID of the List to remove member from | -| user\_id | ID of the user to remove from List | - -### Outputs - -| Output | Description | -| ------- | ------------------------------- | -| success | Whether removal was successful | -| error | Error message if removal failed | - -### Possible use case - -Managing List membership by removing users who no longer meet List criteria. - -*** - -## Twitter Add List Member Block - -### What it is - -A block that adds a member to a specified Twitter List owned by the authenticated user. - -### What it does - -This block adds a specified user as a new member to a Twitter List. - -### How it works - -It uses the Twitter API (Tweepy) to add a user to a specified List, handling authentication and error cases. - -### Inputs - -| Input | Description | -| ----------- | -------------------------------------------- | -| credentials | Twitter API credentials with required scopes | -| list\_id | ID of the List to add member to | -| user\_id | ID of the user to add to List | - -### Outputs - -| Output | Description | -| ------- | -------------------------------- | -| success | Whether addition was successful | -| error | Error message if addition failed | - -### Possible use case - -Growing List membership by adding users who match List criteria. - -*** - -## Twitter Get List Members Block - -### What it is - -A block that retrieves all members of a specified Twitter List. - -### What it does - -This block gets information about users who are members of a given List, with options for pagination and filtering. - -### How it works - -It uses the Twitter API (Tweepy) to fetch member data for a specified List, handling authentication and returning user data with optional expansions. - -### Inputs - -| Input | Description | -| ----------------- | -------------------------------------------- | -| credentials | Twitter API credentials with required scopes | -| list\_id | ID of the List to get members from | -| max\_results | Maximum results per page (1-100, default 10) | -| pagination\_token | Token for getting next page of results | -| expansions | Additional data fields to include | -| tweet\_fields | Tweet-related fields to include | -| user\_fields | User-related fields to include | - -### Outputs - -| Output | Description | -| ----------- | ------------------------------- | -| ids | List of member user IDs | -| usernames | List of member usernames | -| next\_token | Token for retrieving next page | -| data | Complete user data for members | -| included | Additional requested data | -| meta | Pagination and result metadata | -| error | Error message if request failed | - -### Possible use case - -Analyzing List membership and member profiles. - -*** - -## Twitter Get List Memberships Block - -### What it is - -A block that retrieves all Lists that a specified user is a member of. - -### What it does - -This block gets information about Lists where the specified user is a member, with options for pagination and filtering. - -### How it works - -It uses the Twitter API (Tweepy) to fetch List membership data for a given user ID, handling authentication and returning List data with optional expansions. - -### Inputs - -| Input | Description | -| ----------------- | -------------------------------------------- | -| credentials | Twitter API credentials with required scopes | -| user\_id | ID of user to get List memberships for | -| max\_results | Maximum results per page (1-100, default 10) | -| pagination\_token | Token for getting next page of results | -| expansions | Additional data fields to include | -| list\_fields | List-specific fields to include | -| user\_fields | User-related fields to include | - -### Outputs - -| Output | Description | -| ----------- | ------------------------------- | -| list\_ids | List of List IDs | -| next\_token | Token for retrieving next page | -| data | Complete List membership data | -| included | Additional requested data | -| meta | Metadata about pagination | -| error | Error message if request failed | - -### Possible use case - -Analyzing a user's List memberships to understand their interests and connections. - -*** - -## Twitter Get List Tweets Block - -### What it is - -A block that retrieves tweets from a specified Twitter List. - -### What it does - -This block fetches tweets that have been posted within a given List, with options for pagination, filtering, and expanded data. - -### How it works - -It uses the Twitter API (Tweepy) to fetch tweets from a specified List, handling authentication and returning tweet data with optional expansions. - -### Inputs - -| Input | Description | -| ----------------- | ------------------------------------------------------------------------ | -| credentials | Twitter API credentials with required scopes | -| list\_id | ID of the List to get tweets from | -| max\_results | Maximum number of results per page (1-100, default 10) | -| pagination\_token | Token for getting next page of results | -| expansions | Additional data fields to include [more info](twitter.md#common-input). | -| media\_fields | Media-related fields to include [more info](twitter.md#common-input). | -| place\_fields | Location-related fields to include [more info](twitter.md#common-input). | -| poll\_fields | Poll-related fields to include [more info](twitter.md#common-input). | -| tweet\_fields | Tweet-specific fields to include [more info](twitter.md#common-input). | -| user\_fields | User-related fields to include [more info](twitter.md#common-input). | - -### Outputs - -| Output | Description | -| ----------- | --------------------------------------------------------------------- | -| tweet\_ids | List of tweet IDs from the List | -| texts | List of tweet text contents | -| next\_token | Token for retrieving next page | -| data | Complete tweet data array | -| included | Additional requested data [more info](twitter.md#common-output). | -| meta | Pagination and result metadata [more info](twitter.md#common-output). | -| error | Error message if request failed | - -### Possible use case - -Monitoring and analyzing tweets shared within curated Twitter Lists. - -*** - -## Twitter Delete List Block - -### What it is - -A block that deletes a Twitter List owned by the authenticated user. - -### What it does - -This block deletes a specified Twitter List using the List ID. - -### How it works - -It uses the Twitter API (Tweepy) to delete a specified List, handling authentication and error cases. - -### Inputs - -| Input | Description | -| ----------- | -------------------------------------------- | -| credentials | Twitter API credentials with required scopes | -| list\_id | ID of the List to delete | - -### Outputs - -| Output | Description | -| ------- | -------------------------------- | -| success | Whether deletion was successful | -| error | Error message if deletion failed | - -### Possible use case - -Removing outdated or unnecessary Twitter Lists. - -*** - -## Twitter Update List Block - -### What it is - -A block that updates a Twitter List owned by the authenticated user. - -### What it does - -This block modifies an existing List's name and/or description. - -### How it works - -It uses the Twitter API (Tweepy) to update List metadata, handling authentication and error cases. - -### Inputs - -| Input | Description | -| ----------- | -------------------------------------------- | -| credentials | Twitter API credentials with required scopes | -| list\_id | ID of List to update | -| name | New name for the List (optional) | -| description | New description for the List (optional) | - -### Outputs - -| Output | Description | -| ------- | ------------------------------ | -| success | Whether update was successful | -| error | Error message if update failed | - -### Possible use case - -Maintaining List metadata to reflect current purpose or organization. - -*** - -## Twitter Create List Block - -### What it is - -A block that creates a new Twitter List for the authenticated user. - -### What it does - -This block creates a new Twitter List with specified name, description and privacy settings. - -### How it works - -It uses the Twitter API (Tweepy) to create a new List, handling authentication and returning List details. - -### Inputs - -| Input | Description | -| ----------- | -------------------------------------------- | -| credentials | Twitter API credentials with required scopes | -| name | Name for the new List | -| description | Description of the List (optional) | -| private | Whether List should be private | - -### Outputs - -| Output | Description | -| -------- | -------------------------------- | -| url | URL of the created List | -| list\_id | ID of the created List | -| error | Error message if creation failed | - -### Possible use case - -Creating Lists to organize Twitter users around specific topics or interests. - -*** - -## Twitter Unpin List Block - -### What it is - -A block that allows users to unpin a specified Twitter List. - -### What it does - -This block removes a Twitter List from the user's pinned Lists. - -### How it works - -It uses the Twitter API (Tweepy) to unpin a List using its List ID, handling authentication and error cases. - -### Inputs - -| Input | Description | -| ----------- | -------------------------------------------- | -| credentials | Twitter API credentials with required scopes | -| list\_id | ID of the List to unpin | - -### Outputs - -| Output | Description | -| ------- | ----------------------------- | -| success | Whether unpin was successful | -| error | Error message if unpin failed | - -### Possible use case - -Managing pinned Lists by removing Lists that are no longer priority. - -*** - -## Twitter Pin List Block - -### What it is - -A block that allows users to pin a specified Twitter List. - -### What it does - -This block pins a Twitter List to appear at the top of the user's Lists. - -### How it works - -It uses the Twitter API (Tweepy) to pin a List using its List ID, handling authentication and error cases. - -### Inputs - -| Input | Description | -| ----------- | -------------------------------------------- | -| credentials | Twitter API credentials with required scopes | -| list\_id | ID of the List to pin | - -### Outputs - -| Output | Description | -| ------- | --------------------------- | -| success | Whether pin was successful | -| error | Error message if pin failed | - -### Possible use case - -Prioritizing important Lists for quick access. - -*** - -## Twitter Get Pinned Lists Block - -### What it is - -A block that retrieves all Twitter Lists that are pinned by the authenticated user. - -### What it does - -This block fetches a collection of Lists that have been pinned by the user, with options for additional data and filtering. - -### How it works - -It uses the Twitter API (Tweepy) to fetch pinned Lists data, handling authentication and returning List information with optional expansions. - -### Inputs - -| Input | Description | -| ------------ | ----------------------------------------------------------------------- | -| credentials | Twitter API credentials with required scopes | -| expansions | Additional data fields to include [more info](twitter.md#common-input). | -| list\_fields | List-specific fields to include [more info](twitter.md#common-input). | -| user\_fields | User-related fields to include [more info](twitter.md#common-input). | - -### Outputs - -| Output | Description | -| ----------- | ------------------------------- | -| list\_ids | List of pinned List IDs | -| list\_names | List of pinned List names | -| data | Complete List data | -| included | Additional requested data | -| meta | Response metadata | -| error | Error message if request failed | - -### Possible use case - -Monitoring and managing pinned Lists for organization and quick access. - -*** - -## Twitter Unfollow List Block - -### What it is - -A block that unfollows a Twitter List that the authenticated user is currently following. - -### What it does - -This block unfollows a specified Twitter List using the List ID, removing it from the user's followed Lists. - -### How it works - -It uses the Twitter API (Tweepy) to unfollow a List with the given List ID, handling authentication and error cases. - -### Inputs - -| Input | Description | -| ----------- | -------------------------------------------- | -| credentials | Twitter API credentials with required scopes | -| list\_id | ID of the List to unfollow | - -### Outputs - -| Output | Description | -| ------- | -------------------------------- | -| success | Whether unfollow was successful | -| error | Error message if unfollow failed | - -### Possible use case - -Managing followed Lists by removing Lists that are no longer relevant. - -*** - -## Twitter Follow List Block - -### What it is - -A block that follows a Twitter List for the authenticated user. - -### What it does - -This block follows a specified Twitter List using the List ID, adding it to the user's followed Lists. - -### How it works - -It uses the Twitter API (Tweepy) to follow a List with the given List ID, handling authentication and error cases. - -### Inputs - -| Input | Description | -| ----------- | -------------------------------------------- | -| credentials | Twitter API credentials with required scopes | -| list\_id | ID of the List to follow | - -### Outputs - -| Output | Description | -| ------- | ------------------------------ | -| success | Whether follow was successful | -| error | Error message if follow failed | - -### Possible use case - -Following Lists that match user interests or contain relevant content. - -*** - -## Common Input - -The Twitter API lets you choose what information you want to get back when you make a request. Here are the different types of information you can ask for: - -### expansions - -Extra information about tweets, pictures, and users that are mentioned or connected - -| Field | Description | -| ----------------------------- | ------------------------------------------------------------------------------ | -| Poll\_IDs | Gets information about any polls in the tweet, like voting options and results | -| Media\_Keys | Gets details about pictures, videos, or GIFs attached to the tweet | -| Author\_User\_ID | Gets information about who wrote the tweet, like their profile details | -| Edit\_History\_Tweet\_IDs | Shows if and when the tweet was edited and what changed | -| Mentioned\_Usernames | Gets profile information about any @mentioned users | -| Place\_ID | Gets details about locations tagged in the tweet | -| Reply\_To\_User\_ID | Gets information about the person this tweet is replying to | -| Referenced\_Tweet\_ID | Gets details about any tweets this one is quoting or retweeting | -| Referenced\_Tweet\_Author\_ID | Gets profile information about who wrote the original tweets being referenced | - -### media\_fields - -Information about pictures, videos, and other media - -| Field | Description | -| -------------------------- | ---------------------------------------------------------- | -| Duration\_in\_Milliseconds | How long a video or audio clip plays for (in milliseconds) | -| Height | How tall the picture or video is in pixels | -| Media\_Key | A unique code that identifies this specific piece of media | -| Preview\_Image\_URL | Web link to a smaller preview version of the picture | -| Media\_Type | What kind of media it is (photo, video, GIF, etc.) | -| Media\_URL | Web link to view the full media | -| Width | How wide the picture or video is in pixels | -| Public\_Metrics | Numbers anyone can see (views, plays, etc.) | -| Non\_Public\_Metrics | Private numbers only the tweet author can see | -| Organic\_Metrics | Numbers about natural engagement (non-promoted) | -| Promoted\_Metrics | Numbers about paid promotion performance | -| Alternative\_Text | Description of the media for accessibility | -| Media\_Variants | Different sizes/qualities available (like HD vs SD video) | - -### place\_fields - -Information about locations mentioned in tweets - -| Field | Description | -| ------------------------- | ----------------------------------------------------------------- | -| Contained\_Within\_Places | Larger areas this place is part of (like a city within a state) | -| Country | The full country name | -| Country\_Code | Short two-letter code for the country (like US for United States) | -| Full\_Location\_Name | Complete name including city, state, country etc. | -| Geographic\_Coordinates | Exact location on a map (latitude and longitude) | -| Place\_ID | A unique code that identifies this specific location | -| Place\_Name | The main name of the place (like "Times Square") | -| Place\_Type | What kind of place it is (city, business, landmark etc.) | - -### poll\_fields - -Information about polls in tweets - -| Field | Description | -| ----------------- | ------------------------------------------------ | -| Duration\_Minutes | How long the poll stays open for voting | -| End\_DateTime | The exact date and time when voting closes | -| Poll\_ID | A unique code that identifies this specific poll | -| Poll\_Options | The different choices people can vote for | -| Voting\_Status | Whether voting is still open or closed | - -### tweet\_fields - -Information about the tweets themselves - -| Field | Description | -| ------------------------ | --------------------------------------------------------------- | -| Tweet\_Attachments | All media, links, or polls included in the tweet | -| Author\_ID | A unique code identifying who wrote the tweet | -| Context\_Annotations | Extra information about what the tweet is about | -| Conversation\_ID | Code linking all replies in a conversation | -| Creation\_Time | When the tweet was posted | -| Edit\_Controls | Whether the tweet can be edited and for how long | -| Tweet\_Entities | Special parts of the tweet like #hashtags, @mentions, and links | -| Geographic\_Location | Where the tweet was posted from | -| Tweet\_ID | A unique code for this specific tweet | -| Reply\_To\_User\_ID | Who this tweet is responding to | -| Language | What language the tweet is written in | -| Public\_Metrics | Numbers like retweets, likes, and replies | -| Sensitive\_Content\_Flag | Warning if tweet might contain sensitive content | -| Referenced\_Tweets | Other tweets this one is connected to | -| Reply\_Settings | Who is allowed to reply to the tweet | -| Tweet\_Source | What app or website was used to post | -| Tweet\_Text | The actual words in the tweet | -| Withheld\_Content | If the tweet is hidden in certain countries | - -### user\_fields - -Information about Twitter users - -| Field | Description | -| -------------------------- | ------------------------------------------------ | -| Account\_Creation\_Date | When they joined Twitter | -| User\_Bio | The "About me" text on their profile | -| User\_Entities | Links and @mentions in their profile | -| User\_ID | Their unique Twitter user code | -| User\_Location | Where they say they are located | -| Latest\_Tweet\_ID | Code for their most recent tweet | -| Display\_Name | Their full profile name (not @username) | -| Pinned\_Tweet\_ID | Code for the tweet stuck to top of their profile | -| Profile\_Picture\_URL | Link to their profile picture | -| Is\_Protected\_Account | Whether their tweets are private | -| Account\_Statistics | Number of followers, following, and tweets | -| Profile\_URL | Link to their profile webpage | -| Username | Their @handle they use on Twitter | -| Is\_Verified | Whether they have a verification checkmark | -| Verification\_Type | What kind of verification they have | -| Content\_Withholding\_Info | If their content is hidden in certain places | - -## Extra notes - -* Use combinations of expansions and fields to build precise queries. For instance: - * To fetch a Tweet with media details, include `expansions=Media_Keys` and relevant `media_fields`. - * For user data in Tweets, add `expansions=Author_User_ID` and appropriate `user_fields`. -* Data returned under `includes` helps cross-reference expanded data objects with their parent entities using IDs. - -## Common Output - -The Twitter API returns standardized response elements across many endpoints. Here are the common output fields you'll encounter: - -### data - -The primary data requested in the response - -| Field | Description | -| ---------- | ------------------------------------------- | -| ID | Unique identifier for the object | -| Type | Type of object (tweet, user, etc) | -| Properties | Object-specific fields like text for tweets | - -### includes - -Additional expanded data objects referenced in the primary data - -| Field | Description | -| ------ | --------------------------------------- | -| Tweets | Full tweet objects that were referenced | -| Users | User profile data for authors/mentions | -| Places | Location data for geo-tagged content | -| Media | Details about attached photos/videos | -| Polls | Information about embedded polls | - -### meta - -Metadata about the response and pagination - -| Field | Description | -| ------------------- | --------------------------------- | -| Result\_Count | Number of items returned | -| Next\_Token | Token to get next page of results | -| Previous\_Token | Token to get previous page | -| Newest\_ID | Most recent ID in results | -| Oldest\_ID | Oldest ID in results | -| Total\_Tweet\_Count | Total matching tweets (search) | - -### errors - -Details about any errors that occurred - -| Field | Description | -| ------ | ----------------------------- | -| Title | Brief error description | -| Detail | Detailed error message | -| Type | Error category/classification | -| Status | HTTP status code | - -### Non-paginated responses - -For single-object lookups: - -* data: Contains requested object -* includes: Referenced objects -* errors: Any errors encountered - -### Paginated responses - -For multi-object lookups: - -* data: Array of objects -* includes: Referenced objects -* meta: Pagination details -* errors: Any errors encountered diff --git a/docs/integrations/twitter/blocks.md b/docs/integrations/block-integrations/twitter/blocks.md similarity index 100% rename from docs/integrations/twitter/blocks.md rename to docs/integrations/block-integrations/twitter/blocks.md diff --git a/docs/integrations/twitter/bookmark.md b/docs/integrations/block-integrations/twitter/bookmark.md similarity index 100% rename from docs/integrations/twitter/bookmark.md rename to docs/integrations/block-integrations/twitter/bookmark.md diff --git a/docs/integrations/twitter/follows.md b/docs/integrations/block-integrations/twitter/follows.md similarity index 100% rename from docs/integrations/twitter/follows.md rename to docs/integrations/block-integrations/twitter/follows.md diff --git a/docs/integrations/twitter/hide.md b/docs/integrations/block-integrations/twitter/hide.md similarity index 100% rename from docs/integrations/twitter/hide.md rename to docs/integrations/block-integrations/twitter/hide.md diff --git a/docs/integrations/twitter/like.md b/docs/integrations/block-integrations/twitter/like.md similarity index 100% rename from docs/integrations/twitter/like.md rename to docs/integrations/block-integrations/twitter/like.md diff --git a/docs/integrations/twitter/list_follows.md b/docs/integrations/block-integrations/twitter/list_follows.md similarity index 100% rename from docs/integrations/twitter/list_follows.md rename to docs/integrations/block-integrations/twitter/list_follows.md diff --git a/docs/integrations/twitter/list_lookup.md b/docs/integrations/block-integrations/twitter/list_lookup.md similarity index 100% rename from docs/integrations/twitter/list_lookup.md rename to docs/integrations/block-integrations/twitter/list_lookup.md diff --git a/docs/integrations/twitter/list_members.md b/docs/integrations/block-integrations/twitter/list_members.md similarity index 100% rename from docs/integrations/twitter/list_members.md rename to docs/integrations/block-integrations/twitter/list_members.md diff --git a/docs/integrations/twitter/list_tweets_lookup.md b/docs/integrations/block-integrations/twitter/list_tweets_lookup.md similarity index 100% rename from docs/integrations/twitter/list_tweets_lookup.md rename to docs/integrations/block-integrations/twitter/list_tweets_lookup.md diff --git a/docs/integrations/twitter/manage.md b/docs/integrations/block-integrations/twitter/manage.md similarity index 100% rename from docs/integrations/twitter/manage.md rename to docs/integrations/block-integrations/twitter/manage.md diff --git a/docs/integrations/twitter/manage_lists.md b/docs/integrations/block-integrations/twitter/manage_lists.md similarity index 100% rename from docs/integrations/twitter/manage_lists.md rename to docs/integrations/block-integrations/twitter/manage_lists.md diff --git a/docs/integrations/twitter/mutes.md b/docs/integrations/block-integrations/twitter/mutes.md similarity index 100% rename from docs/integrations/twitter/mutes.md rename to docs/integrations/block-integrations/twitter/mutes.md diff --git a/docs/integrations/twitter/pinned_lists.md b/docs/integrations/block-integrations/twitter/pinned_lists.md similarity index 100% rename from docs/integrations/twitter/pinned_lists.md rename to docs/integrations/block-integrations/twitter/pinned_lists.md diff --git a/docs/integrations/twitter/quote.md b/docs/integrations/block-integrations/twitter/quote.md similarity index 100% rename from docs/integrations/twitter/quote.md rename to docs/integrations/block-integrations/twitter/quote.md diff --git a/docs/integrations/twitter/retweet.md b/docs/integrations/block-integrations/twitter/retweet.md similarity index 100% rename from docs/integrations/twitter/retweet.md rename to docs/integrations/block-integrations/twitter/retweet.md diff --git a/docs/integrations/twitter/search_spaces.md b/docs/integrations/block-integrations/twitter/search_spaces.md similarity index 100% rename from docs/integrations/twitter/search_spaces.md rename to docs/integrations/block-integrations/twitter/search_spaces.md diff --git a/docs/integrations/twitter/spaces_lookup.md b/docs/integrations/block-integrations/twitter/spaces_lookup.md similarity index 100% rename from docs/integrations/twitter/spaces_lookup.md rename to docs/integrations/block-integrations/twitter/spaces_lookup.md diff --git a/docs/integrations/twitter/timeline.md b/docs/integrations/block-integrations/twitter/timeline.md similarity index 100% rename from docs/integrations/twitter/timeline.md rename to docs/integrations/block-integrations/twitter/timeline.md diff --git a/docs/integrations/twitter/tweet_lookup.md b/docs/integrations/block-integrations/twitter/tweet_lookup.md similarity index 100% rename from docs/integrations/twitter/tweet_lookup.md rename to docs/integrations/block-integrations/twitter/tweet_lookup.md diff --git a/docs/integrations/twitter/twitter.md b/docs/integrations/block-integrations/twitter/twitter.md similarity index 100% rename from docs/integrations/twitter/twitter.md rename to docs/integrations/block-integrations/twitter/twitter.md diff --git a/docs/integrations/twitter/user_lookup.md b/docs/integrations/block-integrations/twitter/user_lookup.md similarity index 100% rename from docs/integrations/twitter/user_lookup.md rename to docs/integrations/block-integrations/twitter/user_lookup.md diff --git a/docs/integrations/wolfram/llm_api.md b/docs/integrations/block-integrations/wolfram/llm_api.md similarity index 100% rename from docs/integrations/wolfram/llm_api.md rename to docs/integrations/block-integrations/wolfram/llm_api.md diff --git a/docs/integrations/block-integrations/youtube.md b/docs/integrations/block-integrations/youtube.md index 94be8e7baa..2ff32a8b0d 100644 --- a/docs/integrations/block-integrations/youtube.md +++ b/docs/integrations/block-integrations/youtube.md @@ -1,31 +1,26 @@ -# Transcribe YouTube Video - -## What it is +## Transcribe YouTube Video +### What it is A block that transcribes the audio content of a YouTube video into text. -## What it does - +### What it does This block takes a YouTube video URL as input and produces a text transcript of the video's audio content. It also extracts and provides the unique video ID associated with the YouTube video. -## How it works - +### How it works The block first extracts the video ID from the provided YouTube URL. It then uses this ID to fetch the video's transcript, preferring English when available. If an English transcript is not available, the block will automatically use the first available transcript in any other language (prioritizing manually created transcripts over auto-generated ones). The transcript is processed and formatted into a readable text format. If any errors occur during this process, the block will capture and report them. -## Inputs - -| Input | Description | -| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | +### Inputs +| Input | Description | +|-------|-------------| | YouTube URL | The web address of the YouTube video you want to transcribe. This can be in various formats, such as a standard watch URL, a shortened URL, or an embed URL. | -## Outputs - -| Output | Description | -| ---------- | -------------------------------------------------------------------------- | -| Video ID | The unique identifier for the YouTube video, extracted from the input URL. | -| Transcript | The full text transcript of the video's audio content. | -| Error | Any error message that occurs if the transcription process fails. | - -## Possible use case +### Outputs +| Output | Description | +|--------|-------------| +| Video ID | The unique identifier for the YouTube video, extracted from the input URL. | +| Transcript | The full text transcript of the video's audio content. | +| Error | Any error message that occurs if the transcription process fails. | +### Possible use case A content creator could use this block to automatically generate subtitles for their YouTube videos. They could also use it to create text-based summaries of video content for SEO purposes or to make their content more accessible to hearing-impaired viewers. The automatic language fallback feature ensures that transcripts can be obtained even from videos that only have subtitles in non-English languages. + diff --git a/docs/integrations/zerobounce/validate_emails.md b/docs/integrations/block-integrations/zerobounce/validate_emails.md similarity index 100% rename from docs/integrations/zerobounce/validate_emails.md rename to docs/integrations/block-integrations/zerobounce/validate_emails.md diff --git a/docs/integrations/branching.md b/docs/integrations/branching.md deleted file mode 100644 index 7e3932d007..0000000000 --- a/docs/integrations/branching.md +++ /dev/null @@ -1,29 +0,0 @@ -# Condition Block - -## What it is -The Condition Block is a logical component that evaluates comparisons between two values and produces outputs based on the result. - -## What it does -This block compares two input values using a specified comparison operator and determines whether the condition is true or false. It then outputs the result of the comparison and provides corresponding output values for both true and false cases. - -## How it works -The block takes two values and a comparison operator as inputs. It then performs the comparison using the specified operator. Based on the result of the comparison, it outputs a boolean value (true or false) and the corresponding output value for the true or false case. - -## Inputs -| Input | Description | -|-------|-------------| -| Value 1 | The first value to be compared. This can be any type of value (number, text, or boolean) | -| Operator | The comparison operator to use (e.g., equal to, not equal to, greater than, less than) | -| Value 2 | The second value to be compared. This can be any type of value (number, text, or boolean) | -| Yes Value | (Optional) The value to output if the condition is true. If not provided, Value 1 will be used | -| No Value | (Optional) The value to output if the condition is false. If not provided, Value 1 will be used | - -## Outputs -| Output | Description | -|--------|-------------| -| Result | A boolean value (true or false) indicating whether the condition was met | -| Yes Output | The output value if the condition is true. This will be the Yes Value if provided, or Value 1 if not | -| No Output | The output value if the condition is false. This will be the No Value if provided, or Value 1 if not | - -## Possible use case -This block could be used in a customer loyalty program to determine if a customer qualifies for a discount. For example, you could compare the customer's total purchases (Value 1) with a threshold amount (Value 2) using the "greater than or equal to" operator. The Yes Value could be "Qualified for discount" and the No Value could be "Not qualified". The block would then output whether the customer qualifies and the appropriate message. \ No newline at end of file diff --git a/docs/integrations/csv.md b/docs/integrations/csv.md deleted file mode 100644 index 7117b57be2..0000000000 --- a/docs/integrations/csv.md +++ /dev/null @@ -1,31 +0,0 @@ -# Read CSV - -## What it is -A block that reads and processes CSV (Comma-Separated Values) files. - -## What it does -This block takes CSV content as input, processes it, and outputs the data as individual rows and a complete dataset. - -## How it works -The Read CSV block takes the contents of a CSV file and splits it into rows and columns. It can handle different formatting options, such as custom delimiters and quote characters. The block processes the CSV data and outputs each row individually, as well as the complete dataset. - -## Inputs -| Input | Description | -|-------|-------------| -| Contents | The CSV data as a string | -| Delimiter | The character used to separate values in the CSV (default is comma ",") | -| Quotechar | The character used to enclose fields containing special characters (default is double quote '"') | -| Escapechar | The character used to escape special characters (default is backslash "\") | -| Has_header | Indicates whether the CSV has a header row (default is true) | -| Skip_rows | The number of rows to skip at the beginning of the CSV (default is 0) | -| Strip | Whether to remove leading and trailing whitespace from values (default is true) | -| Skip_columns | A list of column names to exclude from the output (default is an empty list) | - -## Outputs -| Output | Description | -|--------|-------------| -| Row | A dictionary representing a single row of the CSV, with column names as keys and cell values as values | -| All_data | A list of dictionaries containing all rows from the CSV | - -## Possible use case -This block could be used in a data analysis pipeline to import and process customer information from a CSV file. The individual rows could be used for real-time processing, while the complete dataset could be used for batch analysis or reporting. \ No newline at end of file diff --git a/docs/integrations/discord.md b/docs/integrations/discord.md deleted file mode 100644 index fa08093463..0000000000 --- a/docs/integrations/discord.md +++ /dev/null @@ -1,54 +0,0 @@ -## Read Discord Messages - -### What it is -A block that reads messages from a Discord channel using a bot token. - -### What it does -This block connects to Discord using a bot token and retrieves messages from a specified channel. It can operate continuously or retrieve a single message. - -### How it works -The block uses a Discord bot to log into a server and listen for new messages. When a message is received, it extracts the content, channel name, and username of the sender. If the message contains a text file attachment, the block also retrieves and includes the file's content. - -### Inputs -| Input | Description | -|-------|-------------| -| Discord Bot Token | A secret token used to authenticate the bot with Discord | -| Continuous Read | A boolean flag indicating whether to continuously read messages or stop after one message | - -### Outputs -| Output | Description | -|--------|-------------| -| Message Content | The text content of the received message, including any attached file content | -| Channel Name | The name of the Discord channel where the message was received | -| Username | The name of the user who sent the message | - -### Possible use case -This block could be used to monitor a Discord channel for support requests. When a user posts a message, the block captures it, allowing another part of the system to process and respond to the request. - ---- - -## Send Discord Message - -### What it is -A block that sends messages to a Discord channel using a bot token. - -### What it does -This block connects to Discord using a bot token and sends a specified message to a designated channel. - -### How it works -The block uses a Discord bot to log into a server, locate the specified channel, and send the provided message. If the message is longer than Discord's character limit, it automatically splits the message into smaller chunks and sends them sequentially. - -### Inputs -| Input | Description | -|-------|-------------| -| Discord Bot Token | A secret token used to authenticate the bot with Discord | -| Message Content | The text content of the message to be sent | -| Channel Name | Channel ID or channel name to send the message to | - -### Outputs -| Output | Description | -|--------|-------------| -| Status | A string indicating the result of the operation (e.g., "Message sent" or "Channel not found") | - -### Possible use case -This block could be used as part of an automated notification system. For example, it could send alerts to a Discord channel when certain events occur in another system, such as when a new user signs up or when a critical error is detected. \ No newline at end of file diff --git a/docs/integrations/guides/llm-providers.md b/docs/integrations/guides/llm-providers.md new file mode 100644 index 0000000000..73d789b479 --- /dev/null +++ b/docs/integrations/guides/llm-providers.md @@ -0,0 +1,16 @@ +# LLM Providers + +There are several providers that AutoGPT users can use for running inference with LLM models. + +## Llama API + +Llama API is a Meta-hosted API service that helps you integrate Llama models quickly and efficiently. Using OpenAI compatibility endpoints, you can easily access the power of Llama models without the need for complex setup or configuration! + +Join the [waitlist](https://llama.developer.meta.com/?utm_source=partner-autogpt&utm_medium=readme) to get access! + +Try the Llama API provider by selecting any of the following LLM Model names from the AI blocks: + +* Llama-4-Scout-17B-16E-Instruct-FP8 +* Llama-4-Maverick-17B-128E-Instruct-FP8 +* Llama-3.3-8B-Instruct +* Llama-3-70B-Instruct diff --git a/docs/integrations/guides/voice-providers.md b/docs/integrations/guides/voice-providers.md new file mode 100644 index 0000000000..450bed0676 --- /dev/null +++ b/docs/integrations/guides/voice-providers.md @@ -0,0 +1,22 @@ +# Voice Providers for D-ID + +This guide covers the voice providers you can use with the D-ID Create Talking Avatar Video block. + +## ElevenLabs + +1. Select any voice from the voice list: [https://api.elevenlabs.io/v1/voices](https://api.elevenlabs.io/v1/voices) +2. Copy the `voice_id` +3. Use it as a string in the `voice_id` field in the CreateTalkingAvatarClip Block + +## Microsoft Azure Voices + +1. Select any voice from the voice gallery: [https://speech.microsoft.com/portal/voicegallery](https://speech.microsoft.com/portal/voicegallery) +2. Click on the "Sample code" tab on the right +3. Copy the voice name, for example: `config.SpeechSynthesisVoiceName = "en-GB-AbbiNeural"` +4. Use this string `en-GB-AbbiNeural` in the `voice_id` field in the CreateTalkingAvatarClip Block + +## Amazon Polly Voices + +1. Select any voice from the voice list: [https://docs.aws.amazon.com/polly/latest/dg/available-voices.html](https://docs.aws.amazon.com/polly/latest/dg/available-voices.html) +2. Copy the voice name / ID +3. Use it as string in the `voice_id` field in the CreateTalkingAvatarClip Block diff --git a/docs/integrations/ideogram.md b/docs/integrations/ideogram.md deleted file mode 100644 index e5c5222e77..0000000000 --- a/docs/integrations/ideogram.md +++ /dev/null @@ -1,33 +0,0 @@ -# Ideogram Model - -## What it is -The Ideogram Model block is an AI-powered image generation tool that creates custom images based on text prompts and various settings. - -## What it does -This block generates images using the Ideogram AI model, allowing users to create unique visuals by describing what they want in text. It offers various customization options, including different model versions, aspect ratios, and style preferences. - -## How it works -The block takes a text prompt and several optional parameters as input. It then sends this information to the Ideogram API, which processes the request and generates an image. The resulting image URL is returned as output. If requested, the block can also upscale the generated image for higher quality. - -## Inputs -| Input | Description | -|-------|-------------| -| API Key | Your personal Ideogram API key for authentication | -| Prompt | The text description of the image you want to generate | -| Image Generation Model | Choose from different versions of the Ideogram model | -| Aspect Ratio | Select the desired dimensions for your image | -| Upscale Image | Option to enhance the image quality after generation | -| Magic Prompt Option | Enables automatic enhancement of your text prompt | -| Seed | An optional number for reproducible image generation | -| Style Type | Choose a specific artistic style for your image | -| Negative Prompt | Describe elements you want to exclude from the image | -| Color Palette Preset | Select a predefined color scheme for your image | - -## Outputs -| Output | Description | -|--------|-------------| -| Result | The URL of the generated image | -| Error | An error message if something goes wrong during the process | - -## Possible use case -A marketing team needs unique visuals for a new product campaign. They can use the Ideogram Model block to quickly generate custom images based on their product descriptions and brand guidelines, exploring different styles and aspect ratios without the need for a professional designer. \ No newline at end of file diff --git a/docs/integrations/iteration.md b/docs/integrations/iteration.md deleted file mode 100644 index d835b217e7..0000000000 --- a/docs/integrations/iteration.md +++ /dev/null @@ -1,24 +0,0 @@ -## Step Through Items - -### What it is -A block that iterates through a list or dictionary, processing each item one by one. - -### What it does -This block takes a list or dictionary as input and goes through each item, outputting the current item and its corresponding key or index. - -### How it works -When given a list or dictionary, the block processes each item individually. For lists, it keeps track of the item's position (index). For dictionaries, it focuses on the values, using the value as both the item and the key in the output. - -### Inputs -| Input | Description | -|-------|-------------| -| Items | A list or dictionary that you want to process item by item. For example, you could input a list of numbers [1, 2, 3, 4, 5] or a dictionary of key-value pairs {'key1': 'value1', 'key2': 'value2'} | - -### Outputs -| Output | Description | -|--------|-------------| -| Item | The current item being processed from the input list or dictionary | -| Key | For lists, this is the index (position) of the current item. For dictionaries, this is the same as the item (the dictionary's value) | - -### Possible use case -Imagine you have a list of customer names and you want to perform a specific action for each customer, like sending a personalized email. This block could help you go through the list one by one, allowing you to process each customer individually. \ No newline at end of file diff --git a/docs/integrations/maths.md b/docs/integrations/maths.md deleted file mode 100644 index d024afe8cb..0000000000 --- a/docs/integrations/maths.md +++ /dev/null @@ -1,54 +0,0 @@ -# Mathematical Operations Blocks - -## Calculator - -### What it is -A block that performs mathematical operations on two numbers. - -### What it does -This block takes two numbers and performs a selected mathematical operation (addition, subtraction, multiplication, division, or exponentiation) on them. It can also optionally round the result to a whole number. - -### How it works -The Calculator block takes in two numbers and an operation choice. It then applies the chosen operation to the numbers and returns the result. If rounding is selected, it rounds the result to the nearest whole number. - -### Inputs -| Input | Description | -|-------|-------------| -| Operation | Choose the math operation you want to perform (Add, Subtract, Multiply, Divide, or Power) | -| A | Enter the first number for the calculation | -| B | Enter the second number for the calculation | -| Round result | Choose whether to round the result to a whole number (True or False) | - -### Outputs -| Output | Description | -|--------|-------------| -| Result | The result of your calculation | - -### Possible use case -A user wants to quickly perform a calculation, such as adding two numbers or calculating a percentage. They can input the numbers and operation into this block and receive the result instantly. - ---- - -## Count Items - -### What it is -A block that counts the number of items in a collection. - -### What it does -This block takes a collection (such as a list, dictionary, or string) and counts the number of items within it. - -### How it works -The Count Items block receives a collection as input. It then determines the type of collection and uses the appropriate method to count the items. For most collections, it uses the length function. For other iterable objects, it counts the items one by one. - -### Inputs -| Input | Description | -|-------|-------------| -| Collection | Enter the collection you want to count (e.g., a list, dictionary, or string) | - -### Outputs -| Output | Description | -|--------|-------------| -| Count | The number of items in the collection | - -### Possible use case -A user has a list of customer names and wants to quickly determine how many customers are in the list. They can input the list into this block and receive the total count immediately. \ No newline at end of file diff --git a/docs/integrations/medium.md b/docs/integrations/medium.md deleted file mode 100644 index 644f70d8ab..0000000000 --- a/docs/integrations/medium.md +++ /dev/null @@ -1,35 +0,0 @@ -# Publish to Medium - -## What it is -The Publish to Medium block is a tool that enables direct publication of content to the Medium platform from within an automated workflow. - -## What it does -This block takes a fully formatted blog post, along with associated metadata, and publishes it to Medium using the platform's API. It handles all aspects of the publication process, including setting the title, content, tags, and other post-specific details. - -## How it works -The block uses the provided Medium API key and author ID to authenticate with the Medium platform. It then constructs an API request containing all the post details and sends it to Medium's servers. After the post is published, the block retrieves and returns relevant information about the newly created post, such as its unique ID and public URL. - -## Inputs -| Input | Description | -|-------|-------------| -| Author ID | The unique identifier for the Medium author account | -| Title | The headline of the Medium post | -| Content | The main body of the post (in HTML or Markdown format) | -| Content Format | Specifies whether the content is in 'html' or 'markdown' format | -| Tags | Up to 5 topic tags to categorize the post (comma-separated) | -| Canonical URL | The original URL if the content was first published elsewhere | -| Publish Status | Sets the post visibility: 'public', 'draft', or 'unlisted' | -| License | The copyright license for the post (default: 'all-rights-reserved') | -| Notify Followers | Boolean flag to notify the author's followers about the new post | -| API Key | The Medium API key for authentication | - -## Outputs -| Output | Description | -|--------|-------------| -| Post ID | The unique identifier assigned to the published post by Medium | -| Post URL | The public web address where the post can be viewed | -| Published At | The timestamp indicating when the post was published | -| Error | Any error message returned if the publication process fails | - -## Possible use case -A digital marketing team could integrate this block into their content management system to streamline their cross-platform publishing strategy. After creating and approving a blog post in their main system, they could use this block to automatically publish the content to Medium, ensuring consistent and timely distribution across multiple platforms without manual intervention. \ No newline at end of file diff --git a/docs/integrations/reddit.md b/docs/integrations/reddit.md deleted file mode 100644 index d3d7d83a88..0000000000 --- a/docs/integrations/reddit.md +++ /dev/null @@ -1,56 +0,0 @@ -# Reddit Interaction Blocks - -## Get Reddit Posts - -### What it is -A block that retrieves posts from a specified subreddit on Reddit. - -### What it does -This block fetches a set number of recent posts from a given subreddit, allowing users to collect content from Reddit for various purposes. - -### How it works -The block connects to Reddit using provided credentials, accesses the specified subreddit, and retrieves posts based on the given parameters. It can limit the number of posts, stop at a specific post, or fetch posts within a certain time frame. - -### Inputs -| Input | Description | -|-------|-------------| -| Subreddit | The name of the subreddit to fetch posts from | -| Reddit Credentials | Login information for accessing Reddit | -| Last Minutes | An optional time limit to stop fetching posts (in minutes) | -| Last Post | An optional post ID to stop fetching when reached | -| Post Limit | The maximum number of posts to fetch (default is 10) | - -### Outputs -| Output | Description | -|--------|-------------| -| Post | A Reddit post containing the post ID, subreddit name, title, and body text | - -### Possible use case -A content curator could use this block to gather recent posts from a specific subreddit for analysis, summarization, or inclusion in a newsletter. - ---- - -## Post Reddit Comment - -### What it is -A block that posts a comment on a specified Reddit post. - -### What it does -This block allows users to submit a comment to a particular Reddit post using provided credentials and comment data. - -### How it works -The block connects to Reddit using the provided credentials, locates the specified post, and then adds the given comment to that post. - -### Inputs -| Input | Description | -|-------|-------------| -| Reddit Credentials | Login information for accessing Reddit | -| Comment Data | Contains the post ID to comment on and the comment text | - -### Outputs -| Output | Description | -|--------|-------------| -| Comment ID | The unique identifier of the newly posted comment | - -### Possible use case -An automated moderation system could use this block to post pre-defined responses or warnings on Reddit posts that violate community guidelines. \ No newline at end of file diff --git a/docs/integrations/rss.md b/docs/integrations/rss.md deleted file mode 100644 index 9ca29353fa..0000000000 --- a/docs/integrations/rss.md +++ /dev/null @@ -1,32 +0,0 @@ -# Read RSS Feed - -## What it is -A block that retrieves and processes entries from an RSS feed. - -## What it does -This block reads entries from a specified RSS feed URL, filters them based on a given time period, and outputs the entries one by one. - -## How it works -The block connects to the provided RSS feed URL, fetches the feed content, and processes each entry. It checks if the entry's publication date falls within the specified time period and, if so, formats and outputs the entry information. - -## Inputs -| Input | Description | -|-------|-------------| -| RSS URL | The web address of the RSS feed you want to read from | -| Time Period | The number of minutes to look back for new entries, relative to when the block starts running | -| Polling Rate | How often (in seconds) the block should check for new entries | -| Run Continuously | Whether the block should keep checking for new entries indefinitely or just run once | - -## Outputs -| Output | Description | -|--------|-------------| -| Entry | An RSS feed item containing the following information: | -| | - Title: The headline or name of the item | -| | - Link: The web address where the full item can be found | -| | - Description: A brief summary or excerpt of the item | -| | - Publication Date: When the item was published | -| | - Author: Who wrote or created the item | -| | - Categories: Topics or tags associated with the item | - -## Possible use case -A news aggregator application could use this block to continuously monitor multiple RSS feeds from different news sources. The application could then display the latest news items to users, categorized by topic and sorted by publication date. \ No newline at end of file diff --git a/docs/integrations/sampling.md b/docs/integrations/sampling.md deleted file mode 100644 index d29dfcd0f8..0000000000 --- a/docs/integrations/sampling.md +++ /dev/null @@ -1,31 +0,0 @@ -# Data Sampling - -## What it is -The Data Sampling block is a tool for selecting a subset of data from a larger dataset using various sampling methods. - -## What it does -This block takes a dataset as input and returns a smaller sample of that data based on specified criteria. It supports multiple sampling methods, allowing users to choose the most appropriate technique for their needs. - -## How it works -The block processes the input data and applies the chosen sampling method to select a subset of items. It can work with different data structures and supports data accumulation for scenarios where data is received in batches. - -## Inputs -| Input | Description | -|-------|-------------| -| Data | The dataset to sample from. This can be a single dictionary, a list of dictionaries, or a list of lists. | -| Sample Size | The number of items to select from the dataset. | -| Sampling Method | The technique used to select the sample. Options include random, systematic, top, bottom, stratified, weighted, reservoir, and cluster sampling. | -| Accumulate | A flag indicating whether to accumulate data before sampling. This is useful for scenarios where data is received in batches. | -| Random Seed | An optional value to ensure reproducible random sampling. | -| Stratify Key | The key to use for stratified sampling (required when using the stratified sampling method). | -| Weight Key | The key to use for weighted sampling (required when using the weighted sampling method). | -| Cluster Key | The key to use for cluster sampling (required when using the cluster sampling method). | - -## Outputs -| Output | Description | -|--------|-------------| -| Sampled Data | The selected subset of the input data. | -| Sample Indices | The indices of the sampled items in the original dataset. | - -## Possible use case -A data scientist working with a large customer dataset wants to create a representative sample for analysis. They could use this Data Sampling block to select a smaller subset of customers using stratified sampling, ensuring that the sample maintains the same proportions of different customer segments as the full dataset. \ No newline at end of file diff --git a/docs/integrations/search.md b/docs/integrations/search.md deleted file mode 100644 index bc6e775233..0000000000 --- a/docs/integrations/search.md +++ /dev/null @@ -1,72 +0,0 @@ -# Search - -Blocks for web searching, content extraction, and information retrieval from various search engines and APIs. - - -## Get Wikipedia Summary - -### What it is -This block fetches the summary of a given topic from Wikipedia. - -### How it works - -The block sends a request to Wikipedia's API with the provided topic. It then extracts the summary from the response and returns it. If there's an error during this process, it will return an error message instead. - - -### Inputs - -| Input | Description | Type | Required | -|-------|-------------|------|----------| -| topic | The topic to fetch the summary for | str | Yes | - -### Outputs - -| Output | Description | Type | -|--------|-------------|------| -| error | Error message if the summary cannot be retrieved | str | -| summary | The summary of the given topic | str | - -### Possible use case - -A student researching for a project could use this block to quickly get overviews of various topics, helping them decide which areas to focus on for more in-depth study. - - ---- - -## Google Maps Search - -### What it is -This block searches for local businesses using Google Maps API. - -### How it works - -This block uses the Google Maps Places API to search for businesses and locations based on a query. Configure radius (up to 50km) to limit the search area and max_results (up to 60) to control how many places are returned. - -Each place result includes name, address, rating, reviews, and geographic coordinates for integration with mapping or navigation workflows. - - -### Inputs - -| Input | Description | Type | Required | -|-------|-------------|------|----------| -| query | Search query for local businesses | str | Yes | -| radius | Search radius in meters (max 50000) | int | No | -| max_results | Maximum number of results to return (max 60) | int | No | - -### Outputs - -| Output | Description | Type | -|--------|-------------|------| -| error | Error message if the operation failed | str | -| place | Place found | Place | - -### Possible use case - -**Lead Generation**: Find businesses in a specific area for sales outreach. - -**Competitive Analysis**: Search for competitors in target locations to analyze their presence and ratings. - -**Local SEO**: Gather data on local businesses for market research or directory building. - - ---- diff --git a/docs/integrations/text.md b/docs/integrations/text.md deleted file mode 100644 index e47375196c..0000000000 --- a/docs/integrations/text.md +++ /dev/null @@ -1,494 +0,0 @@ -# Text - -Blocks for text processing including formatting, extraction, transformation, splitting, combining, and template rendering. - - -## Code Extraction - -### What it is -Extracts code blocks from text and identifies their programming languages - -### How it works - -This block parses text content (typically from AI responses) and extracts code blocks enclosed in markdown-style triple backticks. It identifies the programming language from the code fence annotation (e.g., ```python) and routes each extracted code block to the appropriate language-specific output. - -The block supports 16 programming languages including Python, JavaScript, HTML, CSS, SQL, and more. Any text that remains after extracting all code blocks is output as "remaining_text", allowing you to process both the code and surrounding context separately. - - -### Inputs - -| Input | Description | Type | Required | -|-------|-------------|------|----------| -| text | Text containing code blocks to extract (e.g., AI response) | str | Yes | - -### Outputs - -| Output | Description | Type | -|--------|-------------|------| -| error | Error message if the operation failed | str | -| html | Extracted HTML code | str | -| css | Extracted CSS code | str | -| javascript | Extracted JavaScript code | str | -| python | Extracted Python code | str | -| sql | Extracted SQL code | str | -| java | Extracted Java code | str | -| cpp | Extracted C++ code | str | -| csharp | Extracted C# code | str | -| json_code | Extracted JSON code | str | -| bash | Extracted Bash code | str | -| php | Extracted PHP code | str | -| ruby | Extracted Ruby code | str | -| yaml | Extracted YAML code | str | -| markdown | Extracted Markdown code | str | -| typescript | Extracted TypeScript code | str | -| xml | Extracted XML code | str | -| remaining_text | Remaining text after code extraction | str | - -### Possible use case - -**AI Code Generation Pipeline**: When an AI model generates a response containing multiple code blocks (HTML, CSS, JavaScript), use this block to separate each language into individual files for a complete web component. - -**Code Review Automation**: Extract Python code from documentation or chat logs to run automated linting, testing, or security scanning on the code portions only. - -**Technical Documentation Processing**: Parse developer tutorials or README files to extract executable code samples while preserving the explanatory text for different processing paths. - - ---- - -## Combine Texts - -### What it is -This block combines multiple input texts into a single output text. - -### How it works - -The block concatenates all the input texts in the order they are provided, inserting the specified delimiter (if any) between each text. - - -### Inputs - -| Input | Description | Type | Required | -|-------|-------------|------|----------| -| input | text input to combine | List[str] | Yes | -| delimiter | Delimiter to combine texts | str | No | - -### Outputs - -| Output | Description | Type | -|--------|-------------|------| -| error | Error message if the operation failed | str | -| output | Combined text | str | - -### Possible use case - -Merging multiple parts of an address (street, city, state, zip code) into a single, formatted address string. - - ---- - -## Countdown Timer - -### What it is -This block triggers after a specified duration. - -### How it works - -The Countdown Timer block pauses workflow execution for a specified duration before continuing. You can set the delay using any combination of seconds, minutes, hours, and days. When the timer completes, it outputs your specified message (or "timer finished" by default). - -The block supports a repeat parameter, allowing the timer to fire multiple times in sequence—useful for creating periodic triggers within your workflow. The timer uses async sleep, so it doesn't block other concurrent operations in the system. - - -### Inputs - -| Input | Description | Type | Required | -|-------|-------------|------|----------| -| input_message | Message to output after the timer finishes | Input Message | No | -| seconds | Duration in seconds | int \| str | No | -| minutes | Duration in minutes | int \| str | No | -| hours | Duration in hours | int \| str | No | -| days | Duration in days | int \| str | No | -| repeat | Number of times to repeat the timer | int | No | - -### Outputs - -| Output | Description | Type | -|--------|-------------|------| -| error | Error message if the operation failed | str | -| output_message | Message after the timer finishes | Output Message | - -### Possible use case - -**Rate Limiting**: Add a delay between API calls to respect rate limits when processing large batches of data through external services. - -**Scheduled Notifications**: Create a workflow that waits a specific time after an event (like a form submission) before sending a follow-up email or notification. - -**Polling Workflows**: Use the repeat feature to periodically check for updates, such as monitoring a file location or checking an API endpoint every few minutes. - - ---- - -## Extract Text Information - -### What it is -This block extracts the text from the given text using the pattern (regex). - -### How it works - -The block uses regular expressions to find the specified pattern in the text. It then extracts a particular group from the match, which can be the entire match or a specific captured group. - - -### Inputs - -| Input | Description | Type | Required | -|-------|-------------|------|----------| -| text | Text to parse | Text | Yes | -| pattern | Pattern (Regex) to parse | str | Yes | -| group | Group number to extract | int | No | -| case_sensitive | Case sensitive match | bool | No | -| dot_all | Dot matches all | bool | No | -| find_all | Find all matches | bool | No | - -### Outputs - -| Output | Description | Type | -|--------|-------------|------| -| error | Error message if the operation failed | str | -| positive | Extracted text | str | -| negative | Original text | str | -| matched_results | List of matched results | List[str] | -| matched_count | Number of matched results | int | - -### Possible use case - -Extracting phone numbers or email addresses from a large body of text, such as a customer database. - - ---- - -## Fill Text Template - -### What it is -This block formats the given texts using the format template. - -### How it works - -The block uses a template engine to replace placeholders in the format string with the provided values. It supports both simple placeholder replacement and more complex operations like loops. - - -### Inputs - -| Input | Description | Type | Required | -|-------|-------------|------|----------| -| values | Values (dict) to be used in format. These values can be used by putting them in double curly braces in the format template. e.g. {{value_name}}. | Dict[str, Any] | Yes | -| format | Template to format the text using `values`. Use Jinja2 syntax. | str | Yes | -| escape_html | Whether to escape special characters in the inserted values to be HTML-safe. Enable for HTML output, disable for plain text. | bool | No | - -### Outputs - -| Output | Description | Type | -|--------|-------------|------| -| error | Error message if the operation failed | str | -| output | Formatted text | str | - -### Possible use case - -Generating personalized email messages by filling a template with customer-specific information like name, order details, or account status. - - ---- - -## Get Current Date - -### What it is -This block outputs the current date with an optional offset. - -### How it works - -This block retrieves the current date from the system clock and formats it according to your preferences. You can specify an offset in days to get past or future dates (negative values for past dates, positive for future). - -The block supports two format types: strftime (customizable format strings like "%Y-%m-%d" or "%B %d, %Y") and ISO 8601 (standard format YYYY-MM-DD). You can also configure the timezone—either specify a specific timezone or use the user's profile timezone setting. - - -### Inputs - -| Input | Description | Type | Required | -|-------|-------------|------|----------| -| trigger | Trigger any data to output the current date | str | Yes | -| offset | Offset in days from the current date | int \| str | No | -| format_type | Format type for date output (strftime with custom format or ISO 8601) | Format Type | No | - -### Outputs - -| Output | Description | Type | -|--------|-------------|------| -| error | Error message if the operation failed | str | -| date | Current date in the specified format (default: YYYY-MM-DD) | str | - -### Possible use case - -**Daily Report Generation**: Use the current date as a filename suffix or report header when generating automated daily summaries or exports. - -**Deadline Tracking**: Calculate dates relative to today using the offset feature—for example, find the date 30 days from now for payment due dates or project milestones. - -**Date-Based Filtering**: Get today's date to filter records, events, or tasks that are relevant to the current day in your workflow. - - ---- - -## Get Current Date And Time - -### What it is -This block outputs the current date and time. - -### How it works - -This block outputs the current date and time from the system clock, formatted according to your specifications. It supports both strftime custom formats (like "%Y-%m-%d %H:%M:%S") and ISO 8601/RFC 3339 format for maximum compatibility with APIs and databases. - -You can configure the timezone to use either a specific timezone (e.g., "America/New_York") or the user's profile timezone. The ISO 8601 format option includes an optional microseconds precision setting for applications requiring high-resolution timestamps. - - -### Inputs - -| Input | Description | Type | Required | -|-------|-------------|------|----------| -| trigger | Trigger any data to output the current date and time | str | Yes | -| format_type | Format type for date and time output (strftime with custom format or ISO 8601/RFC 3339) | Format Type | No | - -### Outputs - -| Output | Description | Type | -|--------|-------------|------| -| error | Error message if the operation failed | str | -| date_time | Current date and time in the specified format (default: YYYY-MM-DD HH:MM:SS) | str | - -### Possible use case - -**Audit Logging**: Add precise timestamps to records when logging user actions, system events, or data changes in your workflow. - -**API Requests**: Generate ISO 8601 formatted timestamps required by many REST APIs for request authentication or data submission. - -**Scheduling Logic**: Compare the current date/time against scheduled events to trigger time-sensitive automations like sending reminders or processing batch jobs. - - ---- - -## Get Current Time - -### What it is -This block outputs the current time. - -### How it works - -This block outputs just the current time (without date) from the system clock. It supports strftime custom formats (like "%H:%M:%S" for 24-hour time or "%I:%M %p" for 12-hour time with AM/PM) and ISO 8601 time format. - -The timezone can be configured to a specific timezone or to use the user's profile timezone setting. When using ISO 8601 format, the output includes the timezone offset and an optional microseconds component for precision timing needs. - - -### Inputs - -| Input | Description | Type | Required | -|-------|-------------|------|----------| -| trigger | Trigger any data to output the current time | str | Yes | -| format_type | Format type for time output (strftime with custom format or ISO 8601) | Format Type | No | - -### Outputs - -| Output | Description | Type | -|--------|-------------|------| -| error | Error message if the operation failed | str | -| time | Current time in the specified format (default: %H:%M:%S) | str | - -### Possible use case - -**Business Hours Check**: Get the current time to determine if a request falls within business hours and route it accordingly (live support vs. after-hours message). - -**Time-Based Greetings**: Generate personalized greetings ("Good morning", "Good afternoon") based on the current time of day. - -**Shift Scheduling**: Determine which team or process should handle a task based on the current time and configured shift schedules. - - ---- - -## Match Text Pattern - -### What it is -Matches text against a regex pattern and forwards data to positive or negative output based on the match. - -### How it works - -The block uses regular expressions to search for the specified pattern within the input text. It considers options like case sensitivity and whether the dot should match all characters. - - -### Inputs - -| Input | Description | Type | Required | -|-------|-------------|------|----------| -| text | Text to match | Text | Yes | -| match | Pattern (Regex) to match | str | Yes | -| data | Data to be forwarded to output | Data | Yes | -| case_sensitive | Case sensitive match | bool | No | -| dot_all | Dot matches all | bool | No | - -### Outputs - -| Output | Description | Type | -|--------|-------------|------| -| error | Error message if the operation failed | str | -| positive | Output data if match is found | Positive | -| negative | Output data if match is not found | Negative | - -### Possible use case - -Filtering customer feedback messages based on specific keywords or phrases to categorize them as positive or negative reviews. - - ---- - -## Text Decoder - -### What it is -Decodes a string containing escape sequences into actual text - -### How it works - -This block processes a text string and converts escape sequences (like \n, \t, \\, \uXXXX) into their actual character representations. For example, the literal text "Hello\nWorld" becomes "Hello" followed by an actual newline, then "World". - -This is useful when working with data from APIs or files where escape sequences are stored as literal text rather than being interpreted as special characters. The block handles standard escape sequences including newlines, tabs, Unicode characters, and more. - - -### Inputs - -| Input | Description | Type | Required | -|-------|-------------|------|----------| -| text | A string containing escaped characters to be decoded | str | Yes | - -### Outputs - -| Output | Description | Type | -|--------|-------------|------| -| error | Error message if the operation failed | str | -| decoded_text | The decoded text with escape sequences processed | str | - -### Possible use case - -**JSON Data Processing**: When parsing JSON strings that contain escaped characters (like "\n" for newlines in a message field), decode them to display properly formatted text to users. - -**Log File Processing**: Process log entries where special characters are escaped, converting them to their actual representations for proper parsing or display. - -**API Response Handling**: Decode text from APIs that return escaped content, ensuring special characters like tabs and newlines render correctly in your output. - - ---- - -## Text Replace - -### What it is -This block is used to replace a text with a new text. - -### How it works - -This block performs a simple find-and-replace operation on text. It searches for all occurrences of the "old" string within your input text and replaces each one with the "new" string. The replacement is case-sensitive and matches exact strings. - -Unlike regex-based replacements, this block performs literal string matching, making it straightforward and predictable for common text substitution tasks. All instances of the target string are replaced in a single operation. - - -### Inputs - -| Input | Description | Type | Required | -|-------|-------------|------|----------| -| text | The text to replace. | str | Yes | -| old | The old text to replace. | str | Yes | -| new | The new text to replace with. | str | Yes | - -### Outputs - -| Output | Description | Type | -|--------|-------------|------| -| error | Error message if the operation failed | str | -| output | The text with the replaced text. | str | - -### Possible use case - -**Data Sanitization**: Replace sensitive information like placeholder tokens with actual values, or redact personal information before displaying or storing text. - -**Template Customization**: Swap out placeholder text in templates (like "[COMPANY_NAME]" or "{{user}}") with actual values before sending emails or generating documents. - -**URL Manipulation**: Modify URLs by replacing domain names, query parameters, or path segments to redirect requests or update links dynamically. - - ---- - -## Text Split - -### What it is -This block is used to split a text into a list of strings. - -### How it works - -This block takes a text string and divides it into a list of substrings based on a specified delimiter. For example, splitting "apple,banana,cherry" by comma results in ["apple", "banana", "cherry"]. - -By default, the block also strips whitespace from each resulting substring (controlled by the "strip" option). If your input text is empty, the block returns an empty list. This is useful for parsing structured text data like CSV values, tags, or any delimited content. - - -### Inputs - -| Input | Description | Type | Required | -|-------|-------------|------|----------| -| text | The text to split. | str | Yes | -| delimiter | The delimiter to split the text by. | str | Yes | -| strip | Whether to strip the text. | bool | No | - -### Outputs - -| Output | Description | Type | -|--------|-------------|------| -| error | Error message if the operation failed | str | -| texts | The text split into a list of strings. | List[str] | - -### Possible use case - -**Tag Processing**: Split a comma-separated list of tags or keywords into individual items for processing, filtering, or database storage. - -**Line-by-Line Processing**: Split a multi-line text file by newline characters to process each line independently in your workflow. - -**Parsing User Input**: Break apart user-submitted lists (like email addresses separated by semicolons) into individual items for validation and processing. - - ---- - -## Word Character Count - -### What it is -Counts the number of words and characters in a given text. - -### How it works - -This block analyzes input text and returns two metrics: the total number of words and the total number of characters. Words are counted by splitting the text on whitespace, so "Hello World" counts as 2 words. Characters include all characters in the text, including spaces and punctuation. - -This provides a quick way to measure text length for validation, summarization checks, or content analysis without needing custom logic. - - -### Inputs - -| Input | Description | Type | Required | -|-------|-------------|------|----------| -| text | Input text to count words and characters | str | Yes | - -### Outputs - -| Output | Description | Type | -|--------|-------------|------| -| error | Error message if the counting operation failed | str | -| word_count | Number of words in the input text | int | -| character_count | Number of characters in the input text | int | - -### Possible use case - -**Content Validation**: Check if user-submitted text (like reviews or comments) meets minimum or maximum length requirements before accepting it. - -**AI Prompt Optimization**: Measure prompt length to ensure it fits within token limits before sending to language models, potentially triggering summarization if too long. - -**Social Media Preparation**: Verify that text content fits within platform character limits (like Twitter's 280 characters) before attempting to post. - - ---- diff --git a/docs/integrations/todoist.md b/docs/integrations/todoist.md deleted file mode 100644 index 65195f0b81..0000000000 --- a/docs/integrations/todoist.md +++ /dev/null @@ -1,722 +0,0 @@ -# Todoist Blocks - -## Todoist Create Label - -### What it is -A block that creates a new label in Todoist. - -### What it does -Creates a new label in Todoist with specified name, order, color and favorite status. - -### How it works -It takes label details as input, connects to Todoist API, creates the label and returns the created label's details. - -### Inputs -| Input | Description | -|-------|-------------| -| Credentials | Todoist API credentials | -| Name | Name of the label | -| Order | Optional label order | -| Color | Optional color of the label icon | -| Is Favorite | Whether label is marked as favorite | - -### Outputs -| Output | Description | -|--------|-------------| -| ID | ID of the created label | -| Name | Name of the label | -| Color | Color of the label | -| Order | Label order | -| Is Favorite | Favorite status | -| Error | Error message if request failed | - -### Possible use case -Creating new labels to organize and categorize tasks in Todoist. - ---- - -## Todoist List Labels - -### What it is -A block that retrieves all personal labels from Todoist. - -### What it does -Fetches all personal labels from the user's Todoist account. - -### How it works -Connects to Todoist API using provided credentials and retrieves all labels. - -### Inputs -| Input | Description | -|-------|-------------| -| Credentials | Todoist API credentials | - -### Outputs -| Output | Description | -|--------|-------------| -| Labels | List of complete label data | -| Label IDs | List of label IDs | -| Label Names | List of label names | -| Error | Error message if request failed | - -### Possible use case -Getting an overview of all labels to organize tasks or find specific labels. - ---- - -## Todoist Get Label - -### What it is -A block that retrieves a specific label by ID. - -### What it does -Fetches details of a specific label using its ID. - -### How it works -Uses the label ID to retrieve label details from Todoist API. - -### Inputs -| Input | Description | -|-------|-------------| -| Credentials | Todoist API credentials | -| Label ID | ID of label to retrieve | - -### Outputs -| Output | Description | -|--------|-------------| -| ID | Label ID | -| Name | Label name | -| Color | Label color | -| Order | Label order | -| Is Favorite | Favorite status | -| Error | Error message if request failed | - -### Possible use case -Looking up details of a specific label for editing or verification. - ---- - -## Todoist Create Task - -### What it is -A block that creates a new task in Todoist. - -### What it does -Creates a new task with specified content, description, project assignment and other optional parameters. - -### How it works -Takes task details and creates a new task via Todoist API. - -### Inputs -| Input | Description | -|-------|-------------| -| Credentials | Todoist API credentials | -| Content | Task content | -| Description | Optional task description | -| Project ID | Optional project to add task to | -| Section ID | Optional section to add task to | -| Parent ID | Optional parent task ID | -| Order | Optional task order | -| Labels | Optional task labels | -| Priority | Optional priority (1-4) | -| Due Date | Optional due date | -| Deadline Date | Optional deadline date | -| Assignee ID | Optional assignee | -| Duration Unit | Optional duration unit | -| Duration | Optional duration amount | - -### Outputs -| Output | Description | -|--------|-------------| -| ID | Created task ID | -| URL | Task URL | -| Complete Data | Complete task data | -| Error | Error message if request failed | - -### Possible use case -Creating new tasks with full customization of parameters. - ---- - -## Todoist Get Tasks - -### What it is -A block that retrieves active tasks from Todoist. - -### What it does -Fetches tasks based on optional filters like project, section, label etc. - -### How it works -Queries Todoist API with provided filters to get matching tasks. - -### Inputs -| Input | Description | -|-------|-------------| -| Credentials | Todoist API credentials | -| Project ID | Optional filter by project | -| Section ID | Optional filter by section | -| Label | Optional filter by label | -| Filter | Optional custom filter string | -| Lang | Optional filter language | -| IDs | Optional specific task IDs | - -### Outputs -| Output | Description | -|--------|-------------| -| IDs | List of task IDs | -| URLs | List of task URLs | -| Complete Data | Complete task data | -| Error | Error message if request failed | - -### Possible use case -Retrieving tasks matching specific criteria for review or processing. - ---- - -## Todoist Update Task - -### What it is -A block that updates an existing task. - -### What it does -Updates specified fields of an existing task. - -### How it works -Takes task ID and updated fields, applies changes via Todoist API. - -### Inputs -| Input | Description | -|-------|-------------| -| Credentials | Todoist API credentials | -| Task ID | ID of task to update | -| Content | New task content | -| Description | New description | -| Project ID | New project ID | -| Section ID | New section ID | -| Parent ID | New parent task ID | -| Order | New order | -| Labels | New labels | -| Priority | New priority | -| Due Date | New due date | -| Deadline Date | New deadline date | -| Assignee ID | New assignee | -| Duration Unit | New duration unit | -| Duration | New duration | - -### Outputs -| Output | Description | -|--------|-------------| -| Success | Whether update succeeded | -| Error | Error message if failed | - -### Possible use case -Modifying task details like due dates, priority etc. - ---- - -## Todoist Close Task - -### What it is -A block that completes/closes a task. - -### What it does -Marks a task as complete in Todoist. - -### How it works -Uses task ID to mark it complete via Todoist API. - -### Inputs -| Input | Description | -|-------|-------------| -| Credentials | Todoist API credentials | -| Task ID | ID of task to close | - -### Outputs -| Output | Description | -|--------|-------------| -| Success | Whether task was closed | -| Error | Error message if failed | - -### Possible use case -Marking tasks as done in automated workflows. - ---- - -## Todoist Reopen Task - -### What it is -A block that reopens a completed task. - -### What it does -Marks a completed task as active again. - -### How it works -Uses task ID to reactivate via Todoist API. - -### Inputs -| Input | Description | -|-------|-------------| -| Credentials | Todoist API credentials | -| Task ID | ID of task to reopen | - -### Outputs -| Output | Description | -|--------|-------------| -| Success | Whether task was reopened | -| Error | Error message if failed | - -### Possible use case -Reactivating tasks that were closed accidentally or need to be repeated. - ---- - -## Todoist Delete Task - -### What it is -A block that permanently deletes a task. - -### What it does -Removes a task completely from Todoist. - -### How it works -Uses task ID to delete via Todoist API. - -### Inputs -| Input | Description | -|-------|-------------| -| Credentials | Todoist API credentials | -| Task ID | ID of task to delete | - -### Outputs -| Output | Description | -|--------|-------------| -| Success | Whether deletion succeeded | -| Error | Error message if failed | - -### Possible use case -Removing unwanted or obsolete tasks from the system. - ---- - -## Todoist List Projects - -### What it is -A block that retrieves all projects from Todoist. - -### What it does -Fetches all projects and their details from a user's Todoist account. - -### How it works -Connects to Todoist API using provided credentials and retrieves all projects. - -### Inputs -| Input | Description | -|-------|-------------| -| Credentials | Todoist API credentials | - -### Outputs -| Output | Description | -|--------|-------------| -| Names List | List of project names | -| IDs List | List of project IDs | -| URL List | List of project URLs | -| Complete Data | Complete project data | -| Error | Error message if request failed | - -### Possible use case -Getting an overview of all projects for organization or automation. - ---- - -## Todoist Create Project - -### What it is -A block that creates a new project in Todoist. - -### What it does -Creates a new project with specified name, parent project, color and other settings. - -### How it works -Takes project details and creates via Todoist API. - -### Inputs -| Input | Description | -|-------|-------------| -| Credentials | Todoist API credentials | -| Name | Name of the project | -| Parent ID | Optional parent project ID | -| Color | Optional color of project icon | -| Is Favorite | Whether project is favorite | -| View Style | Display style (list/board) | - -### Outputs -| Output | Description | -|--------|-------------| -| Success | Whether creation succeeded | -| Error | Error message if failed | - -### Possible use case -Creating new projects programmatically for workflow automation. - ---- - -## Todoist Get Project - -### What it is -A block that retrieves details for a specific project. - -### What it does -Fetches complete details of a single project by ID. - -### How it works -Uses project ID to retrieve details via Todoist API. - -### Inputs -| Input | Description | -|-------|-------------| -| Credentials | Todoist API credentials | -| Project ID | ID of project to get | - -### Outputs -| Output | Description | -|--------|-------------| -| Project ID | ID of the project | -| Project Name | Name of the project | -| Project URL | URL of the project | -| Complete Data | Complete project data | -| Error | Error message if failed | - -### Possible use case -Looking up project details for verification or editing. - ---- - -## Todoist Update Project - -### What it is -A block that updates an existing project. - -### What it does -Updates specified fields of an existing project. - -### How it works -Takes project ID and updated fields, applies via Todoist API. - -### Inputs -| Input | Description | -|-------|-------------| -| Credentials | Todoist API credentials | -| Project ID | ID of project to update | -| Name | New project name | -| Color | New color for icon | -| Is Favorite | New favorite status | -| View Style | New display style | - -### Outputs -| Output | Description | -|--------|-------------| -| Success | Whether update succeeded | -| Error | Error message if failed | - -### Possible use case -Modifying project settings or reorganizing projects. - ---- - -## Todoist Delete Project - -### What it is -A block that deletes a project and its contents. - -### What it does -Permanently removes a project including sections and tasks. - -### How it works -Uses project ID to delete via Todoist API. - -### Inputs -| Input | Description | -|-------|-------------| -| Credentials | Todoist API credentials | -| Project ID | ID of project to delete | - -### Outputs -| Output | Description | -|--------|-------------| -| Success | Whether deletion succeeded | -| Error | Error message if failed | - -### Possible use case -Removing completed or obsolete projects. - ---- - -## Todoist List Collaborators - -### What it is -A block that retrieves collaborators on a project. - -### What it does -Fetches all collaborators and their details for a specific project. - -### How it works -Uses project ID to get collaborator list via Todoist API. - -### Inputs -| Input | Description | -|-------|-------------| -| Credentials | Todoist API credentials | -| Project ID | ID of project to check | - -### Outputs -| Output | Description | -|--------|-------------| -| Collaborator IDs | List of collaborator IDs | -| Collaborator Names | List of collaborator names | -| Collaborator Emails | List of collaborator emails | -| Complete Data | Complete collaborator data | -| Error | Error message if failed | - -### Possible use case -Managing project sharing and collaboration. - ---- - -## Todoist List Sections - -### What it is -A block that retrieves sections from Todoist. - -### What it does -Fetches all sections, optionally filtered by project. - -### How it works -Connects to Todoist API to retrieve sections list. - -### Inputs -| Input | Description | -|-------|-------------| -| Credentials | Todoist API credentials | -| Project ID | Optional project filter | - -### Outputs -| Output | Description | -|--------|-------------| -| Names List | List of section names | -| IDs List | List of section IDs | -| Complete Data | Complete section data | -| Error | Error message if failed | - -### Possible use case -Getting section information for task organization. - ---- - -## Todoist Get Section - -### What it is -A block that retrieves details for a specific section. - -### What it does -Fetches complete details of a single section by ID. - -### How it works -Uses section ID to retrieve details via Todoist API. - -### Inputs -| Input | Description | -|-------|-------------| -| Credentials | Todoist API credentials | -| Section ID | ID of section to get | - -### Outputs -| Output | Description | -|--------|-------------| -| ID | Section ID | -| Project ID | Parent project ID | -| Order | Section order | -| Name | Section name | -| Error | Error message if failed | - -### Possible use case -Looking up section details for task management. - ---- - -## Todoist Delete Section - -### What it is -A block that deletes a section and its tasks. - -### What it does -Permanently removes a section including all tasks. - -### How it works -Uses section ID to delete via Todoist API. - -### Inputs -| Input | Description | -|-------|-------------| -| Credentials | Todoist API credentials | -| Section ID | ID of section to delete | - -### Outputs -| Output | Description | -|--------|-------------| -| Success | Whether deletion succeeded | -| Error | Error message if failed | - -### Possible use case -Removing unused sections or reorganizing projects. - ---- - -## Todoist Create Comment - -### What it is -A block that creates a new comment on a Todoist task or project. - -### What it does -Creates a comment with specified content on either a task or project. - -### How it works -Takes comment content and task/project ID, creates comment via Todoist API. - -### Inputs -| Input | Description | -|-------|-------------| -| Credentials | Todoist API credentials | -| Content | Comment content | -| ID Type | Task ID or Project ID to comment on | -| Attachment | Optional file attachment | - -### Outputs -| Output | Description | -|--------|-------------| -| ID | ID of created comment | -| Content | Comment content | -| Posted At | Comment timestamp | -| Task ID | Associated task ID | -| Project ID | Associated project ID | -| Error | Error message if request failed | - -### Possible use case -Adding notes and comments to tasks or projects automatically. - ---- - -## Todoist Get Comments - -### What it is -A block that retrieves all comments for a task or project. - -### What it does -Fetches all comments associated with a specific task or project. - -### How it works -Uses task/project ID to get comments list via Todoist API. - -### Inputs -| Input | Description | -|-------|-------------| -| Credentials | Todoist API credentials | -| ID Type | Task ID or Project ID to get comments for | - -### Outputs -| Output | Description | -|--------|-------------| -| Comments | List of comments | -| Error | Error message if request failed | - -### Possible use case -Reviewing comment history on tasks or projects. - ---- - -## Todoist Get Comment - -### What it is -A block that retrieves a specific comment by ID. - -### What it does -Fetches details of a single comment using its ID. - -### How it works -Uses comment ID to retrieve details via Todoist API. - -### Inputs -| Input | Description | -|-------|-------------| -| Credentials | Todoist API credentials | -| Comment ID | ID of comment to retrieve | - -### Outputs -| Output | Description | -|--------|-------------| -| Content | Comment content | -| ID | Comment ID | -| Posted At | Comment timestamp | -| Project ID | Associated project ID | -| Task ID | Associated task ID | -| Attachment | Optional file attachment | -| Error | Error message if request failed | - -### Possible use case -Looking up specific comment details for reference. - ---- - -## Todoist Update Comment - -### What it is -A block that updates an existing comment. - -### What it does -Updates the content of a specific comment. - -### How it works -Takes comment ID and new content, updates via Todoist API. - -### Inputs -| Input | Description | -|-------|-------------| -| Credentials | Todoist API credentials | -| Comment ID | ID of comment to update | -| Content | New content for the comment | - -### Outputs -| Output | Description | -|--------|-------------| -| Success | Whether update succeeded | -| Error | Error message if request failed | - -### Possible use case -Modifying existing comments to fix errors or update information. - ---- - -## Todoist Delete Comment - -### What it is -A block that deletes a comment. - -### What it does -Permanently removes a comment from a task or project. - -### How it works -Uses comment ID to delete via Todoist API. - -### Inputs -| Input | Description | -|-------|-------------| -| Credentials | Todoist API credentials | -| Comment ID | ID of comment to delete | - -### Outputs -| Output | Description | -|--------|-------------| -| Success | Whether deletion succeeded | -| Error | Error message if request failed | - -### Possible use case -Removing outdated or incorrect comments from tasks/projects. diff --git a/docs/integrations/youtube.md b/docs/integrations/youtube.md deleted file mode 100644 index 2ff32a8b0d..0000000000 --- a/docs/integrations/youtube.md +++ /dev/null @@ -1,26 +0,0 @@ -## Transcribe YouTube Video - -### What it is -A block that transcribes the audio content of a YouTube video into text. - -### What it does -This block takes a YouTube video URL as input and produces a text transcript of the video's audio content. It also extracts and provides the unique video ID associated with the YouTube video. - -### How it works -The block first extracts the video ID from the provided YouTube URL. It then uses this ID to fetch the video's transcript, preferring English when available. If an English transcript is not available, the block will automatically use the first available transcript in any other language (prioritizing manually created transcripts over auto-generated ones). The transcript is processed and formatted into a readable text format. If any errors occur during this process, the block will capture and report them. - -### Inputs -| Input | Description | -|-------|-------------| -| YouTube URL | The web address of the YouTube video you want to transcribe. This can be in various formats, such as a standard watch URL, a shortened URL, or an embed URL. | - -### Outputs -| Output | Description | -|--------|-------------| -| Video ID | The unique identifier for the YouTube video, extracted from the input URL. | -| Transcript | The full text transcript of the video's audio content. | -| Error | Any error message that occurs if the transcription process fails. | - -### Possible use case -A content creator could use this block to automatically generate subtitles for their YouTube videos. They could also use it to create text-based summaries of video content for SEO purposes or to make their content more accessible to hearing-impaired viewers. The automatic language fallback feature ensures that transcripts can be obtained even from videos that only have subtitles in non-English languages. -