Crm extensions - how to hide a blank card?


one of the things i’m running into with the crm extensions is that when there is no data for a particular entry, i’m still seeing a card that’s just blank.

for instance, i may have data to add to SOME deals from my crm extension, but not ALL deals, how do i have hubspot hide my crm extension card when there is no data at all? is there a response which will cause it to be hidden?

i’m not seeing this anywhere in the documentation.


@cre You are a little ahead of me on this. I haven’t had time to sit down and build one out and didn’t get any sort of early access. It’s very much on my to do list to accomplish but that is why I haven’t been able to respond to your posts.


No worries… the API is pretty sweet. Definitely worth playing with.


@pmanca – have u had a chance to play with this yet? maybe u can ask one of the engineers? seems like there’s not a clean or easy way to either hide the card “holder” or even just show a custom message in place of the cards.



cards don’t have a zero-state yet, so you can’t hide or modify the card when there are no objects to display

It is something that we are working on at the moment.


ok cool thx. would be nice even if we can just show a comment. or even collapse the card holder.


so when we are designing our apps, the problem becomes some features of the app may be needed by certain users, others may not. when we create the object types in the app, all will show up, whether there is data or not. so if we have, say 3 potential object types that may apply to a deal, then all will show up regardless.

i know you can move them around (ie - move the unused ones to the bottom) but that only works if it’s the same one each time.

so along these lines, what would be the correct “empty” response so we don’t see the error:

Sorry, but there's been an error loading the extension. Please try again or contact Support.

is there a way to just get rid of this?

something like this maybe?

{ “results”: [ { } ] }


@pmanca – okay, so we are finding this to be a significant limitation. as we develop our app to involve more and more tightly integrated features using hubspot as a platform, we are finding that the only way to accomplish this is going to be to have a separate “app” for each “feature”.

for instance, if you have one user that wants to have “widgets” attached to deals and another that does not want that feature, there’s no real way for us to turn the feature on and off for that user. so if our app has 10 different features (think card containers) then that really means a separate app for each one so we can control the visibility of such.

i’m not sure what complications are added because of this either. it seems like there may be some unintended consequences related to this somewhere along the lines. also, as the functionality continues to expand, it seems like this could get unwieldy very fast.

maybe you guys have a best practice way of handling this instead?


Can send the empty results array to just show the empty card?

There isn’t a real way to set a zero state or some custom message on an otherwise empty card.

As for the multiple apps, can you expand upon the use case a bit more. The cards are intended to be somewhat simple, showing a few details for some related objects, and anything complicated would be done in the modal iframe instead of directly from the cards. If you’re trying to show complex relationships with 10+ objects it might be better just have a button for show the iframe instead of a bunch of cards depending on what exactly you’re trying to show.


yes i hear you, but here’s an example.

let’s say you have an app that has multiple features that users can turn on and off. or that some users employ but others do not. assume one is to show some data from google analytics in a card, the other is to show data from mailchimp. but all users don’t need this data, and some users don’t need either. but b/c i have to setup a structured data “holder” as a hubspot crm extension object, i have to create two “card carriers” to hold these cards.

now, true i could just add a button but the whole point here is to not have the user need to add an extra interaction. i mean if we wanted to go that route, we would use the entire crm extension to do nothing other than just add a button to open a modal and do everything in there.

so then what happens when you have not just two “types” but lots of them? it eats up a ton of real estate, or requires the user to move the unused card carriers to the bottom to get out of the way.

so, in that case, a plausible workaround is to create one app called “APPNAME - ANALYTICS” and another called “APPNAME - MAILCHIMP” and so forth. so for every feature, it’s a new app and subscription. but that gets really annoying and complicated to manage on your end too.

so i don’t think its about showing 10+ objects, it’s about having 10+ different object types, where at any time only a handful of users may use 1-2 different object types.


I passed this along to our CRM engineering team internally. Thanks for expanding upon the use case. It is good to get feedback as we continually build out this new feature.


what is the status of this? seems like it would be quite helpful.


@pmanca -- bump this... any update here?


@cre did you find a solution?


Nope. I was hoping to hear back but nothing yet.


Playing Devils advocate here :wink:

Is that not consistent with the rest of the UI though?
When there are no Deals to show under an account there is still the card frame and it says "No deals".

If the frame was hidden that would be inconsistent with the rest of the GUI and cause users to question whether an integration is active / working.

I have some similar cases where there is no data to display (but in my case I still have an action button at the bottom)