ZeroWork
  • 👋Home and Welcome
  • 🚀Getting Started
  • ⬇️Install the Agent
  • 🧑‍💻Crash Course
  • Using ZeroWork
    • 🖥️General: Run, Schedule, Share, Webhooks
      • Run
      • Stop
      • Log in to the Agent
      • Run Modes
        • Run Incognito
        • Run Non-Incognito
        • Run in My Regular Browser
      • Run Settings
        • Run in Background
        • Stay on Page after Run
        • Bring Pages to Front
      • TaskBot Sharing Options
      • Cookies
      • Scheduler
      • Trigger Run via Webhook
      • Proxies
      • Remote (Cloud) Execution
      • How to Check and Update Your Agent
      • Install ZeroWork Agent on VPS
    • 📔Using Selectors
      • What Are Selectors
      • Use Element's Text
      • Copy Selectors
      • How to Build Custom Selectors
        • Basic Concepts of Selectors
        • One Element Can Have Many Selector Expressions
        • Check if Selector Is Correct and Unique
        • Exact or Loose Match
        • Hierarchy
        • Combine Filters with Standard CSS Logic
        • Lists: Incremental CSS Selectors
        • Addressing Siblings
      • How to Use XPath in ZeroWork (advanced)
    • 🏗️Using Building Blocks
      • Open Link
      • Save Page Url
      • Switch or Close Tab
      • Go Back or Forward
      • Switch Frame
      • Browser Alert
      • Click Web Element
      • Check Web Element
      • Save Web Element
        • Save Lists
        • Enrich Existing Data
        • Stop Run If Selector Is Not Found Option
      • Insert Text or Data
      • Hover Web Element
      • Select Web Dropdown
      • Keyboard Action
      • Start Condition and Set Condition
        • Actions = & ≠
        • Actions <, ≤, >, ≥
        • Data Found & Data not Found
        • Contains & Does Not Contain
        • Before (Date) & After (Date)
      • Start Repeat
        • Standard Loop
        • Dynamic Loop
        • Continue until No Element Is Found
        • Auto-Scroll
        • Auto-Continue from Last Row or Element
        • Nested Loops - Handle Pagination
      • After Repeat
      • Break Repeat
      • Try-Catch
      • Raise Error
      • Abort Run
      • Update Data
      • Number Operations
        • Example: Standardize different formats
      • Format Data
        • Remove Words
        • Shorten Content Length
      • Split Data
      • Apply Regex
      • Remove Duplicates
      • Delete Data
      • Ask ChatGPT
      • Send Notification
      • APIs: Send HTTP Request
      • Write JavaScript
      • Save File
      • Upload File
      • Delay
      • Record Date
      • Take Screenshot
      • Save from Clipboard
      • Log
      • Building Block Options
        • Delay Times between the Building Blocks
        • Randomize Delay Time
        • Deactivate Building Blocks
        • Shortcuts
        • Spintax
        • Auto-Align
        • Sticky Notes
    • 🔀Using Variables
    • 💿Using Tables
      • How to Add Tables
      • Native Tables
      • Google Sheets
      • Import Data from CSV
      • Using Google Sheet vs. Native Tables
      • Create Columns
      • Export Data as CSV
      • Convert Native Table to a Google Sheet
    • 📄Using Run Reports
    • 😑Common Problems
      • My TaskBot Does Not Start Run
      • When I Use Data from Table, No Data is Being Pulled
      • Website is Glitching and Flashing
      • No Selector is Found
      • My TaskBot Saves Some Data but Not All
      • Data Is Saved in Wrong Format
      • Website Requires SMS or Email Verification
      • Keyboard Action Is Not Working As Expected
      • Check Web Element Identifies Selector as Found but Next Action Does Not
      • When Using Insert Data Block, First Letters Are Cut Off
      • Workflow Has More than One Starting Building Block
      • TaskBot Does Not Automatically Scroll
  • Support
    • 🆘Getting Support
  • 🆕Release Notes
    • Version 1.1.61
    • Version 1.1.62
    • Version 1.1.63
    • Version 1.1.64
    • Version 1.1.65
    • Version 1.1.66
    • Version 1.1.67
    • Version 1.1.68
Powered by GitBook
On this page
  • Tips
  • FAQ

Was this helpful?

  1. Using ZeroWork
  2. Using Building Blocks
  3. Start Repeat

Dynamic Loop

Dynamic loop is used to iterate over existing rows in a table.

Suitable for

  • Updating existing data - example: visiting profile links from a table and adding profile details such as "About Me" section to the existing rows or updating their qualification status based on certain conditions.

  • Performing actions on existing data - example: visiting profile links from a table and auto-sending outreach messages.

Key characteristics

  • Iterates over existing rows until it consumes all rows.

  • If you don't want to iterate over all rows but need to access, for example, only one row, enter 1 to the optional repetition limit (or any other number that you need).

Example set-up

See Enrich Existing Data (link includes a video tutorial).

Tips

Do not mix different tables in the same dynamic loop

Your loop is tied to a specific table.

It's error-prone to use references to other tables inside that loop.

If you need data references from sources other than the looping-through table, use variables (see Using Variables), which are independent from any loop index. This is relevant if you use comparisons between dynamic data (comparisons are done with Start Condition and Set Condition).

Increase TaskBot run speed by filtering rows

Note: This section below is about an in-built optimization technique where rows are pre-filtered and not passed to TaskBot. This pre-filtering technique only applies to ZeroWork native tables and does not apply to Google Sheets tables.

Whenever you need to filter the rows, place Start Condition and Set Condition building block pair right after Start Repeat. By doing so, you will ensure that our system will sort out all the rows that are not relevant before passing the rows to the TaskBot to iterate over.

✅ Rows will be pre-filtered -> TaskBot runs faster, it will iterate over a small(er) subset of rows

❌ Works but rows will not be pre-filtered because condition is not placed right after Start Repeat -> TaskBot runs slower, it will iterate over ALL rows

❌ Works but rows will not be pre-filtered because there are multiple conditions -> TaskBot runs slower, it will iterate over ALL rows

Note: If your Set Condition building block contains references to tables or variables, the pre-filtering optimization is not applied. This is because it's possible for you to update the table and variable references within the loop, which would dynamically change the condition, and so pre-filtering is not possible. There are strategies to circumvent this, see advanced question and tutorial below.

FAQ

(Advanced question) I have a table with records that I need to match to records from another table on every loop iteration. Looping through the whole table on every match operation is not efficient. Is there a way to increase efficiency?

(Advanced Answer) Yes, you can increase efficiency by leveraging the pre-filtering logic, using Break Repeat and, if applicable, alphabetic matching. Here is a tutorial that covers all of these strategies:

PreviousStandard LoopNextContinue until No Element Is Found

Last updated 11 months ago

Was this helpful?

🏗️