---
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.

<Note>
New to Skyvern? Start with [Getting Started](/cloud/getting-started) to run your first task.
</Note>

---

## 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.

<Frame>
  <img src="/images/cloud/discover-page-annotated.png" alt="The Discover page with annotations" />
</Frame>

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.

<Frame>
  <img src="/images/cloud/proxy-location-example.gif" alt="Selecting UK proxy and seeing GBP prices" />
</Frame>

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

<Frame>
  <img src="/images/cloud/proxy-location-dropdown.png" alt="Proxy location dropdown showing available countries" />
</Frame>

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

<Frame>
  <img src="/images/cloud/data-schema-editor.png" alt="Data schema JSON editor" />
</Frame>

```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" }
        }
      }
    }
  }
}
```

<Note>
A schema doesn't guarantee all fields are populated. If the data isn't on the page, fields return `null`.
</Note>

---

## Configure your task

Click the gear icon to access all task settings. Here's what each one does:

<Frame>
  <img src="/images/cloud/task-settings-panel.png" alt="Task settings panel" />
</Frame>

### 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. |

<Warning>
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.
</Warning>

### 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.

<Frame>
  <img src="/images/cloud/live-execution-view.png" alt="Live browser view during task execution" />
</Frame>

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.

<Frame>
  <img src="/images/cloud/take-control-demo.gif" alt="Taking control of the browser to solve a CAPTCHA" />
</Frame>

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.

<Frame>
  <img src="/images/cloud/task-results-header.png" alt="Task results page header" />
</Frame>

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:

<Frame>
  <img src="/images/cloud/extracted-data-section.png" alt="Extracted data JSON display" />
</Frame>

```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:

<Frame>
  <img src="/images/cloud/results-tabs-overview.png" alt="Results tabs showing Actions, Recording, Parameters, Diagnostics" />
</Frame>

**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.

<Frame>
  <img src="/images/cloud/actions-tab-detail.png" alt="Actions tab with step-by-step screenshots" />
</Frame>

**Recording** — Full video replay of the browser session. Scrub through to see exactly what happened.

<Frame>
  <img src="/images/cloud/recording-tab.png" alt="Recording tab with video player" />
</Frame>

**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.

<Frame>
  <img src="/images/cloud/publish-workflow-toggle.png" alt="Publish workflow toggle in settings" />
</Frame>

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?

<CardGroup cols={2}>
  <Card
    title="Build a Workflow"
    icon="diagram-project"
    href="/multi-step-automations/build-a-workflow"
  >
    Create multi-step automations with the visual workflow builder
  </Card>
  <Card
    title="Extract Structured Data"
    icon="table"
    href="/running-automations/extract-structured-data"
  >
    Pull structured data from websites into JSON format
  </Card>
</CardGroup>
