Amazing to hear! Yes, you should be able to access your Google Sheets files from Google Drive, in the same account! Asking questions is how you learn :)
Great Video, thank you Jono! I have a question. I have the same scenario as in minute 28:24 with Bob, Sarah, Matt. But at the end, instead of “Update a row” -> “Create a Spreadsheet from a Template”. The result is that 3 new templates are created instead of one template. What is the problem?
Hey there! It's because you have 3 bundles, or an array (i.e. list) of 3 items. It's going through each item, one at a time, creating a template for each. You'll need to use an array aggregator before the 'Create a template', to only have one output. The source module should be the iterator, or wherever the source of the multiple bundles is coming from
Thank you for the awesome Google Sheets guide. Can you also recommend other extensions to add to Google Sheets and explain each Function that could I see Split names and Power Tools could be used with make?
Hey! This is a great idea. To be honest, the only extension I use is Make.com. Split names you should be able to write a formula to achieve - unless you're dealing with names that include initials as well. I'll add it to the content calendar. Thanks :)
@@jonocatliff Thank you for the response, is it possible for you to explain how to create a mapping from scraping incoming email or scraping a website to gut only specific data from the scrape?
Hey! I'm not sure if I fully understand the question, and it's getting a bit technical to give a proper answer based on such limited info, but if the question you're asking is how can you only include certain information, and leave other stuff out, you'd have use 'create JSON', to create a new data structure, and only include the data that you want. When dealing with JSON, there's 7 data types, including text, numbers, arrays, objects, etc. Just make sure you structure it the way you want and map the data properly. If you're using iterating through a list, and you use the array aggregator to bundle all the data into one result, you can set the target structure type to the JSON data you just created
Thank you very much Jono! It helped me a lot! But I have a question... I followed the step by step and created the change trigger in my Google Sheet. However, I am facing a problem. My sheet is changed by other tools. I have a Typebot that creates rows in my sheet. And the Make trigger is not being triggered when the sheet is changed by some other application. The trigger is only being triggered when the sheet is changed manually. Please, do you know what is happening?
I would probably change the trigger of the workflow to 'Watch New Rows'. The 'Watch For Changes' trigger will work when you update it. Hope this helps :)
isnt the sleep based on when they enter? >> its not it functions like a drip, never knew. Also what are the rate limits? 1 per 10 seconds your example of 700 records is going to take 2 hours to process, how much room do we have to increasing? >> its 300 per minute per project, so you could max the sleep at 1 per second and get 60 per minute and still be way under. Last question, if I retrieve rows based on a cell value, and it returns 500 bundles, this is only 1 request correct? they should all come through as 1 request and not hit a rate limit?
Hey great questions, thanks for the comment: 1. In Make.com sleep is located in the tools section, but in coding/javascript, you'd write this as a function, so if I called it a function it's because of my background in coding first, then Make.com second :) The sleep operation will run whenever it's reached in the scenario. Typically, you'll iterate through a list of multiple items, and each time you run through a new item, you'll want to delay the scenario for a certain amount of time, using sleep. 2. Rate limits are a certain amount of requests in a given amount of time, i.e. 5 requests per second. Make.com does not set the rate limits, the software you're using (such as Google Sheets, or Google calendar, or Airtable, or most other things) defines these rate limits, so you'll have to google "rate limit for {software}" to see what those are. I believe in Google Sheets it's 300 requests er minute per project. Here's is where I found that: developers.google.com/sheets/api/limits. So you're absolutely correct with what you mentioned with a sleep function for 1 second per request. 3. I believe you're correct, if you search all rows simultaneously, it's one request; however, if you were to iterate through 301 items and search individually, then it would count as 301 requests. Hope this helps :)
hi can you tell me if the option {{watch changes }} always need a manuel change because i have a workflow betwen tally and googles sheet but this option does not trigger
Hey there! For me, it comes down to a personal preference. They're pretty much interchangeable, but I've used Google Sheets my whole life and am familiar with the complex formulas you can create in it!
After filling in `Google Sheets watch change copy the webhook URL and place it in to make EXT the save button on the Extention doesn't work, and there are no save notifications :((
Why did you add the client the second time even though it exists? I mean the whole idea is to avoid duplicates in whole sheet based on email id. Isn't it? Perhaps an Iterator is needed? This is regarding th-cam.com/video/qXwJlJZJ5iU/w-d-xo.html
Hey Frank, excellent point, thanks for bringing this up! You're right - the whole idea on this tip is to avoid duplicates. I kind of mentioned it at 14:10 but I should've been more clear - this is just an example of how this works you can either update a record that exists or create a record if it doesn't exist. The reason it duplicated was because at 9:28 I hardcoded the values (first name, email, etc) and then when I ran the workflow at 15:44, I created a row that didn't have an email input, so when it searched for an empty email input, it came up empty, so it create a contact based on the hardcoded value I entered earlier. In practicality, you'd send data from a CRM or somewhere else, and this 2-step lookup is one of the things I use the most in Make.com
@@jonocatliff I think the ID that comes from CRM is not just unique but comes in ascending order for each row. This is why it is enough to do what you did in the video. Hence, no need for an iterator to check if it exists in the previously inserted rows. Thanks for explaining.
Great video! 5 star! Do you think we need an Iterator? You said with the unique identifier you could determine if the client exists in the spreadsheet. However, you are only searching against the one row at th-cam.com/video/qXwJlJZJ5iU/w-d-xo.html
Hey there! When you use the 'search rows' Google Sheets module, you'll be able to search the entire spreadsheet for whatever the filter is you set. So for example, if you search the spreadsheet for "bob@gmail.com", it'll search the whole spreadsheet. The reason this example didn't work out at the example at 15:40, and reflecting back I wish I made this a lot clearer because this is such an important step, is because in the example I used I didn't pass in any email. updated the "message" field on a row that didn't contain an email, so it searched for an empty email and didn't return anything. In practice, in 90% of the instances I use Google Sheets, I'll send data on a client from my CRM to Make.com, and search using their email. If that email exists, it'll update, and if it doesn't exist it'll create. Hope this helps!
Awesome! I learned something new today! Is Google Sheets part of Google Drive? I'm confused. Sorry if this is probably a stupid question
Amazing to hear! Yes, you should be able to access your Google Sheets files from Google Drive, in the same account! Asking questions is how you learn :)
Great video!
Thank you very much :)
Great Video, thank you Jono! I have a question. I have the same scenario as in minute 28:24 with Bob, Sarah, Matt. But at the end, instead of “Update a row” -> “Create a Spreadsheet from a Template”. The result is that 3 new templates are created instead of one template. What is the problem?
Hey there! It's because you have 3 bundles, or an array (i.e. list) of 3 items. It's going through each item, one at a time, creating a template for each. You'll need to use an array aggregator before the 'Create a template', to only have one output. The source module should be the iterator, or wherever the source of the multiple bundles is coming from
@@jonocatliff Thank you!
Thank you for the awesome Google Sheets guide. Can you also recommend other extensions to add to Google Sheets and explain each Function that could I see Split names and Power Tools could be used with make?
Hey! This is a great idea. To be honest, the only extension I use is Make.com. Split names you should be able to write a formula to achieve - unless you're dealing with names that include initials as well. I'll add it to the content calendar. Thanks :)
@@jonocatliff Thank you for the response, is it possible for you to explain how to create a mapping from scraping incoming email or scraping a website to gut only specific data from the scrape?
Hey! I'm not sure if I fully understand the question, and it's getting a bit technical to give a proper answer based on such limited info, but if the question you're asking is how can you only include certain information, and leave other stuff out, you'd have use 'create JSON', to create a new data structure, and only include the data that you want. When dealing with JSON, there's 7 data types, including text, numbers, arrays, objects, etc. Just make sure you structure it the way you want and map the data properly.
If you're using iterating through a list, and you use the array aggregator to bundle all the data into one result, you can set the target structure type to the JSON data you just created
Thank you very much Jono! It helped me a lot! But I have a question... I followed the step by step and created the change trigger in my Google Sheet. However, I am facing a problem. My sheet is changed by other tools. I have a Typebot that creates rows in my sheet. And the Make trigger is not being triggered when the sheet is changed by some other application. The trigger is only being triggered when the sheet is changed manually. Please, do you know what is happening?
I would probably change the trigger of the workflow to 'Watch New Rows'.
The 'Watch For Changes' trigger will work when you update it.
Hope this helps :)
Good stuff 👌
Thank you!
isnt the sleep based on when they enter? >> its not it functions like a drip, never knew.
Also what are the rate limits? 1 per 10 seconds your example of 700 records is going to take 2 hours to process, how much room do we have to increasing? >> its 300 per minute per project, so you could max the sleep at 1 per second and get 60 per minute and still be way under.
Last question, if I retrieve rows based on a cell value, and it returns 500 bundles, this is only 1 request correct? they should all come through as 1 request and not hit a rate limit?
Hey great questions, thanks for the comment:
1. In Make.com sleep is located in the tools section, but in coding/javascript, you'd write this as a function, so if I called it a function it's because of my background in coding first, then Make.com second :) The sleep operation will run whenever it's reached in the scenario. Typically, you'll iterate through a list of multiple items, and each time you run through a new item, you'll want to delay the scenario for a certain amount of time, using sleep.
2. Rate limits are a certain amount of requests in a given amount of time, i.e. 5 requests per second. Make.com does not set the rate limits, the software you're using (such as Google Sheets, or Google calendar, or Airtable, or most other things) defines these rate limits, so you'll have to google "rate limit for {software}" to see what those are. I believe in Google Sheets it's 300 requests er minute per project. Here's is where I found that: developers.google.com/sheets/api/limits. So you're absolutely correct with what you mentioned with a sleep function for 1 second per request.
3. I believe you're correct, if you search all rows simultaneously, it's one request; however, if you were to iterate through 301 items and search individually, then it would count as 301 requests.
Hope this helps :)
hi can you tell me if the option {{watch changes }} always need a manuel change because i have a workflow betwen tally and googles sheet but this option does not trigger
Hey there, great question! I believe it does always require a manual change. You'll want to change the trigger in Google Sheets to 'new row added'
OK i see
Do you have a formation for Make ?
Hey there, sorry I don't understand what you mean by formation. Can you please explain?
hello Why don't use airtable tool?
Hey there! For me, it comes down to a personal preference. They're pretty much interchangeable, but I've used Google Sheets my whole life and am familiar with the complex formulas you can create in it!
After filling in `Google Sheets watch change copy the webhook URL and place it in to make EXT the save button on the Extention doesn't work, and there are no save notifications :((
Hey! This has happened to me before. It's super annoying. The solution for me was to open an incognito tab, log into the sheet and save it there :)
@jonocatliff *Thank you. It worked perfectly
Why did you add the client the second time even though it exists? I mean the whole idea is to avoid duplicates in whole sheet based on email id. Isn't it? Perhaps an Iterator is needed? This is regarding th-cam.com/video/qXwJlJZJ5iU/w-d-xo.html
Hey Frank, excellent point, thanks for bringing this up! You're right - the whole idea on this tip is to avoid duplicates. I kind of mentioned it at 14:10 but I should've been more clear - this is just an example of how this works you can either update a record that exists or create a record if it doesn't exist. The reason it duplicated was because at 9:28 I hardcoded the values (first name, email, etc) and then when I ran the workflow at 15:44, I created a row that didn't have an email input, so when it searched for an empty email input, it came up empty, so it create a contact based on the hardcoded value I entered earlier.
In practicality, you'd send data from a CRM or somewhere else, and this 2-step lookup is one of the things I use the most in Make.com
@@jonocatliff I think the ID that comes from CRM is not just unique but comes in ascending order for each row. This is why it is enough to do what you did in the video. Hence, no need for an iterator to check if it exists in the previously inserted rows. Thanks for explaining.
My pleasure, hope this helped, thanks Frank :)
SHeet 😂😂😂 3:40
Hahahahah 😂
Great video! 5 star! Do you think we need an Iterator? You said with the unique identifier you could determine if the client exists in the spreadsheet. However, you are only searching against the one row at th-cam.com/video/qXwJlJZJ5iU/w-d-xo.html
Hey there! When you use the 'search rows' Google Sheets module, you'll be able to search the entire spreadsheet for whatever the filter is you set. So for example, if you search the spreadsheet for "bob@gmail.com", it'll search the whole spreadsheet.
The reason this example didn't work out at the example at 15:40, and reflecting back I wish I made this a lot clearer because this is such an important step, is because in the example I used I didn't pass in any email. updated the "message" field on a row that didn't contain an email, so it searched for an empty email and didn't return anything.
In practice, in 90% of the instances I use Google Sheets, I'll send data on a client from my CRM to Make.com, and search using their email. If that email exists, it'll update, and if it doesn't exist it'll create.
Hope this helps!