save_contacts_to_crm
Save contacts from a search result into Xmagnet. Pass the contacts array from search_contacts or find_contacts_at_companies.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| contacts | Yes | Array of contact objects to save |
Save contacts from a search result into Xmagnet. Pass the contacts array from search_contacts or find_contacts_at_companies.
| Name | Required | Description | Default |
|---|---|---|---|
| contacts | Yes | Array of contact objects to save |
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description only states it saves contacts, without revealing side effects such as duplicate handling, whether existing contacts are updated, or any required fields. Annotations indicate a write operation (readOnlyHint=false), but the description adds no behavioral details beyond what 'save' implies.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose, and provides the critical input guidance without extraneous detail. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with a single parameter and no output schema, the description is adequately complete: it states the action, target system, and input source. It omits potential caveats like duplicate handling, but given the tool's simplicity, this is acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers the contacts parameter, and the description adds value by specifying the expected array comes from search_contacts or find_contacts_at_companies. This helps the agent source the data correctly, though it does not detail the internal structure of the contact objects.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool saves contacts from a search result into Xmagnet, using a specific verb (save) and resource (Xmagnet). It also differentiates from siblings by specifying the input source (contacts array from search_contacts or find_contacts_at_companies), making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context by instructing to pass the contacts array from search_contacts or find_contacts_at_companies, implying it should be used after those search tools. It does not explicitly name alternatives or exclusions, but the guidance is sufficient for typical usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Add one secure layer between your agents and this server.
Several tools occupy nearly identical roles (create_contact/add_contacts/save_contacts_to_crm/upload_contacts; add_companies/create_company; search_contacts/search_crm_contacts/find_contacts_at_companies), and the names don't clearly reveal whether they operate on saved or prospected data. Although the descriptions clarify some boundaries, an agent would frequently need to read many descriptions carefully to avoid mis-selection.
Most tools follow a snake_case verb_noun pattern such as list_campaigns, create_deal, and update_contact. Minor deviations like company_intelligence, get_icp, load_more_contacts, and the inconsistent use of add_/create_/upload_/save_ for similar creation actions keep it from being fully consistent.
51 tools is far beyond the well-scoped range and exceeds the 50+ extreme threshold. Even for a broad CRM/prospecting/marketing platform, exposing this many tools at once makes agent selection costly and unwieldy.
Contact and company creation/read/update are covered, but delete is absent across the board, and campaigns can be drafted, listed, and measured but not edited, activated, paused, or deleted. Deals, forms, and landing pages also lack update/delete lifecycle actions, creating meaningful dead ends for common CRM workflows.