Custom Events

Maggie and Janine from HubSpot walk through custom events, showing how to set them up, what data they track, and how to use them for behavioral data. The demo covers the technical setup, real-world use cases, and new features added to the platform.
Foreign.
Welcome back to the admin hug, everyone. This is your housekeeping. It's in the chat so you can follow along with me. So if you are here, you know you can follow along with and get any of those events that you want to to register for. Today we're going to be talking about custom events, those ins and outs of event tracking with HubSpot. Next week we're going to be talking Breeze, Customer Agent and HubSpot credits. This is the one that everyone's been asking for. Make sure you get it on your calendar. We will be chatting with that team next week. On August 5th we're going to be talking about messaging tools, SMS, WhatsApp, all of those things that are that you can connect to your HubSpot portal. Go ahead and you can add all of the events all the way through the end of October. I'm not going to talk through all of them, but feel free to add those to your account calendar and make sure you're here for those. If you miss a session, something happens, you've got to log out. Whatever. All of our events are recorded on YouTube. You can check those out. Just make sure you go there, subscribe and then you'll. You'll get notified anytime a new one is added. We also have a group on LinkedIn. Make sure you're connecting with your admins over there, posting jobs, finding out resources, any tools or ask just asking a question and getting to know everybody. We also have a space on the HubSpot community. You are able to go there, connect with other Admins. We've got 836 members at the moment so you can go there and find all those resources there as well. We'd love to hear about anything that you're working on. We do a show and tell as soon as we get five or six of those submitted. Make sure you're adding those here and who knows, you may be able to fill in if someone cancels for us like we had last week. Get your submissions sent in there as well. The Bootcamp is not open until fall, but it looks like they're going to be opening it on August 15th to get the wait list. So if you're Interested in the HubSpot Academy boot camps, the Super Admin Boot camp is great. It's amazing group of people that you can learn a bunch of great things from. It does happen during this one, but that's okay. You can always go and watch one of the recordings later if you're having an issue with Bevy. It does sometimes have little issues Just turn it off, turn it back on again. If it's not working, you're not able to have these things. Make sure you check out those recordings on YouTube. We also have these events every single week. So if you've got an idea for a hug, let us know. That's a great way to say hey, I'm really interested in this thing. Get it on the calendar. As you know, we've got everything booked out into October, so the sooner the better to get your ideas submitted. You're also welcome to connect with myself or Kyle. He'll be back after inbound and he'll be joining us again. And if you have any jobs that are open or that you're looking for a job in the HubSpot ecosystem, make sure you're joining hiring for HubSpot. It's a great community, lots of people in there, over 3200 members. So making sure you're connected and being able to do the best that is there for yourself and the community. I am going to let Maggie take it away. Maggie, welcome.
I'm super excited to be here. This is my first one of these. What an honor to be here with the HubSpot admin crew. We're going to chat about custom events. I've got a little slide deck that we'll talk through and then I'll spend a lot of time in the tool. So happy to be here. I'm quite bad at the chat plus zoom so know that I will get to the chat but we'll, we'll patience. I would say on you gotta be patient with me. All right, let me share my screen. We gotcha. Okay. Amazing. Okay. And hit share. What? Okay. Does everyone see my slide deck?
Looks great.
Amazing. Cool. Okay, so welcome. We're going to talk about using custom events to collect your behavioral data. I am Maggie there is my very pre pregnancy headshot. I'm a senior product manager here at HubSpot on a team called Event Management. We are focused on letting you get in behavioral data. We own custom events. We also own the HubSpot tracking script that captures pages and some other fun stuff on your website. And then we own a lot of not as exciting backend systems that fuel a lot of things here at HubSpot. Now if you join anything with me, you know I tend to talk about the same concept to start most of my talks and that is what is the HubSpot data model and why do I start with it? Because we don't talk about it enough and the understanding of what the data model looks like can help you make decisions about how your data should work. So what is the HubSpot data model? It is how we describe it. Internally is an ecosystem of tools and systems that are the building blocks of HubSpot. It's the underlying data that shapes how you see and interact with the system. With the CRM in the HubSpot system record, we've got two key components, objects and events. Objects are tied together with associations. Events happen to or on behalf of an object. So they are actually two different things. I get several emails, I'd say from someone a little bit upset saying, why can't I do this thing with my event data like I can any other object data? And it's because events are not objects. They're an entirely different type of data that is stored in an entirely different place and capable of entirely different things. So if events aren't objects, what are they? Events are data points that are meant to represent actions. These actions can be taken online or offline. These are actions that might be taken by your prospects and customers. They might also be actions that are taken by systems. So systems can complete events as well. Events happen at a point in time and as I mentioned, on behalf of or to any object. Now, we don't talk about events a ton in the platform. You see them sometimes in some of the workflows set up. You see them sometimes in customer journey analytics. But actually there's a ton of quote unquote standard events that HubSpot generates for you that we don't always call events. We often use words like interactions. But they are actually event data under the hood. So a website page view, that is an event. A form submission, that's an event. An email open that's an event. Anytime you have that's happening, it's probably stored in HubSpot's event data systems and not in HubSpot data systems. Now, like, why does this matter? Why do you have event data? Why should you know the difference between the two? So objects represent processes and relationships. We'll get in a little bit to the difference later. But events represent not just who your customers are, they represent what they're doing. So it's actually the data that you care about the most. Oftentimes events allow you to understand your customers buyer's journey so you can see the different interactions they're having with your brand. Events are the key piece to reporting on attribution and journeys. Events are also the key piece to really targeted sales and marketing execution. Because you're using behavior now, I've made Clear, events are not objects, but actually they look a lot like objects. So let's look at the shape of the two data points next to each other. Imagine you're at, this is a super American centric example, but imagine you're at like the DMV or a doctor's office even, and they hand you a sheet of paper to fill out, right? For both an object and an event, the title on the top of that paper is going to be the name of the event or the object type. Both have what we call properties. Properties are think like the fields that you fill out on a form. What you write, when you're writing, when you're filling it out, that's going to be the values. So the properties are essentially the holders of your metadata. And then the property values are what go in there. Now a fully filled out object is called a record, and a fully filled out event is often called a completion. You'll also sometimes hear instance and occurrence, depending on how technical the documentation you're looking at is. We're working on maybe standardizing those terms at some time in the near future. So they're shaped really, really similarly. What are the differences then? So the differences is what they're designed to do. Objects represent processes and relationships. So a contact, a company, a deal and a ticket. By nature, they're designed to evolve. So I'm Maggie, I have a contact record, I get a promotion and my title changes. The object record is designed to capture what's the current state of me as a contact record. Events, on the other hand. So an event is designed to represent a fact about a point in time, and that fact can't ever change. I viewed a page and that is a fact. I viewed it from Philadelphia. I viewed it at this day and time. I viewed it, I viewed this specific page, I viewed it from this browser type. So it's a fact about a thing that happens. One of the questions that comes up so much is like, why can't I edit these? It's because they're designed to fundamentally be a fact. So that's my five minute intro to the HubSpot data model now. So what, like why should I care about the HubSpot data model? It actually helps you to understand what custom events are. I find custom events are like an. They're, they're a super confusing process or feature that becomes less confusing when you understand how your data works. So if you understand what objects are, right, and you understand what events are, and you understand that there's standard objects, contact, company, deal, ticket and Then you understand that custom objects are objects that are unique to you and you understand that there's standard events. That's a page view, that's a form submission, that's an email open. Then custom events are events that are unique to you. So custom events are really just a place where you can store data about an action that is unique to you. We often describe it like having like a mini amplitude integrated right into your marketing automation platform or CRM. So yeah, what are events more specifically? They're just a data ingestion tool. When you create a custom event in HubSpot, all you are doing is defining a schema, aka your collection of property. And then when you send an individual event instance, that's. Maggie clicked this button. Yeah. When you send data to the event, there's a few different ways to send data. We have options that we'll talk through when I do the demo. We generally categorize them as with code and without code. And then we have one low code option. Custom events allow for more than just the set of types that you see in HubSpot. You can also send data from a bunch of key integrations. And I see folks not quite. I don't know if we don't talk about it well enough, but this is a big piece that folks miss. Quite often I'll get on customer calls and they'll say I have all this data in Pendo and I wish I could send those events to HubSpot. And there's actually custom event integrations that exist with Segment, Amplitude, Pendo Census and Zapier where you, if you already have data that live in those tools, you can send them to HubSpot by setting up a custom event integration in those tools. So that's something I'd like to highlight too. Now, why should I use custom events? You guys are a lot better in the ecosystem talking about this than I am. Actually, often I'll go on LinkedIn and I see posts and I'm like, hell yeah, this is a great description of the value of custom events. So. So I grabbed two that I tossed on the screen here. I'll share this deck out. Obviously this is probably going to be pretty small on your screen, but both of these are really, really good explanations of one of my personal favorite use cases for custom events and that's product led growth, aka sending data about your product engagement into HubSpot. And why is this one of my favorite use cases? It's because the best marketers for your business are customers that are happy with your business. So if you integrate product data and what folks care about when using your product into your sales and marketing efforts. A bunch of studies have shown it's got tons of benefits. Reduce customer acquisition cost, acquire more customers through like sort of the, the viral concepts. So word of mouth marketing. If folks are really, really happy with your brand or business, they're more likely to recommend it to others. You can also capture critical feedback to improve your product. HubSpot does that quite often. You see surveys that pop up all across the tool. The product team really does use that data to help improve our product. Real people see those and it helps you better retain an upsell because your users are happier. Now, what kinds of product usage data can you send with custom events? This can be things like logins and usage trends. So how they're interacting with individual features. This might be like specific in app event activity that's unique to your product. This might be like cancellations and upgrades. So when someone cancels a subscription, that is an event that occurred. Right. And customer feedback. So there's some examples of product usage data that are great to send over with custom events. Now once your event data is in HubSpot, what do you do with it? I bucket the use cases for custom events into three primary categories. There's segmentation that is using what someone has done to more accurately target them with content and with campaigns based on what you know they care about. So this is going to be lists and scoring. So those are two of the key places that you can use custom events that are segmentation related automation, you can actually automate that outreach once you have your segmentation done. Custom events are available as workflow triggers and then reporting. One of my favorite reporting tools, which I'll highlight once we do like demo mode, is going to be customer drain analytics. The coolest thing about events is because they represent a moment in time, a thing that happened. You can watch how folks are moving through flows that you care about. You can report on spikes and dips in activity over time. Yeah. What's new in 2025? We're going to highlight some of these. If you haven't looked at custom events in a while, we've got some like pretty cool new features. Just a couple of weeks ago we sent live a beta that actually started last year called Property Change Events. This is probably the most different custom event feature that we have. Most is focused on allowing you to track things that happen outside of HubSpot property change events. Think of it as letting you track something that changes inside of HubSpot. So it lets you track changes to an object. Error resolution. This is also a beta that started last year. We released it earlier this year. We often will have. Because events are immutable, when you send something, if you mess it up, it's really hard to fix it most of the time. So this allows you to. If you forget to send us a property, we will let you actually fix it inside of the Health tab within Events Management. So we'll talk about that a little bit. Custom IDs support. This is one that I'll highlight also in the demo. What happens so often, or what used to happen, is to send a custom event, you actually have to send. If you're not sending website data, you have to Send us the HubSpot object Record ID with your event so that we can tie it to the right object record. And we were noticing folks were dropping events a lot of the time because they didn't have the object record in the system that they're sending data from. We now support you guys using your own id. This might be a Salesforce id. This might be an amplitude id. This might be like some sort of internal customer ID that you guys store. You guys know your data. You can use your own unique identifiers to connect custom events to objects. And lastly, permissions. For the first time, custom events can be controlled. Who can access. We know that a lot of times setting up custom events takes a lot of time and effort. You don't want some errant salesperson to like accidentally delete a custom event. So you now have permissions. You can control who can create and access custom events. This is not the. This is actually just like the page and setting them up and viewing the. The usage, the. The page itself. Demo time. I'm gonna. I'm gonna pause because I've been talking for several minutes. Oh, God. I'm doing the thing that. Okay, let me just check in on the chat.
There's a couple that got moved over to Q and A.
Okay, cool. Okay. Nothing.
Context setting. So thank you for doing that.
I think that's really a lot of context setting. Well, I find customer events, like, when you just look at the docs, you're like, what's going on here? But there's. Once you understand how Data works in HubSpot, it makes it a lot easier to understand. Not even just custom events, but, like, this is a tiny, like, tangent. Something that comes up a lot is. Folks use custom objects for stuff that should be events. Like, if you hear a verb in your sentence when you're talking about what Your custom object does. It probably shouldn't be a custom object. If you're slamming into custom object limits like instantly, it probably is not a custom object. I'll run into folks that use custom objects for like, one of the most like, wild examples was they were using custom objects for. It was like a gym and they were using custom objects for a check in. Like a check in is a thing. So they were running into limits in like a week. They hit the custom object limits in like a week. Custom events have higher limits because they're immutable. There's designed to be way more of them because they are a thing that happens at a moment in time. So yeah, that's my, like, aside about custom objects. Good aside. Yeah.
So how come Maggie's explanation is a thousand times better than any docs on this earth in the academy or knowledge base.
So some of that's on me. The docs. We actually are in the process of updating some of the docs right now. I took this like this rant that I do on these webinars quite often and I turned it into doc form. We are looking to update some of those docs this fall. On the Academy stuff though, I do, I do think that that's a good call out and we'll need to hook up with the Academy team to get this updated. Some of it is that HubSpot evolves so much so quickly, it's hard to keep those videos updated. Yeah, yeah, totally, totally Good point. On. On AI might make this easier for sure, but oftentimes I'll ask AI things. I'm like, I don't like the way you explain that. So I think, I think we're a while before they fully replace humans. Anyway, let's get into demoing custom events.
Let's do it.
Okay. Does everyone see custom events?
Yes.
What time is it? Okay. It's 11:20. I'm going to spend probably more time than I normally would talking about the various setup types. I won't dive into them all too much, but I will talk about, like, what they are. There's a bunch of different ways to create event data. And this is one of the things that is like, I would say most confusing. They click into this screen and they're like, oh my God. And then they X out and never return. There's a lot of different ways to send event data, and that's because data comes from a lot of different places. So what method is appropriate for you? Depends on your use case A and your what, like resources you have available to you. How technical are you? How technical are the folks on your team? Can you get someone to send an API call? So those kinds of things influence what setup method is best for you. So the at the top here we've got two kinds of setups that involve the HubSpot tracking code. So this has to be coming from a website where your HubSpot tracking code is installed. Um, it will not work for anything other than a website. Um, we've got the Visualizer. This is what you've. It's actually probably going to be the one I spend the least time on because it's. It's the one that there's so many demos of this one out online versus like some of these more complicated ones folks don't talk about as much. Visualizer is a WYSIWYG AKA what you see is what you get interface where you click in, you load your website. I actually don't have my site. That's part of it too. You load your website and then you can track clicks on elements on your page. It's pretty simple conceptually. It's also pretty limited. The Visualizer. I, I mean sort of by nature it's not limited, you know, from like a deficit perspective. It's. It's like intended to be like pretty guardrailed. I pretty much only recommend the Visualizer when we're talking super simple use cases like I just want to track when someone clicks, flicks the contact us button so that I can build a journey that says when they click and then fill out the form, that kind of thing. I also only ever really recommend it when you have zilch technical resources. Like if you have no one in house to help you, this is one of the methods that is going to be safe for you. The big downside and why I won't spend too much time on the Visualizer is because you can't create custom properties. In the visualizer we add 32 default properties. That's going to be very tracking code. Specific things like what page the click was on, the browser that they're using, utm, params, all that kind of stuff we do capture for you, but you lose the ability to add any custom attributes to your tracking. What I will say is also I'm going to sneak peek. I don't know if I'm even allowed to say this, but I'm a sneak peek at on the admin hug. Part of the reason I'm not going to talk about this is because the way that you do this is about to change majorly at inbound and that is what I'll say. The codeless event tracking experience is going to get a lot easier in the coming months. We'll leave it at that Custom JavaScript Custom JavaScript is one of the most misunderstood options. Custom JavaScript allows you to write your own JavaScript code and it appends automatically to your tracking script wherever your tracking script is found. This is really good for like website specific use cases that are a little more complicated than just the clicks you track with the visualizer. My favorite examples are scrolls so if you want to capture when someone scrolls on certain pages. My other favorite example is video views. It's also really good for even embedded video views. There's a really good explain like one pager that is floating around out there that someone in the ecosystem made on how to use custom event to track YouTube video views using YouTube's APIs and it's really cool. So if anyone has that use case, let me know. I'll find it and I'll shoot it over to you. But let's talk about like what custom JavaScript is and how you set one up. So if I let's say I want to track a video of you, the first thing you do is you give it a name. Something that's going to be understandable across the platform. The next thing I do is create your properties. Properties are again like we chatted through the ability to store down metadata about the thing that happened. If I'm tracking a video view, I probably want to do watch time as an example. All I need to do is give my property a name. Then there's probably a bunch of other properties I can make up. For the sake of moving through this quickly. Let's say that's my custom property. Then I come into here. It feels like it should not be super surprising, but to do this you need to know how to write JavaScript. What happens actually more often than you would think is folks go through and they make their event and they just hit save on this and they think it like somehow automatically knows what they want to track and nothing. So you have to know how to write JavaScript and you have to I'm so sorry for my guest appearance of my cat here. You have to know how to write JavaScript and you have to know how to ask for what you track in here. So that's something that I will highlight about creating custom job descript if I just hit save here. It's not getting what folks often do if you don't feel comfortable. So what happens When I save my JavaScript code snippet is it will actually place it everywhere that the tracking script is found on your site. This feature actually is one of the huge reasons we added permissions because some folks don't like that. What you're also capable of doing is once you write your JavaScript, you can actually copy it out of this editor and just put it right in the source code on your website. As long as you include the name and this HSQ push in your event, we'll be able to track it whether it's in here or not. We do see a lot of people just blank this out and save it. That's totally cool too. It's sort of like personal preference thing. Yeah, so that's custom JavaScript. So sending data from elsewhere API is is our most common setup type. By a large margin. Yeah, by a pretty large margin. I want to highlight a couple of things. One, we've just redone this flow and added a bunch of explainers, some really cool visuals that help you and what each section is for. So if you haven't seen the new setup flow, try it out. We've also made the default properties optional here. So if you don't want the if your data is not about a website, you probably don't need all of these default properties. Also if you're not planning on using them, you definitely don't need them. Let's say you can see in here the things that I often use. Let's say I'm using this custom event to see when someone signs up for my product. It's a mobile app, let's say and I'm going to give it a name, I can write a description. I'm going to add my custom properties that are like subscription type, you know, things like that, whatever I want to capture with my data and then link to object. Here is where giving you the ability to use your own custom IDs. First thing you're going to do is going to select your object. This is going to be the actor. So we get questions on this. A good amount contacts, companies deal those tickets and then custom objects also desks and pets in here it's not very good custom object examples but let's say this is this is that that account sign up, that's a contact that does that. You know the only other time that you'd want to have it be linked to something else is I can see sometimes if you're a very ABM centric organization, sometimes folks do companies but either way you select your primary object and then you can choose how it matches. If you choose the default match, when you send us your data via API, you have to include the object ID, the HubSpot object record ID, UTK, or if it's contacts we support emails, companies, deals, tickets. Emails are not supported as an identifier. So if you don't plan on sending us any of those, you can customize the match. What you need to do is select the event property that you made on your event where this data is going to be found. So I probably should have added this to my property list, but let's say I'm using my amplitude id. I'd have a property in here that says Amplitude id, and then in this list it's going to pull up object properties. Now you'll see in this little tooltip, this has to be an object property which requires a unique value. If you don't see your desired object property in here. That's why it has to be unique, because otherwise how do we know what object record to tie the event to? It requires a unique value you selected in here and now. When you send via API, we know to grab the ID from your amplitude ID property, match it with it's matching with the object property id. Right now this only supports exact matches if you've needs around fuzzy matching and some of that more complex identity resolution. Love to hear from you. So give me a call then. Last is the tracking id. You grab this ID and you put it in your API call. Now you can set all of this up via the ui. You also can set this up via the API. So we have what we call a definitions API that lets you create event types. The flow is this, you create your event types either in the UI or via API. That's your event with your collection of properties. And then you use the Send Event Completions API to send individual instances to that event. A big question we get particularly from legacy users is why do you guys make me do this? Amplitude lets me just like create my event and send my instances at the same time. Or legacy events let you create my event and send the instances at the same time. Admittedly, a little bit of it is to save you all from yourselves a little bit. The difference between this and an amplitude is this is embedded into your CRM. So when legacy events supported creating your event type at the same time, you were sending your event completions. Like in one call we found folks would A slam into the limits like truly instantly and b programmatically create events. And they often weren't naming them super Clearly. And these events show up all across HubSpot. So you want your sales teams, your marketing teams, your customer success teams to be able to understand what this data is. So creating your schema ahead of time really lets you think about how you are creating your events. How should I name them? How should they show up in downstream tools? Also like what the structure of them should be. Another one of the questions is like a separate, you know, kind of an aside. But another one of the questions I get all the time is like, why are the limits on custom events, the definition limits so much lower than legacy events were? Custom events limits you to 500 largely because we want you all to use properties. So in legacy events, what folks would do quite often is they'd have 5,000 events for every single button on their website. That's like a nightmare to manage, right? What a data management best practice is is to have a singular event called click. And then within that event you have a property that is you know the name of the button that is clicked and that allows you to say like button one, button two, button three, all in one event. Not only is this a lot cleaner from a data management perspective, it lets you keep your head on straight a little bit more. It's also going to be more usable across HubSpot. One of the biggest places I'll highlight is reporting. So in reporting tools, particularly the Customer Report Builder, really you can only look at one event at a time. So you can't. If you have two separate events for button A versus button B, you can't build a lovely like a B comparison of button A versus button B over time. If you have them in one event, you can, which is a plug for why we should like structure our data in a nice nested way. Next is Web hooks. Webhooks let you send data from systems that either don't integrate with HubSpot or don't integrate with HubSpot in the way that you like. This is that one low code option. Webhooks are kind of like an old school integration method where you get a URL and you listen for an event stream from a different platform. So I've seen folks use webhook URLs for a lot of really, really cool use cases from platforms that don't integrate with HubSpot or even like internal webhooks that you guys create on your side in your tools. We get questions about this a lot. These are the exact same webhooks as are present in workflow triggers. So it's actually the Same feature. And because of that, this is the only option in custom events that is right now available in Ops Hub Pro. So if you don't have enterprise and you just have Ops Hub Pro, webhooks are an option that's available for you. Last two setup types. Oh my God. 11:35 this is flying last two setup here because I'm using a test portal. You guys are getting a sneak peek of a beta that may or may not be released that we won't talk about. If you really want to know what a combo event is, send me an email. But I won't cover it here. Track Object Changes and Import Spreadsheet are the only two other options you guys should see in your accounts. Track Object Changes is that new feature that we talked about where you can track how object property values change over time. This is great for a lot of reasons. I will say it's often like band aiding things that you're storing in properties that you probably should be storing in events. So a lot of times it'll be like my integration updates. Every time someone logs in I want to see when their last login date changes. Some of those kind of make me go like doe. That should just be a login event. But there are super like valid things like life cycle changes that's like really one of the big ones. Lifecycle and deal stage changes that I want to build my own custom reporting on that I need to track when they happen. Tracking object changes is super duper simple. You select your property. This is obviously not a very good example. These operators here let you filter down the events. If I only care. Let's do a more real example Maggie. Let's do Deal stage. So if I only care if I want to know any changes then I'm going to select deal changes. No that's any changes. It's going to pop up a little note here that lets you know like hey, this property has a lot of data in it. You have limits these towards your event limits. So keep that in mind when you're tracking stuff. If I select is any of I can filter down this data to only select certain changes that I care about. So let's say I only care when it changes to closed one or two closed lost. So that's how that filtering works. Filtering it really helps you keep under your data limits. So definitely recommend doing it if you don't care about truly every single change and then you save it. So that's tracking object changes. And lastly is a spreadsheet import. What is spreadsheet Import good for spreadsheet. Import is good for in real life things. So we do see folks use this as sort of like a hack around the marketing events object. Yeah, that's another really confusing thing. The marketing events tool is not an event from a data perspective, it's an object. So if you don't like how the marketing events object works. We do see sometimes folks use custom events for that. I will say these are events so they are immutable. You cannot change them once they get done. And that's part of the reason why I would recommend trying to use the marketing events object first and then giving them feedback if you don't like it before you use this. But it is useful for that. I actually find my favorite use case for import is going to be like backfills. So I think about my. I work, I used to work at a startup and we would like pay for tools for like six months. Like I remember we paid for Pendo to track our product usage for like six months. And then someone was like, no, more Pendo. And so I downloaded all of the Pendo data and it was living in spreadsheets on my desktop. This is the perfect way to get that kind of data integrated in your CRM. So if it's activity data that's coming from other tools and I want to backfill all that old data imports, a really great way to do that. It's also really great for sort of like hacking around integrations that again, you don't like the way they look or they work in HubSpot. One of the best examples of this is the Salesforce integration. You can't use Salesforce Activity in Journeys because they send it to objects and Journeys requires events, which is super frustrating. Salesforce has a different data model than HubSpot and they don't really employ events in the same way. So if you upload your Salesforce activities as event data, you then can unlock them in attribution reporting. So it's a nice little hacker on that. It works actually exactly the same as non event import. So it's, it's literally the same thing. So if you're familiar with event import or if you're familiar with Import object import, you're definitely familiar with event import. Oh my God. I'm looking for a file. Let's see. Attended. Okay, here we go. I've got my sample file. So I've got a sample file in here. It's going to come in here and up. Okay. So you link your event to your object and then you can Decide whether in your import file you're sending a event property or an object property. Obviously, I'm not filling these out super well. Timestamp and identifiers are the only required event properties that you have to send timestamp because events all require timestamps and identifiers because that's how we know how to link it to object records. But other than that, it's the same as the import flow that is creating custom events. I'm going to pause for a quick minute and come on back and check in. Signs of Life. How are we doing and feeling?
Doing good. Lots of interest on the sneak peek, of course, but also. That's all right. You might have a lot more interest in your inbox than you thought you were going to get now. Great, great feedback coming through in the chat. Definitely make sure you get an export of that so you can go through it and, you know, dissect it as much as you'd like. You've left lots of time for questions. Is there anything you want to wrap up?
I have more I can demo. So that's just creating a custom event. I will. I'll spend like. Okay, it's 11:40. We want to leave like 15 minutes for questions. Yeah, okay. Yeah, let's. Let's like spend five minutes on like managing and using event data. Does that sound good? Okay, cool. All right, let's go back in. Okay. So that's just creating custom events from a management perspective. You have a lot of different options for you here. On this overview tab, you're going to see all of your events. It's going to tell you what object it's tied to, what properties you have, where it's used in. We've disabled the ability to delete events if they're used places that pattern that is often present in object land. We've moved over here. If you're trying to delete stuff and you see the delete button grayed out, that's why you got to delete your stuff. We're working on adding a tooltip here that explains that because we've gotten some questions. You can see when and who updated it last and when. The last time you saw data was. If you dive into an event, you're going to see this is an old event. Yeah, there we go. You're going to see an overview of who's doing your event and when. This is just like in table view. You can manage columns over here and customize this to your liking. Property info. This is just the schema. This is just the Collection of properties that this sense. Yeah, you can like edit and delete stuff in here if you like. And then we have analyze again because this is not recent. There we go. Okay, this is going to show you spikes and dips in activity. We've got a very not realistic example looking here because I just imported a file every month, but it's going to show you how this event is trending and changing over time. A really cool plug that's also new didn't include in my list. Here is. We've always had the ability to use in Customer Report Builder. Custom event Analyze tabs can now be edited and saved to dashboards, which is a really big win. That's a new feature I should have put in my list. Now back to custom events. Let's chat through really quickly. These tabs at the top, they're pretty much exactly the same as the single view, but it's just across all events. So this is your completions across all of your events. This is your Analyze tab across all of your events, showing you spikes and dips in activity. Last tab we'll talk through is Health. Custom events do have limits. They reset on the 1st of every month. This dashboard is what helps you understand how you're pacing towards these limits. So it can show you, like, how much data you're using. How does this compare to last month? Are you sending more or less? What's your rolling average? It can also tell you which events are driving that spike in uses. If you're like, whoa, we used all our events for the month. Why? It's going to show you which events were causing it. So if I were to click on API events and there was an API spiking, it would pop up over here. So you can interact with this visual down here. Last, we have delivery errors. This is going to be showing you whether your event data is making it to HubSpot. We have delivered with no errors. That means all your data is totally good. Delivered with errors. That means like, your data made it here, but it looks kind of funky and you might want to look at it. That's going to be like, you sent us a property that you didn't tell us you were going to send us. You sent us a property in a different format than you told us. We'll take that data, but it might not work in the way that you want it to in downstream tools. And then failed. The most common reason for failed is that you don't have an identifier. So you send us a piece of data that doesn't have either your customer identifier or an object record id. We unfortunately can't do anything with that. So we do drop down here. You can see your error logs. If it's a fixable error, you'll see an option to fix it in here and you'll see a description and things like that. That's the help tab. Lastly, my last thing I'll cover is tiny plug of use in. We added this in here to make it easier to use events across downstream tools. It can be really hard to figure out how to find your data in different tools. So you can just come to events and let's say I want to create a journey which shows me how many people sign up and then click my free trial. I can hit my use in and it opens my journey for me right away and it pre populates it and it works right? So I'll run this journey. I mean this is, you guys know, not real data. But hit run report and it's gonna go yeah, there it is. So there's my journey. That's way easier than figuring out where your data is in all of the downstream tools. We support that in CJ crb data sets, lists and workflows. We don't have scoring on here just yet, but custom events are also available in scoring. Lastly, this final option that I'll talk through is copied object property super logically. Sometimes a thing happening should update the state of something. So if you want someone signing up to update their, you know, status to customer, you can copy an object prop, an event property to an object property. And this is another one of those handy little things where we actually just pre built the work for you. We toss your event into this trigger and then we open up this side panel where you all you need to do is then select what object property you want us to update. And you can put your event properties in here too. Yeah, so that. How do I do five minutes on the nose? Okay, so that's using. That's using custom events across HubSpot.
The good one too.
Some fun stuff. Yeah and actually using is so slick and fun list added it too. You have use it in list too. So mostly because Andres, the list PM is in my group and I really sold them on it hard. So it's like a really convenient way to select data and like not have to dig through things at, at at all those different downstream tools.
I love it. Maggie, you left us 14 minutes for Q& A. That's perfect. I think, I think we'll get there. We've got 20ish over there right now. So hopefully everybody's gone and upvoted their favorite questions so that we can get the highest rated ones up at the top and get those answered. Whatever we don't get to, I will make sure it gets over to Maggie and there's been some chat about wanting to do 90 minute hug. I don't know, all kinds of stuff going on in the chat. We'll work all that out. But make sure you get over there and get your Q and A updated. I'm going to go and refresh now and make sure I have the highest goodest ones at the top with 10 upvotes. Jason's not sure if we'll cover this today, but would love a quick run through of custom events versus CTAs and when it's best to use each.
Yeah, yeah, me and the CTA's PM, we talk about this a good amount. So I'm assuming you're talking about the visualizer events. The tracking clicks really it's, it is somewhat of a personal preference thing. So like CTA obviously has a ton more infrastructure around. Like here's a button and you can make it look like this and you can add a label if you need that functionality. I would say use CTA's custom events works on any site and any element. So it's not just buttons, it's anything that is clickable on your website that you care about tracking. That's what custom events can be used for on your site. So that is they are super similar there another sneak peek. They're about to get a little bit more similar unfortunately. But it's really like if you care about your button and you want to set it up and rig it up, that CTA is if you just want to track something that happens on your site, whether it's a button or something else that's going to be custom events. I love that.
It's a great way to simplify that. How should we be tagging event attendees in the system to keep track of them properly?
So I'm assuming, Angelica, that you're talking about like IRL attendance, the like. I'm assuming you're using the the tough thing is that in marketing event means two different things. A lot of marketers hear the word event and they think something that attends someone attends in real life or even like a webinar type of thing. Like people view this as an event and when we say custom events, that's not the same use of the word event, which is like no one's no One's using it wrong. It's just there's two different versions of the word. When we talk about event data, that's action data. Right. So that's not just things that people attend. It's like form submissions, email opens, page views. How should you be keeping track of event attendees if you're talking in real life events? I'm going to plug the marketing events object. It is an object that is designed to let you. It's like purpose built for things that people attend webinars or in real life like conferences and things like that. You can use some of custom events to manage that. I don't recommend it because we're not purpose built for it. So there's going to be edge cases you run into that you send me an email and you're like, maggie, I need this. And I'm going to say I'm so sorry but we will not have time to do that. And you should maybe send that to the marketing events object team. So yeah, in terms of in real life event attendees or webinar event attendees, that's marketing events object and that's what I would would plug is the best practice there.
Love it. Trying to understand the difference between custom events and marketing events. I'm using custom coding events. Not sure if I should be using them. There you go.
Answered, answered, answer. Yeah, and if you have more questions about that like shoot me an email, give me a call. I've had to explain this to people internally. So it's not just y' all that are confused. It's literally just two definitions of the word event.
Fair. Totally fair. That's why context is so important. Are custom events useful for ABM strategy? I think you touched on that. Is there a good example of how to implement custom object triggers for ABM strategy?
Yeah. So I would say when you send custom events, if you are exclusively abm, you want to link your event to the to the company object. Or if you have a custom object for an account, that's what, that's where you want to link it to custom events you can build. Or if you tie it to the contact, you can build a report which shows me the companies that they work for. But it's going to be based on primary associated company and it kind of falls apart if your data model includes like one to many. So if someone's going to be like associated with like in the formal association word, multiple companies, you probably want to just send your event right to the company itself. We do sometimes see people like make two separate events, one for the contact and one for the company. If you don't have like a crazy data volume, that's a super successful way of doing it too because it ensures it lives in both places. But yeah, I would say tying it to the company and not the contact is going to be the cleanest way to make sure that your events land on the accounts that you care about and you can build the reporting that you need.
Makes sense. I'm going to skip through Thomas's because it basically goes back to customer marketing. Events are we are all events currently factored into the AI object summaries. I noticed it only tends to use CRM data, maybe the latest call or meeting, but ignores marketing interactions.
That's a really good call out and something that we're working on right now. My team owns the system that holds all event data at HubSpot. So not just custom events but forms, emails. Like anytime there's a verb that's like stored in one system at HubSpot and it does, it does grab some of the data and not all. We are working on resolving that. It should be resolved quite quickly. That is an accurate call out. Yeah.
Makes sense. I'm going to read this, but I think we've answered it, but go through it anyway. We've been using a combination of marketing events to track offline events like conferences and custom events to track specific interactions within those events, such as bad scans or on site demos. While they aren't natively integrated in the way we'd ideally want, we've managed to set up some workarounds to get the data and functionality we need. Do you see any potential limitations with this setup and are there any best practices you recommend when using both marketing and custom events to track offline engagement in HubSpot?
So yeah, let's, let's talk about that one a little bit more. I mean the limitation I call out is that they're never going to be integrated more closely together because they're not the same word event. They're like very different use cases. So they probably won't be like super tightly coupled in a way that you would ideally have if it were baked in. This is a perfect, like this setup works, this setup works and it's solid as long as you're like custom events that you're creating like a badge scan or an on site demo. Like don't. As long as those don't need to be edited, there's really no problem with that setup. But this is the perfect example of sometimes I think people use the combination of marketing Events and custom events to like do workarounds. And I'm like, please send the PM of Marketing Events an email and tell them that you want this. Because actually what that should be like, should be is marketing events should have different types of interactions on the Marketing Events object that you can create. So what this really is is a feature request for the Marketing Events team. I'll tell them about it, but you should too. The best way of getting stuff built in HubSpot is to like annoy a PM about it. Surprise. It like really works. You'd be surprised how often I'll get on a call with someone. I'll be like, you know what, damn it, you're right. And then it's on the roadmap.
So yeah guys, not, not for me from the pm.
There's no problem with that stuff. But it is like not what custom events are for, quote unquote. So I would wreck putting in a feature request to the Marketing Events Object team for sure.
Let's see. Does the visualizer driven website tracking drop events when cookies are declined? I assume yes. Just wanted to verify.
Yeah, so we do like it respects the cookie banner. It actually it's the same exact tracking script as the page view infrastructure. So all the like privacy must dos are abided by with the visualizer as well. Which is part of the reason why like a lot of folks like we could talk about this forever but privacy regulations are shifting quite rapidly. A lot of folks are shifting towards like you'll notice like most sites have logins these days and force you to authenticate. If you have authentication that you have on your site, tracking is a little bit. Is a little bit easier. But yeah, if someone declines cookies we are like legally not allowed to track them and there's like not that much we can do about it.
Yeah, okay. This kind of ties into that I think. Do we need to run our web page via HubSpot to use the visualizer?
No. No. Any website? Yeah.
In workflows, can you reference the entire event into an email? My specific use case example, I need to get specific product information to a deal registration. Can I record that in a custom. Just enter in the email. I could send out.
Q4 of this year. You can use an event property in an email. We have been hunting down the personalization tokens team on this one for my entire tenure at HubSpot and It's finally coming. Q4 of this year. They are working on it as we speak. Super important use case the workaround today if you stamp that value. So the Reason why it's so hard. There's like technical reasons why it's so hard that I don't know that it makes sense to explain with five minutes left. But there is a technical reason why that has taken so long for us to do. The workaround right now is if you stamp the event property that you need onto the object property, then you can grab that and put it in your email.
Makes sense.
Which is part of the reason why we put that copy to object property option in there.
Yeah, we got a couple more simple questions I think we can get through. Will setting up a custom event for objects backfill history, property changes or just from the point of creating the event?
Are you asking about property change events? Wait, where's that question? I'm like Maisha, it's setting a custom event. Oh, for object property. Okay, I'm assuming you're talking about property like tracking property changes on objects. It is unfortunately from the date you create your event on. We actually tried to figure out if we could like grab backfill data, but it doesn't exist. Yeah, yeah. So we like HubSpot isn't storing that like in our systems until you tell us just to wear it. Which is why it's unfortunately as soon as you track it.
What are the limits of custom events by subscription?
So right now custom events are available to the entire enterprise platform. There's two caveats. One, the visualizer which is that WYSIWYG like click here, click there, track a click experience is for marketing Hub Enterprise only reason being the people that don't have technical resources or like don't know how to like write JavaScript themselves oftentimes are marketers. I don't know how to write JavaScript, you know, so marketers, often those non technical users, they get the non technical event creation experience. So that's Marketing Hub Enterprise and then web hooks is Ops Hub Pro also because it's a very operations specific use case. So if you don't have an enterprise subscription and you have Ops and Pro, you can send event data via Webbooks which is like sneaky. So useful. So that's a plug for ops on Pro.
What's the difference between the property change events and just checking the property history?
Yeah, property history is only going to store the most recent 20 changes which depending on the property and again that data is not stored. That data is like, it's like, it's just sort of like floating there. It's like not actually integrated into HubSpot systems in any meaningful way. So a Property history is only going to store the most recent. I think it's like 20 changes, 40 changes, some small number of changes where if your property changes quite often that's like a day and that's useless. And B, these events can be used all across HubSpot. You can use them to segment on, you can use them to automate on and you can use them to report on. So you can build reporting in customer journeys, in crb, when life cycles update, when deal stage changes, that kind of stuff.
I think we can probably squeeze in one more. We'll see. What do you think the best practices for setting up when using API? You mentioned that the API can create the event rules and properties or you can use the ui. Is there a preference?
It's just a preference thing really. That's kind of a boring answer. But yeah, it's just a preference thing. A lot of engineers are like don't make me log into something and they were quite upset that we made them log into HubSpot to create the events. So we made this API so that they could do them themselves without needing to log into HubSpot. It's just a preference thing. If you are what often happens, I would say most often the setup of custom events involves some semi technical or non technical business stakeholder, like an ops person, an admin, maybe a lot of you in this room, a marketer, a customer success person who knows what data they want to track and like what they want it to look like. But they don't write API calls because I don't, you know, like so and so they'll pass it on to a non technical person. So the UI I find is super useful for letting the semi technical or the non technical person set up how the event looks like. And it makes it like impossible for the technical person to like misunderstand what you want because you've told them I want this event and I want these people properties. So that's what the UI is super useful for. It's you as a semi technical or a non technical stakeholder, decide how your data should be structured because you're the one be using it. So yeah, that's my plug for the ui.
I love that Maggie. Thank you. I'm gonna put your LinkedIn in there. I know you said you like email and your calendar. I'm gonna let you share those.
Yeah, hold on, let me. I know we have like two minutes, let me grab my. Oh my God, we have no time. I'm grabbing my meetings link and I'm gonna put it. How Do I put it in the chat? Oh, start typing. Oh, this is into the Q and A. Well, I'm going to toss it in the Q and A if anyone has that. How do I get to the chat? Oh, chat. Sorry, guys, I've never used this platform before. Here's my meeting link. Call me.
We'll forgive you. We'll forgive you. It was a great event.
Yeah. Thank you for joining. I really appreciate your time. Please hit me up on LinkedIn, send me emails, ask me questions. I love hearing all the feedback. So thank y' all for your time.
Thanks, everybody. We'll see you next week with the credits. Bye, everybody. See you on Tuesday. Bye, Kitty. Thanks, Maggie.
Bye, y'. All.
Thanks, Janine.
Accidental or all in by choice? Administrative fixing fields and hacking time.
Making.
Magic with no headline power drop gold Tiana brings fire in a crew that's here to lift you higher we swap the whims and share the pain no solo in this game it's the admin hug where legends walk in from chaos to clarity that's how we win.
Quick.
Fix queens work around kings Custom coded everything Tabs open, coffee strong you've been solving all along We've got the know how, we've got the map Even HubSpot Prada pulls up to chat you're not just heard you helped shape the tools Admins rewriting all the rules. Thanks for building with the hug. Thanks for powering the hug. The hinds of the campaign push nudge, nudge. There's a whole crew home inside it Admins together powered by insight it.










