Skip to main content
Glama

Create Enrichment Run

create_enrichment_run

Create a run that fetches missing field values from a data provider and writes them to the CRM. THIS ONE SPENDS MONEY when dispatched: one credit per record sent. credit_cap is required and has no default -- it is the ceiling on that spend and nothing else bounds it except the size of the scope. template_id names the configuration -- which provider fields map to which CRM fields, and when a value may replace an existing one -- which a person authors; list them with list_rule_templates and read one with get_rule_template. Preview before dispatching.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYesA name for the run, shown in the Runs tab. Dispatching this spends one provider credit per record sent.
credit_capYesRequired: the most provider credits this run may spend. There is no default, so the number is always stated before anything is spent.
firing_capNoOnly in a staged plan: the most records one firing asks the provider about through this run, at most 10,000, which is also the default. A run outside a staged plan ignores it; its credit cap is its only bound.
dispositionNoWho releases this run's writes. 'execute' dispatches the pass on request, which is the default and what every run has always done. 'queue' stamps the run awaiting_approval and launches nothing until a person approves it. 'propose' dispatches the pass, which computes everything and writes NOTHING to the CRM, putting one reviewable proposal in the queue per record it would have changed — so a person approves the changes one at a time instead of the run wholesale. A credential may ask for either form of review and may never release it. Note that 'propose' still SPENDS what computing spends: an enrichment set to propose buys the provider data and then queues the writes, because a value nobody fetched cannot be proposed.execute
filter_specNoWhich records this run covers, as a filter tree. Omit for the whole object. It DESCRIBES a population and is resolved when the run is DISPATCHED, so write what you mean -- the CRO at Skypoint is `account_name is Skypoint AND title contains CRO` -- and never look a record up to write one. You need no ids and no counts. Call list_filterable_fields first, for the field names and operators only.
object_typeYesWhich CRM object the run targets: contact, account or lead.
template_idYesRequired: the enrichment configuration to use, by id (list_rule_templates): which fields to request and how each value is written. It must target this run's object.
connection_idYesThe CRM connection. Required. Call list_crm_connections to get one.
segments_whenNoOnly 'overwrite', or omit. With 'overwrite', the fields this run writes through a value map (Industry, the band fields, Persona) replace values the CRM already holds with standardized ones, whatever each configuration row says; the rows keep their setting for every other run. A run in a staged plan ignores it.
ask_again_after_daysNoSkip records this provider was already asked about within this many days. Omit to ask about every record in the scope, which is the default and what a one-off run normally wants. Set it on a run that REPEATS over a standing scope: without it, every firing asks the provider about the whole book again to find the few records that changed. The ledger it reads is shared across runs, so another run's ask suppresses this one's.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / properties / credit_cap / description
      Added value: +"Required: the most provider credits this run may spend. There is no default, so the number is always stated before anything is spent."
    • addedInput schema / properties / template_id / description
      Added value: +"Required: the enrichment configuration to use, by id (list_rule_templates): which fields to request and how each value is written. It must target this run's object."
  2. First observed

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are minimal (readOnlyHint=false, destructiveHint=false), so the description carries the burden and does so well: it discloses that dispatching SPENDS money, one credit per record, that credit_cap is required with no default and is the only bound besides scope size, and that templates are human-authored. This is exactly the cost/safety context an agent needs before invoking.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the money-spend warning, then the two key parameters, then the workflow hint. Dense but every sentence earns its place; only mildly dense phrasing keeps it from a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 10-parameter mutation tool with no output schema and minimal annotations, the description covers the critical unknowns (cost, required credit_cap, template authoring, preview step). Remaining parameter detail lives in the 100%-covered schema, so little is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3, but the description adds real meaning beyond the schema: it motivates credit_cap as a spend ceiling with no default, explains template_id as a person-authored config governing field mapping and overwrite rules, and warns that nothing but scope size otherwise bounds spend. It is silent on disposition/ask_again_after_days, which the schema already covers.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource (create a run that fetches missing field values from a provider and writes them to the CRM), and the cost/write nature immediately distinguishes it from sibling create_*_run tools like normalize or segmentation. An agent knows what this does without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear context: list templates with list_rule_templates, read one with get_rule_template, and 'Preview before dispatching' (pointing implicitly at preview_enrichment_run). It does not name that preview sibling explicitly nor contrast with the other create_*_run routes, so the routing guidance is strong but slightly inferential.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.