Everything below is checked against what EasyAgent actually does, not aspirational —
if something here stops being true, it's a bug in this page, not a promise we're keeping.
Getting started
1
Open the page you want to automate, then click the EasyAgent icon (it opens as a side panel) and press Start new recording. Use the page completely normally.
2
Click Stop recording. Your steps show up as a list, in the order you did them.
3
(Optional) Bind a field to a spreadsheet column — tap any field/checkbox step and choose a column instead of the literal value you typed while recording.
4
(Optional) Load your data on the Data tab — paste a spreadsheet copied from Excel, or drop a .xlsx/.xls/.csv file.
5
Run it — Replay with no data loaded; with a sheet, Dry run checks the first row, then Run remaining does the rest. Retry or resume from the run summary if anything fails.
Recording
Does it record my password?
No. A password field is recorded as a step (so playback still knows to click into it), but its value is never captured, stored, or exported. You re-enter it once per popup session if the step isn't bound to a column.
My recording stopped picking up my clicks partway through — what happened?
If your click opened a new tab, EasyAgent follows you into it automatically and keeps recording — that's expected, and it becomes an "Open new tab" step. If instead a plain link reloaded the page you were on, recording now re-arms itself once the new page finishes loading, so it should keep going. If you're still missing clicks, check the step list didn't drift into a part of the page inside an iframe you don't expect — those are recorded too, just as their own frame-scoped steps.
Can it record inside a frame/iframe?
Yes — clicks and fields inside an embedded form are captured like anything else. Replay re-finds the right frame by the URL it was recorded in.
What if the website changes its layout later and my selector breaks?
Every step records several independent ways to re-find its element (id, test-id attributes, name, aria-label, a short CSS path, and its ARIA role + visible text for things like dropdown menus). Replay tries each in turn before giving up, so small layout changes usually don't break a macro outright — a full redesign still might.
Can I fix a broken step without re-recording the whole thing?
Yes — "Edit macro as JSON" on the Advanced tab swaps the list for the raw step data as text (iMacros' .iim-script idea, just JSON). Fix the one thing, then Apply; a bad edit is rejected with a clear error rather than silently corrupting your macro. Stuck? Copy the JSON into Claude along with the page’s HTML for the field that isn’t working (right-click it → Inspect → right-click the highlighted line → Copy → Copy outerHTML) and ask it to fix the steps; paste its answer back and Apply.
Data & spreadsheets
What format does my spreadsheet need to be in?
Either the Field/Value template shape (export it from your macro first — fields down, one column per run) or a plain everyday table (one row per record, headers across the top) — there's a toggle on the Data tab for which shape you're pasting.
I already have a table shaped the normal way — do I have to retype it?
No — that's exactly what the Batch Data Builder is for: paste your macro's template on one side, your own table on the other, click to link the matching fields, and it generates the exact tab-separated sheet EasyAgent expects. No manual copy/transpose/paste.
Can the page it starts on change per row too, not just the fields on it?
Yes — the starting URL has the same "bind to a column" option as any field, for when a game id, tournament id, or even the host itself needs to vary per row.
A field isn't bound to any column — what happens to it during a bulk run?
It just repeats whatever value/state was captured while recording, on every row. EasyAgent warns you above Dry run/Run batch when a bindable field is still unbound, in case that was accidental.
How do I set a checkbox from my spreadsheet?
Bind the checkbox step to a column, then in that column put yes, y, true, 1, x, or checked to tick it, or no, n, false, or 0 to leave it unticked (case doesn't matter). Leave the cell blank on a given row to keep whatever state was recorded, instead of forcing it either way.
How do I set a dropdown value from my spreadsheet?
For a native <select> (the plain HTML dropdown), just bind it like any other field and type the option's exact visible text (or its underlying value) in the column — this already works automatically. For a custom dropdown/menu built out of <div>/<li>/<span> instead of a real <select> (common in admin panels built with component libraries like PrimeNG/PrimeReact — a click opens a panel, then a second click picks one option), expand that option-click step on the Record tab and turn on "Menu/dropdown option — bind to data," then bind it to a column the same way. Type the exact option text you want (e.g. POP) — each row searches the open panel for whichever option's visible text matches and clicks that, instead of always clicking whatever option happened to be selected when you recorded it.
Can I skip the spreadsheet loop entirely and run against a page I already have open?
Yes — tick "Don't navigate automatically" under the starting URL. Replay/Dry run/Run batch then never open or re-navigate a tab on their own; they run against whichever tab is already active. Handy for opening pages by hand and replaying the same macro against each one in turn.
Can a field get today's date, a row number or a unique code?
Yes. Expand a typing step and put a placeholder in its Value: {{today}} (in the date format you pick under the Value box — 2026-10-10 by default, the format date pickers need), {{today+7}} or {{today-1}}, any date with a format such as {{today|DD/MM/YYYY}}, {{now}} for the time ({{now|HH:mm:ss}}), {{row}} for the row number and {{random}} (or {{random:10}}) for a unique code. A column name such as {{Email}} works too, and mixes with text: ORD-{{row}}-{{random}}. They're filled in fresh each time the step runs.
Some fields only appear when a checkbox is ticked — can it handle that?
Yes. Record once with the box ticked and every extra field filled in. Link the checkbox to a column (yes / no) and the extra fields to their own columns. Then expand the first extra field, turn on Only run if…, choose A column in my sheet, pick the checkbox's column and "is ticked", and use Same condition for the next N steps to copy it to the other extra fields. On rows where the checkbox column is no or 0, the box is unticked and those fields are skipped, not failed.
Running
Can I stop a run partway through?
Yes — a Stop button appears next to the progress bar. It finishes whatever step is in flight, skips the rest, and marks the summary "(stopped)" rather than counting the remaining rows as failed.
What happens when a step fails?
By default: it's logged as failed and the row carries on to the next step. Expand a step to turn on Retry on failure (up to 3 extra attempts) for one that's just flaky on a slow page, and/or Stop this row if it fails for a step later ones depend on (e.g. Save) — skips the rest of that one row and moves on to the next.
Does it work on single-page apps that never fully reload?
Yes — most of what EasyAgent automates is exactly this kind of app (an SPA admin panel). Replay waits out a real page navigation when one happens, and otherwise just moves on once the previous step's own re-render settles.
I did a Dry run and it worked — will Run batch enter row 1 again?
No. After a passing Dry run the button changes to Run remaining and starts from row 2, so the first record isn't created twice. If you do want row 1 again (say the dry run was a test you undid), use Run all instead in the run summary. Change the data or the steps and it goes back to running every row.
Some rows failed — do I have to run the whole sheet again?
No. The run summary offers Retry N failed rows, which re-runs only those rows. If a run was stopped, or cut short because Chrome closed or crashed, it offers Resume from row N instead and carries on from the first row that never ran. Progress is saved after every row, so this works even after reopening Chrome.
How do I see which rows worked and which didn't?
After a run, the Results sheet bar under the summary has Copy and Download. It's your original rows with three kinds of column added: EasyAgent status (Done, Failed or Not run), EasyAgent error (which step failed and why) and one column per Extract step. Copy pastes straight into Excel; Download saves a CSV. Nothing is downloaded unless you ask.
Can I slow a run down, or speed it up?
Yes, with Speed above the run buttons. Normal waits for each element and any page load. Fast trims the short settle pauses between steps, for quick, simple pages. Slow and Very slow add 1 or 3 seconds after every step, for sites that lag after each click. Every speed still waits for elements and page loads.
How do I find where a macro goes wrong?
Tick Step through above the run buttons. The run then pauses before every step, outlines on the page the element that step will use, and shows which step is next. Click Next step to run it, Run the rest to finish normally, or Stop.
Screenshots
Does it screenshot anything without me asking?
No — a screenshot only ever happens when you explicitly add a "Screenshot" step to the macro. Nothing else triggers one, including a step failing (that was tried and turned out to be more noise than help, since most macros get tried out as they're recorded).
Can I add a screenshot step anywhere in a macro?
Yes — click "Screenshot" on the steps panel, then either drag a rectangle over the part of the page you want (cropped to exactly that region on every future replay) or just click, for the full visible tab. It's drawn once, when you add the step, and reused from then on — no need to redraw it each run, even if the page has since scrolled or resized.
Where do screenshots show up?
Any manual Screenshot steps in the run appear in the run log as camera-icon chips; click one to open it in a new tab.
Are screenshots saved anywhere I can find them later?
Yes — every screenshot a manual Screenshot step captures is automatically saved as a file in your Downloads folder, in an "EasyAgent Screenshots" subfolder by default, named by the exact moment it was taken. Rename that subfolder (or point it at a nested path) on the Advanced tab. That's on top of showing up in the run log itself — the run log only ever shows the most recent run's results, but the files on disk stick around.
Extracting data
How do I capture a value the page shows me — a confirmation number, a computed total?
Click "Extract" on the steps panel, then click the element with the value on the page (nothing is clicked/typed for real — this is a read-only capture). It becomes its own step; on replay it reads that element's text instead of interacting with it.
Where do extracted values go?
Once a run with extract steps finishes, a small panel appears under the run summary — Copy puts a CSV on your clipboard (one row per input row, one column per extract step); Download saves it straight to your Downloads folder.
Can extraction run on its own, without me starting it each time?
Yes — that's what the Schedule tab is for. See the Schedule section below.
The value I want never reliably shows up on the visible page — what then?
Click "Fetch URL" instead of "Extract." Rather than reading a DOM element, it fetches a URL/API endpoint directly — useful when a widget is gated behind scroll or animation and never settles, but the page's own code is quietly calling a plain endpoint for that same number anyway. Expand the step to type the URL (it can be bound to a column too, for a per-row endpoint) and, optionally, a JSON path — e.g. data.count, or results.0.value for an array index — if the response is JSON and you only want one field out of it. Leave the path blank to capture the whole response as plain text. It runs inside the page's own context, so it carries that page's own cookies/session automatically, the same way the page's own JavaScript calling it would — a genuinely cross-origin endpoint still needs to actually allow that (standard browser CORS rules, not something EasyAgent can override).
Tabs
Can it follow a link that opens in a new tab?
Yes, automatically — a click that opens a new tab (target="_blank", a "view details" link, ctrl/cmd/middle-click, a script-driven window.open) is recorded as an "Open new tab" step, and recording/replay both follow it in. Closing that tab again records/replays as "Close tab", which drops you back on whichever tab it was opened from.
What if I forget to close a tab a macro opened?
Between rows of a bulk run, EasyAgent cleans up any tab left open from the previous row before starting the next one, so a missing "Close tab" step doesn't pile up tabs over a long run.
Schedule
How does the schedule keep running if I close the popup?
It's driven by Chrome's own alarm system, not anything inside the popup — so it keeps firing as long as Chrome itself is running, popup open or not.
Does the computer need to be on, or Chrome running, for it to fire?
Chrome needs to be running (it doesn't need to be the focused window, and the popup doesn't need to be open). It can't fire while Chrome or the computer is fully closed — there's no way for an extension to wake either of those up.
Does each scheduled run go through my whole spreadsheet?
No — each firing is a single, unattended run using the macro's own recorded values (like Dry run), building up a history over time rather than re-running a full batch every interval. It runs in a background tab that doesn't steal focus, and closes itself when done.
Where do I see what happened on each run?
The Schedule tab keeps a run log — timestamp, success/fail, and anything the macro's extract steps captured — downloadable as a CSV. A macro with no extract steps still logs pass/fail, so it doubles as a periodic "is this still working" check.
Does the log live anywhere besides the popup?
Yes — it's also auto-saved as a real file in your Downloads folder ("EasyAgent Logs" by default, changeable on the Advanced tab) after every single run, scheduled or manual, named after the scheduled macro itself — e.g. "Weekly Invoice Pull.csv" — so switching the schedule to a different saved macro starts its own file instead of mixing two macros' runs together. The whole file is rewritten each time from the complete history, so it's always one up-to-date CSV with every run's timestamp and data — not something you have to remember to export yourself, and not lost if the popup was never opened between runs.
Can I schedule more than one macro at once?
Not yet — one active schedule at a time in this version.
Macros & sharing
How do I keep more than one macro?
Open Macros at the top, type a name and press Save current as this. Add a group name to file it in a folder; folders can be collapsed, and the filter box finds macros by name or group. Each saved macro remembers its starting page, its column links and its "Don't navigate automatically" setting.
How do I share a macro with someone?
In the Macros panel, hover a macro and click the share icon. That saves a small .easyagent.json file you can email or message. They click Import a shared macro in their own Macros panel and pick the file. Importing never overwrites anything: a macro with the same name arrives as a copy, e.g. "Add product (2)". Passwords are never in the file, because they're never recorded.
Why does EasyAgent open in a side panel?
Clicking the EasyAgent icon in Chrome opens it as a side panel, so it stays open next to the page while you record and run. (In Firefox it opens as a popup.)
Troubleshooting
"Element not found" during replay.
The page probably hadn't finished rendering that element yet, or it genuinely isn't there this time (a menu that only appears in some states, a step recorded against the wrong thing). Try adding a short Wait step before it, or a couple of retries on that step.
Nothing happens when I click Replay/Run batch.
Check the starting URL is actually reachable and that "Don't navigate automatically" isn't on without a tab already open and active for it to run against.
My extracted values are all blank.
The extract step is probably pointed at an element that doesn't hold the value the way you expect — it reads a form field's current value if it has one, otherwise its visible text. Re-pick the extract step against the exact element showing the value.
The scheduled run never seems to fire.
Confirm it's actually turned on (Start Schedule, not just configured) and that the chosen macro has a starting page recorded — a macro with no recorded URL can't run unattended, since there's no "already open tab" to fall back to the way an interactive Replay can.
Privacy: EasyAgent doesn't collect, transmit, or sell any data. Everything you record and every spreadsheet you load stays in your browser's local storage, on your device — never sent to a server, developer, or third party. Password fields are never captured with a value, only the interaction. See the full Privacy Policy.