We want to push data from Segment to Hubspot. In Segment, we have some important events like agent dashboard visits, campaign created, campaign started, billable, etc. that I want to track in Hubspot. All these events are recurring events and I want to track them every time it occurs. Should I create custom properties for each or pass all these events through timeline events?
@LAryan Great question!
I would recommend setting these as custom properties because the data points you defined sound like very actionable behaviors. Setting these as custom properties allows you to use them in workflows to trigger emails, notifications, etc.
Timeline events can theoretically do the same thing, but you will have a lot more flexibility with pulling the events at a certain point in time as a custom property.
I’m really stuck on the mapping part right now. I only have a handful of events, but they contain around 70 to 100 unique properties in total. Manually building out all those properties in HubSpot and linking them up inside Segment is a massive, tedious bottleneck.
Welcome to the Community @prateek.s. I agree that manually creating and mapping 70–100 properties is not a sustainable setup. I think the important distinction for your situation compared to the original post is that you don’t need to turn every attribute included in your Segment events into a HubSpot CRM property.
I’d recommend identifying the relatively small number of fields that need to be retained on the contact/company/deal record because they drive an action in HubSpot. For example:
Latest relevant action or product interaction
Date of the latest event
Product, plan, feature, or category involved
Lifecycle or qualification signal
Usage count, score, or threshold flag
Any field needed for enrollment, branching, personalization, lists, reporting, or rep notification
Those can be created as a focused set of HubSpot properties and updated by the Segment integration. Everything else can remain as event-level context on the custom event/timeline event rather than becoming a permanent CRM field.
In other words: use events for the full behavioral history, but use properties for the “current state” or the few values HubSpot needs to act on repeatedly. That keeps the schema manageable and prevents the CRM from becoming cluttered with dozens of low-value, one-off fields.
If there is truly a requirement to map a large schema, the better technical route is usually to create the CRM properties programmatically through HubSpot’s Properties API rather than manually in the UI. But I would do a schema-rationalization exercise first, because automating the creation of 100 properties can still create a long-term governance problem.