Driving Revenue Growth: The Power of HubSpot Quote Templates and API Integration

This is a YouTube video titled "Driving Revenue Growth: The Power of HubSpot Quote Templates and API Integration" recorded in April 2024. It features a multi-speaker developer-focused presentation and discussion including Jack Coppersmith, Jonathan Pavoni, Tuan Rutten, Dennis, and Anton. The content covers advanced usage of HubSpot's quote templates, API integrations for automating quote creation and management, commerce hub features, and practical developer tips. The session includes live demos, Q&A, and insights into customizing and automating sales quotes within HubSpot's platform.
Sa.
Sam. Welcome to the newest Developer Hug. And today we're gonna talk about driving revenue growth and the power of HubSpot quote templates and the API integration. So, before we start, I have two things. One, the next event will be about mastering Hubble and it will take place on the 23rd of May. So if you're interested, head over to events.HubSpot.com developer. And also the next thing is you can now apply as a Developer Hug speaker. So if you're interested, head over to developer hug.com speak. And since we have this checked, let's meet today's speakers. So we have Jonathan Pavoni from Spoke Services, we have Thun Rutten, the lead developer of Bright Digital, and Jack Coppersmith from HubSpot. And of course we have Dennis, who's in the chat, and he will also take over with some pretty amazing updates.
So.
Yeah, Dennis, the stage is yours.
Thank you. Anton. Let's get. I'm gonna bring my screen up here and I want to talk about what the heck is going on the HubSpot developer world. There is so much happening and I had to compress this down to a very, very small thing because I want to not interject too much within this brilliant set of speakers. So let's get at it first. Coming over here. And folks, we got a new Dev Doc site out there. I highly encourage you, go to it. This QR code down here should bring you to it. So if you have your cameras out, take pictures before I hit the next slide button here, Little backstory. I went to the team and asked them, do you all have a GIF that would encapsulate what the Dev Doc site is, Some informative gift that shows going through it. This is what they sent me. I thought, yes, this is exactly what I needed and I'm going to use it as my sole gift for this entire hub. All right, what's happening in the DevDoc site right now? First of all, we've consolidated all the APIs into one domain. So no more going to legacy.HubSpot.com to find your APIs.
You can.
It's all navigatable within the one place. You click V1, V3 or whatever the version is on it, and you got it there without having to go in two places. Two. Responsive design. How many times have you tried to look at something on your phone and it's impossible, useless. We've changed that. You can actually do it now. I love it almost as much as this third feature, which is the ability to share links directly to an endpoint. How many times you try to share a link to an endpoint and you can't do it? Guess what? You can. Now if you have any questions or thoughts or feedback, go here. This is a link to the developer Slack DevDocs beta channel. So take advantage of this. They're always looking for feedback and will be very responsive. Next up, the center of Developer Excellence AKA Code this is something headed up by Zach Wolfson. If you've never heard of him, he is a freaking amazing hubspotter. He's been around for a long time and he's been working with a lot of the community on how to develop their projects. So he and a few others got together put put together a really nice sample app for CRM Object sync. Again this QR code will send you there. Go to it, check it out, find issues. You can report issues there if you got ideas from there they're working more on a community based approach where you can do a pull request perhaps. I'm not sure what's going to happen with that, but keep an eye on that Follow up. The CRM customization boot camp is back. Yes, we had one cohort a while back and the next one is meeting soon so go ahead and go there and check this out. This is led by the community community. I saw the first one and if you want to get started bootstrapping your development on the HubSpot platform, this is where you want to go next. Let me tell you the CLI dev team at HubSpot they just do not stop just impressing me. I don't know how they do it honestly they what is in their cereal I don't know but gote today just fresh off the from the oven I guess they have added HS theme preview so this is a local preview you can do instead of having to go navigate to the web, find the where you want to look at refresh it. You can do this all locally. Now when you first do it it is going to ask you for your password because it has to put together a self signed cert and that is going to be a sudo request from the terminal so it needs your password. Don't worry, I promise nothing bad's going to happen next and this is very relevant to this specific workshop or webinar is so many freaking commerce hub APIs are out there now. Last week we just launched orders and carts. Recently we had the invoices, subscriptions and payments. If you go to the dev docs right now you'll notice it's no longer under the objects. They had to put together an entire new dropdown for commerce. So go check that out. Lastly, I want to say we just added this last Thursday. I think it was being able to create payable quotes with an API call. That QR code right there will link you over to a YouTube video where Joe Warren actually demonstrates how to do it. So much freaking cool stuff out there. It's beyond the scope of this conversation right now to talk about it all. Perhaps we'll do something more complete in the future, but it's freaking amazing. With that being said, thank you for listening to me and I'm going to hand it right on over to Jonathan Pavoni.
Let me share my screen here.
Awesome.
I thought I'd start with why folks are using HubSpot quotes. I've been building HubSpot quotes really the last year, and for a lot of the clients that I'm working for, the main use case has been tech stack consolidation. So obviously with the growth of HubSpot and the CRM and the service Hub and all the updates on the marketing side, you know, folks are moving more and more of their business processes into HubSpot and in HubSpot quotes is something that can really kind of support the sales team. And folks are moving away from, you know, some of the more traditional point solutions like the DocuSigns and the Panda docs. So that's been kind of a main driver and use case for why people are moving to HubSpot quotes. Another is really better sales reporting and analytics. So inside the HubSpot quote tool, it's very easy to track, you know, the quotes that have been sent out, how many have been accepted, how many are pending, and if you're using HubSpot payments, and we'll get into that later, you know, which of those quotes actually have been paid and which are kind of sitting in an unpaid bucket there. So getting started with HubSpot quotes. So getting started is actually really easy. HubSpot actually provides a couple of different templates out of the box and I'm actually going to jump over and show some of those. So if we go back here, HubSpot will provide like a basic template, a modern template and original template, and these can be very easily customized. So if we go edit theme, you can kind of jump in here and add your own colors, your own fonts, button settings, things like this. And all of these items are no code solutions. So even if you're not a coder but you have an interest in in HubSpot quotes you can get in here and just, you know, make some general edits and make this feel more like your brand, which is great. Additionally, if you want something a little more custom, you can modify an existing HubSpot template or create a brand new template from scratch. And that's kind of what we're going to focus on today. So if you didn't want to create your own template, there's kind of two ways to do that. The first is if you're working in the Design manager, for all the folks that like to work in the design manager, and I'm one of those, you can just clone the CMS Quotes theme. And when you do that, it's going to give you all the starter files. And let me just jump over into HubSpot. So what I'm going to show here is this Red Rover quote. This is a custom HubSpot quote that I built out for a client. And this is a clone off of the the HubSpot theme. And it's going to give you all the starter files, like the css.
The.
Hubble, some basic templates in here for you to start with, which is like a really nice jumping off point. If you like to work locally, you can just run an HS fetch against the CMS Quotes theme and bring all those files down locally and work that way. So that's an easy way to get started. Now, let's talk about the building blocks of these custom quotes. I'm going to actually jump back into my template and I'll showcase what this looks like. This is just a preview of the template. It's just got some dummy data in here, but this company, Red Rover, is in, you know, education sas, and they have a very bespoke style. You know, they've got these custom illustrations, a lot of white space, and they really wanted to kind of bring this branding into their quote. And so that was kind of the project that we were working on. So this is kind of what we came up with. And if I jump back into the template here, I just want to call out a couple of quick things. So for all those CMS developers out there, what's interesting about building in the quote context is you get access to a lot of different objects that you don't typically have access to when you're building in the cms on line 12 here, you get access to the quote object. You also get access to associated contacts and companies. You get access to the deal object, and then you can take those properties off of those objects and essentially build whatever you want to build. Which was really kind of a cool thing. So in this use case here, what I was doing is, you know, I just brought in again some very simplistic data here. You know who the school district was, which is, you know, the company for these guys. Then who the sales rep is, the sales rep email. And then down here you can see I kind of brought in some kind of custom elements elements here. So these are actually custom quote modules. So you know, in the quote context you can build a custom module specifically for your quote. So if we go into modules here we go new file and then we go component. What's interesting here is you can select quotes in here. So you can see this quote template. So now you're building a module specific to your quote and you still have access to, you know, all the things that you traditionally would have access to when you're building a module for like a website or a landing page. So just to hop back here, you know, I'm just bringing in some rich text here and an image, you know, to kind of, you know, solidify like what the brand is. Then down here again I'm just like bringing in you know, a headline and some bulleted items here. But it really makes it feel like branded to Red Rover. And then if we go back to the template here, you can just see that I just baked these modules right into the template. When the sales rep goes through and creates a custom quote, they're just going to pull in all these boilerplate modules that have been baked into the template, which is a cool thing. Additionally down here, let me just extend this a little bit. What the client wanted to do is, you know, being that they're a software as a service company, they wanted to kind of bucket their annual subscription costs and also their one time implementation fees. So what I did here is, you know, pulled out all of the annual fees. You know, I ran some calculations in here. You know, you can see that product price and discount, you can kind of pull some properties from there and then monthly. And then I just grabbed all that and brought it down into like a total area. Down here you can see online like 138. So you can kind of do really whatever you want to do from like a, you know, calculation perspective, a discount perspective and kind of put it in whatever format you want. Additionally down here these guys are not using the, the E signature. So we, we pulled that off. They're doing all wet signatures for their own quotes. So you can really kind of pick and choose like what elements you want to bring in. So that's kind of, you know, how it looks, you know, at the developer level. And then if we hop over here, what we're looking at here, let me explain this. So if you go into objects, quotes, these are all the quote templates that this client has created here. And what's interesting, so this is like the sales manager view, is these custom modules. The sales manager can just turn these on or turn these off, so you can just hide different items if you don't want them. So in a couple customer use cases, what I've done is build out a laundry list of, you know, custom quote modules and then the sales manager will go in and like turn on some, turn off some based on what the use case is. And then if we jump into the quotes, so the sales rep would come in here, create a quote, they grab a deal and then they can come in and essentially grab any of the templates that have been created by the sales manager and kind of pull that in and then, you know, they really have access to, you know, essentially like some comments to the buyer, some purchase terms. But really it's, you know, adding the line items in here is, is essentially what the, the rep can affect there. So anyway, all that to say there's just a ton of flexibility, you know, at the template and the module level to kind of build anything you want to build, you know, bucket different costs, whether it be annual or one time or subscription fees, because you have access to, you know, all these additional objects that you wouldn't have access to if you're building on cms. So that's, that's a really kind of cool and unique thing. All right, let me hop down into use cases. Yeah, so, you know, again, some reasons that folks are kind of reaching for the HubSpot quote tool set is they really want to essentially make these quotes feel branded to their company. And there's, yeah, there's just a lot that you can do there, whether it's like photography, icons, layouts, things like that. I've even done some where I'm bringing in some Hub DB modules for, you know, team members and things like that, you know, so like, you know, the, the customer wanted to, you know, showcase all the clients that were going to be or all the team members that were going to be working on the client account. So you can Even bring in HubDB modules, which is kind of a cool thing. Oh, and then I just, I put a blocker in here. So for any developers that are building don't use some fonts. I ran into this issue and it was kind of a hard, hard one to troubleshoot. So just, you know, use those web safe fonts if you're building custom quotes or you might run into some problems there. Okay, cool. The editing views, we kind of talked about that. The sales manager view, the sales rep view, a lot that you can do with turning modules on, turning modules off, resequencing them, things like that. So yeah, now I'm going to turn it over to Tuan. Tuan. All you.
Yeah. Thank you, Jonathan. So Jonathan did a great job showing us how you can create custom quote templates in HubSpot and how you can manage them through the UI. I'm not going to make the same joke that I did during the dry run, but there is a way to automate a lot of managing your quotes and that's exactly what I'm going to show you today. What we see right here is a really basic quote that I've created based on the default templates that are available. But like Jonathan showed us, there is a lot of beautiful quotes that you could create if you leverage the modules and the basic styling that is available through either the design tools or local development. Now, in this specific portal, I do not have any quotes yet, but there is a way we can automate the creation of quotes, managing quotes. And I'll give you a quick introduction of how you can do that using the HubSpot API. Now, what I have done is I have created a few different API calls in Postman based on the API docs, and I'll hop over to those in a minute. And I created a basic API call with the post method and I'm using the quotes endpoint. Now in my API call I am passing a body and I'm passing all the properties that I want to store for the quote that I am creating. Now, Carter and I, and I know he's watching as well, did a lot of work to determine which properties are available. And there are a lot, but I'm only showing you a few of them. As you can see, I'm defining a title and it's called Bright Digital Development Project. In this case, I'm defining an expiration date and that this can be a timestamp or a UNIX timestamp. I'm setting the E signature for this specific quote and I'm enabling it by passing it the true Boolean value. I'm storing a HubSpot owner ID and you can retrieve those from HubSpot. The quickest way you can do so is navigating to your settings, going to Any of the objects that also have a owner property available and I'm navigating for deals for this one, searching for owner, clicking on edit and you'll get a nice little overview of all the owners that are available in your portal. So store that one. I gave the sender a first name, a last name. I sent an email address. I defined the sender company as well for this specific quote, I defined the currency and this is important if you want to leverage any of the other commerce stuff that is available for quotes as well. I defined a template and one of the more important things, I define a status as well, and the status of the quote is quite important. And to explain that specific part, I'm going to hop over to the API docs. Now as Dennis mentioned, you can either use the old docs, which are still great, or you could use the new API docs as well. And if we search for the quote state and it is here, right here available, you can see that we have quite a few different statuses available. You can set it as draft and when you are creating a quote and setting it as draft, that means that the quote is available to be edited in the HubSpot UI. You can set it to approval not needed. And this will mean that your quote is published directly without having a sales manager approve the quote first. You can set it to pending approval and the name is also already giving you an indication what it does. It will allow the quote to be approved, or you can set it to approved or rejected. Now, both approved and approval not needed, will publish your quote and will also generate a quote link which means that your quote is publicly accessible through that link. Now let's see what happens if I try to send this API call. But I just noticed that I'm missing a big part here. When I'm creating a record, let it either be quotes, context companies or anything else. You can also pass it associations through the API. In the past, whenever you were creating a record, you would have made to make additional API calls to associate that created record to other objects with additional API calls. Now you can simply pass an associations array in your API call and create the associations directly. Now in my case, I am associating the quote that I'm going to create to the quote template and this is going to create the quote based on the template that I have available right here and the ID is available in the URL. I'm also associating my quote to a deal and I'm passing an ID right here. But the question you might have is how can I retrieve the association type id? Now, the Quotes API is going to give you a suggestion on how you can do that. And at the bottom you'll see that you can use different API calls to retrieve the type IDs that you need. But the good thing, the great thing about the API docs is that they are available in the docs as well. If you navigate to the Associations API, you can see that we have an enormous overview of all the different association types that are available, and we will also get a nice little overview for the quotes as well. This is both available in the old and the new docs, but we can retrieve the association type ID simply from this table. So if I want to associate my quote to a deal, I know that I can use the type ID 64 for that one. Now, let's try and see if my API call is going to work. I'm going to send this API call and I get a nice little response. I get the ID of my newly created quote, and I get all the properties that are stored for my new quote as well. It isn't only the properties that I have sent through my API call, because HubSpot is also determining a few of the property values based on the quote that is created. If I navigate to the UI and I refresh the page, and you can see that the UI has already updated the best range, so I'm going to refresh it. My newly created quote is available. Now, if I edit this quote, you can see that the quote template that I have selected is associated to the quote that I created through the API. You can see that my name is available and the expiration date that I have set through the API is available as well. But if I navigate to the next step, I do not have a contact selected or a company selected. It has selected a company and a contact based on the deal that I have associated. However, this might be something that you want to automate as well. Now, you could do that by passing the associations through your initial API call as well. But for the sake of the demo, I'm going to show you how you can create an association between a quote that you have created and a different record or object using the quote association. Sorry, the association API. Now, in this case, I'm making a put request and I'm using the Associations API and I'm targeting the quotes object. I'm going to pass the ID of my newly created quotes object, and I'm also going to pass the ID of the company that I want to associate to my quotes now, if I send this API call, I get a nice little response that my association has completed and that it has associated the following records. You can also see the association type ID again and in this case it's 72. Now if we navigate back to the docs, you can see that the quote to company I think on using. Yeah, it's the reversed one from this one. So it's probably quotes to company and staff. But you can see the association type ID in the response as well. And the date stamps are available there as well. I can do the same for the contact. So I'm making a second API call to the quotes association endpoint. I'm passing it a contact and this is Dennis in our case. And now it is. Ooh, I'm getting a error response. Now this is a great example of how nice the HubSpot API is because it is giving me a really descriptive error. But in my case I simply forgot to update the quote ID and boom, there it is. My quote is now also associated to a contact. So let's navigate back to the UI to see if we get the result that we want. Going to navigate to the buyer info and there it is. I now have a contact associated, but also a company associated. Let's see what other stuff we might have to add manually before we can send our quote. If I navigate to the next step, you can see that I have the quote sender and the quote company sender company available as well. And I stored those in the properties of my quote in the initial API call and in the next step I need to add line items. Now, normally this would be a manual process, however there could be use cases where you would want to automate this as well. And this is quite similar to the way that we associate a company and contact as well. Because if you have created line items, you probably also have the ID available of those line items and you can associate those line items to your quote as well. In this case, I do not want to make an API call for each line item individually, so I'm simply going to use a different endpoint, and that's a batch endpoint to create multiple associations in a single call. I'm telling the API that I want to target the quotes and I want to associate two line items and I'm passing an inputs array. Again, I'm defining the association types and I'm simply passing the object that I want to, the object record I want to associate from and the object record I want to associate to. Now this has to be my newly created Quote. So let's quickly update those. And the IDs that we have available right here are simply the IDs of a few line items that I have already created. If I send this API call, I get a similar response, but instead I get an array of results because I have created multiple associations and if we navigate back to the ui, refresh the page and I hope this is working, I should get a few line items as well. So this is really nice. Now I have the possibility to store and associate line items with my quote through the API. But in the next step I need to define a signer as well. And that is because I enabled E signatures in my initial API call. If you want to add a signer to your quotes, we are going to use an API call that is quite similar to the one that we use to associate a contact. You can see that I am using the same endpoint, or almost the same endpoint because I'm using the associations endpoint for a quote. I'm passing it the ID. I'm telling HubSpot that I want to associate my quote to my contact, that is Dennis, but I'm also passing it a association type id. And this is the association type ID for the. Let me grab the docs real quick. It should be here at the bottom. Oh, wrong endpoint, my bad. This is the quote to signer, contact signer. So if I send my API call, I should get a new contact associated or better. It's the same contact but with an association label. And my association label is for the signer in this case. Now let's navigate back to my quote and see if we get the result. Again I'm going to skip quickly to the signature and boom, there it is. Dennis is now the person who is going to sign this quote. However, I see that in the chat he is telling us that he isn't going to sign a quote, so probably would need to add a discount as well. And that is fairly new. You can add discounts, fees and taxes to your quote as well, create them and associate them. So that's really cool. But in this case I'm simply going to skip to the review tab and I'm going to save my quote, but it isn't available to send yet. My quote still needs to be published and made publicly available. So that is something that we can do through the API as well. And that is using the simple batch request passing my quote ID and I'm passing the property HSS status and setting it to approved. Now, if my quote is set up Correctly I should get a nice response and then navigate back to my overview and refresh the page. You can see that it is now pending Dennis his signature, which isn't going to happen. However, my quote is now publicly available so that is really cool. So with a few basic API calls and you could even limit those by adding the initial associations in your create a record API call, you can simply create a code and publish it and fully automating your quote process. There is however an additional batch of properties that is available now that I want to highlight quickly and those are specifically for payments. By using the HS payment enabled property you can enable payments for your quote, you can define the payment type and in this case I'm using HubSpot as my payment type, but it will could also be stripe. You can define the payment methods for your quote and you can define if.
The.
Recipient of your quote is allowed to store their billing address and shipping address. So those are some really nice additions as well. But to learn about everything that is coming for Commerce Hub and quotes as well, I'm now going to pass the mic to Jack.
That was extremely cool. As someone who does a lot of live demos myself, it is tough to do so live, especially I imagine when you're hitting APIs and then refreshing the page. Thanks for running through that. I learned a lot. Again, I'm blown away by how cool everything that I've seen In the past 36 minutes has been. Well folks, thanks for joining today and Dennis, Anton, the rest of the team, thanks for having me here. My name is Jack, I work on the Commerce Hub product team here at HubSpot and I've been on this team working on Commerce hub for about 2 and a half years. I've been at HubSpot though for about 7 and a half years and folks, when I started here our quotes were a pretty darn simple tool. In fact I think we only had one quote quote template. I may be mistaken there, but you definitely, definitely, definitely cannot open up the hood to that quote template and really get into the weeds of everything. So as someone who is admittedly not a developer myself, it's really, really cool to see all of the different use cases and ways that you can design these templates as John Pavoni showed earlier, and then actually creating them via API and even enabling the ability to sign and get paid on that quote, it's just absolutely incredible to see. And as a non developer I feel like even I could do this right now. Just watching you all walk through everything and spinning up Postman on my computer. So that was really, really cool and it's been awesome to see the evolution of these tools. One thing, folks, that I can totally promise you all is that these tools will continue to evolve. They'll continue to get better. We will, as a product team, continue to keep our foot on this gas pedal. So I'm confident that this developer user group will continue to grow and have plenty of content to run through over the next couple of weeks, months, quarters and years. Folks, I want to touch on a couple of other things that we haven't focused as much on here today from the developer angle that my team is really working on. I'll also throw out a couple of quick little tips and tricks that you may not have noticed before. So we recently released APIs for some of our commerce objects. So for those who don't know, Commerce Hub really allows for you to get paid faster by billing directly from your CRM, creating a quote, invoice or payment link. When someone pays with one of those artifacts, then a commerce object will be created. We have the payment object, which represents a transaction subscription object, which represents a recurring payment, and of course an invoice object, which really is that record of payment within HubSpot. Now we just released Read APIs this month. I think it was just a couple of weeks ago if I remember completely correctly. Now of course you can create payable quotes as Tune showed you right there. I've had so many conversations with people who simply want to say when a given deal gets to a specific stiege, just spin up a payable artifact, maybe even distribute it automatically. You can now do so using our Quotes API and it's really cool to see how you can say, stage. Just spin up a payable artifact, maybe even distribute it automatically. You can now do so using our Quotes API and it's really cool to see how you can really get in there and do so pretty easily again with all of the design options that Jacob already showed earlier today. That's not it though, folks. There's some other things that you can do. I totally recognize that there are a lot of different businesses and a lot of different business structures out there. While HubSpot is indeed focused on building more robust accounting integrations for systems like QuickBooks Online and Xero in the near future, is HubSpot going to build every single accounting integration and every single ERP integration that our customers would need? I don't think so. That would be a pretty tall order. That's why we are opening up our Read APIs to allow for you all to do things like create those custom integrations. Now I can also see a world where HubSpot will give you all the bones, to use that metaphor. So maybe we'll get you 60% of the way there and you need to do some custom integration work in order to get to that other 40% also. And maybe this is something John, if I can put you on the spot a little bit later once we open up to more questions, using things like just simply surfacing data in a given customer portal. So maybe you are running something like a memberships motion and if someone is paying, let's say monthly, the subscription will be created automatically. The status will simply be active, assuming that subscription continues to be pay it up. Now if you wanted to simply create a list of your active subscribers because subscriptions are a CRM object, you could do so incredibly easily and also do things like surface more payment links in there, maybe use some smart content. I think this group knows some of the possibilities that you all have at your fingertips when all of your data is consolidated in really one place. Now maybe you wanted to surface things like invoice data, for example, in that customer portal. You can now do so simply using those APIs. There's another thing that I've seen in the chat pop up and I have a slight feeling that this will continue to pop up in the near medium and long term future. We recently released CART and Order objects as well. So if you all wanted to have a little bit more jurisdiction over an E commerce integration with HubSpot, you could indeed do so. And I hope it goes without saying you can absolutely use things like subscription and invoice based workflows, maybe to manage your renewals or follow up on overdue invoices. Maybe some good old abandoned CART emails using CART based workflows. Ultimately you can use the pipes underneath HubSpot because all of these are just CRM objects and I'm pretty confident saying you all know how to navigate these APIs as well. So when we take a step back and just think about commerce more broadly within HubSpot, as things stand today, Commerce Hub can offer you possibilities to simply manage your commerce process where it deserves to be managed, where you manage all of your customers in your CRM. We're also opening up and giving you all some more flexibility on the classic E commerce side as well. So it's something that I'm super excited about. I hope you all are as excited about it as I am. I'd be remiss if I didn't just quickly show you all on these new docs, all of these new commerce APIs that we have. As Dennis mentioned at the beginning of this session, we've literally needed to create our own dropdown. So happy to see this right here. And folks, we're not done yet, so stay tuned for more from us this year and beyond. I want to just mention a couple of other things within HubSpot, if that's okay. I'll quickly just voice over show you all what I voiced over a little bit earlier. So maybe you want to manage all of your subscriptions here. I'm confident in saying that a good portion of this group, if not every single one of you all, likely sees this interface and knows that this is just an object index page right here. Another thing that I'll show you all, and I'll be completely honest, a couple of years ago a colleague of mine shed a light on this so John Pavoni showed you all what you can do. When it comes to quote template customization, there are a lot of options that you have and you can really get as fancy or as straightforward as you'd like. For those who want just a little bit more of a head start on the fancy side of things though, what I'd urge you all to do is click onto custom quote templates right here. One thing that a lot of folks don't realize is we actually offer these two custom custom quote templates. I guess they're technically default quote templates in your portal and folks, you can simply download these right in and just save it and then you will see these available in your portal. So this is one of those little kit tricks that a lot of folks can overlook. So don't overlook this. If you all do want a little bit more of a head start, then definitely go ahead and explore this. Of course your colors and your logo will be inheriting in here from your account defaults, so there's a lot that you can do on the API side of things. Folks. Again, we are, we really are just getting started from a commerce perspective into this world. So I'm super excited about the future, super excited for future developer hug sessions as well, where we're going to get into even more of this. That's pretty much all that I had for you folks here today though. I'm seeing some questions coming in which is absolutely awesome, and maybe we can open up for a broader Q and A and discussion here.
Thank you Jack, everyone. Seriously amazing work. Per usual, we do have a few questions and you do have the time to put a few more in there. I want to start with one. Jack, you just said something about, you know, using the. The custom templates provided by HubSpot. Do I need to worry about that hitting my brand colors, you know, my, my style of my. Or is that out of the box? Ready to go out of the box?
Account defaults will pull directly from your branding.
Sweet. All right, let's go in. And I want to start with, you know, what I'm going to pull carries back up here because I know Carter answered it, but I think we're going to bring it back in. Is there a way yet to create a module field that end user can update per quote? And Jack or I want John, if you have any thoughts on that, I'll open it to you too. And if you are talking, Jonathan, you are very muted.
Sorry about that. I was talking. Thanks for. Thanks for buzzing me there. D so Carrie. Not really. However, what I've done is the comments to the buyer and the purchase terms. I've actually hacked that before and used that for, you know, a way to just input text into the quote before. So it's. It's kind of a workaround. But, you know, depending on what your use case is, you can use those as a way to let the rep input some data into the quote. The other thing I'll say there is a lot of that power is kind of reserved for like the sales manager, where they have a ton of ability to edit custom quote modules, include them, remove them. So a lot of that power is kind of reserved for the sales manager.
I'll add something quick here because I've walked many thousands of people over the years through this and often people will say, whoa, didn't know that that was possible. So comments, purchase terms obviously speak for themselves and you see it render in full time, in real time right there on the right as you're building the quote. One thing that's often overlooked is that you can actually use snippets in there as well. So just like hashtag terms, for example, and then have everything pop out. Those snippets can use personalization tokens to take that customization motion to a whole different level. You can also of course, include hyperlinks if you'd like to do so as well. So I've worked with a lot of folks who want to actually like link to their terms. Another thing, and John, you showed us a lot of really cool stuff in the custom quote template builder. One thing in the actual modules right there on that left panel. So you were hiding it before and then Enabling it. One thing that I find folks will often overlook there as well is the fact that you can also include personalization tokens right in there. So you don't actually have to write that code. You can dynamically populate that. Carrie, I know that that's not the exact question that you're asking, but it is one of those things that just takes all of your data because again, it is actually centralized and you can use that data to make things even more personalized without having to think or to type too much. And who likes thinking or typing too much?
Great answers. I'm going to ask one. This is too tuned for myself actually. You focused on the API. More of the automation side of things. How much, how much do you marry the two. So the CMS building out a custom quote plus using the API to automate it, is that something that's in your workflow or do you just go strictly for a standard quote template and push it out?
Yeah, great question. I think most of our quote templates are customized simply because the clients really need different type of content in each independent quote. We have quite a few use cases for quotes as well. It's not simply to show an overview of the line items, so a total price, but we kind of use the E signature to get all kinds of agreements and have leveraged that quite a bit. One example is that we I'm looking for the English word right now, but simply getting a user agreement agreement based on a terms and conditions that that's a great use case as well for quotes. So I think probably all of them are custom built depending on the use case. One thing that we do quite a lot as well is building multiple tables instead of having a single one. Right. A lot of clients have either one time fees or really categorized line items or products and they want to show different overviews with a bit of additional context. And using Hubble, you can really simply filter out independent line items either based on a dropdown, select custom property or simply based on the recurring setting of line item and create custom tables for those as well. Cool.
Can I underline something that Tuan said there? Because I think it's really, it's really important and a lot of clients don't think about it. I just did a project for a mortgage broker that needs to get a lot of documents E signed and what we did is we just hacked the quote tool and pulled off all the line items and just put like all the legalese and documentation in there and they've completely automated the whole process that they used to do with wet signatures. Now they're doing it all with E signatures and they're. They're on fire.
Exactly. Great.
They, they, they freaking love it.
The, the, the. The amount of gape in Jack's mouth I think explains how cool that is.
That's so cool.
I mean, Dennis, they went wild for this thing, man. It was crazy.
It's amazing. I, I bought a place, a couple, I bought a place a couple of years ago and John, I had to sign so many documents, my hand hurt afterwards. So, like, the fact that we can streamline this a little bit, man, I need my.
Yeah, like, each person had five documents that they needed to sign. So there was always stuff going back and forth. And they've automated the whole thing with HubSpot quotes. I mean, it's such a great use case that people don't think about. So I just wanted to underline with two.
Well, well put. Yeah, I love it. Moving on here to Frank. And he had two parts to this. So it's HubSpot planning to support product categories. For example, if I select product A, it would include automatically product B, C and D. So their sales reps don't have to remember to go at all, I imagine. I'm not sure if the. Oh, Jax, you start and then I want to go over to Tune. I feel like there's a way you could probably. Or, John, you can speak to this as well. There's ways you could do this, but maybe not directly with HubSpot default, default functionality. Jack, you want to start that off?
I would plus one, your initial instinct there, Dennis. And while my team is extremely busy on a lot of fronts, this isn't something that we're heads down building right now, to be completely honest. Now, Tune. John, I'm curious what your take is on this. One other thing I'll mention is, you know, just taking a big step back from everything. While I would like to see every single organization on the planet using our Quotes tool, sometimes our Quotes tool may not do exactly what you need. And I'm the first person to recognize that. That's why we have an app ecosystem, folks. Like, that's why we have a bajillion. And I'm kind of exaggerating, but not really. Actually, we have a lot of other solutions out there as well. So I'd say anytime that you're just running into something within the ui, I would consider talking to a John Pavoni, Dennis, or Tune to see if you can get over that hump using our APIs. Because we use the term workaround a couple of times during this conversation. There are a lot of workaround options but if that's not the case, consider an integration because we're very integrations friendly as a platform as well.
I do want to highlight actually Bill had a great answer over here as well in the comments.
This is.
We are making customize the CRM like a big thing, right? You can do this stuff within HubSpot. I mean leveraging, React and the serverless. That right there, you could build that out. But yeah, tune if you want to go ahead and continue on.
No, I had the same answer. We've done it using Operations Hub in the past and simply using the whole business process of creating a a quote to a deal object instead. So you would manage setting up your deal and that would automatically create a quote with line items based on deal properties that you have set. So that was fully automated. However yeah, in this case the CRM card is probably the easiest and the most user friendly way of solving this. Giving the user complete freedom making additional adjustments. So plus one on that id.
Yeah, one other like just, you know, this is a little hackier Frank, but basically what you're talking about here is like a parent child kind of relationship. You know where my mind originally went was, you know you can set up a Hub DB table of those child elements so when you bring in a parent element from like the products, it'll list out those children under it and then you can just manage that Hub DB table. So maybe you write a macro that matches to the parent and then it'll bring those children in. That would be another way to do it.
That's very smart. Love it. I'm going to move on to conveying your message. Is E Commerce integration required? Can I create an order with a custom coded action only and no Shopify or erp Jack, you have thoughts on the.
I'd be very surprised if not. I know that you can definitely create quotes via custom coded workflow actions and when we say custom code, workflow actions can be like almost anything. That's actually true. That is actually true. John Tun do you all have any thoughts on this one? Because my instinct is is definitely yes, but I'm open to being incorrect.
I haven't tested it through the ui. However if I look at the API you should definitely be able to create an order without having any E commerce integration. I think it's particularly designed in case you are using an E commerce platform and you want to have that data stored in HubSpot as well. But that wouldn't stop you to simply use the API in a different way and create those records without having an ecosystem.
Yeah, totally agree with that. If you have any questions, throw them in the chat. I want to ask both Tuna and John about the limitations, I guess, of quotes. When you're working with the customer, they want something very, very specific. And I know, you know, you want to use your web fonts. How do you actually steer them in, you know, rein them in so you can actually, you know, produce something that actually works.
Yeah, Dennis, I can jump in on that one. I just did a, a quote project for companies selling Holy Land tours, like, you know, tours like Israel and stuff, and they had a bunch of like very unique requests requirements and we were, we were able to solve it all with, you know, custom templates, a lot of custom modules, bringing in associated contacts and companies. And you know, the rep view is a little bit limited, but we were able to solve it all with just a handful of templates and custom modules. You know, to answer your first question, you know, where the. Is it a little bit limited? I've gotten a lot of questions around like product bundling and how do I bring in a bundle of products. My answer to that is it's a little bit of a hack with products and Hub db, but it can definitely be accomplished. So there's definitely some workaround things, but I haven't found a use case where we couldn't kind of make it happen for the client.
That's awesome. Yeah. I just think about. This isn't quote specific, but like I think about email and when you get someone who wants a specific look for their email, it's impossible to do and you have to like kind of rein them in to actually do, you know, within the limits of the platform itself.
That's not the case for quotes. We've built interactive web applications using quotes. You do have to keep E signatures in mind if you're going to use that because that is going to keep create like a PDF version of your quote. So if it's really scripted and a lot of interaction is happening there, that is probably something you have to keep in mind. But besides that, it's basically a web page, right? So you can build whatever you want. I think you could even achieve creating like a small react application inside your quotes. And because you aren't limited on the techniques that you can use in the quote, it's similar to a basic website page. You can load in your loadout layout. You can add any scripts and style sheets that you want. So, so there isn't really a limit on the web version of your quote.
So I just heard, Tunis, we should be expecting a react version of quotes coming from you within the week.
Right?
I'll get to the shelf.
I'll go for the shelf.
Cool.
We're out of time, folks. Any closing thoughts from anybody here before I shut this down?
Jack, I have one at that school. I am super proud of the products that we've built over the past few years. I'm super excited about the future ahead, and I'm super thankful for partners like you all in this ecosystem because you all are very much moving us forward and solving for our customers in a really big way. So I'm very excited. I also wanted to just express gratitude for folks like you all because HubSpot would not be the company that it is without you all. Nor would our customers be as happy with our platform without you folks either. So we're lucky to have people like you all in our ecosystem. Super thankful to have you guys.
Jack, by the way, in the comments, I believe you owe about 50 people swags a sweater.
Sorry.
Yeah, we need to make your order on this. I have this joke where, like, Even when it's 100 degrees in Boston, I'm wearing this sweatshirt no matter what.
All right, y', all, we're getting out of here. Down below. You'll see the next event is next month, May 20th.
Something.
I remember the actual date, but go there, you'll find out for sure what it is, Hubble. And it's going to be amazing. You'll see cool people like this. Get out of here. Have a good day.
Bye.
Bye.










