Automating Repetitive Form Fills with Bitwarden, Lastpass and Roboform

A cat typing at a desk with three monitors, each showing a different login screen

Filling out the same web contact form for the nine millionth time has to rate as one of the most annoying wastes of time known to humankind. Now imagine your time wastage if -- as a volunteer at some shoestring budget organization -- you were responsible for submitting weekly recurring events to various community calendars. Some calendars natively support submission of auto-recurring events, but in many cases you will be stuck entering the same tedious set of field values every seven days. That's exactly the kind of workflow inefficiency we recently helped our friends at VigilForGaza resolve.

The full solution we propose leverages two tools:

As we will explain below, for the simplest, lowest requirement scenarios it might make sense for you to skip the BW explanations and how-to sections and just focus on Roboform.

Why Not Just One Tool ?

Prior to investigating how to automate recurring calendar-event submissions, we had become major fans of BW. Firstly, it's open source which is much preferred for any security tool, since that keeps it open to audit and review (but do check the info in [2] for more details.) Second, it's free -- even across multiple devices, and it's equipped with CLI access to their credentials vault. We lean on that CLI constantly for scripting machine and environment setup -- at which point one needs secure access to ssh keys, access tokens, and the like.

It would have been theoretically possible for us to get BW working as a forms-fill tool too, but like the very first password manager we tried -- LastPass (not free across multiple devices, and not open source) -- both turned out to be pretty rigid about which fields they can actually handle on a repetitive submission. Form fill for both products hinges on what is essentially a static mapping of field labels to field values. Both LastPass and Bitwarden provide a mechanism for adding custom fields. But when a form has a field not present in the map, adding such field requires -- in both products -- that you manually hunt through a form's raw markup for the right attribute, then hand-enter it into a field editor. And you need to repeat this for every new form. RoboForm doesn't share that limitation -- see the appendix for why [1].

Since your requirements might not include CLI capabilities and a bias toward open source, we will begin our how-to sections with a focus on Roboform set-up and usage on desktops using Chrome. We then walk through BW set-up and usage on deskop Chrome (other browsers will likely be quite similar.) Finally, for those who wish to run both tools on mobile devices we walk through what setting that up looks like on Android (apologies to iPhone users -- since that is a completely closed source ecosystem, we don't really deal with it.)

HOW-TO #1: RoboForm desktop setup

Installing the extension

  1. In Chrome, click the three-dot menu (upper right), select Extensions, then Visit Chrome Web Store.

Chrome's Extensions menu, with "Visit Chrome Web Store" highlighted

  1. Search the Chrome Web Store for RoboForm.

Searching the Chrome Web Store for RoboForm

  1. Open the RoboForm Password Manager listing and click Add to Chrome.

RoboForm Password Manager's Chrome Web Store listing

  1. Confirm on the permissions prompt by clicking Add extension.

Chrome's "Add extension?" confirmation dialog for RoboForm

Creating an account

  1. On first launch, choose Sign Up and create an account with your org's email and a master password.

RoboForm's welcome screen, choosing between Log In and Sign Up

  1. Verify the account with the One-Time Code by email option.

RoboForm's "Confirm it's you" verification step

  1. RoboForm offers a short video tutorial on first login -- Skip is fine, everything below covers what you actually need.

RoboForm's onboarding tutorial prompt, with Skip and Next

  1. Click the puzzle-piece Extensions icon in Chrome's toolbar, find RoboForm, and click the pin icon so it stays visible instead of hiding behind the puzzle piece every time.

Pinning the RoboForm extension from Chrome's extensions menu RoboForm's icon now pinned in Chrome's toolbar

Saving a form once, recalling it forever

This is the actual payoff. Fill a form out field-by-field the first time, then teach RoboForm to remember it:

  1. With the form filled in, right-click anywhere on the page, open RoboForm Password Manager, and choose Save Forms.

Right-clicking a filled-out form to reach RoboForm's Save Forms option

Whatever you typed into the form's fields at this point is what gets remembered -- RoboForm snapshots the field values, not just the field layout.

The form's field values, annotated as what RoboForm will recall

  1. RoboForm asks what to call this saved entry and whether it's a Login or a Bookmark -- pick Login, give it a name you'll recognize (the site or form's purpose works well), and click Save.

RoboForm's save dialog, naming the entry and choosing Login

  1. Next time you're staring down a blank copy of that same form, click on the pinned RoboForm icon to the right of the URL entry area. Then select the name of the form fill profile you chose in the previous step.

RoboForm's Fill Logins panel offering a saved match, ready to click and fill

  1. Every field RoboForm remembered snaps back into place (in this example the title of the dialog switches from 'Create..' to 'Edit...' -- nothing to do with form fill.)

The form's fields refilled automatically from the saved entry

So that is all there is to it if you just want to automate form submissions.

However, if you prefer open source solutions, and if you want scriptability, you will want to read on. We next cover installation of Bitwarden on the desktop, while the section after that will cover the not-so-intuitive steps involved in getting BW and Roboform working together on an Android mobile device.

HOW-TO #2: Bitwarden as your password manager

We've recommended Bitwarden on our field-guide wiki before as a strong, open-source alternative to LastPass -- see the appendix [2] for how their security track records actually compare. BW's free tier covers unlimited passwords synced across unlimited devices. LastPass's free tier, by contrast, locks you to one device type -- desktop or mobile, not both -- so syncing between your laptop and your mobile device requires upgrading to a paid plan. Multi-device scenario set-up steps are given below in Setting it up on Android.)

In this section we provide steps for setting up an individual account, mapped to one credentials vault. If your org later needs to share logins across multiple people, Bitwarden scales up to team and even enterprise tiers; see the appendix [3] for what that looks like.

Setting it up on Desktop

Same order as RoboForm: extension first, account second. Form-filling happens through the browser extension UI, not the web vault UI.

  1. Open Chrome's three-dot More menu (top right) → ExtensionsVisit Chrome Web Store.

Chrome's Extensions menu, with "Visit Chrome Web Store" highlighted

  1. Search for Bitwarden.

Searching the Chrome Web Store for Bitwarden

  1. Open the Bitwarden Password Manager listing and click Add to Chrome.

Bitwarden Password Manager's Chrome Web Store listing

  1. Confirm on the permissions prompt by clicking Add extension.
  1. Pin it to the toolbar now, before setting up the account -- puzzle-piece icon → find Bitwarden → click the pin.

Pinning the Bitwarden extension from Chrome's extensions menu

  1. Click the newly-pinned Bitwarden icon and choose Create account.

Bitwarden's extension popup, choosing Create account or Log in

  1. Enter your email address and continue -- Bitwarden emails you a link to confirm it's really you before it lets you finish.

Bitwarden's "Check your email" confirmation step

  1. Follow that link, then set a strong, unique master password back in the extension.

Bitwarden's "Set a strong password" step (password fields redacted)

  1. Turn off Chrome's own Google Password Manager before you start relying on Bitwarden day to day -- otherwise the two sit side by side offering to save and fill the same logins, which means two competing "save this password?" popups every time you sign into something, and Chrome occasionally filling a field with its own guess a half-second before Bitwarden gets to it. Click Chrome's three-dot More menu (top right) → Passwords and autofillGoogle Password ManagerSettings, then turn off Offer to save passwords and passkeys and Sign in automatically. (Or skip the menu digging and go straight to chrome://password-manager/settings.) It's a one-time fix, and much less annoying than dismissing Google's popups for the next month.

Chrome's Google Password Manager settings, with "Offer to save passwords and passkeys" and "Sign in automatically" toggled off

(If you set up RoboForm before Bitwarden, Chrome may show it -- not Bitwarden -- as the extension "controlling" the save-passwords toggle, like in the screenshot above. Same toggle, same fix either way; Chrome just credits whichever extension claimed it first.)

  1. Now, whenever you create a new login on a new site, Bitwarden will offer to save those credentials for you. Sign up for a new account like you normally would -- Bitwarden isn't involved yet, you're just filling out the site's own signup form.

Signing up for a new account on Giphy, with email, username, and a generated password entered

  1. The moment you submit, Bitwarden notices a new login was just used and offers to save it -- click Save.

Bitwarden's "Save login" popup after submitting the signup form

  1. Next time you land on that site's login page, Bitwarden surfaces the saved credential right in the username field -- click it, and both username and password fill in.

Bitwarden offering a saved login as an autofill suggestion on the login page

That's the entire day-to-day loop: save once when you sign up, click once every time after that.

Setting it up on Android

A note on image quality below: Bitwarden blocks screenshots on several of its own screens (a real security feature, not a bug) -- where that happens, what you're looking at is a phone-camera photo of the screen instead of a true screenshot.

  1. Install Bitwarden Password Manager from the Play Store.

Bitwarden listing in the Play Store, ready to install

  1. After clicking Open once the install finishes, click through the next two screens -- nothing to configure on either one.
Bitwarden's Accessibility Service Disclosure screen on first launch Bitwarden's "Security, prioritized" onboarding screen
  1. Log in with the account from the desktop steps above (or create one here directly, if you'd rather skip desktop entirely).

Logging in with the master password on Android

  1. Once logged in, you may hit a Verify your identity challenge -- Bitwarden emails a verification code to confirm it's really you. Check your email to obtain the code, enter it and continue. After that, your vault syncs immediately: anything saved on desktop, like the GIPHY login from the walkthrough above, is already waiting for you. Tap that entry and you're taken straight to the site's login screen with your credentials already populated.

Bitwarden's Android vault, showing the giphy.com login synced from desktop

  1. Set up biometric unlock (fingerprint or face unlock) under Settings → Account security → Unlock with Biometrics, so you aren't typing your master password every time you need a credential on your phone.

Bitwarden's Settings menu on Android Account security screen, with Unlock with Biometrics enabled

  1. In Bitwarden, go to Settings → Autofill Service -- this opens the Autofill screen (a view of which is shown in second screen shot, below.) Slide Autofill Services on: that hands off to Android's own system-wide autofill picker, where you select Bitwarden as the provider and confirm.

Android's Autofill Service picker with Bitwarden selected

Tap back to return to Bitwarden's Autofill screen, then turn on Use Chrome autofill integration too -- it smooths out inline suggestions specifically inside Chrome, on top of the system-wide autofill you just enabled.

Bitwarden's in-app Autofill settings, with Chrome autofill integration enabled

That last step is the important one, and it's easy to skip past. Android's autofill framework isn't just for logins -- once Bitwarden is registered as your system autofill provider, it can offer to fill any recognized field across apps and browser tabs, not just username/password pairs.

Everything above treats Bitwarden as a personal password manager -- your own vault, your own master password. It can also run as shared infrastructure for a whole team; see the appendix [3] if that's relevant to your org.

HOW-TO #3: RoboForm for addresses on Android

RoboForm saves a filled-out form as a Login entry -- capturing the exact field values you typed, tied to that specific form's page -- rather than a generic address-book-style profile. Filling a form from a saved Login on Android is simpler than you'd expect: open the RoboForm app, browse to the form inside RoboForm's own built-in browser, and pick the saved entry -- you're taken straight to the form, with every field from that saved profile pre-filled.

Logging into RoboForm on Android

  1. Install RoboForm Password Manager from the Play Store.

RoboForm Password Manager's Play Store listing

  1. Open the app and tap through the onboarding screens to Log In.

RoboForm's onboarding carousel on first launch

  1. Log in with the same account you used on desktop.

Logging into RoboForm on Android with the desktop account's email and master password

  1. Set a 6-digit PIN to unlock the app quickly, then set up biometric unlock (fingerprint or face) when prompted -- both can be skipped and configured later if you'd rather.

Setting a 6-digit PIN to unlock RoboForm Setting up biometric unlock for RoboForm

  1. Once logged in, check the Logins tab -- anything saved on desktop, like a form captured with Save Forms, is already synced and waiting.

RoboForm's Logins tab on Android, showing a login synced from desktop

Every time you need to fill a form

  1. Open the RoboForm app -- it's just another app in your app drawer, same as any other.

Opening RoboForm from the Android app drawer

  1. Inside RoboForm's own browser, navigate to the form you're resubmitting, or find it already listed under Logins.
  2. Tap the saved entry for that form. RoboForm fills every field it captured, straight from its own browser -- here it's the Doikayt wiki's own "Add a Tool" form, recalled and filled automatically.

RoboForm recalling saved field values into the Doikayt wiki's "Add a Tool" form

  1. Review what filled in, then submit.

That's the whole loop -- Bitwarden never enters the picture; the two apps simply never compete for the right to fill in any form.

What did we get for all this work?

The pay-off for getting through these two fairly involved app set-ups is you can now fire off regular repeated form submissions at your desktop or on the go. This will be useful not only to activists responsible for promoting regularly recurring events, but to a wide range of other domains: plumbers submitting vendor supply orders that vary in quantity each time, volunteers submitting venue booking requests for group meetings, staff filing weekly timesheets or expense reimbursements, nurses filling out hospital daily bed census reports -- you name it. This set-up will have it submitted for you in no time.


Appendix

[1] Why Not Just LastPass or Bitwarden

LastPass, Bitwarden, and RoboForm all solve autofill the same basic way under the hood: a structured profile maps form-field labels to values. The real difference comes down to two things:

LastPass and Bitwarden: one static profile, matched by guesswork. You save a structured profile -- BW calls it an Identity, LastPass calls it an Address -- essentially a dictionary of name/address/phone/email keyed by label, matched against every form's inputs. Neither tool fully gives up on a field that doesn't match: LastPass calls its manual fallback a Form Field, Bitwarden calls it a custom field. But "fallback" undersells how manual it is -- you're the one figuring out which HTML attribute (id, name, aria-label, placeholder) the page actually keys on, one field at a time, for every new form your org submits to. Bitwarden's tooling makes that lookup a bit less painful than LastPass's, but the work is still yours to do.

The workaround: one manually tuned profile (mapping) per form. Bitwarden doesn't limit you to a single Identity item -- you can create as many as you like. That means you could sidestep some of the matching-guesswork problem by maintaining a separate, hand-tuned Identity item for each recurring form you submit to, with its own custom fields mapped to that specific form's attributes. This isn't a free lunch, though: instead of one profile to maintain, you now have N -- one per form -- and any shared value (your name, your address) that changes has to be updated in every one of them separately. For an org submitting to a handful of calendar sites, that's a manageable amount of upkeep; for a dozen or more, Roboform starts to look really good.

RoboForm: one auto-generated mapping per form. Instead of matching one static profile against markup and hoping, RoboForm also lets you teach it: fill a form out once by hand, and its AutoSave feature notices and remembers exactly what you typed into each field, for that specific form, going forward. No markup-hunting, no manual mapping -- just fill it once and it sticks.

We didn't know RoboForm existed when we started this evaluation, though. We tested Bitwarden and LastPass head-to-head on the actual forms we needed to submit -- CalendarWiz and similar WordPress/Drupal-style calendar plugins -- and hit something worse than rigidity: on any form where a field's id and name attributes differ -- not rare on modern component-framework-built forms, where tools like React generate ids such as :r3: that carry no relation to the field's actual name -- both tools' autofill either filled the wrong field or silently skipped it. No error, no warning -- the form still submitted, just with corrupted data.

So we built form-fill-bookmarklet: a zero-dependency browser bookmarklet that matches fields by name -- the attribute HTML forms actually submit under -- instead of id. Fill a form out once, click the bookmarklet to capture it as a small JSON template, save the JSON. On the next submission, edit just the value that changes (usually the date), copy the JSON to the clipboard, and invoke the bookmarklet again to refill the form with every value, including the one you just changed. Three days of work, and a cool tool -- right up until we evaluated RoboForm and realized it was completely superfluous.

We still maintain the repo, for pedagogical purposes -- study the code if you want a sense of how RoboForm might work internally. RoboForm itself is closed source, so you'll never actually know if we guessed right.

[2] Security Track Record

The table below covers every publicly reported incident we found for the three tools under evaluation. We're upfront fans of open source, so it's worth sitting with the fact that Bitwarden -- open source -- has an incident on this list, while RoboForm -- closed source -- doesn't. That's not actually a contradiction: supply-chain attacks target how software gets built and published, not whether its source is public, and closed-source software isn't immune to them, it's just less likely to get caught. What open source bought here was a fast, independently verifiable response -- the compromised package was live for about 90 minutes, and anyone could check exactly what it did rather than take Bitwarden's word for it.

Tool Reported incidents Vault data exposed?
LastPass 2022: attacker used data stolen from a compromised employee's home computer to access a cloud storage backup containing encrypted customer vaults, plus some source code. Encrypted vaults were taken (not decrypted at the time), along with unencrypted metadata like URLs.
Bitwarden 2026: a malicious version of Bitwarden's own CLI was briefly live on npm (~90 minutes) as part of a broader supply-chain attack. 2023: a disclosed flaw allowed iframes to access autofilled credentials, since fixed. No end-user vault data reported accessed in either incident.
RoboForm None found. N/A

Regardless of which tool you pick, make sure to use a strong, unique master password and turn on two-factor authentication.

[3] Shared Vaults and SSO for Teams

Bitwarden can run as shared infrastructure for a whole team, not just a personal vault.

Shared org vaults. If more than one person on your team submits events, shares accounts, or needs the same set of logins, set up a Bitwarden Organization ($4/user/month on the Teams plan) instead of emailing passwords around or maintaining a shared spreadsheet. An organization holds the same item types a personal vault does -- Logins, Secure Notes, Cards, Identities -- just organized into Collections that you can scope to specific members or groups. Put the calendar- submission login in a collection your events team can see, and keep a treasurer-only collection for anything payment-related. When someone leaves the team, you revoke their access to the collection or the whole organization instead of rotating every password by hand.

Single sign-on. On the Enterprise tier, Bitwarden supports logging into the vault itself via your org's existing identity provider (Okta, Google Workspace, Azure AD/Entra ID, and others, over SAML or OIDC) instead of a separate Bitwarden master password. That's real infrastructure consolidation -- one login system to manage instead of two, and revoking someone's org account revokes their vault access in the same step. For most shoestring-budget orgs this is aspirational rather than immediately useful: it's an Enterprise-tier feature, and it assumes you already have an identity provider in place. Worth knowing it exists for the day your org outgrows a spreadsheet of names and passwords.