> ## Documentation Index
> Fetch the complete documentation index at: https://intunedhq.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Quickstart: Build an RPA with code

export const CLICommandTabs = ({command, withOptions = true}) => {
  if (!Array.isArray(command)) {
    command = [command];
  }
  function mapAliases(aliases) {
    return aliases.map((alias, index) => <>
        {alias}
        {index === 0 ? "" : " # Alias"}
        {"\n\n"}
      </>);
  }
  return <CodeGroup>
      <CodeBlock language="general" filename="General">
        {mapAliases(command.map(cmd => `${cmd}${withOptions ? " [options]" : ""}`))}
      </CodeBlock>

      <CodeBlock icon="python" language="uv" filename="uv">
        {mapAliases(command.map(cmd => `uv run ${cmd}${withOptions ? " [options]" : ""}`))}
      </CodeBlock>

      <CodeBlock icon="python" language="poetry" filename="poetry">
        {mapAliases(command.map(cmd => `poetry run ${cmd}${withOptions ? " [options]" : ""}`))}
      </CodeBlock>

      <CodeBlock icon="https://d3gk2c5xim1je2.cloudfront.net/devicon/typescript.svg" language="npm" filename="npm">
        {mapAliases(command.map(cmd => `npm run ${cmd}${withOptions ? " -- [options]" : ""}`))}
      </CodeBlock>

      <CodeBlock icon="https://d3gk2c5xim1je2.cloudfront.net/devicon/typescript.svg" language="yarn" filename="yarn">
        {mapAliases(command.map(cmd => `yarn ${cmd}${withOptions ? " [options]" : ""}`))}
      </CodeBlock>
    </CodeGroup>;
};

In this quickstart, you'll build an RPA automation by hand—writing the code, deploying it, and triggering it via API. It's designed to walk you through the core platform concepts: Projects, APIs, Runs, and deployment.

If you'd rather skip the manual steps and have AI build your automation, see the [Intuned Agent RPA quickstart](/docs/00-getting-started/quickstarts/build-an-rpa-with-intuned-agent).

## Prerequisites

* An active Intuned account ([sign up here](https://app.intuned.io)). No credit card required—Intuned has a free plan
* Basic familiarity with TypeScript or Python

## Create and deploy your first RPA

You can develop Intuned Projects in two ways:

* **Hosted projects (online IDE)** — Zero setup. Write, test, and deploy directly from your browser.
* **Connected projects (local CLI)** — Develop locally with full version control and CI/CD integration.

Choose your preferred approach below.

<Tabs>
  <Tab title="Hosted project">
    <Steps>
      <Step title="Log in and create project" icon="plus">
        1. Go to [app.intuned.io/projects](https://app.intuned.io/projects) and log in.
        2. Select **Create Project**.
        3. Select your language (TypeScript or Python).
        4. Choose the **rpa-example** template.
        5. Name it `book-consultations-quickstart`.
        6. Ensure **Hosted project** is selected as Type.
        7. Select **Create and Open**.

        <img src="https://mintcdn.com/intuned-dev/afjZxAQhak8dZFgC/assets/quickstarts/rpa_template.png?fit=max&auto=format&n=afjZxAQhak8dZFgC&q=85&s=48297a5a720e66b432e72a4446ce1fc4" alt="create-rpa-project" width="2880" height="2048" data-path="assets/quickstarts/rpa_template.png" />

        **Expected result:** The Intuned IDE opens with your project loaded.

        > **What you just got:** An **Intuned Project** groups related browser automations together. Each file in the `api/` folder becomes a callable function that controls a browser using Playwright, accepts parameters, and returns results. When you deploy this project, all its APIs go live together as a single deployable unit.
      </Step>

      <Step title="Explore the project code" icon="code">
        In the file explorer, you'll see the API file:

        **`api/book-consultations`** - A complete automation that:

        * Navigates to the booking form
        * Fills in personal details (name, email, phone)
        * Selects date, time, and consultation topic
        * Submits the form and verifies success

        **How it works:** This automation controls a browser like a human would—navigating to a website, filling form fields, clicking buttons—but executes these actions automatically based on your code and input parameters.
      </Step>

      <Step title="Run your automation in the IDE" icon="play">
        Test the automation to see it working in real-time.

        1. In the top toolbar, select **book-consultations** from the API dropdown.
        2. Select **Params #1** next to it—you'll see pre-filled test data already configured.
        3. Select the **Run** button.

                   <img src="https://mintcdn.com/intuned-dev/afjZxAQhak8dZFgC/assets/quickstart/run_ide_light_rpa.gif?s=fa1f4a60daef4a07b197199701053bf8" alt="Run RPA ide" width="2000" height="1135" data-path="assets/quickstart/run_ide_light_rpa.gif" />

        **Expected result:** The browser panel on the right shows the automation executing live. You'll see it navigate to the booking form, fill in all fields, submit, and verify success. The terminal below displays the result of the Run.

        <Expandable title="result of the Run">
          ```json theme={null}
          {
            "input": {
              "name": "Jane Smith",
              "email": "jane.smith@example.com",
              "phone": "+1(555)123-4567",
              "date": "2025-12-10",
              "time": "14:30",
              "topic": "web-scraping"
            },
            "output": {
              "success": true,
              "date": "2025-12-10",
              "message": "Consultation successfully booked for 2025-12-10 at 14:30"
            }
          }
          ```
        </Expandable>
      </Step>

      <Step title="Deploy your project" icon="rocket">
        Deploy your automation to Intuned's infrastructure.

        1. Select the **Deploy** button in the top-right corner of the IDE.
        2. In the deployment dialog, select **Deploy** to start.
        3. Watch the live deployment logs until you see "Ready".

        **Expected result:** A success message appears. Your automation is now live and ready to run.
      </Step>

      <Step title="Test in the Playground" icon="circle-check">
        Now test your deployed automation through the API Playground.

        1. In the deployment success dialog, select **Run in Playground**.
        2. In the Playground, you'll see your deployed API **book-consultations** ready to call.
        3. The request body is pre-filled with test parameters. Select **Start Run** to execute.

        <Tip>
          The Playground is just an interactive way to test your deployed automation APIs. Your automation is now callable from anywhere via API—use it from your application, service, or any HTTP client. See the [API Reference](/client-apis/api-reference) for authentication and programmatic usage.
        </Tip>

        <img src="https://mintcdn.com/intuned-dev/afjZxAQhak8dZFgC/assets/quickstart/run_playground.gif?s=e2f2320a89062b7b66253f52ee2bf7cd" alt="Playground RPA run" width="2000" height="1134" data-path="assets/quickstart/run_playground.gif" />

        **Expected result:** The automation executes on Intuned's infrastructure. You'll see the run details and results in real-time.

        Your automation is now deployed and fully operational.
      </Step>
    </Steps>
  </Tab>

  <Tab title="Connected project">
    <Steps>
      <Step title="Install and create project" icon="terminal">
        Open your terminal and run:

        ```bash theme={null}
            npx create-intuned-project@latest
        ```

        When prompted:

        1. **Project name:** Enter `book-consultations-quickstart`.
        2. **Language:** Select **TypeScript** or **Python**.
        3. **Template:** Choose **rpa-example**.
        4. **Your Workspace Id:** Check [here](/main/03-how-to/manage/manage-workspace) how to find it.
        5. **Your API Key**: Check [here](/main/03-how-to/manage/manage-api-keys) how to create one.

        **Expected result:** The CLI creates a new folder `book-consultations-quickstart/` with the project structure and installs dependencies.

        > **What you just got:** An **Intuned Project** groups related browser automations together. Each file in the `api/` folder becomes a callable function that controls a browser using Playwright, accepts parameters, and returns results. When you deploy this project, all its APIs go live together as a single deployable unit.
      </Step>

      <Step title="Navigate to project directory" icon="folder">
        ```bash theme={null}
            cd book-consultations-quickstart
        ```

        <Note>
          Dependencies are installed automatically during project creation. If they weren't, install them manually:

          * **TypeScript:** `yarn install`
          * **Python:** `uv sync`
        </Note>
      </Step>

      <Step title="Explore the project code" icon="code">
        Open the `api/` folder in your code editor. You'll see the API file:

        **`api/book-consultations`** - A complete automation that:

        * Navigates to the booking form
        * Fills in personal details (name, email, phone)
        * Selects date, time, and consultation topic
        * Submits the form and verifies success

        **How it works:** This automation controls a browser like a human would—navigating to a website, filling form fields, clicking buttons—but executes these actions automatically based on your code and input parameters.
      </Step>

      <Step title="Run your automation locally" icon="play">
        Test the automation to see it working on your machine.

        Run the following command:

        <CLICommandTabs command={`intuned dev run api book-consultations '{"name": "Jane Smith", "email": "jane.smith@example.com", "phone": "+1(555)123-4567", "date": "2025-12-10", "time": "14:30", "topic": "web-scraping"}'`} withOptions={false} />

        **Expected result:** The CLI launches a browser in the background. You'll see the results in your terminal.

        <Expandable title="result of the Run">
          ```json theme={null}
          {
            "input": {
              "name": "Jane Smith",
              "email": "jane.smith@example.com",
              "phone": "+1(555)123-4567",
              "date": "2025-12-10",
              "time": "14:30",
              "topic": "web-scraping"
            },
            "output": {
              "success": true,
              "date": "2025-12-10",
              "message": "Consultation successfully booked for 2025-12-10 at 14:30"
            }
          }
          ```
        </Expandable>
      </Step>

      <Step title="Deploy your project" icon="rocket">
        Deploy your automation to Intuned's infrastructure.

        Run the deployment command:

        <CLICommandTabs command="intuned dev deploy" withOptions={false} />

        <Note>
          If your project uses environment variables or secrets, configure them in Intuned before deploying. Local `.env` files are only used during local development and are not included in deployments. Set shared values in [workspace environment variables](/main/02-features/environment-variables-secrets#workspace-level-environment-variables) or add them at the project level if they should only apply to this project.
        </Note>

        **Expected result:** You see deployment progress logs, then:

        ```bash theme={null}
        ✓ Deployment successful
        ```

        Your automation is now live and ready to run.
      </Step>

      <Step title="Test in the Playground" icon="circle-check">
        Now test your deployed automation through the API Playground.

        1. Navigate to [Playground](https://app.intuned.io/playground) in your browser.
        2. Select your project **book-consultations-quickstart** and the API **book-consultations**.
        3. The request body is pre-filled with test parameters. Select **Start Run** to execute.

        <Tip>
          The Playground is just an interactive way to test your deployed automation APIs. Your automation is now callable from anywhere via API—use it from your application, service, or any HTTP client. See the [API Reference](/client-apis/api-reference) for authentication and programmatic usage.
        </Tip>

        <img src="https://mintcdn.com/intuned-dev/afjZxAQhak8dZFgC/assets/quickstart/run_playground.gif?s=e2f2320a89062b7b66253f52ee2bf7cd" alt="Playground RPA run" width="2000" height="1134" data-path="assets/quickstart/run_playground.gif" />

        **Expected result:** The automation executes on Intuned's infrastructure. You'll see the run details and results in real-time.

        Your automation is now deployed and fully operational.
      </Step>
    </Steps>
  </Tab>
</Tabs>

## What's next?

* **[Online IDE](/main/02-features/online-ide)** — Learn more about the Intuned IDE used in this quickstart.
* **[Local development (CLI)](/main/02-features/local-development-cli)** — Learn more about the Intuned CLI used in this quickstart.
* **[Authentication](/main/02-features/auth-sessions)** — For automations that require login, Intuned provides built-in authentication support. You define how to log in and how to verify a session, and Intuned handles the rest—validating sessions before runs, reusing them when possible, and recreating them when expired.
* **[Monitoring and traces](/main/02-features/observability-monitoring-logs)** — Every run generates detailed logs, browser traces, and session recordings. Use these tools to debug failures, verify your automation is working correctly, and understand what happened during execution.
* **[Flexible automations](/main/02-features/flexible-automation)** — Build automations your way. Write deterministic code, use AI-driven extraction, or combine both in a hybrid approach. Use any library or package—Intuned is unopinionated by design.
* **[Intuned Agent quickstart](/main/00-getting-started/quickstarts/intuned-agent)** — You can write your automation logic manually like in this quickstart, or use Intuned Agent to generate automations from a prompt and schema. Intuned Agent can also help you update existing automations, fix failed runs, and iterate on your code faster.
* **[Cookbook](/main/01-learn/cookbook)** — Browse full working examples of automations and scrapers. Each example includes complete code you can use as a starting point for your own projects.
