I have a make.com scenario where i want it to watch deals in pipedrive.
If a deal has been updated, i want it to check a google sheet, perform a lookup to identify the exact row that needs to be updated and then updated the row.
The make scenario identifies that the row exists and then updates it but it just replaces the top row in the google sheet. It is not able to identify which row to update.
Can you post your update rows parameters screenshot ? Why are you using bulk update if it’s only to update only 1 line ?
”It is not able to identify which row to update.” - this is probably because search rows module is inside array aggregator chain and what is inside can not be accessed from outside (after the aggregator). What are you aggregating ? Maybe this can be done differently.
Aggregating because if there are multiple deals that get updated in pipedrive, I would want all those deals to be updated in google sheet. All the documentation I could find online suggested that this would be expensive to do row by row and instead use and aggregator.
You can resolve this issue by adjusting the structure of your scenario.
Limit the Google Sheets “Search Rows” module to return only one result so that Make provides the exact row you need.
Remove the Array Aggregator, as it is not required when a single row is returned.
Replace the “Bulk Update Rows (Advanced)” module with the standard “Update a Row” module, which uses the specific Row ID and prevents the top row from being overwritten.
A simplified flow would be:
Watch deals in Pipedrive,
Search for the matching row in Google Sheets with the result limited to one,
Filter if search found result
Update the previously searched row.
This will ensure that the correct row is consistently updated.
If multiple deals are updated in Pipedrive, the Watch Deals module will trigger once for each deal. Each deal will be processed individually, so aggregation is not necessary. Make will run the scenario for every updated deal and update the corresponding Google Sheets row without additional complexity.
Apologies for not being clear. Perhaps this will help.
The google sheet will contain a list of data from selected fields, but only for deals in a certain pipeline. As data in these deals will move quite quickly, watching and updating one field at a time will not keep up and will be quite credit intensive, so the idea was;
Watch all deals (over specified period, e.g. once per day), aggregate that data, then routed to either
If updated deals already exist in google sheet, bulk update the relevant columns
If updated deals do not exist in google sheet, bulk add new rows
I created a new scenario in which the data from the Pipedrive (watched deals) were being aggregated, but I then had trouble with the routing.
Looking at the whole scenario, I agree with @Probotic_Solutions, you have to go one-by-one, removing the aggregator. Watch deals > Get data field > Search rows > Update row (not bulk) IF search rows bundle amount = 1 and add row if bundle amount is null.
Make sure you get filters between modules right, else it’s gonna consume good quantity of operations.
P.S. edge case : search row might find more than 1 results ==> duplicate data ? address this issue accordingly.