Find contacts
Finds contacts by name, email, company or phone, by filters on any field or tag, or by a saved segment, one page at a time.
Free*
*Free up to 1,000,000 reads a month for the whole account, then $0.50 per 10,000 reads.
An example
Show me every trade customer we haven't heard from since the summer.
Your agent callscrm_find_contactsFree*
The example business is Hansen & Voss, a restaurant-equipment wholesaler in Hamburg with 60 staff. The reply is the one the tool really gives.
{
"tag": "trade",
"filters": [
{
"field": "lifecycle_stage",
"op": "eq",
"value": "customer"
},
{
"field": "last_seen",
"op": "lt",
"value": "2026-07-01"
}
]
}Use it when
A list of people is needed: everyone tagged trade, all customers in Hamburg, leads not seen since the summer.
- For one quick lookup from a name, email, phone or domain, use
crm_search. - For the same list as a CSV file, use
crm_export.
What it does
Search the CRM by name, email, company or phone, or by filters on any field, tag or custom field, or by a saved segment. Returns a page of contacts (most recently seen first unless `sort` says otherwise), the total, and next_offset for the next page.
What comes back
A page of contacts (id, email, name, title, company, phone, location, lifecycle stage, notes, tags, custom fields, archived, updated_at), how many are on it, the total, and next_offset (null on the last page). Every reply also carries cost_usd and balance_usd.
Inputs
| Name | Type | What it is |
|---|---|---|
query | string | Up to 200 characters. |
lifecycle_stage | string | One of: lead,trial,onboarding,customer,at_risk,churned,advocate. |
include_archived | boolean | Default: false. |
filters | array of objects | Conditions that must all match, e.g. [{"field": "lifecycle_stage", "op": "eq", "value": "customer"}, {"field": "renewal_date", "op": "lte", "value": "today+30"}]. field: a standard field, "tag", or a custom field key (crm_list_fields lists them all). op: eq, ne, contains, starts_with, in (value is a list), gt, gte, lt, lte, is_empty, is_set. Dates take YYYY-MM-DD or today, today+N, today-N. Up to 20 items. |
filters[].fieldRequired | string | 1 to 60 characters. |
filters[].opRequired | string | One of: contains,eq,gt,gte,in,is_empty,is_set,lt,lte,ne,starts_with. |
filters[].value | any | Text, a number, true/false, a date, or a list for "in". |
tag | string | Only records with this tag. Up to 60 characters. |
segment | string | A saved segment (crm_save_segment), by name or id. Up to 80 characters. |
sort | string | Field to sort by, "-" first for descending, e.g. "-amount" or "renewal_date". Up to 61 characters. |
limit | integer | 1 to 100. Default: 25. |
offset | integer | At least 0. Default: 0. |
The call
Over MCP, call crm_find_contacts on https://api.conecto.chat/mcp/crm. Over REST:
curl -X POST https://api.conecto.chat/v1/tools/crm_find_contacts \
-H "Authorization: Bearer $CONECTO_KEY" \
-H "Content-Type: application/json" \
-d '{"tag":"trade","filters":[{"field":"lifecycle_stage","op":"eq","value":"customer"},{"field":"last_seen","op":"lt","value":"2026-07-01"}]}'When it refuses
A refused call costs nothing and says what to do next.
| Code | When | What to do |
|---|---|---|
invalid_input400 | A filter or the sort names a field the object does not have, uses an op that does not fit the field, or compares it with the wrong kind of value. | Check the fields with crm_list_fields and use one of the ops the message lists. |
not_found404 | No saved segment of that object has that name or id. | Call crm_list_segments; the message also names the saved segments. |
More CRM tools
All 41 tools- Search the CRM
crm_searchFinds contacts, companies and deals from whatever you have: a name, an email, a phone number in any format, a domain or a deal title.Free* - Get a contact
crm_get_contactOne contact, by id or email, with its tags, custom fields, recent activity, open tasks and deals.Free* - Everything open with a customer
crm_get_customerEverything open with one customer in one read: deals, tickets, invoices, quotes, signatures, meetings and their last messages.Free* - Save a contact
crm_save_contactCreates a contact, or updates the one with the same email; only the fields you send change.$0.01 a call - Save many contacts
crm_save_contactsCreates or updates up to 100 contacts in one call, each like crm_save_contact; you pay only for the ones saved.$0.01 per record saved - Update a contact
crm_update_contactChanges fields on a contact by its id, its email included; only the fields you send change.$0.01 a call - Archive a contact
crm_archive_contactHides a contact from searches and lists; its history is kept.$0.001 a call - Restore a contact
crm_restore_contactBrings an archived contact back into searches and lists.$0.001 a call
Give this to your agent.
Set up Conecto from https://conecto.chat/SKILL.md