Home Action Reference Read and Search CRM Records

Read and Search CRM Records

Last updated on Jun 03, 2026

Read and Search CRM Records

Pull contact, company, lead, and deal data from HubSpot, Pipedrive, Zoho CRM, LeadConnector, Instantly, and Reply.io without writing back to any system.

Before you begin

Connect each integration before running these actions:

  • HubSpot: Go to Settings > Integrations > HubSpot and paste your Private App access token. The token needs CRM scopes for contacts, companies, deals, and associations.
  • Pipedrive: Go to Settings > Integrations > Pipedrive and paste your API key. Find it in Pipedrive under Personal preferences > API.
  • Zoho CRM: Go to Settings > Integrations > Zoho CRM and complete the OAuth connection. Zoho uses OAuth, not a static API key.
  • LeadConnector: Go to Settings > Integrations > LeadConnector and paste your API key.
  • Instantly: Go to Settings > Integrations > Instantly and paste your Instantly API key from your Instantly account settings.
  • Reply.io: Go to Settings > Integrations > Reply.io and paste your API key from your Reply.io account settings.

All actions in this article cost 0 credits per row.


Search Contacts (HubSpot)

Filter your HubSpot contacts by any contact property using a comparison operator.

Integration HubSpot
Credits 0 per row
Returns Multiple results
Inputs:
  • Filter Property Name (Required): Internal HubSpot property name, e.g., email, jobtitle, lifecyclestage
  • Filter Operator (Required): EQ, NEQ, LT, LTE, GT, GTE, BETWEEN, IN, NOT_IN, HAS_PROPERTY, NOT_HAS_PROPERTY, CONTAINS_TOKEN, NOT_CONTAINS_TOKEN. Default: EQ
  • Filter Value (Required): Value to compare against
  • Filter High Value (Required): Upper bound when operator is BETWEEN
  • Query String (Required): Free-text search across properties
  • Sort Property Name (Required): Property name to sort results by
  • Sort Direction (Required): ASCENDING or DESCENDING
  • Limit (Required): Records per page. Default: 10
  • After Cursor (Required): Pagination token from previous run

Outputs: id, email, firstname, lastname, phone, jobtitle, company, lifecyclestage, hubspot_owner_id, createdAt, updatedAt

Use case:

  • Agency: Pull all contacts with lifecyclestage equal to customer from a client's HubSpot to build a reference list before a cross-sell campaign.

Inputs:

  • Contact ID (Required): HubSpot internal contact ID

Outputs: id, firstname / lastname, email, phone / mobilephone, jobtitle, company, lifecyclestage, city / state / zip / country, website, annualrevenue, numberofemployees, archived, created_at / updated_at

Use case:

  • Agency: Fetch a contact record after a form fill to verify all fields are populated before syncing to an outreach tool.

Inputs:

  • Company ID (Required): Unique HubSpot company ID

Outputs: company_id, name, domain, hs_object_id, createdate, hs_lastmodifieddate, url, archived, created_at / updated_at

Use case:

  • Agency: Pull company domain and name to cross-reference against a prospect list before uploading contacts to a sequence.

Inputs:

  • Limit (Required): Records per page. Default: 10
  • After (Required): Cursor for next page
  • Name (Required): Filter by company name
  • Domain (Required): Filter by company domain
  • Website (Required): Filter by company website
  • Phone (Required): Filter by phone number
  • Industry (Required): Filter by industry
  • City (Required): Filter by city
  • State (Required): Filter by state
  • Country (Required): Filter by country
  • Description (Required): Filter by company description

Outputs: company_id, company_name, company_domain, industry, created_date / created_at, next_page_cursor

Use case:

  • Agency: Audit all companies in a client's HubSpot within a specific industry to find accounts with no recent activity.

Inputs:

  • Limit (Required): Records per page. Default: 10
  • After Cursor (Required): Pagination token from previous run
  • Include Archived (Required): Set to true to include archived leads. Default: false
  • Properties (Required): Comma-separated list of HubSpot properties to return
  • Associations (Required): Comma-separated list of object types to return associated IDs for
  • Properties with History (Required): Properties to return along with their full value history

Outputs: lead_ids, lead_created_at, lead_updated_at, lead_archived, lead_archived_at, lead_properties, lead_associations, lead_properties_with_history, paging_next_after, paging_next_link

Use case:

  • Agency: Pull all active leads for a client and compare against the leads created this week to calculate net-new lead volume.

Inputs:

  • Search Query (Required): Free-text string. Up to 3000 characters
  • Limit (Required): Records per page. Default: 100, max: 200

Outputs: deal_id, dealname, amount, dealstage, pipeline, closedate, dealtype, description, hubspot_owner_id, total, created_at / updated_at, next_after

Use case:

  • Agency: Search for deals tied to a specific company name to build a quick pipeline overview for a client review.

Inputs:

  • Object ID (Required): The ID of the record whose associations to look up
  • Association Type (Required): The relationship to traverse. Common types: Contact to Company (1), Company to Contact (2), Deal to Contact (3), Contact to Deal (4), Deal to Company (5), Company to Deal (6), Contact to Engagement (9), Contact to Ticket (15), Ticket to Contact (16), Deal to Line Item (19). Full list includes 24 types.
  • Limit (Required): Default: 100
  • Offset (Required): Pagination offset

Outputs: associated_id, has_more, next_offset

Use case:

  • Agency: For each contact in a client's CRM, retrieve their associated company IDs to verify that company relationships are properly linked rather than just filled in as text.

Inputs:

  • Person ID (Required): Numeric Pipedrive person ID

Outputs: id, name / first_name / last_name, primary_email, organization_name, org_id / company_id, owner_name, last_activity_date, image_url, created_at / updated_at

Use case:

  • Agency: Look up a person record before updating it to confirm you have the right record and its current owner.

Inputs:

  • Limit (Required): Max: 500. Default: 100
  • Cursor (Required): Pagination token for next page

Outputs: field_name, field_code, field_type, is_custom_field, show_in_add_deal_dialog

Use case:

  • Agency: Audit a client's Pipedrive setup to retrieve all field codes before building a data migration or import template.

Inputs:

  • Person ID (Required): Numeric Pipedrive person ID
  • Limit (Required): Max: 500. Default: 100
  • Cursor (Required): Pagination token for next page

Outputs: id, title, value / currency, status, stage_id / pipeline_id, owner_id, add_time / update_time, probability, won_time / lost_time, lost_reason, acv / arr / mrr, is_archived, next_cursor

Use case:

  • Agency: For each contact on a client's outreach list, check existing deal history before pitching to avoid interrupting an active negotiation.

Inputs:

  • Search Term (Required): Min 2 characters
  • Fields to Search (Required): Comma-separated: custom_fields, notes, title. Searches all by default
  • Exact Match (Required): true or false
  • Person ID (Required): Filter by associated person
  • Organization ID (Required): Filter by associated organization
  • Status (Required): open, won, or lost
  • Include Fields (Required): Additional fields to include, e.g., deal.cc_email
  • Limit (Required): Max: 500. Default: 100
  • Cursor (Required): Pagination token

Outputs: id, title, value / currency, status, result_score, stage_id / stage_name, pipeline_id, person_id / person_name, organization_id / organization_name / organization_address, owner_id, is_archived

Use case:

  • Agency: Search all won deals for a client vertical by keyword to assemble a case study reference list.

Inputs:

  • Organization ID (Required): Numeric Pipedrive organization ID
  • Include Fields (Required): Additional fields to return. Default: open_deals_count

Outputs: id / name, address, annual_revenue, employee_count, industry, linkedin, website, open_deals_count, owner_id, visible_to, add_time / update_time, is_deleted, custom_fields

Use case:

  • Agency: Pull open_deals_count for all accounts on a client's target list to prioritize accounts already in pipeline.

Inputs:

  • Lead ID (Required): Unique 19-digit Zoho Record ID

Outputs: lead_id, full_name / first_name / last_name, email / secondary_email, phone / mobile, company / designation, website, lead_source, lead_status, industry, no_of_employees / annual_revenue, city / state / zip_code / country, email_opt_out, is_converted, converted_account / converted_contact / converted_deal, converted_date_time, owner_name, created_time / modified_time / last_activity_time, record_status / is_locked

Use case:

  • Agency: Fetch a lead record immediately after a form submission to verify source and status before adding to a campaign.

Inputs:

  • Limit / Per Page (Required): Must be a multiple of 25 (e.g., 25, 50, 75). Default: 25
  • Sort By Field (Required): id, Created_Time, or Modified_Time
  • Sort Order (Required): asc or desc

Outputs: lead_id, first_name / last_name, company / title, email / secondary_email, phone / mobile, website, lead_source / lead_status, industry, no_of_employees / annual_revenue, city / state / zip / country, email_opt_out / is_converted_flag, owner_id / owner_name, created_time / modified_time, total_count

Use case:

  • Agency: Pull all leads sorted by creation date to reconcile incoming form leads against a client's paid ad campaign attribution.

Inputs:

  • Deal ID (Required): Unique 19-digit Zoho Record ID

Outputs: deal_id, deal_name, account_id / account_name, contact_id / contact_name, stage, amount / expected_revenue, probability, closing_date, type / lead_source / campaign_source, next_step, owner_name / owner_email, created_time / modified_time, stage_modified_time, last_activity_time, overall_sales_duration / sales_cycle_duration, reason_for_loss, record_status / is_locked

Use case:

  • Agency: Look up deal stage and closing date for each account in a review list to build a pipeline report for a client.

Inputs:

  • Contact ID (Required): LeadConnector contact ID

Outputs: contact_id / location_id, first_name / last_name / full_name_lower_case, email / email_lower_case / additional_email, phone / additional_phone, city / state / country / postal_code, website, source / company_name, timezone, gender / date_of_birth, tag, custom_field_id / custom_field_value, dnd / dnd_call_status, created_by_source / created_by_channel, date_added / date_updated

Use case:

  • Agency: Pull a contact's DND status and tags before triggering a call or message sequence to avoid contacting opted-out leads.

Inputs:

  • Limit (Required): 1 to 100 per page
  • Starting After (Required): Cursor for next page
  • Search (Required): Filter by first name, last name, or email
  • Filter (Required): Status-based filter, e.g., FILTER_VAL_CONTACTED, FILTER_LEAD_INTERESTED
  • Campaign (Required): Filter by campaign ID
  • List ID (Required): Filter by list
  • In Campaign (Required): Only leads enrolled in a campaign
  • In List (Required): Only leads in a list
  • Is Website Visitor (Required): Only website visitors
  • Distinct Contacts (Required): Deduplicate by contact
  • Enrichment Status (Required): 1 = Enrichment success, 11 = Pending, -1 = N/A
  • Smart View ID (Required): Filter by saved smart view
  • IDs (Required): Filter by specific lead IDs
  • Excluded IDs (Required): Exclude specific lead IDs
  • Organization User IDs (Required): Filter by user within the organization

Outputs: lead_id, lead_email, lead_first_name / lead_last_name, company_name / company_domain, phone / website, email_click_count / email_open_count / email_reply_count, esp_code, lt_interest_status, status, organization_id, timestamp_created / timestamp_updated, timestamp_last_interest_change, next_starting_after

Use case:

  • Agency: Pull all leads with FILTER_LEAD_INTERESTED from a client campaign to send their names and emails to the sales team for manual follow-up.

Inputs:

  • Contact ID (Required): Numeric Reply.io contact ID

Outputs: id, email, firstName / lastName, company, title, phone / phoneStatus, city / state / country, timeZoneId, linkedInProfile, salesNavigatorUrl / linkedInRecruiterUrl, addingDate, companySize, industry, accountId

Use case:

  • Agency: Retrieve a contact's timezone before scheduling follow-up calls to ensure outreach happens at the right local time.

Inputs:

  • Email Address (Required): The contact's email address

Outputs: id, email, firstName / lastName, company, title, phone / phoneStatus, city / state / country, timeZoneId, linkedInProfile, salesNavigatorUrl / linkedInRecruiterUrl, addingDate, companySize, industry, accountId

Use case:

  • Agency: Check whether an email address already exists in Reply.io before adding it to avoid duplicate contact records across campaigns.

Troubleshooting

HubSpot Search Contacts returns no results. The Filter Property Name field is case-sensitive and must match the internal HubSpot property key exactly. Use email, not Email. Find the correct internal name in HubSpot under Settings > Properties.

Zoho CRM returns a 401 Unauthorized error. Zoho OAuth tokens expire. Reconnect the Zoho CRM integration under Settings > Integrations > Zoho CRM to generate a fresh access token.

Get CRM Associations returns an empty list. The object has no associations of the selected type. Confirm the relationship exists in HubSpot before running. Also check that you selected the correct Association Type. Contact to Company (1) and Company to Contact (2) are separate types.

List Leads (Zoho CRM) returns a validation error. The Limit field must be a multiple of 25. Values like 30 or 100 are not valid. Use 25, 50, or 75.

Pipedrive Search Deals returns zero results. Search Term requires at least 2 characters. Single-character terms are not supported. Use at least 2 characters, or enable Exact Match for a precise single-term lookup.

Reply.io Get Contact by Email returns empty. The contact does not exist in Reply.io under that email address. Confirm the email is in your Reply.io contacts list. The action returns no result rather than an error when there is no match.

List Leads (Instantly) returns fewer records than expected. The distinct_contacts flag deduplicates by email when set to true. If a contact appears in multiple campaigns, it returns only once. Set it to false to see all instances.