Native CRM Filter Support Matrix

This shows the support for native filters across different CRM platforms, with exceptions noted below.

Filter TypeSalesforceHubspotZoho CRMFreshworksZendesk CRM
crm_accounts_created_afterAAAAA
crm_accounts_created_beforeAAAAA
crm_accounts_updated_afterAAAAA
crm_accounts_updated_beforeAAAAA
crm_accounts_owner_id[]AAAAA
crm_accounts_created_by_id[]AAAAA
crm_accounts_contact_id[]NAANANANA
crm_contacts_created_afterAAAAA
crm_contacts_created_beforeAAAAA
crm_contacts_updated_afterAAAAA
crm_contacts_updated_beforeAAAAA
crm_contacts_owner_id[]AAAAA
crm_contacts_created_by_id[]AAAAA
crm_contacts_account_id[]AAAANA
crm_contacts_email[]AAAAA
crm_deals_created_afterAAAAA
crm_deals_created_beforeAAAAA
crm_deals_updated_afterAAAAA
crm_deals_updated_beforeAAAAA
crm_deals_stage_id[]AAAAA
crm_deals_pipeline_id[]NAANAANA
crm_deals_statusAAANANA
crm_deals_account_id[]AAAANA
crm_deals_contact_id[]AAAAA
crm_deals_owner_id[]AAAAA
crm_deals_created_by_id[]AAAAA
crm_deals_amount_greater_thanAAANAA
crm_deals_amount_less_thanAAANAA
crm_leads_created_afterANAANAA
crm_leads_created_beforeANAANAA
crm_leads_updated_afterANAANAA
crm_leads_updated_beforeANAANAA
crm_leads_owner_id[]ANAANAA
crm_leads_created_by_id[]ANAANAA
crm_leads_email[]ANAANAA
crm_leads_converted_afterANANANANA
crm_leads_converted_beforeANANANANA
crm_engagements_engagement_typeAANANAA
crm_engagements_created_afterAAANAA
crm_engagements_created_beforeAAANAA
crm_engagements_updated_afterAAANAA
crm_engagements_updated_beforeAAANAA
crm_engagements_account_id[]AAANAA
crm_engagements_contact_id[]AAANAA
crm_engagements_deal_id[]AAANAA
crm_engagements_lead_id[]ANAANAA
crm_engagements_directionAAANANA
crm_engagements_statusAANANANA

Remarks

Filters are organized into logical categories that can be combined to narrow down your search results. Here are the common types of filters:

  • Date & Amount Filters - created_after, updated_before, amount_less_than, etc.

  • Owner - owner_id[]

  • Created By - created_by_id[]

  • Contact - contact_id[]

  • Account - account_id[]

  • Email - email[]

  • Deal Stage - stage_id[]

  • Pipeline - pipeline_id[]

  • Deal - deal_id[]

  • Status - status

  • Direction - direction

Different CRMs handle combinations of these filter types differently.

Salesforce

  • A maximum of 30 filter values is allowed.
  • For Date and Amount filters, the filters are applied in an "AND" operation. That means the record must match all those conditions. For example, (created_after = XYZ AND updated_before = ABC)
  • If you use filters from different groups — like one for date and another for owner — Salesforce combines them using OR. So a record will be shown if it matches any of the filter groups. For example, (created_after = XYZ AND updated_before = ABC) OR (owner_id in [...])
  • Pass Through Filters are not supported.

Zoho CRM

  • Filtering by crm_deals_stage_id uses the Deal Stage Name.
  • For Date and Amount filters, the filters are applied in an "AND" operation. That means the record must match all those conditions. For example, (created_after = XYZ AND updated_before = ABC)
  • If you use filters from different groups — like one for date and another for owner — Zoho CRM combines them using OR. So a record will be shown if it matches any of the filter groups. For example, (created_after = XYZ AND updated_before = ABC) OR (owner_id in [...])
  • Pass Through Filters:
    • Pass Key value pairs, inside the passThroughRequest.query. Those will be passed to the following native endpoint.
    • API reference: Zoho CRM Search API

HubSpot

  • The total number of matching records must be under 10,000. If your filters return more than that, you’ll get an error with status code 400.

  • A filter query can use only up to 5 groups in HubSpot. When more than five groups are combined, HubSpot throws an error.

  • Different groups are combined using OR, meaning a record only needs to match one group. For example,
    (created_after AND created_before AND amount filters) OR (owner_id in [...]) OR (contact_id in [...])

  • Engagement filters status and direction are further constrained by the engagement_type:

Engagement Typestatusdirection
CALLAA
MEETINGANA
EMAILAA
COMMUNICATIONNANA
NOTENANA
TASKANA
  • Pass Through Filters:
    • Whatever value you give in passThroughRequest.body, that value will be assigned against "filterGroups" in the requestBody for the Native API.
    • For more details, refer to HubSpot’s search filter docs:
      HubSpot CRM Search API Guide

Freshworks

  • When multiple filter groups are combined, the filters are applied in an "AND" operation. This means a record will only show up if it matches every single filter you’ve used. For example, (created_after = XYZ AND updated_before = ABC) AND (owner_id in [...]) AND (contact_id in [...])
  • Pass Through Filters:
    • Whatever value you give in passThroughRequest.body, that value will be assigned against "filter_rule" in the requestBody for the Native API.
    • For more details, refer to Freshworks filtered_search api docs:
      Freshworks Search API Guide

Zendesk CRM

  • When multiple filter groups are combined, the filters are applied in an "AND" operation. This means a record will only show up if it matches every single filter you’ve used. For example, (created_after = XYZ AND updated_before = ABC) AND (owner_id in [...]) AND (contact_id in [...])
  • Pass Through Filters:
    • Whatever value you give in passThroughRequest.body, that value will be assigned against "query" in the requestBody for the Native API.
    • For more details, refer to Zendesk search api docs:
      Zendesk CRM Search Query Language