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: up to one credit per record sent, and nothing for a record the provider already licensed. credit_cap is required and has no default -- it is the ceiling on the credits the provider charges, and the run stops before a call that could pass it. 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

NameRequiredDescriptionDefault
nameYesA name for the run, shown in the Runs tab. Dispatching this spends up to 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. Changed1 schema field changed
    • changedInput schema / properties / name / description
      Previous value: -"A name for the run, shown in the Runs tab. Dispatching this spends one provider credit per record sent."New value: +"A name for the run, shown in the Runs tab. Dispatching this spends up to one provider credit per record sent."
  2. 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."
  3. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Annotations only declare that this is a non-read-only, non-destructive, closed-world write; the description adds the critical trait an annotation cannot express — that dispatching spends real money at up to one credit per record, that already-licensed records cost nothing, and that the run halts before a call that would breach the cap. That cost/reversibility context plus the mandated preview step is exactly the value-add expected on top of annotations.

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 purpose, then the money warning in caps — the two things an agent must know before calling. Five dense sentences with no filler, though the credit_cap and template_id clauses restate some of the schema's parameter text rather than only adding to it.

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

Completeness5/5

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

For a 10-parameter, cost-incurring mutation with no output schema, the description supplies what structured fields cannot: the spend model, the no-default credit ceiling, and the discovery/preview workflow. The remaining parameter detail (filter tree, disposition modes, staged-plan caps) is documented at 100% coverage in the schema, so nothing an agent needs to call this correctly 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 coverage is 100%, so the baseline is 3; the description still earns an upgrade by explaining credit_cap as a hard ceiling enforced mid-run ('stops before a call that could pass it') and by characterizing template_id as a person-authored mapping of provider fields to CRM fields with replacement rules. filter_spec, object_type and the staging-only params (firing_cap, disposition, segments_when) are left entirely to the schema.

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 and resource (create an enrichment run) plus the concrete behavior: fetch missing field values from a provider and write them into the CRM. It implicitly separates itself from the sibling preview_enrichment_run ('Preview before dispatching') and from the template tools it names, so an agent can place it among the create_*_run family.

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 actionable routing: list templates with list_rule_templates, read one with get_rule_template, and preview before dispatching. It does not contrast this against the other run creators (create_normalize_run, create_segmentation_run, etc.) or state when enrichment is the wrong choice, so the alternatives are named but not fully exclusive.

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.