# UI quickstart

> Source: https://docs.clonepartner.com/getting-started/ui-quickstart/

This walkthrough uses the bundled `csv-to-sqlite` task. It reads CSV records, builds a `full_name`, and upserts rows into a SQLite table.

You need an admin or superadmin account because the workflow creates connectors and starts a run.

## 1. Prepare a CSV

Create a file named `users.csv`:

```csv
id,first_name,last_name,email,status
1,Ada,Lovelace,ada@example.com,active
2,Grace,Hopper,grace@example.com,active
```

## 2. Create the CSV connector

1. Open **Connectors** and select **New Connector**.
2. Choose **CSV**.
3. Name it `Quickstart CSV`.
4. For a standard Docker deployment, set **Directory** to `/app/data`.
5. Save the connector.
6. Upload the file at `users/users.csv`.

The task reads the resource named `users`; the CSV connector resolves that to CSV files under the `users` directory.

## 3. Create the SQLite connector

1. Create another connector and choose **SQLite**.
2. Name it `Quickstart SQLite`.
3. Set **Path** to `/app/dbs/quickstart.db`.
4. Run **Test Connection**.
5. Save the connector when the test passes.

Use an absolute path under `/app/dbs` in the hardened Docker topology.

## 4. Locate the task

Open **Tasks** and select `csv-to-sqlite`. Bundled tasks are imported on first boot unless seed import was disabled for the deployment.

If the task is not present, import the supplied `tasks/csv-to-sqlite.yaml` file through **Tasks → Import**.

## 5. Run the task

1. Select **Run**.
2. Map `csv_source` to `Quickstart CSV`.
3. Map `db` to `Quickstart SQLite`.
4. Confirm the run.

Envoy creates a run record and dispatches the task to the executor. The detail page updates while the run is active.

## 6. Inspect the result

On the run detail page, check:

- status is `success`;
- the step list reached `log_result`;
- the logs do not contain a connector or filesystem error;
- the item count matches the CSV rows.

Then open **Data Explorer**, choose `Quickstart SQLite`, select the `users` table, and run a query. The rows should include `full_name` values such as `Ada Lovelace`.

## What happened

The task did not contain either path. Its YAML declared two typed connector slots:

```yaml
connectors:
  csv_source:
    type: csv
  db:
    type: sqlite
```

The run mapping supplied the actual connector records. This separation is what makes the same task reusable in another environment.

Read [Tasks and runs](/ui/tasks-and-runs) for versioning, reruns, stopping, and log handling. For exact task YAML, continue to [Task structure](/reference/tasks/task-structure).
