Skip to content
Array Aggregator to...
 
Notifications
Clear all

Array Aggregator to Google Sheets

14 Posts
4 Users
0 Reactions
6 Views
Chandrika_Shenoy
(@chandrika_shenoy)
Posts: 8
Active Member
Topic starter
 

I'm setting up a process to fetch URLs from a Google Sheet based on a matching name and then update these URLs in Airtable.
My current setup is as follows:

The output bundle from the aggregator appears like this:

I've applied the following filter in my Google Sheets module to match names from column A of the Google Sheet with those from the array aggregator:

The input bundle from Google Sheets looks like this:

The output bundle from Google Sheets is as follows:

image

I suspect there might be an issue with how I've implemented the filter, but I'm having trouble pinpointing it. Any suggestions would be greatly appreciated.
Thanks in advance!

 
Posted : 22/11/2023 1:26 pm
Bjorn.drivn
(@bjorn-drivn)
Posts: 13
Active Member
 

Hi there, since you're initially generating a new array with the Aggregator, you can't directly use that array for searching. Following your first aggregator, you'll need to employ an iterator again to loop through each item. Each individual item can then be searched and matched using the filter (also adjust the filter accordingly).

However, based on your scenario, I don't believe the initial aggregator is necessary. The Airtable module will produce bundles that iterate independently. Therefore, simply remove the aggregator and utilize the Airtable data as the input for your gSheet.

Hope this assists you!
~Drivn team

 
Posted : 22/11/2023 1:54 pm
Chandrika_Shenoy
(@chandrika_shenoy)
Posts: 8
Active Member
Topic starter
 

Hi,

Thanks for getting back to me. I wanted to clarify something.

Airtable has some records that don't perfectly match the records in a Google Sheet. Essentially, I'm looking to set up a scenario that accomplishes the following:

  1. Search Airtable records for company names that are missing website information.
  2. For each of those company names, find a matching record in the Google Sheet.
  3. Update the corresponding Airtable record with the company's website URL.

Would this process not necessitate using an aggregator after the Airtable step? I'd need to compare each record from the Airtable array against the rows in the Google Sheet to find the correct matches.

 
Posted : 23/11/2023 4:37 am
Chandrika_Shenoy
(@chandrika_shenoy)
Posts: 8
Active Member
Topic starter
 

I've successfully achieved the desired outcome up to the iterator stage. My callin.io workflow searches Airtable for records and compiles them into an array. Each item in this array is then cross-referenced with Google Sheets data. Records that match are passed through another aggregator, and this resulting array is iterated over. However, the final module, 'Update a record,' while producing an output without errors, isn't actually updating Airtable.

Here are the screenshots for the Iterator and Update Airtable record modules:

Iterator input and output (5 records were matched with Google Sheets, and 5 bundles were created).

Update airtable record input and output:

The formula in the settings of this module:

How can I configure callin.io to update rows by identifying the name? Should I utilize the map function in the record ID section?

 
Posted : 23/11/2023 7:45 am
Philippe_Billet
(@philippe_billet)
Posts: 5
Active Member
 

Hi,

I need some clarification:
Your issue is “I have some data in Airtable, and I want to verify if it corresponds to a specific Google Sheet. If it does, I need to update the related information in Airtable.”
Is that correct?

For a single invocation of the “Search rows” module, how many rows are anticipated?

Best regards,

Philippe

 
Posted : 23/11/2023 8:18 am
Chandrika_Shenoy
(@chandrika_shenoy)
Posts: 8
Active Member
Topic starter
 

I have names with missing URLs in Airtable. The Google Sheet contains names and URLs. I want to check if:

  1. The name from Airtable matches the name in the Google Sheet.
  2. If a match is found, collect the URL from the Google Sheet and update it in Airtable.
  3. If no match is found, exit the process.

For a single call to Search Rows, 10 lines are expected currently, but this number could increase as the data grows.

 
Posted : 23/11/2023 8:40 am
Philippe_Billet
(@philippe_billet)
Posts: 5
Active Member
 

Could you share a screenshot of your current scenario?

Based on your description, after the "Search rows" module, you should have an array of bundles, with each bundle representing a row from the Google Sheet.
You can simply use an iterator followed by the "Update a Record" module. The iterator will handle the looping automatically (refer to the documentation).

 
Posted : 23/11/2023 8:52 am
Chandrika_Shenoy
(@chandrika_shenoy)
Posts: 8
Active Member
Topic starter
 

Sure, here is the scenario

Are you suggesting that the array aggregator following the Google Sheets module can be removed? Should the filter between Google Sheets and the Iterator be kept?

Additionally, the output bundles from the iterator containing the URLs should now be updated in Airtable by mapping the names. I'm a bit unclear on how iterators are used.

Please provide the rewritten markdown content.

 
Posted : 23/11/2023 8:59 am
Philippe_Billet
(@philippe_billet)
Posts: 5
Active Member
 

I believe the array aggregator isn't particularly useful. The output from the "Search Rows" module is already an array (containing all rows from your Google Sheets that match your criteria). Therefore, using an iterator followed by a call to the "Update a Record" module should be adequate.

Following the previous comment, you should also remove the initial array aggregator.

 
Posted : 23/11/2023 9:22 am
Chandrika_Shenoy
(@chandrika_shenoy)
Posts: 8
Active Member
Topic starter
 

So the output from both Airtable and Google Sheets modules results in separate bundles. This is why the aggregators are being placed after each search. Now I have two aggregated arrays: one from Airtable containing names and record IDs, and another from Google Sheets containing names and URLs. I want to compare each name from the first array with the names from the second array to find matches. Then, I need to pass only the matching names along with their URLs to the iterator. How can I achieve this using the get/map function?

 
Posted : 24/11/2023 8:27 am
Chandrika_Shenoy
(@chandrika_shenoy)
Posts: 8
Active Member
Topic starter
 

I also attempted to remove the initial aggregator and duplicated the scenario, which appears as follows:

It seems that if I use the Google Sheets module immediately after Airtable, it outputs separate bundles. These bundles do not appear to be aggregated as I observe the output of the aggregator, iterator, and Airtable each showing 3 operations. I believe this might not be the intended behavior.

What are your suggestions?

Alternatively, if I were to proceed with the initial scenario I shared yesterday, it provides an array for each search module. This means I receive an array for Airtable and another for Google Sheets. Prior to iteration, I need to compare these two arrays. Is there a function that can assist with this comparison?

 
Posted : 24/11/2023 8:58 am
Lauren_Moineau
(@lauren_moineau)
Posts: 6
Active Member
 

Hi, I'm not sure if there's a more streamlined approach, but here's one way to do it:

In my setup, I'm using "userId" instead of a URL.

Following the iterator, I've implemented a filter to isolate records that lack a userId.

Screenshot 2023-11-24 115646

Next, I've added a Google Sheet Search Rows (Advanced) module. This module uses a query to match the name in the sheet with the name from Airtable, retrieving the userId from the corresponding cell. You'll need to use the column letter in the query, not the header name.

Finally, you update Airtable with this retrieved data.

Hope this is helpful!

:slight_smile:

 
Posted : 24/11/2023 11:05 am
Chandrika_Shenoy
(@chandrika_shenoy)
Posts: 8
Active Member
Topic starter
 

Thank you so much! This actually worked

:slight_smile:

Phew! I have literally racked my brain on different get and map functions for this scenario. Thank you once again!

 
Posted : 24/11/2023 11:51 am
Lauren_Moineau
(@lauren_moineau)
Posts: 6
Active Member
 

My pleasure. Glad it works

:slight_smile:

 
Posted : 24/11/2023 11:57 am
Share: