Filter contacts by call outcome in list builder — is this possible on Pro?

Hey HubSpot community,

I’m trying to build a contact list that excludes people based on their logged call outcomes (e.g. exclude anyone ever marked “Not Interested”) so I can enroll the remaining contacts in a sequence.

The problem: Call Outcome is an engagement property, not a contact property, so it doesn’t appear as a filter option in the list builder.

What I’ve tried:

  • Created custom boolean contact properties (e.g. “Ever: Not Interested”) for each of my 23 call outcomes
  • Wrote a script to backfill existing contacts — this works great
  • Tried to create a workflow to automatically set these properties when a call is logged — but on Pro, workflows don’t support actions that set property values based on call outcomes

My questions:

  1. Is there a native HubSpot way to filter contacts by call outcome in the list builder that I’m missing?
  2. On Enterprise, can a workflow trigger on a completed call and automatically set a contact property based on the call outcome? Wanting to confirm before upgrading.
  3. Is there any other workaround on Pro that keeps this updated in real time?

Thanks in advance!

Hi @SPG_Chris,

The problem: Call Outcome is an engagement property, not a contact property, so it doesn’t appear as a filter option in the list builder.

It actually does:

Create a contact based segment, then use the dropdown at the top of the filter options to switch to calls and filter.

Best regards!

Hi Chris,

I can confirm that with an Enterprise package, you can create a workflow trigger based on Call outcomes and automate Sequence enrollment. I have created several for our company as well! If you decide to upgrade to Enterprise, you can even go one step further and skip the contact field change you are doing now to identify them, and instead just enroll them straight into the sequence from the workflow itself using the list as the identifier instead of having to update another field.

For the segmentation based on outcome - are you saying that within the List builder (segments) it does not have an option for you to also filter by Engagement activity? Even with a Pro subscription, I do believe standard activity object filtering should be available to you! Documentation suggests the only filters limited within Segments based on subscription package are “Custom Events” filters, meaning actions from your website, webhooks, API submissions, etc, but the call activity should definitely be filterable within a Segment but please let me know if you are not seeing that call activity as a filter option like in my screenshots.

How I would approach your need:

I would create an Active Contact based Segment with a Call Outcome filter applied. (see screenshot) then from within that list, you can bulk select up to 50 contacts at a time and enroll them into the necessary Sequence. Lastly, although you cannot automate the actual sequence enrollment with a Pro subscription, you can workflow notifications, so I would add in one more step of building a quick Contact based workflow that triggers off Segment Membership and sends a notification with each new addition. I’d ensure re-enrollment was turned off to avoid double hitting the same contacts, and when you turn on select “Only enroll contacts who meet the criteria after the workflow is turned on” to avoid getting a ton of notifications at once.

For truly real time enrollment and sequence automation, I believe you would need to upgrade to Enterprise to accomplish that but you can get close with Pro!

Let me know if that helps or If I’m misunderstanding your need!

Hey @SPG_Chris,

Call Outcome is an activity (engagement) property, so it isn’t available as a contact filter in lists.

On Pro: Your custom property + backfill approach is the right workaround, but keeping it real-time requires a custom integration/API.

On Enterprise: Even though workflows can enroll based on call activity, they still can’t dynamically map the specific call outcome into a contact property natively.

So unless you use custom code or an external sync, there’s no fully native real-time solution today as i have checked. Your current approach is the most scalable. Still follow the steps shared by Karsten.

This post has been modified by a Community moderator. Please note - this post was drafted with the assistance of AI.

@Alex_Boissonneault friendly reminder (“you’re not missing anything”) that it is against the community guidelines to use AI for contributions and not add a disclaimer.

It’s also not true that this isn’t possible natively - see my earlier reply with a screenshot. Please don’t share misinformation.

Thanks for your help everyone. I missed a key detail. I imported a lot of call activity from Apollo into HubSpot. In HubSpot they appear as call records but the Call Outcome didn’t write over.

Because of that, I manually updated all of the important call outcomes. That’s what I’m trying to filter by. The custom boolean search that I created seems to be able to find those call outcomes but If i use the standard Call Outcome field it doesn’t see them.

However, it looks like all calls now are recognized since I’m making them in HubSpot (using a 3rd party dialer called Trellus).

Is there a way I can make it so the imported call activity shows up on Call Outcomes? Or are those imported entries just going to have to live in those custom boolean search objects that I made?

Hey @SPG_Chris,

Thanks for following up here with that additional context. Re-tagging @karstenkoehler and @lnorden for visibilty!

Shane, Senior Community Moderator

Thanks for the additional info @SPG_Chris , and the Tag @STierney !

That does change things just a bit. So just to confirm, all the calls you are trying to find were created with an Import you completed?

If so, I would apply a “Record Source” filter of “Import” with a Create Date filter for the import date, from the Call Object Index Page, that should find all those calls for you.

Once they are found, you should be able to bulk update the Call outcome field from that same page for all these calls.

Hope that helps! If that is not what you’re looking for let me know, happy to dig further!

@SPG_Chris on the call index page (Menu > CRM > Calls), you can filter for calls by import like any other object:

Record source detail 1 should contain the import name. If you’re not sure what the exact import name was, adjust your index page view columns to also show “Record source” and “Record source detail 1”, find any call you know came from that import, copy the value, then set the filtered view filters.

Once you have this information, you can “process” calls like any other object in HubSpot.

In other words, there really shouldn’t be anything stopping you from:

  • Finding those call records
  • Finding contacts associated to those call records
  • Bulk editing them to your liking

Lastly, if for some reason you want to revert the call outcomes to an earlier value on each call, you could even export the property history, then re-import a previous call outcome - in the call properties section:

Let me know if you have any follow-up questions.

Hey @SPG_Chris , I think you’ve built a lot of workaround for something HubSpot can now handle on Pro. Call outcomes, including custom ones, can be used directly in active contact lists, so you don’t need 23 separate contact properties. What I’d rather do is build my sequence list, then exclude anyone with a logged call outcome of “Not Interested.”

Yes, on Pro plans this is usually possible—most list builders let you filter contacts by call outcomes (like answered, no answer, voicemail, etc.). If you’re not seeing it, it may require proper tagging or enabling specific filters in your CRM settings.