How To Handle Errors In Make.com (No Fluff Error Handling)
23:30

How To Handle Errors In Make.com (No Fluff Error Handling)

Nick Saraev 10.03.2024 16 529 просмотров 375 лайков

Machine-readable: Markdown · JSON API · Site index

Поделиться Telegram VK Бот
Транскрипт Скачать .md
Анализ с AI
Описание видео
Wanted to cap off our course with a quick vid on error handling. So many people make this more complicated than it needs to be—in reality, you're one module (and one third party service) away from, in practice, never having to worry about it again. WATCH ME BUILD MY $300K/mo BUSINESS LIVE WITH DAILY VIDEOS ⤵️ https://www.youtube.com/@nicksaraevdaily Hookdeck: https://hookdeck.com/ JOIN MY AUTOMATION COMMUNITY & GET YOUR FIRST CUSTOMER, GUARANTEED 👑 https://www.skool.com/makerschool/about?ref=e525fc95e7c346999dcec8e0e870e55d WHAT TO WATCH NEXT 🍿 How I Hit $25K/Mo Selling Automation: https://youtube.com/watch?v=T7qAiuWDwLw My $21K/Mo Make.com Proposal System: https://youtube.com/watch?v=UVLeX600irk Generate Content Automatically With AI: https://youtube.com/watch?v=P2Y_DVW1TSQ MY TOOLS, SOFTWARE DEALS & GEAR (some of these links give me kickbacks—thank you!) 🚀 INSTANTLY: https://instantly.ai/?via=nick-saraev 🧠 SMARTLEAD.AI: https://smartlead.ai/?via=nick-saraev 📧 ANYMAIL FINDER: https://anymailfinder.com/?via=nick 🚀 APOLLO.IO: https://get.apollo.io/bisgh2z5mxc1 👻 PHANTOMBUSTER: https://phantombuster.com/?deal=noah60 📄 PANDADOC: https://pandadoc.partnerlinks.io/ar44yghojibe 📝 TYPEFORM: https://typeform.cello.so/rM8vRjChpbp ✅ CLICKUP: https://clickup.pxf.io/4PQo61 📅 MONDAY.COM: https://try.monday.com/1ty9wtpsara2 📓 NOTION: https://affiliate.notion.so/3viwitl53eg7 🤖 APIFY: https://www.apify.com/?fpr=98rff 🛠️ MAKE: https://www.make.com/en/register?pc=nicksaraev 🚀 GOHIGHLEVEL: https://www.gohighlevel.com/30-day-trial?fp_ref=nicksaraev 📈 RIZE: https://rize.io/?via=LEFTCLICKAI (use promo code NICK) 🌐 WEBFLOW: https://try.webflow.com/e31xtgbyscm8 🃏 CARRD: https://try.carrd.co/myjz1yxp 💬 REPLY: https://get.reply.io/yszpkkqzkb8f 📨 MISSIVE: https://missiveapp.com/?ref_id=E3BEE459EB71 📄 PDF.CO: https://pdf.ai/?via=nick 🔥 FIREFLIES.AI: https://fireflies.ai/?fpr=nick33 🔍 DATAFORSEO: https://dataforseo.com/?aff=178012 🖼️ BANNERBEAR: https://www.bannerbear.com/?via=nick 🗣️ VAPI.AI: https://vapi.ai/?aff=nicksaraev 🤖 BOTPRESS: https://try.botpress.com/ygwdv3dcwetq 🤝 CLOSE: https://refer.close.com/r3ec5kps99cs 💬 MANYCHAT: https://manychat.partnerlinks.io/sxbxj12s1hcz 🛠️ SOFTR: https://softrplatformsgmbh.partnerlinks.io/gf1xliozt7tm 🌐 SITEGROUND: https://www.siteground.com/index.htm?afcode=ac0191f0a28399bc5ae396903640aea1 ⏱️ TOGGL: https://toggl.com/?via=nick 📝 JOTFORM: https://link.jotform.com/nicksaraev-Dsl1CkHo1C 📊 FATHOM: https://usefathom.com/ref/YOHMXL 🛒 AMAZON: https://kit.co/nicksaraev/longform-automation-content-youtube-kit 📇 DROPCONTACT: https://www.dropcontact.com/?kfl_ln=leftclick 📸 GEAR KIT: https://link.nicksaraev.com/kit 🟩 UPWORK https://link.nicksaraev.com/upwork 🛑 TODOIST: https://get.todoist.io/62mhvgid6gh3 🧑💼 CONVERTKIT: https://partners.convertkit.com/lhq98iqntgjh FOLLOW ME ✍🏻 My content writing agency: https://1secondcopy.com 🦾 My automation agency: https://leftclick.ai 🕊️ My Twitter/X: https://twitter.com/nicksaraev 🤙 My blog (followed by the founder of HubSpot!): https://nicksaraev.com WHY ME? If this is your first watch—hi, I’m Nick! TLDR: I spent five years building automated businesses with Make.com (most notably 1SecondCopy, a content company that hit 7 figures). Today a lot of people talk about automation, but I’ve noticed that very few have practical, real world success making money with it. So this channel is me chiming in and showing you what *real* systems that make *real* revenue look like! Hopefully I can help you improve your business, and in doing so, the rest of your life :-) Please like, subscribe, and leave me a comment if you have a specific request! Thanks.

Оглавление (5 сегментов)

Segment 1 (00:00 - 05:00)

what's going on guys it's Nick and in this video I'm going to cover basically the final important thing that you need to know in order to make make. com work for you and that's what to do when things go wrong so error handling rate limits and the many common and sort of inevitable issues that you're going to face if you choose to develop inm make. com in any sort of meaningful capacity so if that sounds like something you're interested in improving stay tuned and let's get into the video okay so first things first if you guys have watched my videos up until now you'll probably have noticed that I use a particular design pattern in production ready uh flows and by production ready I mean flows that I am sending to a client I mean flows that I'm using myself and my own company essentially flows that make or maintain money and if these flows do not work all the time it's a big problem and so what I'm going to do in this video is I'm going to show you two different ways that you can deal with that the first is going to be a built-in make. com way and the second is going to be a third party that probably less than 1% of make devs know about um that essentially allows us to put a Gateway before anything reaches our make app or add a gate after um our make app like you know if there's like an outbound request or something like that and these are two ways that you know allow me to manage well over 75 to 80k a month just in um revenue for my own companies just using these sorts of flows so very simple very easy and uh by the end of this video you'll know everything that you need I'm not going to like harp on all of the error handling modules because I think most of them are to be honest we're only going to wor about the ones that actually matter Okay cool so yeah this design pattern uh that you guys usually see is there's just a bunch of modules here and any module that calls an API uh you know I put a little break module on top so get a task for clickup that's an API right um search for projects Google Drive that's an API Google Docs over here that's an API so anytime I'm calling a third party resource and there's like a 1% chance that out of a thousand calls that resource will be down I just need to provide a way to uh to handle that right because it's not these are third party platforms we don't manage them it's not like I had a server in my basement to like deal with all these requests that I can personally guarantee uh you know uptime for these are Services where there's a million in one other people that are trying to access it there are a million in one other things that could possibly go wrong sure they technically have what are called service level agreements slas usually but I find in practice those don't really mean I mean type form was just down for like 14 hours or something like that uh I think clickup was just down for a day you know these are services that make me a lot of money and every second that they are not are a big problem so yeah um you know I'm going to show you how to like build out the same sorts of flows now what is a break module basically a brake module says hey if this module the one that the brake break is connected to should errror out you know if instead of that beautiful green little bubble we receive a red one then I want you to hold all of the data that was sent to that module and then I just want you to wait a little while and then try again so this essentially allows us to build out A system that can hold data with ISS you know assuming that there are any issues in the flow and then just retry on a regular schedule that we Define until that flow works or you know until we run out of retry attempts and in this way you can basically virtually guarantee that if it's just a simple rate limit issue like you just call clickup or Google Drive a million in one times or something like that and they're like hey man slow the hell down uh you know if it's just a rate limit issue it's basically never going to be a problem because you're just going to like drip that out later um it just lets you build a little bit more flexibility into these things so if I click on this what does this actually look like it's called flow control you'll see there's automatically complete execution which I believe is just always said to yes by default but the important part is number of attempts and then interval between attempts and so if you read through this little info here it says hey this is the maximum number of atts allowed for the execution to be tried and completed automatically if they fail the execution will have to be completed manually and so um manual completion means that you will literally go into the make. com logs and then you will click retry yourself right and so this is actually just a piece of functionality that the break module allows you to do like if you don't put the break module in and if you don't like uh toggle a setting which I'll get into a second you can't actually ever retry a scenario manually but this actually allows you to like catch the data and then retry with that data which is super useful especially when you're testing and then down here is interval between attempts so just the number of minutes that you want the interval between attempts is 10 minutes guess how long it's going to take between attempts pretty self-explanatory so that's the break module setting in order to access it you need to go down to these more settings oh I lied you need to go down to the scenario settings little gear icon and then you need to scroll down to allow storing of incomplete executions and then you need to tap yes normally it's no by default but uh by doing yes now we'll have we'll basically provide make the ability to like if there are any issues it's going to break the scenario and it's just going to wait with that data until we reach those cut off times that we just set up earlier so you can read through all this stuff on your own but uh yeah pretty high value flow over there I'll give you a quick example so this is just a little

Segment 2 (05:00 - 10:00)

default that I just set up here um so I just created a new scenario and I'm just going to add a clickup module get a task and then a clickup allows you to like add an ID essentially to try and pull a particular task I'm just going to write a random ID that doesn't exist and we're going to see what happens I have a feeling we're going to for 100 that's exactly what happen we received a 401 team not authorized and this is actually just a quirk of clickup for whatever reason these guys do not uh they don't tell you exactly what the error is they have really shitty error handling but what I'm going to do is I'm going to go to this little settings icon click allow storing of incomplete executions and then I'm going to go to this blue or green here I'm color blind or it's early one of the two and then I'm going to add this break module I'm going to click on it I'm going to look at these settings three attempts 15 minutes interval between attempts that's looks pretty good I'm actually just going to put it on top because I think that's more representative of what's happening and then I'm G to run again there's going to be an error but now you'll notice that the break module has actually gone through and you'll also notice that there was another message down here it says the operation was completed with a warning 40127 team not authorized this is different from what we had before so okay I think I'm just clicking the wrong hot key here yeah my bad uh but anyway if I go back now you'll see there's a new tab that we've added to the right hand side of our scenario editor and that's the incomplete executions tab which is pretty neat right uh so if I give this a quick little click you'll see now that I'm basically being taken to um this specific run that had the problem and that was caught by the break and so if you click on this red dot over here it'll tell you what the issue was hey incomplete execution and then if you click on this get a task module you can actually go through and then you can just run it again and so let's say I'm actually trying to run this on a real record in clickup just going to go down to the content Pipeline and then get this task here the IDS click up or always just store it up at the very um up in the URL then I'm just going to do this and then I'm going to click run once well now you'll see it has actually gone through we initially queried it with uh Tas that didn't exist a fake one we obviously got the error but then it held that and then it allowed us to click into that specific run and then run with our own data whatever new data that we wanted or you know we could rerun it or what have you now what I just did is basically what the break module would do the only difference is the brake module would be running again and again with the same ID but you guys can kind of catch the drift right like usually there is some piece of data that is feeding into a function like the clickup geted task module uh and you know if that thing screws up then this ID is going to be wrong but with the break module you can catch that and just run it again and you know uh usually if you're doing three M three times with 15minute intervals in between usually the second or third time uh will work if it's an API issue so I just do this or I say this really to just encourage you guys to you know in practice this is what you do this is like the step one two three you go down to this scenario settings module or button you click allow storing of incomplete executions and then just anytime you're calling a resource just drag and drop a break module on top of it it'll fix probably like over 50% of issues just up front like that um yeah so that's probably like the simplest way to implement err handling there are of course a number of other flow control options here there is repeater which I never use iterators which I I've shown you guys in a previous video I do not like to use aggregators which I've shown you guys in previous videos I also do not like to use you can get far with make. com without using any of these you know Advanced flow control functions routers which I don't like to use but I sometimes will use uh and then these are really like the error handling there's like roll back break resume commit ignore just for the purposes of like being complete I'm just going to run through them but I you will basically never use these in practice except I lied I apparently did use this here in practice once uh but there must have just been a very particular issue which resulted in me doing that okay so there's break roll back there's resume uh then there's commit and then there's ignore and I probably have to connect these don't I yeah I do that's sort of annoying let's go over here all the way to the end and just connect these one by one to my Harvest module okay I was just doing actually a little bit of documentation reading because I had never used the roll back module in my whole life uh and for good reason it doesn't really do much uh but over the course of the next minute I'm just going to run through these regardless so uh the rollback module essentially just allows you to stop the flow immediately and then Mark it as an uh as an error so you can imagine how I don't really see much utility in that and I'm never really going to use that in practice because if there is an issue with a module and that module has an error it'll stop the scenario immediately and then just mark it as an error so I don't really need this rollback module and that's one of the reasons why I've just never used it in practice um the rollback module is sort of the opposite of the commit module what the commit module will do is if there's an error

Segment 3 (10:00 - 15:00)

commit module will if there's an error it will instead Mark the scenario run as a success or as completed and then it'll stop the flow uh so again I don't really see any real reason why we need to use the commit module unless you wanted to intentionally have some type of you know incorrect information I wager that these are mostly just hand-me-downs from integrat from way back in the day before they really determined the best way to Route stuff and error control and that sort of thing and they just haven't really changed that the ignore module um this just exactly what you think um if it runs into an error it's just going to ignore that error and it's going to pretend that error did not happen or did not exist I believe it continues the rest of the flow um and you know there are some instances in which you might want to use this as you see over here I think that this API endpoint uh that I was using for clickup at the time was pretty buggy and like every time I'd call it would do what I wanted it to do but then it would return an error uh and I just didn't really want the errors to come in and you know if you get a certain number of Errors it'll eventually turn off your flow so pretty sure we just drag and drop that ignore module there just to deal with that um so I could see a little bit of utility in the ignore but really I don't really do that ever and then um the resume module uh this is interesting and maybe a little bit more technical but basically if there's an error hypothetically at the apply budget to project um module here uh we can take in like the status code maybe that's return like the 400 status code and we can just turn it into something else we can basically just like map over that and say no that a 400 status code anymore because I wav my magic wand now it's a 200 status code and then if you have some other functionality later on some filters that depend on that you'll use the output of the resume module instead of the output of that so yeah in practice I basically never use these and I imagine if you guys are following along for the first time or you guys are just interested in making a large amount of money with this platform not necessarily just being the master I was about to say the masterb the master composer of flows to be fair masturbation is yeah that's what a lot of people are doing on make I think instead of making money uh then you know maybe you'll disagree with me but hey say love V so that's the break module that's one of the ways that you know you can use error handling in your flows practically and again you know in the real world all I would recommend is just go to the scenario settings click allow storing of incomplete executions and then just drag and drop a break module on top of every API call the second thing that I want to show you is a third-party platform that I find extremely useful in dealing with higher demand rate limit stuff so like really high volume appli where maybe a scenario is running every minute or every few seconds um and then you know this one also just has a bunch of really cool functionality which I think you guys would be interested in um so I'm not affiliated with this platform in the slightest but it's called hook te and basically the way that it works is as I mentioned earlier it's like a gate where like if you're sending a requests to some scenario let's say you're catching a web hook if you send you can send it to web or sorry hook deck first hook deck then basically just like adds it to a Quee um creates a bunch of Q functionality for you and then you can like transform every one of those records you can do whatever the heck you want to that and then after a predetermined amount of time it can then pass that to your make scenario so basically it's just a way to transform Data before it comes in or change the frequency of data uh and you can imagine how it's extremely valuable if you're doing some sort of you know high volume flow and so uh I'm not actually going to go through the rig roll of signing up and stuff like that but you know rest assured it's quite easy just go to hook deck. com uh and then you know there should be like a get started button up there you should be able to just jump on it's free uh and then I'm just going to show you how to practically use it so go over to connection create a new source and I'll just say example uh let's just say March 10th video that'll be easier for me to keep in mind and then we'll call this source and then the destination will just be March 10th video destination and then you'll see here there are a couple settings I can add one of them is endpoint URL and basically what's happening is um we'll set up basically this is like a web hook we're going to get a web Hook from this and then we can use that web hook and send things to it and then it'll catch this web hook and then wherever we put the destination the endpoint URL is where we're going to send it after and so uh let me actually go to a scenario called example rate limiter which I set up for this purpose and then I'm just going to add another one here I'll go back to this example break module actually yeah we'll delete that I'm going to create an http request module I'm just going to call this manually so you guys can see so make a request okay great and then I'm going to go back to hookd finish setting it up so uh we need an endpoint URL so I'm going to go grab this web hook URL I'm going to copy this address to a clipboard this is just a random rate limiter that I just set up so sorry a random web hook I just set up I just clicked on this module and then I clicked custom web hook and then I'm going to go back here paste that in there's some Advanced configuration options I never Ed those I just used like the default h HTTP and then I paste in whatever the web hook um that's going

Segment 4 (15:00 - 20:00)

to be receiving the request and the receiving it is you'll see down here there are a bunch of connection rules and this is really like the meat and bones the meat and potatoes of this you can transform data as it comes in so you can apply some type of like mapping rule where um I don't know like if the data is in tabular Array format you can like turn every one of those array objects into like a Json object or something instead um my terminology is a little bit off there but yeah you can turn every item in Array maybe into its own object or you can perform some type of filter where you know if a certain key is equal to two you just don't forward that over to make you see how this significantly expands your tool set and basically just allows you to do things that are probably a lot more operationally efficient um you can delay and so you can set up a rule where every time something comes in I want you to hold on to that for exactly 60 seconds you know just keep that in your server don't actually send that to our make scenario yet um I use this sometimes I don't really use this that often because make allows you to just usually sleep but if you keep if you know that uh if you know about sleep you'll know that it only allows you to do it for I think five minutes or something like that hook deck allows you to do it for days so you could theoretically get a response just wait like three days and then send it three days later and that might be useful for you guys if you're using I don't know let's say somebody is finishing a project and after you finish a project you want to send a survey to a client and you want to say hey how did we do on this project uh if you want to solve this natively in make a lot of the time you need to use like a database or you need to add like a new column to your project manager but with hookd you could just say delay 3 days and then 3 days after you finish your project you know a type form or something would go out so very modular very customizable it's pretty cool to be able to add that to your make flow and then really like the cool part of this or the coolest part I should say because I've covered a couple cool Parts already is this retry function and you'll see here that this is basically just the break module just and a third party platform but there are a couple of additions and the most important one is this retry linearly versus retry exponentially so re retrying linearly usually just means hey I want you to retry every x amount of time so if I were retrying three times and the limit and the interval was 15 minutes and I was doing it linearly it would be 15 minutes 30 minutes 45 minutes but if I'm doing exponential retries basically what this will do is and I don't know the exact math but the first try will be pretty early on so the first try might be like after 10 minutes but the second try will be after like 60 minutes and the third 290 minutes or something like that like the distance between each interval will go up exponentially and the reason for that is because a lot of apis the way that they work sort of under the hood is they use exponential functions to Define when is too much and when is too when you're sending too many requests and when you're sending like an appropriate number of requests so if you just retry linearly what can happen sometimes you know apis are getting better at this and they're not as hokey anymore what can happen sometimes is you'll just never actually be able to make it past the rate limit because the time window that you're calling linearly is below whatever the exponential function results to when they count up the number of times that you've like requested in an hour so by retrying exponentially you can usually get away from that and it sort of like follows logically we're going to try once after 15 minutes just to make sure that like they aren't really easy on the rate limits and then if that's denied then we'll be like okay these guys probably take it seriously so we'll wait another hour or something before try again if that's the ID will be like okay these guys probably take it really seriously we'll wait like seven hours before we try again right that's sort of the logic there and you can just set that up naturally in uh in Hook deck which is really cool so yeah pretty neat I'm actually not going to apply any filters here just because I want to be able to test it really quickly and then you can set a connection name down there I don't really maybe we'll just do March 10th video and then I'm going to click create now it's going to give me a web hook that I can send requests to and this is what I was alluding to earlier so I'm going to go over to example break module paste this in and I'm just going to run this puppy you'll see that we sent the request over to hook deck there was a response it says 405 just because this was the very first time that we did it but if we go back to hook deck you'll see that uh we received that call status was unsupported method probably because I'm just doing a get request and maybe they want like uh yeah they probably want a different let me just see okay yeah it only uh supports receiving web hooks over htb postp put or patch I'm just going to do post I'm going run this again I'm going to go back to hook deck here and this is sort of just a queue while you're testing that'll populate with all the requests that are coming in and so you see this one was 200 just because I'm using the uh the method that they're comfortable with so yeah pretty neat if I click through this then there'll be a bunch more information on where the request came from you know how much time it took to process that sort of deal and then uh what we want to do is now we want to send that

Segment 5 (20:00 - 23:00)

automatically to another source so if I go to example rate limiter if you remember we added this as the destination so I'm just going to wait for new data here and what I'm going to do actually why don't we set a rule on this first just to show you guys that this is potentially a little more valuable than just uh how the heck do I do this I have to like click edit or something somewhere around here no it's probably here oh Transformations maybe I forget exactly how to maybe open connection I basically just want to edit and then add something okay it looks like there's a way to do it here okay so let's um let's add a delay and then why don't we just delay for exactly five seconds let's do that okay great so now what I'm going to do is I'm going to send a request at the front end to that gate and I'm going to wait and this is going to take five seconds because you know we just set a rule to keep it for five seconds so voila I didn't add any request options in there information so the bundle is going to be empty but yeah we just sent and received a response if I wanted to verify that this worked uh with my own data maybe I'd set the body type to Raw the content type to application Json and then I'd say like example test I don't know let's do examp example key example value and then let's say time sent and then I'll just do now and then let's run that puppy one more time so I just sent it we have like a ENT uh variable in here now and that time sent variable should be the same on both ends so March 10th 2024 6:46 a. m. this should be March 10 2024 606 a. m. or 6 uh 46 a. m. but this is like in the datetime format so it's just being rendered a little bit differently but same deal you know we verify that the data is come and gone uh yeah so again like in practice what you're probably going to be doing is you're going to be using the delay feature or retry feature and if you catch yourself you know having issues with apis where the apis are just constantly rate limiting you or maybe you just know they're a little more sensitive just go retry exponentially and then uh I just use the 1 hour interval you can set basically however many you want here so you could have this be like 10 or 15 or 20 I think the issue with this is the exponential function means that the 10th time will technically be more than one week in the future so I'm not entirely sure what the function is under the hood but you guys can read the docs there if you want okay great so yeah in practice I'm only ever really going to use the break module the way I'm going to do that is by changing the scenario setting to allow storing of incomplete executions then just dragging a brake module on top of every API call and then I'm going to be using hook de for high volume applications or applications where I want to delay something for you know maybe more than 5 minutes maybe I want to delay for 24 hours or 48 Hours something like that and to do that you just sign up to hook deck add a source that source is going to be whatever the um the URL that you use when you call a resource from make and then add a destination that destination is going to be the web hook that you are again going to catch and make so yeah voila that's how you do it on your own I hope you guys found that helpful if you guys have any questions or anything like that feel free to let me know otherwise leave like comment subscribe all that fun YouTube stuff I'll catch you in the next one bye

Другие видео автора — Nick Saraev

Ctrl+V

Экстракт Знаний в Telegram

Экстракты и дистилляты из лучших YouTube-каналов — сразу после публикации.

Подписаться

Дайджест Экстрактов

Лучшие методички за неделю — каждый понедельник