You want a quick scan of what's on the top of a handful of pages — three news sites, three blog feeds, three internal dashboards — without manually tabbing through each one. This template opens three URLs in separate tabs, captures the <h1> from each, and logs the results. Tabs stay open afterward so you can keep working with them. Common users: ops engineers checking dashboard headlines, content strategists doing a morning sweep, or researchers tracking how related articles frame the same topic.
How this workflow works
Nine blocks. The structure repeats: open tab → wait → grab H1 → log. The template ships with two repeats (example.com and example.org); the third repeat is implied by the pattern — duplicate the four blocks and change the URL to add it.
manual_trigger— Sidepanel Run.targetTab: "new"opens a fresh tab as the starting context.new_tab— Openshttps://example.comin a fresh tab. Unlikenavigate, which replaces the current page,new_tabcreates a new tab and switches workflow context to it.wait_for— Waits for the<h1>element to be visible. Default timeout applies.get_text— Reads the text of that<h1>. Result available as$('Capture example H1').text.log_data— Writes the captured text to the run log with labelexample.com.new_tab— Openshttps://example.orgin yet another fresh tab. The previous tab stays open in the background.wait_for— Same wait for<h1>, withtimeoutMs: 15000(slightly more generous, useful for slower-loading sites).get_text— Grabs the H1.log_data— Logs it with labelexample.org.
After completion you have two tabs sitting open (plus your original tab) and two log entries summarising what you captured. The active tab is the last-opened one.
Customising it for your case
Three obvious tweaks.
- Different URLs. Edit the
data.urlfield on eachnew_tabblock. Replaceexample.comandexample.orgwith the URLs you actually monitor — your status pages, your team's dashboards, your competitor's homepage. Selectors stay the same (most public sites have anh1); for sites that don't, swap theget_text.selectorfromh1to something more specific like.dashboard-titleor[data-test="page-heading"]. - Add the third tab. The template title says "Open 3 tabs" but the JSON only ships two repeats. Duplicate the four blocks for tab B (
new_tab,wait_for,get_text,log_data), point them at your third URL, and wire the previouslog_data.nextto the newnew_tab.id. - Capture multiple elements per tab. After each
get_text, add anotherget_textblock targeting a different selector (e.g.meta[name="description"]for the page description, or.last-updatedfor a timestamp). Then concatenate them in thelog_data.sourcetemplate.
Common gotchas
Opening many tabs at once can spike memory usage on machines with limited RAM — every Chromium tab is roughly 50-200 MB depending on what's loaded. Three tabs is fine; thirty is not. Second: some sites detect rapid tab opening as bot behaviour and may serve a CAPTCHA or block load — observable as the wait_for block timing out. Third: wait_for h1 will fail on pages that don't have an <h1> at all (some marketing pages use <h2> for the hero, or just a <div> styled as one). Inspect the target site first.
FAQ
Why use new_tab instead of navigate? Because navigate replaces the current page, losing it. new_tab keeps everything you had open and adds new tabs on top. The workflow then "follows" the new tab for subsequent blocks until you open another one.
Can I close the tabs at the end? Yes — add a close_tab block after the last log_data. Without it, tabs stay open by design (this template treats that as a feature, not a bug).
How is this different from Automa's tab handling? Automa uses an implicit "current tab" concept too, but switching back to a previously-opened tab is more explicit there. BNOD's $('Step').text grammar gives you direct access to results regardless of which tab the block ran in — Automa requires you to thread variables manually.