Projects
A Project is the fundamental unit of work in RTILA X. Think of it as a complete blueprint for a web automation task. Each project contains everything needed to tell RTILA exactly what to do: which pages to visit, which buttons to click, what data to collect, and where to send the results.
Every automation you build — whether it scrapes product prices, fills out forms, or monitors a website — lives inside a project. Understanding how projects work is the first step to mastering RTILA X.

Project Structure
Section titled “Project Structure”Every project in RTILA X contains the following components:
| Component | Type | Description |
|---|---|---|
| name | String | A human-readable display name for the project. Auto-generated if not provided. |
| settings | Object | Configuration options that control how the automation runs (URLs, timeouts, browser behavior, logging). |
| commands | Array | An ordered list of actions the automation will perform (click, fill, navigate, extract, etc.). |
| datasets | Object | Definitions of what data to extract from web pages, including selectors and property mappings. |
| triggers | Array | Post-execution actions that send your scraped data to external destinations (databases, APIs, email, etc.). |
| remote | Object | Configuration for remote execution via API (enabled flag, API key). |
| folder | String | The workspace folder this project belongs to. Defaults to “Default”. |
Settings Object
Section titled “Settings Object”The settings object inside a project controls the runtime behavior:
| Field | Type | Default | Description |
|---|---|---|---|
urls |
Array of strings | ["https://rtila.net/pub/onboarding"] |
Starting URLs the browser will visit. One URL per entry. |
headless |
Boolean | false |
If true, the browser runs without a visible window. |
ai_self_correction |
Boolean | false |
When enabled, failed scripts are automatically repaired by the AI and retried. |
network_interception_enabled |
Boolean | false |
Intercepts API responses to auto-build datasets when the project has no commands/datasets. |
navigation_timeout |
Number (ms) | 30000 |
Maximum time to wait for a page to load before giving up. |
max_concurrent_workers |
Number | 1 |
Number of parallel browser tabs to use. |
user_agent |
String or null | null |
Custom browser user-agent string. null uses the browser default. |
get_urls_from_sitemap |
Object | {enabled: false, include: [], exclude: []} |
Sitemap URL discovery settings. |
respect_robots_txt |
Boolean | false |
If true, RTILA will not visit URLs disallowed by the site’s robots.txt. |
block_resources |
Object | {enabled: false, types: []} |
Resource blocking settings to speed up page loads. |
logging |
Object | {level: 2, filename: null} |
Logging level and optional file output. |
variables |
Array | [] |
Project-scoped variables available in commands. |
browserProfileId |
String or null | null |
ID of the Browser Profile to use. null uses default settings. |
skip_initial_navigation |
Boolean | false |
Skips the initial page navigation on start. |
proxyEnabled |
Boolean | false |
Enables proxy routing. |
proxyList |
String | "" |
Newline-separated list of proxy URLs. |
proxyLevel |
String | "context" |
Proxy scope: "context" or "browser". |
matchTimezoneAndLocale |
Boolean | false |
Aligns browser timezone/locale with proxy location. |
captchaEnabled |
Boolean | false |
Enables automatic CAPTCHA solving. |
captchaProvider |
String | "2captcha" |
CAPTCHA solving service. |
captchaApiKey |
String | "" |
API key for the CAPTCHA service. |
humanoidEnabled |
Boolean | true |
Enables human-like mouse movements and typing. |
humanoidSensitivity |
String | "medium" |
Sensitivity level: "low", "medium", or "high". |
Commands Array
Section titled “Commands Array”The commands array holds the step-by-step instructions. Each command object has:
| Field | Type | Description |
|---|---|---|
command |
String | The command type (e.g., "goto", "click", "extract_data"). |
name |
String | A human-readable display name for this step. |
params |
Object | Command-specific parameters. |
then |
Array | Optional nested commands that run after this command completes. |
Datasets Object
Section titled “Datasets Object”The datasets object maps dataset names to extraction configurations:
| Field | Type | Description |
|---|---|---|
item_selector |
String | CSS/XPath selector for the repeating parent container. |
properties |
Array | List of fields to extract from each item. |
required_fields |
Array | Field names that must have values for a record to be valid. |
parent |
String or null | Name of a parent dataset for inheritance. |
Remote Object
Section titled “Remote Object”| Field | Type | Description |
|---|---|---|
enabled |
Boolean | Whether remote execution is enabled. |
api_key |
String or null | The API key for authenticating remote triggers. |
Creating Projects
Section titled “Creating Projects”There are four ways to create a new project in RTILA X:
Method 1: New Project (Manual)
Section titled “Method 1: New Project (Manual)”- Navigate to Automation Projects in the sidebar.
- Click New in the ribbon toolbar.
- The Project Settings modal opens automatically.
- Enter a project name (or keep the auto-generated spider name).
- Add your starting URL(s).
- Configure any additional settings.
- Click Save.
The project is now created and ready for you to add commands and datasets.
Method 2: Record
Section titled “Method 2: Record”- Navigate to Automation Projects.
- Click Record in the ribbon toolbar.
- A new project is created and the Visual Builder browser opens with recording active.
- Perform your actions in the browser — RTILA records every click, fill, and navigation.
- Press Alt+Shift+X (Windows/Linux) or Option+Shift+X (Mac) to stop recording.
- Return to RTILA X to review and edit the recorded commands.
Method 3: AI Assistant
Section titled “Method 3: AI Assistant”- Navigate to AI Assistant in the sidebar.
- Describe what you want to automate in plain English. For example:
“Go to https://example.com/products and extract all product names and prices.”
- The AI analyzes the page, generates commands and datasets, and creates the project.
- Click Run Project to execute it immediately.
Method 4: Import
Section titled “Method 4: Import”- Navigate to Automation Projects.
- Click Import in the ribbon toolbar.
- Select a
.jsonfile exported from another RTILA X installation. - The project is imported. If a project with the same name exists, it is renamed automatically.
Method 5: Explore Templates
Section titled “Method 5: Explore Templates”- On the AI Assistant welcome screen, click Explore Templates.
- Browse available templates organized by platform.
- Click a template to import it as a new project.
Project Settings Modal
Section titled “Project Settings Modal”The Project Settings modal is where you configure every aspect of how your automation runs. Access it by selecting a project and clicking Settings in the ribbon.

General Tab
Section titled “General Tab”Project Name
Section titled “Project Name”| Property | Details |
|---|---|
| Field | Project Name |
| Type | Text input |
| Required | Yes |
| Default | Auto-generated spider name (e.g., “Agile Tarantula - Data Extractor”) |
| Description | The display name for your project. Shown in the project list, logs, and notifications. |
RTILA X auto-generates creative spider-themed names when you create a new project. The name is composed of three parts:
- Adjective: Agile, Apex, Astral, Atomic, Bionic, Cobalt, Crimson, Cyber, Dark, Echo, Electric, Emerald, Ghost, Glitch, Hyper, Iron, Luminous, Lunar, Mecha, Neon, Ninja, Nocturnal, Onyx, Phantom, Predatory, Quantum, Shadow, Silent, Solar, Sonic, Stealthy, Stellar, Swift, Titan, Toxic, Velvet, Venomous, Void
- Species: Tarantula, Orb-Weaver, Huntsman, Wolf Spider, Jumping Spider, Widow, Recluse, Trapdoor Spider, Net-Caster, Crab Spider, Lynx Spider, Funnel-Web, Cellar Spider, Wandering Spider, Bolas Spider, Diving Spider, Weaver, Spinner, Crawler
- Capability: Data Extractor, DOM Navigator, Web Scraper, Pixel Crawler, Link Stalker, Net Spinner, Code Weaver, Site Hunter, Data Miner, Grid Walker
You can rename the project at any time.
Starting URLs
Section titled “Starting URLs”| Property | Details |
|---|---|
| Field | Starting URLs |
| Type | Multi-line textarea |
| Required | No (defaults to onboarding page) |
| Default | https://rtila.net/pub/onboarding |
| Description | The URLs your automation will visit. Enter one URL per line. |
When you have multiple URLs and multiple workers enabled, RTILA distributes URLs across workers for parallel processing.
Tip: Leave this field blank if you want to start with the default onboarding page. You can also use variables here:
https://example.com/search?q=${search_term}.
User Agent
Section titled “User Agent”| Property | Details |
|---|---|
| Field | User Agent |
| Type | Text input |
| Required | No |
| Default | null (uses browser default) |
| Description | Custom browser user-agent string. Some websites check this to determine if you’re a real browser. |
Warning: Changing the user agent can make your automation more or less detectable. Only change this if you know what you’re doing.
Navigation Timeout
Section titled “Navigation Timeout”| Property | Details |
|---|---|
| Field | Navigation Timeout |
| Type | Number (milliseconds) |
| Required | No |
| Default | 30000 (30 seconds) |
| Description | Maximum time RTILA will wait for a page to load before moving on or failing. |
Increase this value for slow websites. Decrease it if you want RTILA to fail faster on unresponsive pages.
Max Concurrent Workers
Section titled “Max Concurrent Workers”| Property | Details |
|---|---|
| Field | Max Concurrent Workers |
| Type | Number |
| Required | No |
| Default | 1 |
| Description | Number of browser tabs that run in parallel. Each worker processes a different URL from your Starting URLs list. |
Tip: More workers means faster processing but uses more RAM. Start with 1–2 workers and increase if your computer can handle it.
Headless Mode
Section titled “Headless Mode”| Property | Details |
|---|---|
| Field | Run in headless mode |
| Type | Checkbox |
| Required | No |
| Default | Unchecked (browser is visible) |
| Description | When enabled, the browser runs without a visible window. Useful for scheduled/background runs. |
Warning: Some websites detect headless browsers more easily. If your automation fails in headless mode, try disabling it.
Respect robots.txt
Section titled “Respect robots.txt”| Property | Details |
|---|---|
| Field | Respect robots.txt |
| Type | Checkbox |
| Required | No |
| Default | Unchecked |
| Description | When enabled, RTILA will check the website’s robots.txt file and skip any URLs that are disallowed for crawling. |
Variables Tab
Section titled “Variables Tab”Variables let you create reusable values that can be referenced anywhere in your commands and datasets. Think of them as placeholders that get filled in at runtime.

Each variable has the following properties:
| Property | Type | Required | Default | Description |
|---|---|---|---|---|
| Name | Text | Yes | — | The variable identifier. Used as ${name} in commands. Must be unique within the project. |
| Value | Text (multi-line) | Yes | — | The default value. Can contain multiple lines for list variables. |
| Description | Text | No | — | Optional note explaining what this variable is for. |
| Required | Checkbox | No | Unchecked | If checked, the user must provide a value before the project can run. |
| Secure | Checkbox | No | Unchecked | Masks the value in the UI (shown as dots). Use for passwords and API keys. |
| List | Checkbox | No | Unchecked | Treats the value as multiple items (one per line) for iterative loops. |
Adding a Variable
Section titled “Adding a Variable”- Open the Variables tab in Project Settings.
- Click Add Variable.
- Fill in the Name and Value fields.
- Optionally add a Description.
- Toggle Required, Secure, or List as needed.
- Click Save.
Using Variables in Commands
Section titled “Using Variables in Commands”Reference variables using the ${variable_name} syntax:
${search_term}${target_url}${api_key}You can also use JavaScript expressions inside the curly braces:
${item.split(';')[0].trim()}${price * 1.2}${target_url.split('/')[0]}CSV Mode (List Variables)
Section titled “CSV Mode (List Variables)”When you enable the List checkbox, the value field accepts multiple items — one per line:
john;admin;user1jane;editor;user2bob;viewer;user3Each line becomes a separate iteration when used in a for_each loop. If your values contain multiple columns separated by semicolons (;), you can access individual columns using JavaScript:
${item.split(';')[0].trim()}→john${item.split(';')[1].trim()}→admin${item.split(';')[2].trim()}→user1
Tip: The right-click context menu in the Visual Builder automatically detects CSV columns and offers them as insertion options.
Variable Matching with Globals
Section titled “Variable Matching with Globals”RTILA X supports Global Variables (defined in Preferences → Global Variables). If a project variable has the exact same name as a global variable, RTILA automatically fills the project variable with the global variable’s value at runtime.
Example:
- Global variable:
api_key="sk-abc123" - Project variable:
api_key=""(empty)
At runtime, the project variable api_key is automatically populated with "sk-abc123".
This is useful for sharing credentials across multiple projects without re-entering them.
Advanced Tab
Section titled “Advanced Tab”The Advanced tab contains settings for AI features, network interception, sitemap discovery, resource blocking, and logging.

AI Self-Correction
Section titled “AI Self-Correction”| Property | Details |
|---|---|
| Field | AI Self-Correction |
| Type | Checkbox |
| Required | No |
| Default | Unchecked |
| Description | When enabled, if a script command fails during execution, RTILA sends the error to the AI, which rewrites the script and retries it (up to 3 attempts). |
Tip: Enable this for automations that interact with dynamic websites where selectors might change frequently.
Smart Network API Interception
Section titled “Smart Network API Interception”| Property | Details |
|---|---|
| Field | Smart Network API Interception |
| Type | Checkbox |
| Required | No |
| Default | Unchecked |
| Description | When enabled and the project has 0 datasets and 0 commands, RTILA intercepts XHR/Fetch API responses and auto-builds datasets from the JSON data. |
This is useful for modern single-page applications (SPAs) that load data via API calls rather than rendering it in the HTML.
Sitemap Discovery
Section titled “Sitemap Discovery”| Property | Type | Required | Default | Description |
|---|---|---|---|---|
| Discover URLs from sitemap.xml | Checkbox | No | Unchecked | Automatically discovers URLs from the site’s sitemap.xml file. |
| Include URLs (regex) | Multi-line text | No | Empty | Only include sitemap URLs matching these regex patterns (one per line). |
| Exclude URLs (regex) | Multi-line text | No | Empty | Exclude sitemap URLs matching these regex patterns (one per line). |
When enabled, RTILA fetches the robots.txt file for your starting URL, finds all declared sitemaps, downloads them, and adds matching URLs to your project’s URL queue.
Example Include pattern: /products/
Example Exclude pattern: /login|/admin
Resource Blocking
Section titled “Resource Blocking”| Property | Type | Required | Default | Description |
|---|---|---|---|---|
| Enable Resource Blocking | Checkbox | No | Unchecked | Blocks specific resource types from loading to speed up page loads. |
| Resource types to block | Multi-select | No | None selected | Which resource types to block. |
Available resource types to block:
| Type | Description |
|---|---|
document |
HTML documents |
stylesheet |
CSS stylesheets |
image |
Images |
media |
Audio/video files |
font |
Web fonts |
script |
JavaScript files |
texttrack |
Text tracks |
xhr |
XMLHttpRequest calls |
fetch |
Fetch API calls |
eventsource |
Server-sent events |
websocket |
WebSocket connections |
manifest |
Web app manifests |
other |
Other resource types |
Tip: Blocking images and stylesheets can dramatically speed up scraping if you only need text data. But be careful — some websites require JavaScript to render content.
Logging
Section titled “Logging”| Property | Type | Required | Default | Description |
|---|---|---|---|---|
| Logging Level | Dropdown | No | INFO (level 2) |
Minimum severity level to record. |
| Log to file | Text input | No | Empty (console only) | File path for log output. Leave empty for console-only logging. |
Available logging levels:
| Level | Value | Description |
|---|---|---|
| CONSOLE | 0 | All messages including debug output |
| DEBUG | 1 | Detailed diagnostic information |
| INFO | 2 | General informational messages (default) |
| WARN | 3 | Warning messages only |
| ERROR | 4 | Error messages only |
| CRITICAL | 5 | Critical failures only |
Cloning a Project
Section titled “Cloning a Project”Cloning creates an exact copy of a project, useful when you want to create variations without modifying the original.
- Select the project in the project list.
- Click Clone in the ribbon toolbar.
- A copy is created with “ (Copy)” appended to the name.
- The clone’s remote execution settings are reset (disabled, no API key).
Note: The clone gets a new unique ID. It is a completely independent project.
Version History
Section titled “Version History”Every time you save changes to a project, RTILA automatically creates a snapshot. You can view, restore, or delete any previous version.

Viewing History
Section titled “Viewing History”- Select the project.
- Click History in the ribbon toolbar.
- A modal shows all saved versions with timestamps.
Restoring a Version
Section titled “Restoring a Version”- Open the History modal.
- Select the version you want to restore (radio button).
- Click Restore.
- The project’s commands, datasets, and settings are reverted to that version.
Warning: Restoring a version overwrites the current project configuration. Make sure you want to revert before confirming.
Deleting a Version
Section titled “Deleting a Version”- Open the History modal.
- Click the Delete button next to the version you want to remove.
- Confirm the deletion.
Note: Deleting a version is permanent and cannot be undone.
Exporting a Project
Section titled “Exporting a Project”Exporting saves your project as a .json file that can be shared or imported on another machine.
- Select the project.
- Click Export in the ribbon toolbar.
- Choose a save location.
- The project is saved as
ProjectName.json.
The exported file contains the complete project configuration: name, settings, commands, datasets, and folder assignment.
Importing a Project
Section titled “Importing a Project”- Click Import in the ribbon toolbar.
- Select a
.jsonfile. - The project is imported.
- If a project with the same name already exists, the imported project is renamed with a numeric suffix (e.g., “Project Name (1)”).
Deleting a Project
Section titled “Deleting a Project”- Select the project.
- Click Delete in the ribbon toolbar.
- A confirmation dialog appears.
- Click Delete to confirm.
Warning: Deleting a project permanently removes:
- The project configuration
- All associated sessions (run history)
- All execution logs
- All scraped data collections
- All project history versions
This action cannot be undone.
Project Folders
Section titled “Project Folders”Projects can be organized into folders for easier management. See Project Folders for detailed documentation.
Related Documentation
Section titled “Related Documentation”- Commands Overview — Learn about the building blocks of automation
- Datasets — Configure data extraction
- Variables — Deep dive into variable types
- Sessions and Runs — Understand execution history