Skip to main content

Product Search and Enrich

Discover and hydrate products/technologies from the HG Insights product catalog (the technographic taxonomy of vendors, products, and categories). Two actions on one tool. action='search' (free) returns a slim, paginated hit list of product_ids matching name/vendor/category/attribute filters — use it to disambiguate a fuzzy product name into a concrete product_id. action='enrich' (1 credit per successful match) hydrates 1-50 known product_ids into full catalog records: product_details, category_info, vendor_info. Use this when you need to look up a product in the catalog, resolve a product name to an id, browse products under a vendor/category, or fetch full catalog metadata for specific product_ids. Typical flow: search to find the id, then enrich the chosen id(s). Failed enrich ids return a per-row NO_MATCH_FOUND error at HTTP 200 and are not billed. Do NOT use this when you only need a category's canonical id or the category taxonomy — use get_product_category (it resolves category_name → category_id, which you then pass here as a filter). Do NOT use this to resolve a vendor/company to its vendor_id or to read vendor firmographics — use get_vendor_information. Because category_name/attribute_name/vendor_name are substring matches that can silently select the wrong entry (e.g. 'CRM' can match a BPO/outsourcing category rather than CRM software), prefer resolving the exact id first — category_id via get_product_category, attribute_ids via get_product_attribute, vendor_id via get_vendor_information — and pass those ids as filters.

Parameters

NameTypeRequiredDefaultDescription
actionstring✅ Yes-Required discriminator selecting the operation. 'search' = free, returns a paginated list of matching product_ids (use with filters/sort/limit/offset). 'enrich' = 1 credit per successful match, hydrates known product_ids into full catalog records (use with products[]).
filtersobject❌ No-search-only, all fields optional and AND-combined. Flat HG catalog filters: product_name, description, category_name, attribute_name, vendor_name (substring matches — imprecise), category_id (32-char uppercase hex, resolve via get_product_category), attribute_ids (resolve via get_product_attribute), vendor_id (resolve via get_vendor_information), has_install (true = only products with observed installs). Prefer id filters over the *_name substring filters. Unknown keys and legacy nested shapes are rejected.
filters.product_namestring❌ No-
filters.descriptionstring❌ No-
filters.category_namestring❌ No-
filters.attribute_namestring❌ No-
filters.vendor_namestring❌ No-
filters.category_idstring❌ No-
filters.attribute_idsarray❌ No-
filters.vendor_idinteger❌ No-
filters.has_installboolean❌ No-
sortarray❌ No-search-only. Ordered list of up to 3 sort specs (first is primary tiebreaker order). Each: field ∈ {relevance, product_name, vendor_name, category_name, last_verified_at}, order ∈ {asc, desc}. Omit for the server's default relevance ranking.
sort[].fieldstring✅ Yes-
sort[].orderstring✅ Yes-
limitinteger❌ No-search-only. Max results per page, 1-100. Server default: 50.
offsetinteger❌ No-search-only. Zero-based pagination offset (>=0) into the result set; page N = offset N*limit. Server default: 0.
productsarray❌ No-enrich-only, required for enrich. 1-50 product_ids to hydrate, each as {product_id}. Get ids from a prior action='search' call. Duplicates are deduped by upstream. Unknown/missing ids return a per-row NO_MATCH_FOUND error at HTTP 200 and cost no credits.
products[].product_idinteger✅ Yes-

Required Integrations

  • hginsights_v2

Use Cases

  • Resolve a fuzzy product name into a concrete product_id — action='search' with filters.product_name
  • List every product a vendor ships in the catalog — action='search' with filters.vendor_id (resolved via get_vendor_information)
  • Browse products within a category — action='search' with filters.category_id (resolved via get_product_category)
  • Fetch full catalog metadata (product/category/vendor details) for known ids — action='enrich' with products[]
  • Narrow a category to products that actually have installs — action='search' with filters.has_install:true

Example Usage

Search products by name (free, returns product_ids)

{
"tool": "product_search_and_enrich",
"arguments": {
"action": "search",
"filters": {
"product_name": "Salesforce"
},
"limit": 10
}
}

Search a resolved category, installs only, sorted by name

{
"tool": "product_search_and_enrich",
"arguments": {
"action": "search",
"filters": {
"category_id": "0123456789ABCDEF0123456789ABCDEF",
"has_install": true
},
"sort": [
{
"field": "product_name",
"order": "asc"
}
]
}
}

Enrich two known product_ids with full catalog details

{
"tool": "product_search_and_enrich",
"arguments": {
"action": "enrich",
"products": [
{
"product_id": 22
},
{
"product_id": 105
}
]
}
}

get_product_category, get_product_attribute, get_vendor_information, get_product_information, company_technographic