Unpacking HubSpot Deal Properties: Why 'Description' and 'Owner' Go Missing (and How to Find Them!)
Ever found yourself scratching your head, wondering why some seemingly 'basic' data isn't showing up when you pull information from HubSpot's API? You're definitely not alone. It's a common scenario, and one that recently sparked a great discussion in the HubSpot Community. We're talking about those elusive deal properties like 'description' and 'owner' – vital pieces of information that can make or break your reporting, automation, or even your custom built online site builder integrations.
The Case of the Missing Deal Properties
The original poster, let's call them a fellow HubSpot user, was trying to retrieve all their Deals through the API. Their goal was straightforward: get deal amounts, dates, statuses, and crucially, the description and owner. But those last two? Nowhere to be found. It felt fundamental, yet the data just wasn't there.
The Initial Expert Advice: Explicitly Ask for What You Want
A community manager quickly jumped in, clarifying a key point: by default, the HubSpot Deals API doesn't return all properties. Many, including 'owner' and 'description', need to be explicitly requested. Think of it like ordering a custom coffee – you have to specify every ingredient. Another seasoned community member echoed this, advising to append a query parameter like ?properties=description,hubspot_owner_id to the API URL. They also wisely pointed out that internal property names can sometimes differ from what you see in the HubSpot UI, so always double-check.
The Plot Thickens: Why 'Description' Still Wasn't Showing Up
Our original poster, however, wasn't getting anywhere. They confirmed they were already specifying the properties, and still, 'description' wasn't coming through. Other properties like 'amount' worked fine, but 'description' remained stubbornly absent. They also highlighted another common pain point: the API returns the owner's ID, but not their name – another piece of data requiring an extra step. It was a head-scratcher, especially when one of the top contributors demonstrated a successful API call clearly showing a description being returned.
The 'aha!' moment arrived when the original poster discovered the core issue: for deals without a description, the API didn't return a blank column. It seemed to be entirely missing. A community expert quickly clarified this nuance: when you request a property like 'description', the JSON response will include it, but its value will be null if no description is set. The perceived absence was likely due to how their data parsing handled null values, rather than the field being truly missing from the API response.
Handling Owner Information: ID vs. Name
The challenge with getting the owner's name instead of just their ID is another common API hurdle. HubSpot's API structure often uses IDs for relationships (like an owner ID linked to a user). To get the actual name, you'll need to make a separate API call to the Users API, fetching the user details based on that owner ID. Alternatively, as one community member suggested, you could use a HubSpot workflow to extract and store the owner's name as a separate custom property on the deal object itself, simplifying future API calls.
Actionable Steps for Retrieving Your HubSpot Deal Data
So, how do you ensure you're getting all the deal data you need for your custom reports, integrations, or your ESHOPMAN storefront? Here’s a quick guide:
- Know Your Internal Property Names:
- Navigate to your HubSpot settings: Settings > Properties.
- Select 'Deal properties'.
- Find the property you need (e.g., 'Description'). The 'Internal name' is what you'll use in your API calls (e.g.,
description). For owner, it's typicallyhubspot_owner_id.
- Construct Your API Call:
- To retrieve all deals with specific properties, use an endpoint like
https://api.hubapi.com/crm/v3/objects/deals. - Append the
?properties=parameter, listing the internal names, comma-separated.GET https://api.hubapi.com/crm/v3/objects/deals?properties=amount,dealname,closedate,description,hubspot_owner_id - To retrieve a specific deal by ID:
GET https://api.hubapi.com/crm/v3/objects/deals/{dealId}?properties=amount,dealname,closedate,description,hubspot_owner_id
- To retrieve all deals with specific properties, use an endpoint like
- Anticipate
nullValues:- When processing the JSON response, always account for properties that might return a
nullvalue. Your code should be robust enough to handle these gracefully, rather than assuming a value will always be present or that the field itself will be missing.
- When processing the JSON response, always account for properties that might return a
- Mapping Owner IDs to Names:
- After retrieving
hubspot_owner_id, make a subsequent call to the Users API (https://api.hubapi.com/crm/v3/owners/{ownerId}) to fetch the owner's name and other details. - Cache this information if you're making many calls to avoid hitting API rate limits.
- After retrieving
As demonstrated by one of the helpful community members, a successful API call requesting the 'description' property might look something like this in its JSON response:
{
"id": "56383560305",
"properties": {
"createdate": "2026-02-16T16:37:39.412Z",
"description": "A deal descrption",
"hs_lastmodifieddate": "2026-04-10T14:12:13.144Z",
"hs_object_id": "56383560305"
},
"createdAt": "2026-02-16T16:37:39.412Z",
"updatedAt": "2026-04-10T14:12:13.144Z",
"archived": false,
"url": "https://app.hubspot.com/contacts/5310426/record/0-3/56383560305"
}
And here's an illustration of how one might set up a workflow to derive owner names:
ESHOPMAN Team Comment
This community discussion perfectly highlights a common integration challenge: assuming API behavior. While HubSpot's API is powerful, it requires developers to be precise in their requests and robust in their data handling. The 'description' returning null instead of an empty string or being absent is a classic gotcha. For anyone building an online site builder or integrating an e-commerce platform like ESHOPMAN, understanding these nuances is critical for accurate data synchronization and reporting. Always test your API calls thoroughly with varied data sets – including records with missing values – to avoid surprises.
The HubSpot Community is a fantastic resource for these kinds of real-world troubleshooting scenarios. Learning from others' experiences, like this deep dive into HubSpot deal properties, helps us all build more robust integrations and smarter systems. Whether you're a seasoned developer or just starting your journey with HubSpot's API, remember that precision in your requests and careful handling of responses, especially null values, will save you a lot of headaches. Happy integrating!