The JSON result appears correctly formed as per the documentation. However, the custom card always displays "Invalid property" despite setting "completion" to a valid option value ("complete").
STATUS property always appears as Invalid property
SOLVE
@dennisedson and @amit-hs Yup, this is the confusing part of the docs and how the HubSpot team built out the APIs in question.
The docs you're pointing to are the API to manage the properties on the OAuth App itself... i.e. you can programmatically manage your OAuth App, CRM Extensions, Timeline Events, etc, all via API requests should you so desire.
However, that's not commonly the case. The object definition you're looking at actually correspond with the GUI inside the Developer portal where you can (and should) define your CRM Extension and its properties.
Once that's configured in the UI, then you can pass in the value you want the frontend (the CRM Card) to display... so your data in response to the GET request from HS frontend should be something like:
{
"results": [
{
"objectId": "5233656208",
"title": "A Title",
"link": "https://app.hubspot.com/contacts/<app_id>/deal/<deal_id>",
"completion": "complete",
}
]
"actions": [...],
etc.
}
The other thing that's confusing about the docs/implementation is that the platform provides two ways to pass in/reference properties. If you have predefined the properties (either via the GUI like I show above, or via the API) then you can just reference the property by name inside the object (i.e. exactly what you're doing inside that object with `completion: 'complete'`. The platform also lets you define properties on the fly, but only a subset of property types. That's what the `properties` array is intended to do... allows you to pass in ad hoc properties for display. That's what they mean by
"Properties may also be specified on a per-object basis. This is handy for data points unique to a specific object. These properties may be defined in the response to the data fetch request, in thepropertieslist on a specific Sales Object."
STATUS property always appears as Invalid property
SOLVE
@dennisedson and @amit-hs Yup, this is the confusing part of the docs and how the HubSpot team built out the APIs in question.
The docs you're pointing to are the API to manage the properties on the OAuth App itself... i.e. you can programmatically manage your OAuth App, CRM Extensions, Timeline Events, etc, all via API requests should you so desire.
However, that's not commonly the case. The object definition you're looking at actually correspond with the GUI inside the Developer portal where you can (and should) define your CRM Extension and its properties.
Once that's configured in the UI, then you can pass in the value you want the frontend (the CRM Card) to display... so your data in response to the GET request from HS frontend should be something like:
{
"results": [
{
"objectId": "5233656208",
"title": "A Title",
"link": "https://app.hubspot.com/contacts/<app_id>/deal/<deal_id>",
"completion": "complete",
}
]
"actions": [...],
etc.
}
The other thing that's confusing about the docs/implementation is that the platform provides two ways to pass in/reference properties. If you have predefined the properties (either via the GUI like I show above, or via the API) then you can just reference the property by name inside the object (i.e. exactly what you're doing inside that object with `completion: 'complete'`. The platform also lets you define properties on the fly, but only a subset of property types. That's what the `properties` array is intended to do... allows you to pass in ad hoc properties for display. That's what they mean by
"Properties may also be specified on a per-object basis. This is handy for data points unique to a specific object. These properties may be defined in the response to the data fetch request, in thepropertieslist on a specific Sales Object."
Join us on March 27th at 12 PM for the Digital Essentials Lab, an interactive session designed to redefine your digital strategy!
Engage with expert Jourdan Guyton to gain actionable insights, participate in live Q&A, and learn strategies to boost your business success. Don't miss this opportunity to connect and grow—reserve your spot today!