Filter engagements by CRM object IDs
Use CRM company, contact, and deal IDs with GET /v2/engagements
Use GET /v2/engagements with filter[crm_associations][eq] when your app already has IDs from HubSpot, Salesforce, or another connected CRM and you want the related AskElephant engagements.
Request shape
For readability, the examples below use indexed bracket syntax:
Those query params represent one CRM association object with this shape:
The API also accepts the same value as a JSON-encoded array string in filter[crm_associations][eq], but the bracket form is usually easier to read in docs and examples.
When using these raw bracket query params with curl, add --globoff so curl does not treat [] as URL globbing syntax.
Each object includes:
id: the CRM record ID from your connected CRMobject_type: the CRM object type to match
For engagements, the common object_type values are:
companycontactdeal
The CRM source is inferred from the workspace’s connected CRM. You do not pass a separate CRM provider field.
Filter by CRM company ID
Decoded filter value:
Filter by CRM contact ID
Decoded filter value:
Filter by CRM deal ID
Decoded filter value:
Filter by multiple CRM objects
You can pass more than one CRM object in the same request.
Decoded filter value:
How engagement filtering combines
Engagement filtering uses bucket semantics:
- AskElephant
company_idsand CRMcompanyassociations share the company bucket - AskElephant
contact_idsand CRMcontactassociations share the participant bucket - CRM
dealassociations populate a deal bucket
Values in the same bucket use OR semantics. Populated buckets combine with AND semantics.
Example: require a CRM company match and a CRM deal match in the same request:
Limits and tips
filter[crm_associations][eq]supports up to 20 CRM association objects.- Use CRM record IDs here, not AskElephant
cmp_...orcnt_...IDs. - Add
expand=companies,contacts,ownerif you want richer context in the response.
See also: Searching engagements and Pagination and filtering