Overview
Blocks are the building blocks of workflows. Each block performs a specific action: navigating a website, extracting data, downloading files, sending emails, or controlling flow. Blocks are defined in theworkflow_definition.blocks array and execute in sequence. You can use JSON or YAML format.
Quick Reference
| Block Type | Use this to |
|---|---|
navigation | Navigate websites and take actions with a goal |
action | Take a single action on the current page |
extraction | Extract structured data from a page |
login | Authenticate using stored credentials |
task | Legacy block combining navigation and extraction |
task_v2 | Simplified task block using natural language prompts |
validation | Assert conditions and control workflow flow |
conditional | Branch workflow based on conditions |
for_loop | Iterate over arrays and repeat nested blocks |
goto_url | Navigate directly to a URL |
file_download | Download files from websites |
file_url_parser | Parse CSV, Excel, or PDF files |
pdf_parser | Parse PDF files specifically (deprecated) |
download_to_s3 | Download a file from URL to S3 |
upload_to_s3 | Upload workflow files to S3 |
file_upload | Upload files to S3 or Azure storage |
http_request | Make HTTP API calls |
send_email | Send emails with attachments |
code | Execute custom Python code |
text_prompt | Make LLM calls for text generation |
print_page | Save current page as PDF |
wait | Pause execution for a duration |
human_interaction | Pause for human approval via email |
Common Parameters
These parameters are available on all block types:Required. Unique identifier for this block within the workflow. Used for referencing outputs as
{{label_output}}.If
true, workflow continues even if this block fails.If
true and inside a loop, skips to next iteration on failure.Label of the next block to execute. If omitted, uses sequential order.
Override model configuration for this block.
Navigation & Interaction Blocks
Navigation
Navigate through websites to take actions with a natural language goal.Natural language description of what to do. Include when to COMPLETE or TERMINATE.
Starting URL. If omitted, continues from previous block’s page.
Display title for this block.
AI engine:
skyvern-1.0 or skyvern-2.0.Maximum steps this block can take.
Number of retry attempts on failure.
Parameters this block can access.
Map conditions to custom error codes.
Complete when a file download is triggered.
Filename for the downloaded file.
Natural language condition for completion.
Natural language condition for termination.
TOTP credential identifier for 2FA.
Disable caching for this block.
Action
Take a single action on the current page without navigation.Description of the action to take.
URL to navigate to first.
navigation block.
Login
Authenticate to a website using stored credentials.Login page URL.
Additional instructions for complex login flows.
Parameters including credential reference.
navigation block.
Goto URL
Navigate directly to a URL without any AI processing.URL to navigate to.
Data Extraction Blocks
Extraction
Extract structured data from a page without taking any actions.What data to extract.
URL to extract from. If omitted, uses current page.
JSON Schema for the output structure.
AI engine to use.
Parameters this block can access.
Text Prompt
Make an LLM call for text generation or analysis.The prompt to send to the LLM.
Model to use (e.g.,
OPENAI_GPT4O).Schema for structured output.
Parameters available in the prompt.
Control Flow Blocks
Validation
Assert conditions using the LLM to control workflow flow.Condition that must be true to continue.
Condition that terminates the workflow.
Parameters to evaluate.
Conditional
Branch workflow execution based on conditions.List of conditions and their target blocks.
jinja2_template or prompt.Jinja2 expression or natural language prompt.
Block to execute if condition is true.
If true, this branch is used when no conditions match.
For Loop
Iterate over an array and execute nested blocks for each item.Blocks to execute for each iteration.
Parameter containing the array to iterate.
If
true, completes successfully when array is empty.Accessing the current item: Use
{{nested_block_label.current_value}} to reference the current iteration value, where nested_block_label is the label of the block inside loop_blocks.File Operation Blocks
File Download
Navigate to download a file from a website.How to find and download the file.
Starting URL.
Filename for the downloaded file.
Timeout in seconds for download.
SKYVERN_DOWNLOAD_DIRECTORY.
File URL Parser
Download and parse a file from a URL.URL of the file to parse.
One of:
csv, excel, pdf.Schema for structured extraction.
Upload to S3
Upload files from the workflow to S3 storage.Path to the file to upload.
File Upload
Upload downloaded files to AWS S3 or Azure Blob storage.Set to
s3 for AWS S3.AWS access key.
AWS secret key.
Target S3 bucket name.
AWS region.
Path to the file to upload.
Print Page
Save the current browser page as a PDF file.Custom filename for the PDF.
Page format:
A4, Letter, Legal, or Tabloid.Print in landscape orientation.
Include background colors and images.
Integration Blocks
HTTP Request
Make HTTP API calls to external services.URL to make the request to.
HTTP method: GET, POST, PUT, DELETE, etc.
HTTP headers as key-value pairs.
Request body (for POST, PUT, etc.).
Request timeout in seconds.
Send Email
Send an email with optional attachments.Parameter key for SMTP host.
Parameter key for SMTP port.
Parameter key for SMTP username.
Parameter key for SMTP password.
Sender email address.
List of recipient email addresses.
Email subject line.
Email body content.
Files to attach. Use
SKYVERN_DOWNLOAD_DIRECTORY for downloaded files.Human Interaction
Pause the workflow and send an email requesting human approval.How long to wait for a response (in seconds).
Email address to send from.
List of email addresses to notify.
Email subject line.
Email body content.
Instructions shown in the approval interface.
Label for the approval button.
Label for the rejection button.
Utility Blocks
Code
Execute custom Python code for data transformation or browser control.Python code to execute. Store result in
result variable.Parameters available to the code.
skyvern_page (Playwright page object for browser control).
Code Block with browser control is invite-only on Skyvern Cloud. Contact [email protected] for access.
Wait
Pause workflow execution for a specified duration.Seconds to wait.
Legacy Blocks
Task
Legacy block combining navigation and extraction.Task V2
Simplified task block using natural language prompts.Natural language description of the task.
Starting URL.
Maximum number of iterations.
task_v2 does not use parameter_keys. All workflow parameters and block outputs are automatically available in prompt and url.Block Outputs
Every block produces an output accessible by other blocks as{{label_output}}. The output shape depends on the block type:
| Block Type | Output |
|---|---|
| Navigation / Action / Login / File Download | null on success (effect is browser state change) |
| Extraction | Matches the data_schema you provide |
| Task | null when only navigation_goal is set; matches data_schema when data_extraction_goal is set |
| Code | Value of the result variable |
| Text Prompt | LLM response, structured according to json_schema |
| File Parser | Parsed file content |
| For Loop | Array of outputs, one per iteration |
| HTTP Request | Response body (JSON if applicable) |
| Upload / File Upload | Storage URL of uploaded file |
| Print Page | File path of saved PDF |
| Validation / Conditional / Wait / Send Email | null (control-flow blocks) |
Error Code Mapping
Several blocks accept anerror_code_mapping parameter to map custom error codes to natural language descriptions:
Finally Block
Designate any block as a “finally” block that always executes when the workflow ends:next_block_label).
Next Steps
Parameters & Context
Learn how to use parameters and pass data between blocks
Running Workflows
Execute workflows and retrieve results
Creating Workflows
Build workflows with SDK, API, or UI