Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
c5fb633
Add initial project structure and configuration for RPA forms example
mohamedmamdouh22 Dec 21, 2025
4160755
Remove commented-out automation function in form_filler.py to clean u…
mohamedmamdouh22 Dec 21, 2025
b2f5966
Add insurance form filler automation and project configuration updates
mohamedmamdouh22 Dec 23, 2025
4276bab
Add Intuned.jsonc configuration for insurance form filler project and…
mohamedmamdouh22 Dec 23, 2025
6405774
Update README to include rpa-forms-example for AI-powered form automa…
mohamedmamdouh22 Dec 23, 2025
6ccf4cb
Merge branch 'main' into Rpa-advanced-forms
mohamedmamdouh22 Dec 23, 2025
eb064b9
Update rpa-forms-example configuration and add insurance form filler …
mohamedmamdouh22 Dec 23, 2025
5c14336
Add default JSON parameters for insurance form filler in rpa-forms-ex…
mohamedmamdouh22 Dec 23, 2025
42a47f8
Enhance rpa-forms-example with AI-powered form automation, including …
mohamedmamdouh22 Dec 23, 2025
8407493
Update main README to include rpa-forms-example for AI-powered form a…
mohamedmamdouh22 Dec 23, 2025
8ead4e9
Fix link for rpa-forms-example in main README to point to TypeScript …
mohamedmamdouh22 Dec 23, 2025
068b013
Update dependencies and refactor insurance form filler automation in …
mohamedmamdouh22 Dec 23, 2025
e367ce4
Refactor insurance form filler automation in rpa-forms-example. Updat…
mohamedmamdouh22 Dec 23, 2025
f223f52
Merge branch 'main' into Rpa-advanced-forms
mohamedmamdouh22 Dec 23, 2025
180b483
Update main README to correct the link for rpa-forms-example and ensu…
mohamedmamdouh22 Dec 23, 2025
3ade30f
Enhance insurance form filler by adding a new Honda vehicle JSON conf…
mohamedmamdouh22 Dec 24, 2025
e45c2b4
Update insurance form filler by adding a new Honda vehicle configurat…
mohamedmamdouh22 Dec 24, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ A collection of examples for building browser automations with [Intuned](https:/
| [quick-recipes](./typescript-examples/quick-recipes/) | Quick browser automation recipes |
| [rpa-example](./typescript-examples/rpa-example/) | Consultation booking automation |
| [rpa-auth-example](./typescript-examples/rpa-auth-example/) | Authenticated consultation booking with Auth Sessions |
| [rpa-forms-example](./typescript-examples/rpa-forms-example/) | AI-powered form automation using Stagehand to fill insurance quote forms |
| [auth-with-secret-otp](./typescript-examples/auth-with-secret-otp/) | Multi-step authentication with TOTP (Time-based OTP) using secret keys |
| [auth-with-email-otp](./typescript-examples/auth-with-email-otp/) | Multi-step authentication with Email-based OTP using Resend API |
| [e-commerce-scrapingcourse](./typescript-examples/e-commerce-scrapingcourse/) | E-commerce product scraper with pagination |
Expand Down Expand Up @@ -35,6 +36,7 @@ A collection of examples for building browser automations with [Intuned](https:/
| [quick-recipes](./python-examples/quick-recipes/) | Quick browser automation recipes |
| [rpa-example](./python-examples/rpa-example/) | Consultation booking automation |
| [rpa-auth-example](./python-examples/rpa-auth-example/) | Authenticated consultation booking with Auth Sessions |
| [rpa-forms-example](./python-examples/rpa-forms-example/) | AI-powered form automation using Stagehand to fill insurance quote forms |ß
| [auth-with-secret-otp](./python-examples/auth-with-secret-otp/) | Multi-step authentication with TOTP (Time-based OTP) verification |
| [auth-with-email-otp](./python-examples/auth-with-email-otp/) | Multi-step authentication with Email-based OTP using Resend API |
| [e-commerce-scrapingcourse](./python-examples/e-commerce-scrapingcourse/) | E-commerce product scraper with pagination |
Expand Down
1 change: 1 addition & 0 deletions python-examples/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ Intuned sample projects in Python.
| [quick-recipes](./quick-recipes/) | Quick browser automation recipes |
| [rpa-example](./rpa-example/) | Consultation booking automation |
| [rpa-auth-example](./rpa-auth-example/) | Authenticated consultation booking with Auth Sessions |
| [rpa-forms-example](./rpa-forms-example/) | AI-powered form automation using Stagehand to fill insurance quote forms |
| [auth-with-email-otp](./auth-with-email-otp/) | Multi-step authentication with Email-based OTP using Resend API |
| [auth-with-secret-otp](./auth-with-secret-otp/) | Multi-step authentication with TOTP (Time-based OTP) verification |
| [e-commerce-scrapingcourse](./e-commerce-scrapingcourse/) | E-commerce product scraper with pagination |
Expand Down
1 change: 1 addition & 0 deletions python-examples/rpa-forms-example/.env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
INTUNED_API_KEY=your_api_key_here
51 changes: 51 additions & 0 deletions python-examples/rpa-forms-example/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# Dependencies
node_modules/
.pnp
.pnp.js

# Production builds
/build
/dist
/.next/
/out/

# Environment variables
.env
.env.local
.env.development.local
.env.test.local
.env.production.local

# Logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*

# Runtime/temporary files
.cache
.parcel-cache
*.tsbuildinfo

# Coverage
/coverage
.nyc_output

# Python
__pycache__/
*.py[cod]
*.pyc
.Python
build/
*.egg-info/
.venv/
venv/
.env

# OS files
.DS_Store
Thumbs.db

# IDE
.vscode/
.idea/
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
{
"metadata": {
"site": "https://www.erieinsurance.com/",
"insurance_type": "auto"
},
"applicant": {
"first_name": "John",
"last_name": "Doe",
"date_of_birth": "04/12/1992",
"gender": "male",
"marital_status": "single",
"accident_prevention_course": true,
"email": "john.doe@example.com",
"phone_number": "555-123-4567",
"is_cell_phone": true,
"can_text": true,
"preferred_name": "Johnny",
"home_multi_policy_discount": false,
"currently_has_auto_insurance": false,
"coverage_effective_date": "01/01/2026"
},
"address": {
"street_line1": "350 W 42nd St",
"city": "New York",
"state": "NY",
"zip_code": "10036"
},
"vehicle": {
"vehicle_type": "Automobile",
"year": 2021,
"make": "Toyota",
"model": "Camry Le",
"primary_use": "Pleasure",
"annual_mileage": 12000,
"days_driven_per_week": 5,
"miles_driven_one_way": 15,
"model_details": "Car04 4D,2.5,4"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
{
"metadata": {
"site": "https://www.erieinsurance.com/",
"insurance_type": "auto"
},
"applicant": {
"first_name": "Michael",
"last_name": "Smith",
"date_of_birth": "09/18/1988",
"gender": "male",
"marital_status": "married",
"accident_prevention_course": false,
"email": "michael.smith@example.com",
"phone_number": "555-987-6543",
"is_cell_phone": true,
"can_text": true,
"preferred_name": "Mike",
"home_multi_policy_discount": true,
"currently_has_auto_insurance": true,
"coverage_effective_date": "02/15/2026"
},
"address": {
"street_line1": "245 Market St",
"city": "Philadelphia",
"state": "PA",
"zip_code": "19106"
},
"vehicle": {
"vehicle_type": "Automobile",
"year": 2019,
"make": "Honda",
"model": "Civic EX",
"primary_use": "Farm",
"annual_mileage": 14000,
"days_driven_per_week": 5,
"miles_driven_one_way": 12,
"model_details": "Car02 2D,1.5,4"
}
}

30 changes: 30 additions & 0 deletions python-examples/rpa-forms-example/Intuned.jsonc
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
// For more information, see our Intuned settings reference
// https://docs.intunedhq.com/docs/05-references/intuned-json
{
"projectName": "insurance-form-filler",
"apiAccess": {
"enabled": true
},
"authSessions": {
"enabled": false
},
"replication": {
"maxConcurrentRequests": 1,
"size": "standard"
},
"metadata": {
"template": {
"name": "insurance-form-filler",
"description": "Insurance form filler using Stagehand in Intuned",
"tags": [
"Stagehand",
"AI",
"RPA",
"Forms",
"intuned-runtime-sdk",
"intuned-runtime-sdk-setup-context-hook"
]
}
}
}

143 changes: 143 additions & 0 deletions python-examples/rpa-forms-example/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,143 @@
# rpa-forms-example Intuned project

AI-powered form automation using Stagehand to automatically fill out insurance quote forms with applicant, address, and object information.

## Run on Intuned

Open this project in Intuned by clicking the button below.

[![Run on Intuned](https://cdn1.intuned.io/button.svg)](https://app.intuned.io?repo=https://github.com/Intuned/cookbook/tree/main/python-examples/rpa-forms-example)

## Getting Started

To get started developing browser automation projects with Intuned, check out our [concepts and terminology](https://docs.intunedhq.com/docs/getting-started/conceptual-guides/core-concepts#runs%3A-executing-your-automations).


## Development

> **_NOTE:_** All commands support `--help` flag to get more information about the command and its arguments and options.

### Install dependencies
```bash
uv sync
```

After installing dependencies, `intuned` command should be available in your environment.

### Run an API
```bash
uv run intuned run api insurance-form-filler .parameters/api/insurance-form-filler/default.json
```

### Deploy project
```bash
uv run intuned deploy
```




### `intuned-browser`: Intuned Browser SDK

This project uses Intuned browser SDK. For more information, check out the [Intuned Browser SDK documentation](https://docs.intunedhq.com/automation-sdks/overview).




## Project Structure
The project structure is as follows:
```
/
├── api/ # Your API endpoints
│ └── insurance_form_filler.py # Main automation API for filling insurance forms
├── hooks/ # Setup hooks
│ └── setup_context.py # Browser context setup hook
├── utils/ # Utility modules
│ └── types_and_schemas.py # Pydantic models for type validation
├── Intuned.json # Intuned project configuration file
└── pyproject.toml # Python project dependencies
```

### How It Works

1. **insurance_form_filler.py** - Uses Stagehand's AI-powered automation to navigate to the insurance website, select insurance type, and fill out multi-step forms including:
- Applicant information (name, date of birth, gender, marital status)
- Contact details (email, phone, text preferences)
- Address information (street, city, state, zip code)
- Vehicle details (type, year, make, model, usage)
- Additional preferences (multi-policy discount, current insurance status, coverage effective date)

The automation uses natural language instructions to interact with form elements, making it resilient to UI changes.


## `Intuned.jsonc` Reference
```jsonc
{
// Your Intuned workspace ID.
// Optional - If not provided here, it must be supplied via the `--workspace-id` flag during deployment.
"workspaceId": "your_workspace_id",

// The name of your Intuned project.
// Optional - If not provided here, it must be supplied via the command line when deploying.
"projectName": "your_project_name",

// Replication settings
"replication": {
// The maximum number of concurrent executions allowed via Intuned API. This does not affect jobs.
// A number of machines equal to this will be allocated to handle API requests.
// Not applicable if api access is disabled.
"maxConcurrentRequests": 1,

// The machine size to use for this project. This is applicable for both API requests and jobs.
// "standard": Standard machine size (6 shared vCPUs, 2GB RAM)
// "large": Large machine size (8 shared vCPUs, 4GB RAM)
// "xlarge": Extra large machine size (1 performance vCPU, 8GB RAM)
"size": "standard"
},

// Auth session settings
"authSessions": {
// Whether auth sessions are enabled for this project.
// If enabled, "auth-sessions/check.ts" API must be implemented to validate the auth session.
"enabled": true,

// Whether to save Playwright traces for auth session runs.
"saveTraces": false,

// The type of auth session to use.
// "API" type requires implementing "auth-sessions/create.ts" API to create/recreate the auth session programmatically.
// "MANUAL" type uses a recorder to manually create the auth session.
"type": "API",


// Recorder start URL for the recorder to navigate to when creating the auth session.
// Required if "type" is "MANUAL". Not used if "type" is "API".
"startUrl": "https://example.com/login",

// Recorder finish URL for the recorder. Once this URL is reached, the recorder stops and saves the auth session.
// Required if "type" is "MANUAL". Not used if "type" is "API".
"finishUrl": "https://example.com/dashboard",

// Recorder browser mode
// "fullscreen": Launches the browser in fullscreen mode.
// "kiosk": Launches the browser in kiosk mode (no address bar, no navigation controls).
// Only applicable for "MANUAL" type.
"browserMode": "fullscreen"
},

// API access settings
"apiAccess": {
// Whether to enable consumption through Intuned API. If this is false, the project can only be consumed through jobs.
// This is required for projects that use auth sessions.
"enabled": true
},

// Whether to run the deployed API in a headful browser. Running in headful can help with some anti-bot detections. However, it requires more resources and may work slower or crash if the machine size is "standard".
"headful": false,

// The region where your Intuned project is hosted.
// For a list of available regions, contact support or refer to the documentation.
// Optional - Default: "us"
"region": "us"
}
```
Loading