--- title: Running Tasks subtitle: Go deeper with task configuration in the Cloud UI slug: cloud/running-tasks --- You've run your first task. Now let's explore what else you can do—access websites as if you're in another country, extract structured data into JSON, watch the AI work in real-time, and turn successful tasks into reusable workflows. New to Skyvern? Start with [Getting Started](/cloud/getting-started) to run your first task. --- ## The Discover page The **Discover** page is where you run ad-hoc tasks. Open [app.skyvern.com](https://app.skyvern.com) and you'll land here. The Discover page with annotations You'll see two main areas: **The Prompt Box** — Enter a URL and describe what you want Skyvern to do. Click the gear icon to access advanced settings before running. **Workflow Templates** — A carousel of pre-built automations for common tasks. Click any template to see how it's built, or use it as a starting point for your own. Tasks are flexible. You can: - Extract data from any website without writing scrapers - Fill out forms with data you provide - Navigate multi-page flows (search → filter → extract) - Download files like invoices and reports - Monitor prices, inventory, or content changes The power comes from combining a clear prompt with the right settings. Let's walk through the key configurations. --- ## Access geo-restricted content You're trying to scrape product prices from a UK retailer. But when you run the task, you see USD prices—the site detected you're in the US and redirected you. This is where **Proxy Location** changes everything. Selecting UK proxy and seeing GBP prices Skyvern routes your browser through residential IP addresses worldwide. The site sees a real UK visitor, shows GBP prices, and doesn't block you. **To set it up:** 1. Click the gear icon to open settings 2. Find **Proxy Location** in the dropdown 3. Select the country you need Proxy location dropdown showing available countries Available locations include United States (default), United Kingdom, Germany, France, Japan, Australia, Canada, Brazil, and more. Select **None** if you're accessing internal tools that don't need a proxy. The browser's timezone adjusts automatically to match the proxy location. Sites that check for mismatches between IP and timezone won't flag you. --- ## Extract structured data By default, Skyvern returns whatever data makes sense for your prompt. For consistent output you can process programmatically, define a **Data Schema**. Say you're extracting product information. Without a schema, you might get: ```json {"info": "The product costs $79.99 and is in stock"} ``` With a schema, you get predictable fields: ```json { "product_name": "Wireless Headphones", "price": 79.99, "in_stock": true } ``` **To set it up:** 1. Click the gear icon to open settings 2. Scroll to **Data Schema** 3. Enter a JSON Schema defining your fields Data schema JSON editor ```json { "type": "object", "properties": { "product_name": { "type": "string", "description": "The full product name" }, "price": { "type": "number", "description": "Current price in USD, without currency symbol" }, "in_stock": { "type": "boolean", "description": "Whether the product is currently available" } } } ``` The `description` field is crucial—it tells the AI exactly what to look for. "Price in USD without currency symbol" works better than just "the price." **Extracting lists:** Need multiple items? Wrap your fields in an array: ```json { "type": "object", "properties": { "products": { "type": "array", "description": "Top 5 search results", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "Product name" }, "price": { "type": "number", "description": "Price in USD" } } } } } } ``` A schema doesn't guarantee all fields are populated. If the data isn't on the page, fields return `null`. --- ## Configure your task Click the gear icon to access all task settings. Here's what each one does: Task settings panel ### Core settings | Setting | What it does | |---------|--------------| | **Navigation Goal** | Your main prompt—what should Skyvern do? | | **Navigation Payload** | JSON data to use in form fields (names, addresses, etc.) | | **Data Extraction Goal** | Describe what data you want extracted | | **Data Schema** | JSON Schema for structured output | ### Cost and limits | Setting | What it does | |---------|--------------| | **Max Steps Override** | Limit how many actions the AI can take. You're billed per step, so this caps costs. If the task hits this limit, it stops with a `timed_out` status. | Always set a max steps limit during development. A task that gets stuck in a loop will keep consuming steps until it hits this limit. ### Advanced settings | Setting | What it does | |---------|--------------| | **Proxy Location** | Route traffic through a specific country | | **Webhook Callback URL** | Receive a POST request when the task completes (instead of polling) | | **2FA Identifier** | Handle two-factor authentication during login | | **Browser Address** | Connect to your own browser for local development | | **Extra HTTP Headers** | Add custom headers (e.g., Authorization tokens) | | **Max Screenshot Scrolls** | How many times to scroll for lazy-loaded content | | **Include Action History** | Include past actions when verifying completion | --- ## Watch the live browser Once you click run, Skyvern opens a cloud browser and starts executing. You can watch it work in real-time via a live VNC stream. Live browser view during task execution The execution screen shows: | Area | What you see | |------|--------------| | **Left panel** | Task configuration—URL, prompt, current status badge | | **Center** | Live browser stream. Watch pages load, forms fill, buttons click. | | **Right panel** | Action list showing what the AI has done, with step count and cost | ### Take control of the browser See the **Take Control** button? Click it to pause the AI and control the browser yourself. Taking control of the browser to solve a CAPTCHA Use this when: - A CAPTCHA appears that the AI can't solve - The site requires an unusual login flow - You need to manually navigate past an unexpected popup Click **Stop Controlling** to hand control back to the AI. ### Stop a running task Changed your mind? Click the **Cancel** button in the header. You'll be billed for steps already taken, but no further steps will run. --- ## Review your results After the task completes, you'll see the results page. You can also find all past runs in **Runs** in the sidebar. Task results page header The header shows: - **Task ID** — Unique identifier (click to copy) - **Status badge** — `completed`, `failed`, `terminated`, `timed_out`, or `canceled` - **Rerun button** — Run the same task again - **API & Webhooks** — Copy the API command or test webhook delivery ### Extracted data If the task completed successfully, the **Extracted Information** section shows your output: Extracted data JSON display ```json { "product_name": "Wireless Bluetooth Headphones", "price": 79.99, "in_stock": true } ``` If something went wrong, you'll see **Failure Reason** with details about what happened. ### Results tabs Four tabs let you dig deeper: Results tabs showing Actions, Recording, Parameters, Diagnostics **Actions** — Step-by-step breakdown of everything the AI did. Each action shows a screenshot, what was done, and why. The right side shows total steps, actions, and cost. Actions tab with step-by-step screenshots **Recording** — Full video replay of the browser session. Scrub through to see exactly what happened. Recording tab with video player **Parameters** — The configuration you submitted: URL, navigation goal, payload, schema, proxy, and all other settings. Useful for debugging or recreating the task. **Diagnostics** — Debug information including LLM prompts and responses, element trees, and annotated screenshots. Use this when you need to understand why the AI made a specific decision. ### Understanding failures If your task failed or terminated, check these in order: 1. **Recording** — Watch what happened. Did the AI get stuck? Click the wrong thing? 2. **Actions tab** — Read the AI's reasoning for each step. Where did it go wrong? 3. **Diagnostics** — See the full LLM prompt and response to understand the decision Common fixes: - **Completed too early** → Add clearer completion criteria: "COMPLETE when you see the confirmation page with order number" - **Wrong element clicked** → Add visual descriptions: "Click the blue Submit button at the bottom of the form" - **Timed out** → Increase max steps, or simplify the task into smaller pieces --- ## Turn a task into a workflow Found a task that works well? Save it as a reusable **Workflow** so you can run it again with different inputs. Before running your task, expand Advanced Settings and toggle **Publish Workflow** on. Publish workflow toggle in settings After the task completes successfully, Skyvern creates a workflow you can find in the **Workflows** section. From there you can: - Run it again with different data - Edit the steps in the visual workflow builder - Schedule it to run automatically - Share it with your team --- ## Tips for better results ### Start simple, then iterate 1. Run with just URL and prompt first—no advanced settings 2. Watch the live browser to understand what the AI does 3. Add constraints based on what you observe ### Write better prompts The prompt drives everything. A good prompt includes: - **Clear goal** — "Get the price of the first product" not "Get product info" - **Completion criteria** — "COMPLETE when you see the order confirmation page" - **Visual hints** — "Click the blue Add to Cart button below the price" - **What to extract** — "Extract the price as a number without the currency symbol" ### Control costs - Set **Max Steps** to a reasonable limit for your task - Watch the **Actions tab** to see if steps are being wasted - Use **Data Schema** to get exactly the fields you need—nothing extra --- ## What's next? Create multi-step automations with the visual workflow builder Pull structured data from websites into JSON format