what's going on everybody welcome to another video in our series make. com for people who want to make real money and in this video I'm going to show you guys how to integrate make with basically any CRM or project management system you guys want using web hooks which are probably one of the least well understood features in make for reasons that I do not understand myself uh it's super simple to get up and running and this video is going to show you how to do everything so if you are an experienc makeev or if you are somebody that's trying to learn the fundamentals for the first time it's probably one of the most commonly requested use cases you're in for a treat let's get into it okay so I said we were going to integrate make with monday. com but how exactly are we going to do so well the use case in this video is going to be when I change a column called stage to generate proposal I want that to trigger a make scenario which goes out there and then generates a proposal for us and I want to do this using web hooks because web hooks are real time they're instantaneous uh they're just the best solution for this particular problem um so yeah we want to we want to template out a proposal essentially just using Monday and make.
com uh I've set up a random proposal here in uh Google Slides which is probably the easiest way to get up and running with proposal templating if you've never used it before all you basically have to do is just open up a Google slide you can pick one of the templates they provide whatever and then uh anywhere that you want to put a variable all you need to do is just put two curly brackets and then like the name of whatever the variable is that you want and like you you make this up so I just made up company name and I'm going to Define it in make so I don't know let's say you want um like a company name here uh this is a recruitment company example in my case so I have like a rle name here which we're going to help with um you could do stuff like first name stuff like last name prepared for whatever you could even get a lot more um nuanced with it if you wanted to use AI to like write out large portions of the proposal you're going to know how to do all that stuff by the end of the video and I'm just going to make sure as simple as humanly possible um so if you use monday. com you could literally just copy a flow like this and save your sales team anywhere from like 20 to 30% of their time energy and money cuz proposal is just such a pain in the ass but if uh you're new to Monday and you've never seen this before basically all crms work in a similar way uh you have the name column which is just where what defines the primary or unique key of the record so in this case we have a fictional company called PA Incorporated uh coo we have a stage column which is just a bunch of different statuses you can imagine how this is a pipeline from start to finish the beginning stage is Discovery call middle stage is proposal sent third stage is uh Master Services agreement stent maybe there's a stale stage a one stage a loss stage you can obviously Define these however you want but this is how this particular company decided to do it and then there are a bunch of other columns for just personal identifying information stuff that may or may not be useful in the future or stuff that the sales team wants to see so yeah you can make this as complicated or as simple as you want uh but this is just the example that I picked because it's a real world example this is something that I'm actually developing for a client as we speak okay so how do we actually get up and running with this well I mentioned we're going to use web Hooks and and in monday. com using web hooks is super simple all you need to do is go over to the top right hand corner of the page where it says integrate and then look up web hook there'll always be a default integration for web Hooks and then you basically can choose from one of the I don't know like 25 options here or something uh the one that's probably the most common is going to be when a status changes to something send a web hook now in Monday a status field is like one of those dropdowns that I just show you like our stage field uh and so Monday basically provides a way to send a web Hook when a status field changes to something which is obviously super helpful and beneficial for us now it's going to ask us to choose an account we actually don't have one yet so I'm just going to click use another account and here it's going to ask us to connect our web hook URL so if you guys use make.
com now things are probably starting to get a little familiar if I want to do web hook in make let's assume that we just open this puppy up uh we go down here type web hook and then up at the top you'll get this sort of like triangular uh three node sort of thing what we're going to be clicking on is custom web hook which uh it says it's instant it triggers whenever the web hook receives data from technical terms a web hooks are just vastly improved versions of like polling systems uh in the past you used to have to send a request to a server every like five minutes or something like that to see if some data had been updated web hookers allow you to do that instantly basically that server will now just send you the data when it's ready so I'm just going to call this monday. com example web hook let's do uh the date as well and then I'm going to click save and then you'll see that when you set up a web hook in make. com when you set up basically like a bin just awaiting some type of data it gives you a whole URL up here and when this URL is accessed that's how your web hook will will fire essentially so make is now listening for the data and we'll determine the data structure from the incoming data automatically to initiate this please send your data sample to the web hook address displayed above so I'm going to copy this address to the clipboard I'm going to go go back here and I'm going to paste it in and now we have the same web hook URL basically from make.
com being connected to Monday now there's some Nuance to this and not all platforms require what I'm about to show you but monday. com doeses specifically and sometimes this is good to get in the habit of sending what's called a web hook response so that's what I'm going to do in a second basically because monday. com has a specific um requirement what they want you to do is first they're going to send over a request with a challenge parameter and then you need to return that as a response in order for them to verify that like you're legit this isn't just like some random server you're sending data to uh and I know that can sound pretty complicated so let's just let's just take it at face value first I'm going to click okay and then I'm just going to run this and now this is just going to be waiting data and then connecting and it's going to say that we failed to communicate with the URL provided if we go back here you'll see that the Run was actually completed and there was a request that was sent and received and if we click on it we'll see that uh we received a bundle with a variable called challenge with a long sort of unique string and so what we need to do is we actually need to send this back to monday.
com in order for Monday to verify our web hook request so if you think about it from Monday's perspective why are they doing this because they want to make sure that anywhere they're sending data to is like a legitimate place the way that you solve this is you go down to web Hooks and click web hook response as an action you always want to send a 200 and then the format that it's it's expecting is what's called Json so JavaScript object notation Json is just a curly brace and then another curly brace and then inside of that in this specific case uh if we check here verification will be first sent with a challenge parameter that needs to be returned as a response um so the key has to be called Challenge and then the parameter has to be uh that long string that starts with cz8 MN all that stuff and so this is basically Json format um we have an ID which in this case is a string which is which is encapsulated in these quotes and then we also have another string that we're returning as a challenge if this seems complicated to you or if you're not really sure how this works don't sweat it monday. com is one of the only um crms that require you to do this but I thought I'd start with a hard one so we send it back we receive the request here and you see that module one has a challenge which looks long and now it starts with a t and a six then if we go back here uh you'll see that we the input to the module was this challenge object that we set up and then if we go back here you'll see that monday. com accepted the request and now it's asking us to change and actually Define What stages we want so sometimes you'll have to do that um you can also just get in the habit of doing this yourself I mean you know me at this point probably I'm really Scrappy I all I care about is getting the MVP out as quickly as possible so once I verified this I'll usually just delete it I don't give a um what we'll do now is we'll Define the column that we want to watch so in this case if you guys remember the column was stage and then what we want to do is we want to monitor when it changes to generate proposal here so now the rule is when stage changes to generate proposal send a web Hook from Monday okay and we'll add that to the board so now we have sort of a rule set up which is quite nice okay okay now what I always like to do is test so I'm going to run this I'm going to go back here go to this column where it says parent Incorporated and then change it to generate proposal then I'll move back here and what happened we received the request and the really cool part about Monday is in the request that is sent it doesn't just include like the fact that the stage was changed it includes a bunch of information about that record so we have uh the app that it's coming from we have the type called update column value the trigger time the subscription ID the user ID all of this random information that may or may not actually be relevant to us now I know from personal experience that there is one piece of information that is hyper relevant to us it's called the pulse ID uh the pulse ID is basically called like the record ID in Monday and what I mean by this is if you click on this notice how the URL changes to slash pulses slash and then this 605 879 4861 almost like a phone number you notice that that's the same um key or yeah that's the same key as this parameter here pulse ID uh and so this is basically how Monday represents the ID of a record internally and so what we want to do is now that we have the pulse ID we want to send a request to Monday for this pulse ID so that we can get all of the other fields here like the company name for instance or the role name or all of that other information okay so what we're going to do here now is we're going to go to Monday and there are a bunch of different modules that we could use to select but the one that's relevant for us is going to be called get an item right over here I'm going to drag it out now the way that this works is we're going to use this ID and then we are going to grab the pulse ID here so 605 879 4861 and then I'm going to click okay and now what should happen happen is when we update this record um when we change the status to get proposal or generate proposal we should also automatically pull the Monday ID uh and then the whole record and that's how we'll get all the other information we'll get the D Link the estimated St we'll get all this stuff so I'm just going to change this back to Discovery first and then I'm going to change it back to generate proposal and we're going to wait to catch the web hook and you know sometimes this can take anywhere from like 5 Seconds to like 30 seconds um you know Monday is like caching uh these queries so it doesn't always happen immediately it looks like this time is about 10 seconds or so so we Reed the same values that we did initially and now we've actually gone through and we've gotten the item and the way that we catch the get the specific data about the item is under mappable column values so you'll see that there's a status field there's a date one there's a date to there's a person there's a link to contacts there's an email address on file which is just fake uh we have all of the fields that we would ever possibly need basically now in order to go out and and generate a proposal so what do we want to do um I'm just going to use the deal name as the company name so I mean that's not entirely accurate because this say pair Inc coo here but that's that's probably just the simplest so let's just pretend the deal name is the company name and then I'm going to use this roll column over here as well and I'm going to use that to scaffold this proposal so I'm going to go back here now and now that I have the item I'm going to to create a Google slide there are a bunch of different uh presentation options we can choose the one that matters for us is this one here create a presentation from a template so we're going to create a new presentation by replacing all tags like curly brace curly brace variable curly brace curly brace so this is what I mentioned earlier and we're going to first um I'm going to select this first so what do I want to call this consult Consulting proposal yeah let's see if we can find Consulting proposal in here yes we can it's the first result awesome okay and then for title I'm just going to call it proposal 4 and then we're going to just make it be the name that looks good um these fields here copy a presentation choose a drive I usually just always leave them the same there's some Nuance here um like if something isn't in your Google Drve it's just shared with you then in order to find it you're going to have to go down to shared with with me um sometimes you can map the ID as well for instance if you know the proposal ID for some weird reason or maybe you're using it from somewhere else this is the proposal ID here you could theoretically go copy a presentation by mapping and then just paste in this proposal ID um so you obviously have you know a lot of options but just to keep things simple I'm going to use by dropdown and then I'm going to select it uh manually like this okay great and you'll see that there are some values that are sort of pre-filled waiting for us uh the reason why this happened is because we inserted these curly braces in the Google slide and so when you do that um it make.
com recognizes these when it goes in and like you know looks through the file uh and then this is how you this is how you actually go through and replace them which is pretty cool so what variable do we need for the company name well we need the uh name right here so pair Inc for instance what name do we need for the role name well we need and the unfortunate thing is you can't always see what the um variable name is here like uh Monday is not very good with sending over the variable names and so you see it's like we have link text email formula numbers yada yada um not not very good in order to find that uh what you do is you do what's called Monday developer mode and I'm not going to go through you know how to get Monday developer mode um but you know feel free to just Google how to like get Monday developer mode when you click the three brackets on the column it'll actually show you what the column ID is uh and that's only if you're in Dev mode which I am so now I know that the column ID of the field that I'm interested in is is called roll so in order to find it I just go back here sorry it's called text so I scroll down to where it says text you see it already says coo so I kind of already knew that already um and then we're good to go now we can choose to add this um to just whatever your Google Drve is we can also like create a Google drive folder before and then put this inside of that Google drive folder if you want to remain more organized I'm going to keep this as simple as possible but suffice to say it's all very straightforward um It'll ask you for the new document location so let me just click here and choose and I'm just going to choose a backslash which is just like the root of the folder okay great that looks pretty solid to me so now we have three steps set up we have the trigger which receives the web Hook from Monday then we have an intermediary step which you can kind of think of in developer terms as like your database lookup I mean this is a CR RM which is slightly different but for all intents and purposes you're like looking up values in Monday and then we have a Google slide at the end uh which is going to like generate a a document for us now I want to go one step further and I want to take the URL that's generated from that Google slide and then I want to put that back in monday. com and what I want to do is I want to put it under this column here called proposal so that when a salesperson changes the status to generate proposal they immediately get a link there that then they can click make some minor edits to that they need and then maybe send out afterwards we could obviously also just send these out directly to the customer we have the deal email address right over here so you know you can imagine a workflow where maybe you change this to generate proposal it generates the proposal and then it automatically sends it to whatever this email address is the sky the limit and you can automate it however the hell you want but for this particular purpose I'm just pretending that maybe you guys still want to customize it or maybe you just want to draft it you don't actually want to send it so uh first things first I'm just going to test this to make sure that this flow works so I'm going to select this I'm going to change the status back to Discovery and I'm going to go back to generate proposal then alt tab over and you see module one was fired then module two was fired we got all the data from Monday and now Google Slides is operating and you see that the Google Slides um function completed and you'll see that what it outputs is What's called the presentation ID it doesn't actually give you a link or anything like that uh and that's kind of you know difficult for us because we want a link uh we can't really use this presentation ID very effectively um I am going to just because I understand how these work I'm going to access the presentation ID directly just so we can see the example um but this isn't really what we want to do um okay great so we see that this worked it was Consulting for pair Incorporated right here's the company name a brief look at recruiting your next coo was the was the rle name um I also added the variable name in the header and in the footer and stuff so that was updated too uh so you know you see that this is possible and it works um but why don't we now work on generating that link and then updating The Proposal column that would probably make it as simple as possible so the way that you do that in make. com is basically uh the Google ecosystem differentiates between a Google doc and a Google sheet a Google slide and then just like a Google drive file and so all of these are technically being generated in Google Drve and so we need to use the Google drive module in order to access this and uh and make it sharable so if I click this you'll see there are a million in one different modules that I could use the one that we interested in is one called get a share link which is right over here so this allows you to get a sharable link for a file or folder and the reason why Google has separated these is because you know there are many instances in which you want to create a presentation but you don't actually want to share it they just wanted to give you the option to do that without necessarily uh you you know draining their own internal resources so uh we're going to get a share link um let me think about this I should probably use this one here so I'm connecting to the account that has access to that file that I just generated uh I'm now going to choose a drive it's probably going to be in my drive we're going to select a file not a folder the file ID is up next and as I mentioned Google drive files um you know are homologous with uh the IDS or the file IDs in Google Drve or homologus with like the Google Doc ID or the Google sheet ID or the Google Presentation ID and so in this case it's just called the presentation ID we'd basically stick that in here and then it would find that file in the Google Drve ecosystem now there are there's some Nuance here um if you aren't familiar with the way that Google does rols usually when you share like a Google doc or a Google sheet or something you can Define the level of permission that you want to give somebody in my case I know that the level of permission I want to give somebody is the writer permission um and I want to generate this for anyone so I don't just want to they don't have to be a user at my domain or anything like that I just want anyone to be able to see it and then um allow file Discovery it's just going to be uh AC to no I don't want people to be able to just like browse Google to find this uh I only want them to be able to uh find this if you know this is like explicitly given to them okay great so what I'm going to do now is I'm just going to test this directly the way that I'm going to do that is I'm going to copy over this presentation ID so I just control seed and then I'm going to rightclick the Google Drve get a share link module and then run it I'm going to paste this presentation ID in so I'm getting the hardcoded ID from the Google slide that I just generated and I'm using it now to one time one module test this so I right clicked it scenario owner is completed and now we're going to double check to see what the share link is you see how the output of the module has a share link right down here exactly what we want and then I'm going to paste this in and we're going to see our accessible file so obviously that's not the file that we want because this is still uh templated so this doesn't have the correct um uh like this uh uh doesn't have the correct variable filled in and I think I know the reason why pretty sure my dumbass just copied over the completed the template rather than the actual file so let me see if I can get the actual ID that I wanted right over here yeah there we go let's run this with the actual presentation ID okay there we go now this one will say pair Inc beautiful and so now we have access to the link specifically for um The Proposal that we just generated what I want to do now is I want to make this General and then I want to add another step in here that goes back into our monday.
com CRM and then it updates The Proposal column and so how do you do that well I'm going to go back to Monday and then I'm going to say we can scroll through this together until we find it what we need to do is we need to basically um update an item or add information to an item so let's see here update column values of a specific item that's this one right here so the column value we're going to be updating obviously is going to be oh first we have to select the board ID so I know that it's called deals that's its name the item ID that we're going to select we're not actually going to hardcode it in what we're going to do is we're going to map it and what mapping is is it's just a way to access the IDS of fields that we referencing from earlier um which may sound complicated but essentially um make. com will always allow you to either try and hardcode this so every single time that the scenario runs we only ever want it to run on you know the record called HSBC which is down here or it allows you to make it Dynamic so that you know the item that we reference depends on a previous step that we've already set up and so that's what we want to do here if you guys remember if we scroll all the way down to the very bottom of this whole like variable list there was a variable called pulse ID which referenced the original um record whose stage that we updated to generate proposal and so we're just going to reuse this because that is the item id of the record in monday. com next step is we're going to change a column value so go to column ID here and then if you guys remember what we want to change is we want to change the column called St uh no let's do proposal first and I'll change stage after so let's do uh proposal and then we want to add the link in and the way that Monday specifically does links um and I only know because I develop on this platform all the time is it allows you to put a URL in and then it also allows you to put a text field in you'll notice that there's some Nuance if you look at the URL field it's thicker and Bolder than the text field usually uh fields that are bold in make.
com are required and then fields that aren't you know that are kind of skinny um they're optional and so I know for a fact that all we need to do is put a URL here so that's what I'm going to do that we don't actually have to put any text here but you could if you wanted to you could call this like Google drive or maybe you could just copy of the link um I do want to change one other thing what I noticed while I was developing this was when the record stage is changed to generate proposal uh it stays at generate proposal I would prefer if it goes back to Discovery just to um inform the rest of the team that this is done so I want them to be able to go from Discovery to generate proposal they'll see the status change back to Discovery and that'll notify them that they're basically good to go this is a minor ux pattern but I recommend using ux patterns like this wherever possible otherwise you know if you have a team with a big 20 30 40 person sales team uh it can get pretty prettyy complicated and people can kind of forget which things have been generated which things haven't so I'm going to go back here to stage select that and then under index and label I'm just going to click index Monday has different ways for representing um these things but both are equivalent and then I'm going to scroll down and I'm going to change the stage back to Discovery and then I'm going to click okay so if you're following along this scenario so far does five things the first is it waits to catch a web Hook from Monday and that web Hook is sent out when the stage changes to one called generate proposal when that happens we receive a bunch of information on the front end including the ID of the record that we're interested in what we do is we take that record and we put it into monday. com using this ID field that allows us to then pull all of the data from that specific record including like the deal length the last activity the owner the close date The Proposal field the role field the deal email address we basically like we'll query monday. com next what we do is we use a pre-created Google slide template to generate a proposal and then fill in that proposal variable with a bunch of the custom fields that we just pulled from Monday and then because Google doesn't natively allow you to share that link with other people what we're doing is we are getting a share link and then the final thing that we do is we will add that link back to the monday.
com record in the proposal column and then we also update the stage back to Discovery so now that I think we all understand what exactly is going on let's run it in full from start to finish I'm going to click run so that it's I'll go back to Deals here and what I'm going to do is I'm going to update this generate proposal and I'm going to try and tab back so we can see it catch okay great and we did now it's getting that item it's then generating The Proposal in Google Slides it's then generating a share link and then finally it's adding the column values that we wanted it to add back to Monday so let's go to Monday and see what happened if you'll see the proposal field has now been filled out with a long Google Drve Link and this is now the link to that finished proposal we can give it a click through it should say proposal for pair Incorporated which it does a brief look at recruiting our next Co awesome then if we go all the way back to the left the stage field is now back to discovery which is adequate user um basically like a user experience update so anybody that's using this now knows okay we're good to go we can proceed with the next step of the process all right so that may have seemed simple to you Monday and make. com Veterans out there or it may have seemed unreasonably complicated to you make.