A Chrome extension that integrates with n8n workflows to automatically fill web forms with processed data.
- 🚀 Send URLs to your n8n workflow via webhook
- 🔄 Poll n8n for processed results
- 📝 Intelligent form detection and autofilling
- 🎯 Smart field mapping with multiple strategies
- 🎨 Beautiful, modern UI with visual feedback
- 📱 Works on any website with forms
- 🗂️ Handles nested JSON data (flattens complex objects)
- ✅ Enhanced data type support (booleans, dates, numbers)
- 🔍 Advanced field matching (handles spaces and special characters)
- 📞 Smart formatting (phone numbers, dates, URLs)
- Input URL: Enter any URL in the extension popup
- Process: URL is sent to your n8n webhook for processing
- Receive: n8n processes and returns data immediately
- Autofill: Use the returned data to autofill any form on any website
- Input URL: Enter any URL in the extension popup
- Process: URL is sent to your n8n webhook for processing
- Poll: Extension polls n8n every 10 seconds for results
- Autofill: Once data is received, autofill any form on any website
- Open Chrome and go to
chrome://extensions/ - Enable "Developer mode" in the top right
- Click "Load unpacked" and select the extension folder
- The extension icon should appear in your toolbar
You need to set up two endpoints in your n8n workflow:
- URL:
https://somil.app.n8n.cloud/webhook/14591d83-e679-486d-a00e-1ab2e05e9894 - Method: GET
- Receives: URL as query parameter
?url=https://example.com - Directly returns: JSON object with form field data
- URL:
https://somil.app.n8n.cloud/webhook/get-data - Method: GET
- Returns: JSON object with form field data
- Use this if your processing takes longer than 30 seconds
Example n8n polling endpoint response:
{
"Name of Business": "Blue Horizon Ventures LLC",
"DBA Name": "Horizon Foods",
"Website URL": "https://www.horizonfoods.com",
"Primary Address": {
"Street": "742 Elmwood Drive",
"City": "Austin",
"State": "TX",
"ZIP": "73301"
},
"Mailing address is same as Primary address?": true,
"First Name": "Jessica",
"Last Name": "Carpenter",
"Phone Number": "+1-512-555-8923",
"Email": "jessica.carpenter@horizonfoods.com",
"Business entity type": "LLC",
"Is the Business non-profit?": false,
"Year the Business was started": 2016,
"Description of Business operations": "We specialize in manufacturing and distributing organic packaged food products to grocery stores and online retailers.",
"Years of management experience in industry": 9,
"Annual revenue": 1250000,
"Total Number of Full-Time Employees": 18,
"Total Number of Part-Time Employees": 5,
"Total Payroll": 735000,
"Policy Effective Date": "2025-08-01",
"Policy Expiration Date": "2026-08-01"
}If you need to change the webhook URLs, edit the popup.js file:
const N8N_WEBHOOK_URL = 'your-webhook-url-here';
const N8N_POLL_URL = 'your-polling-url-here';- Click the extension icon in your Chrome toolbar
- Enter a URL you want to process
- Click "Process URL" - this sends the URL to n8n
- Wait for processing - the extension will poll for results
- Navigate to any form on any website
- Click "Autofill Form" to automatically fill the form
The extension uses intelligent field mapping to match n8n data with form fields:
- Looks for form fields with exact name/id matches
Name of Business→ businessname, business_name, company_name, nameDBA Name→ dba, dba_name, doing_business_as, trade_nameFirst Name→ firstname, first_name, fname, given_nameLast Name→ lastname, last_name, lname, surnameEmail→ email, emailaddress, email_address, user_emailPhone Number→ phone, telephone, phonenumber, contact_phoneStreet→ address, street, address1, street_addressCity→ city, town, localityState→ state, province, regionZIP→ zip, zipcode, postal, postalcodeWebsite URL→ website, url, website_url, siteBusiness entity type→ entity_type, business_type, entityAnnual revenue→ revenue, annual_revenue, incomePolicy Effective Date→ effective_date, start_date, policy_start
- Searches field names, IDs, placeholders, and labels
- Case-insensitive partial matching
- ✅ Text inputs
- ✅ Email inputs
- ✅ Phone inputs
- ✅ URL inputs
- ✅ Number inputs
- ✅ Textareas
- ✅ Select dropdowns
- ✅ Radio buttons (with smart boolean mapping)
- ✅ Checkboxes (with smart boolean mapping)
- ✅ Date inputs (with automatic date formatting)
The extension automatically flattens nested JSON objects:
{
"Primary Address": {
"Street": "123 Main St",
"City": "Austin"
}
}Becomes accessible as both Primary Address.Street and Street for form matching.
true/falsevalues automatically map to Yes/No radio buttons"Is the Business non-profit?": false→ selects "No" radio button- Checkbox states are set based on boolean values
- Date strings are automatically converted to YYYY-MM-DD format
"2025-08-01"→ properly formatted for HTML date inputs
- Numbers are converted to strings for text inputs
- Phone numbers are formatted:
+1-512-555-8923→(512) 555-8923 - URLs are validated before filling
- 🎨 Modern gradient UI design
- 🤖 Robot indicator on every page
- ✨ Field highlighting when filled
- 📱 Toast notifications
- 🔄 Loading animations
- 📊 Progress tracking
autofillExtension/
├── manifest.json # Extension configuration
├── popup.html # Extension popup interface
├── popup.js # Popup functionality
├── background.js # Service worker
├── content.js # Page interaction script
├── README.md # This file
└── icons/ # Extension icons (add your own)
├── icon16.png
├── icon48.png
└── icon128.png
activeTab- Access current tab for autofillingstorage- Store URLs and processed datascripting- Inject content scripts
- Check Chrome Developer Tools console for errors
- Verify n8n webhook URLs are accessible
- Ensure extension has necessary permissions
- Check if form fields have recognizable names/IDs
- Verify JSON data format from n8n
- Look for JavaScript errors in console
- Verify webhook URLs are correct
- Check CORS settings in n8n
- Test endpoints manually with curl/Postman
- Make changes to files
- Go to
chrome://extensions/ - Click refresh button on the extension
- Test your changes
The extension now uses direct field ID matching. The API should return a JSON structure with exact field IDs:
{
"message": {
"content": {
"fieldId": "value",
"application_SOME_QN-12345": "Yes",
"businessName": "Company Name"
}
}
}- Extension only accesses current tab when autofilling
- Data is stored locally in Chrome storage
- All communication is over HTTPS
- No sensitive data is logged
For testing without n8n setup:
- Use browser console on any form page
- Copy the test data from
test-data.json - Run:
autofillFormOnPage(testData)wheretestDatais the JSON object
Test the extension on forms like:
- Contact forms
- Registration forms
- Insurance applications
- Business forms
The extension will automatically detect and fill matching fields.
For issues or questions:
- Check the browser console for error messages
- Verify your n8n workflow is returning correct data format
- Test the webhook endpoints manually
- Use the test data file for debugging
This extension is provided as-is for educational and business use.