Automate data entry and form filling

Data entry into web forms is repetitive work. Some forms are tiny, an email and a password. Others run for pages, with dropdowns, date pickers, and dozens of inputs. A bot can do the data entry for you, filling and submitting each form, pulling every value from a sheet, handling every row. There are three ways to start, with no code, with code, or with a Claude skill.

What I mean by data entry


By data entry I mean putting data into a web form, the work some people call form filling. That data can come from a Google Sheet, Excel, or a webhook. It is the work of taking values from columns and rows and dropping each one into the right field. That field might be a text box, a date picker, or a file upload. All of it can be automated with a bot, and you can run it in the cloud. You can do it three ways, with no code, with code, or with a Claude skill. Let me show how I would go about it.

Who this is for


This is for anyone who does data entry into a web form all day. Entering orders into a portal, adding candidates to an ATS, keying invoices into a finance system, moving rows from a spreadsheet into a CRM one record at a time. The data sits in a Google Sheet, and the form has no API to reach it.

It is also for the coder who already writes Playwright or Puppeteer to fill forms, where the hybrid approach can cut the boilerplate. And for the people who just like automating things. I am one of them.

If you do the same data entry again and again with different values, a bot can take the sheet and do the typing, one row or ten thousand. If the data lives in a Sheet, in Excel, or arrives by webhook, and the form lives in Chrome, it can be automated, whether you code or not.

How I'd approach it


I'm a no-coder, so my approach leans no-code. Which is better for data entry? I would say no-code, and here is why.

The data can come from a lot of places. For most people it is a Google Sheet, and axiom integrates with that directly, along with Excel and webhooks. So the values are easy to feed in.

Plenty of forms are buried in iframes, and the no-code tool supports those too. And not to be totally biased, but sometimes you want a trick up your sleeve. A no-code step like key press lets me Tab between fields and come back to click a button. Forms are structured, so that works well here.

Code works too. I have done it and it is not that hard. The thing I ran into was dynamic forms that load in pieces, so I had to add a lot of waits by hand. The no-code tool has algorithms that handle that waiting for you. So yes, for data entry, my approach is no-code.

Automate data entry from a description


Describe the form in plain words in the Chrome extension and it builds the steps for you. Give it the fields and where each value comes from, then run it. Explore no-code. Note: Build from description is coming very soon. In the meantime you can still use the no-code builder.

To the right is an example. Break the form down field by field and let the AI generate the steps of your bot.

Chrome extension
Describe your automation

Instructions

  • Log into the site17 / 500
  • Open the new record form24 / 500
  • Fill name, email, and company from a Google Sheet49 / 500
  • Pick the plan from the dropdown31 / 500
  • Upload the contract file24 / 500
  • Click submit, then load the next row36 / 500

Automate form filling in code


Build with code. If you are more interested in the infrastructure and running your own code, this is the right choice for you. Explore code

Connect Playwright (or Puppeteer) to our cloud Chromium and write the same scripts you'd run locally, without managing the browser.

Code tool
Code example
import { chromium } from "playwright";

const browser = await chromium.connectOverCDP(
  `wss://cdp-lb.axiom.ai/?token=${process.env.AXIOM_API_KEY}`
);

try {
  const context = browser.contexts()[0];
  const page = context.pages()[0] ?? await context.newPage();

  // 1. Log into the site once
  await page.goto("https://example.com/login");
  await page.fill("#email", process.env.SITE_EMAIL);
  await page.fill("#password", process.env.SITE_PASSWORD);
  await page.click("button[type=submit]");

  // 2. Each row would come from your Google Sheet
  const rows = [
    { name: "Ada Lovelace", email: "ada@example.com", plan: "Pro",  file: "contracts/ada.pdf" },
    { name: "Alan Turing",  email: "alan@example.com", plan: "Team", file: "contracts/alan.pdf" },
  ];

  for (const row of rows) {
    // 3. Open a fresh form for each record
    await page.goto("https://example.com/records/new");
    await page.waitForSelector("#name");

    // 4. Fill the text fields
    await page.fill("#name", row.name);
    await page.fill("#email", row.email);

    // 5. Choose from a dropdown
    await page.selectOption("#plan", row.plan);

    // 6. Upload a file
    await page.setInputFiles("#contract", row.file);

    // 7. Submit, then wait for the confirmation before the next row
    await page.click("button[type=submit]");
    await page.waitForSelector(".confirmation");
  }
} finally {
  await browser.close();
}

Build with a Claude skill

Build no-code or code bots with a skill.

Add the Claude skill and describe the form. It builds the bot for you, no-code or code, and handles the tricky parts like dynamic fields, dropdowns, and waits.

Claude building a form automation from a description

What can you automate?


Most forms can be filled by a bot. A couple of cases worth knowing first.

Works well

  • Data entry from webhooks
  • Passing data from Google Sheets into online forms
  • Automating login forms
  • Inputting customer data
  • Automating messaging

Harder

  • Long multi-page forms
  • Complex forms with conditional questions
  • Sites with throttling or rate limiting

Don't try

  • Placing bets
  • Vote rigging
  • Spamming web forms

What I'd watch out for


The range of forms out there is broad, so the use cases are broad too. I won't pretend it is all easy. Forms hide surprises, and a learning curve is real. Here is what I would watch for.

Data in the wrong field

If you see a value land in the wrong place, a color in the price field for example, the selector is wrong or it picked the wrong element. You can fix it in the no-code tool with the selector tool, or directly in your code.

Long forms with many steps

Break a long form into several axioms, one per page, then load them into a single controller axiom that runs each one in order with the run another axiom step.

Cookies

If you log into a site, you either have the run sign in each time, or you store the cookies so the session carries over. Storing the cookies is the method we recommend.

Iframes

Forms in legacy systems are often embedded in iframes. We have a mode to handle that, turn it on in the selector tool. If that does not work, inspect the page and check whether the iframe has a URL you can open to reach the form directly.

"The support team is amazing, and the product just keeps getting better. Worth every penny."

Emma Davis

"I was skeptical about no-code automation, but Axiom proved me wrong. It's incredibly powerful."

David Wilson

"The best browser automation tool I've used. The AI features are game-changing for complex workflows."

Sarah Johnson

"Axiom has completely transformed how I handle browser automation. The no-code interface is intuitive and powerful."

John Smith

"The best investment we've made in our automation workflow. Simple yet powerful."

Jennifer Brown

"Finally, a tool that makes browser automation accessible without compromising on power. Highly recommended!"

Michael Chen

"The visual builder is a dream come true. No more writing complex scripts!"

Lisa Anderson

Fast to build. Easy to run and scale. Outstanding support.

Start for free. No credit card required.