Google Sheets Agent Experience Report: Conditional Filtering Issues
User Experience Report - "Favoris" Agent (Google Sheets Enrichment) Date: November 10-11, 2025 Agent ID: 6911fe2a4c75d3d6ae51f1e7 Context: Automated enrichment of a Google Sheet with French summaries 🎯 Initial Objective Create an agent that:
- 1.
Reads a Google Sheet containing bookmarks (URL + Title)
- 2.
Identifies rows where the "ResumeFR" column is empty
- 3.
Generates a French summary (3 lines) for these rows only
- 4.
Updates only empty rows (without reprocessing already completed rows)
❌ Major Problem Identified IMPOSSIBILITY TO FILTER ROWS BASED ON CONDITIONS The agent cannot effectively detect if a column is already filled, causing: 1️⃣ Absence of Conditional Filtering Actions
❌ No findManyRows with conditions
❌ No filter for "where column X is empty"
❌ getSpreadsheet2 retrieves ALL rows without filtering capability
❌ findRow2 only finds ONE row by exact value (no "empty" condition)
2️⃣ Ineffective Workaround with AI State The user attempted to work around the problem by:
Loading all rows with getSpreadsheet2
Adding logic in the "Enrichment" AI State to check if ResumeFR[3] is empty
Asking the AI to "SKIP" if the column is already filled
Result: ❌ Complete Failure
The AI State cannot reliably access current row data
Impossible to programmatically test if (row[3] === "")
The agent reprocesses ALL rows on every execution
Wasteful consumption of credits (repeated Google searches)
3️⃣ Data Referencing Problem in Loops
{
"nodeId": "6911fe5284ebb6fa2e58240e",
"path": "[3]",
"type": "input",
"displayName": "ResumeFR (index 3)"
}This reference doesn't work properly in the AI State for conditional checking. 🔍 Current Agent Architecture Workflow
- 1.
Conversation EntryPoint → Asks how many rows to process
- 2.
AI State "Preparation" → Asks user for number of rows
- 3.
Get Spreadsheet (GoogleSheets.getSpreadsheet2) → Loads 200 rows
- 4.
Enter Loop → Processes up to 300 rows, 5 concurrent
- 5.
AI State "Enrichment" →
❌ Supposed to check if ResumeFR is empty
❌ Doesn't work in practice
Performs Google searches
Generates summary
- 6.
Update Row (googleSheets-updateRowV3) → Updates the row
- 7.
End Loop
Technical Configuration
Sheet Name: Favoris_IA__tableau_ (ID: 1165010054)
Lookup Strategy: Column search by "id"
Model: sm (small)
Max iterations: User-defined (default 10)
Max concurrent: 5
💥 Consequences of the Problem For the User
- 1.
Credit Waste: Google searches repeated for already processed rows
- 2.
Time Lost: Agent reprocesses everything on each execution (25 !) i lost 2 hours
- 3.
Impossible to Use in Production: Cannot handle incremental additions
- 4.
Frustration: Complex workarounds that don't work
Typical Failure Scenario
Initial state: 100 rows, 95 already enriched, 5 new empty ones
Expected behavior: Process only the 5 new rows
Actual behavior: Reprocesses all 100 rows (or defined limit)
Result: 95 unnecessary Google searches + risk of overwriting🛠️ Attempted Solutions (Unsuccessful) 1. Verification in AI State
Guidelines: "Check the ResumeFR column (index [3]).
If already filled, respond SKIP"❌ Doesn't work: AI cannot reliably access row data 2. Verification in Update Row Action
{
"type": "ai",
"path": ["resumeFr"],
"prompt": ["Check if ResumeFR is empty, if not return empty string"]
}❌ Doesn't work: Too late, searches have already been performed 3. Limiting Number of Rows
{
"path": ["limit"],
"manual": 200
}⚠️ Insufficient Workaround: Reduces the problem but doesn't solve it 💡 Proposed Solutions for Lindy Team 🔥 HIGH PRIORITY: Add Conditional Filtering Actions Option A: New findManyRows Action
Action: GoogleSheets.findManyRows
Input:
- spreadsheetId
- sheetId
- conditions: [
{
column: "ResumeFR",
operator: "isEmpty" | "isNotEmpty" | "equals" | "contains"
value: (optional)
}
]
Output:
- rows: Array<Row>
- rowNumbers: Array<number>Option B: Enhance getSpreadsheet2 Add a filter parameter:
{
"filter": {
"column": "ResumeFR",
"condition": "isEmpty"
}
}Option C: Specialized getEmptyRows Action Specialized action for this frequent use case:
Action: GoogleSheets.getEmptyRows
Input:
- spreadsheetId
- sheetId
- columnName: "ResumeFR"
- limit: 100
Output:
- rows with empty column🎯 MEDIUM PRIORITY: Improve Data References in Loops Allow programmatic conditions in AI States:
IF row.ResumeFR is empty THEN
proceed with enrichment
ELSE
skip to next iteration📚 LOW PRIORITY: Documentation Clarify in documentation:
Which actions support filtering
How to access current row data in a loop
Recommended patterns for incremental enrichment
🔄 Comparison with Other Platforms Airtable (mentioned as alternative) ✅ findManyRecords with filter formulas ✅ Native filtered views ✅ Complex conditions supported Make.com / Zapier ✅ Native conditional filters ✅ Dedicated "Filter" modules ✅ Conditions on empty fields Lindy (current state) ❌ No conditional filtering on Google Sheets ❌ Complex and unreliable workarounds ❌ Resource waste 📊 Business Impact For Users
Blocked Use Case: Incremental database enrichment
High Cost: Credits wasted on unnecessary operations
Hindered Adoption: Impossible to use Lindy for this type of workflow
Affected Use Cases
- 1.
✅ CRM enrichment (contacts, leads)
- 2.
✅ Product catalog updates
- 3.
✅ Content translation/localization
- 4.
✅ Data scoring/qualification
- 5.
✅ Any workflow requiring conditional processing
Estimate: 30-40% of data enrichment workflows require conditional filtering. 🎬 User's Final Note
"This experience is a disaster for being able to update rows. It can only work on one-shot updates. In other words, if I have 5 bookmarks added at the bottom of my spreadsheet, the agent will redo the update and redo requests for all rows, because it cannot detect that a column is already filled."
📎 Additional Technical Information
Agent Definition ID: 6911fe2a4c75d3d6ae51f1e7
Graph Version: 32
Report Date: November 11, 2025, 4:53 PM (Europe/Paris)
📝 User's Sticky Note from Agent Graph
"WARNING: The limitation with using Spreadsheet is that we cannot test if a row is already filled, especially the 'Résumé FR' column. The task history clearly shows this. Additionally, Lindy tries to customize the Flow Editor with code that is invisible and reserved for the premium version. So, it's really a disaster. It can only work on one-shot updates. In other words, if I have 5 bookmarks added at the bottom of my spreadsheet, the agent will redo the update and redo requests for all rows, because it cannot detect that a column is already filled."
