Skip to main content
Glama

MyDataHub

Push an order to a CRM

push_to_crm
Idempotent

Pushes an order's records to a connected CRM such as HubSpot or Salesforce, keyed on mydatahub_record_id, as record operations only: nothing is ever sent to the contacts. dry_run defaults to true and reports what would be created, updated or skipped; a live push needs the user's confirmation or an agent key allowed push_to_crm on that connection, or it returns confirmation-required. Free; it needs pushes:write and a connection made in the app. Show the dry run to the user before a live push. Lawful basis is UK GDPR Article 6(1)(f) legitimate interests; email audiences include corporate subscribers only by default (PECR), so sole traders and ordinary partnerships are left out unless the toggle is changed.

Input Schema

NameRequiredDescriptionDefault
dry_runNoDefault true: report what would change without writing. A live push needs approval: a person's confirmation, or an agent key allowed push_to_crm on this connection.
order_idYesThe order whose records to push.
connection_idYesFormat: a CRM connection id: conn_ followed by a 26 character ULID in upper case Crockford base32, such as conn_01JB3Y2X6Y7Z8A1B2C3D4E5F6G.
update_existingNoUpdate records already in the CRM, matched on mydatahub_record_id. Default true.
confirmation_tokenNoThe token the approval page on mydatahub.emailmovers.com returns once the signed-in person approves. It is bound to that person (their sub), this spend (the machine quote_id, or the enrichment or push) and an expiry no later than the quote's, and it is redeemable once.

Output Schema

NameRequiredDescriptionDefault
idYesFormat: a CRM push id: psh_ followed by a 26 character ULID in upper case Crockford base32, such as psh_01JB4NC3W2X6Y7Z8A1B2C3D4E5.
errorsYes
sampleYesOn a dry run: the property group the first record would carry.
statusYes
dry_runYes
summaryYes
order_idYesFormat: an order id: ord_ followed by a 26 character ULID in upper case Crockford base32, such as ord_01JB4N9S3W2X6Y7Z8A1B2C3D4E.
created_atYes
completed_atYes
connection_idYesFormat: a CRM connection id: conn_ followed by a 26 character ULID in upper case Crockford base32, such as conn_01JB3Y2X6Y7Z8A1B2C3D4E5F6G.
property_groupYesThe MyDataHub property group written on every record (CrmPropertyGroup).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond the annotations: discloses that dry runs are non-writing, that a live push without approval returns a confirmation-required outcome, that the call is free, that it requires the pushes:write scope plus an app-made connection, and that records are matched/updated on mydatahub_record_id. The PECR audience caveat (corporate subscribers only by default, sole traders and ordinary partnerships excluded unless toggled) is exactly the kind of side effect annotations cannot express.

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 defaults, then prerequisites, then compliance — a sensible order, and nearly every sentence carries operational weight. It is a dense single paragraph, and the UK GDPR Article 6(1)(f) / PECR tail is heavier than most agents need to select and call the tool, though it does inform the exclusion behavior.

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 5-parameter, open-world, mutating call with an output schema, the description covers everything an agent needs: safe default, approval mechanics, failure mode, required scope, connection prerequisite, and data-subject exclusions. Return values are correctly left to the output schema.

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 would be 3, but the description adds real meaning: dry_run's reporting semantics and the approval path that unlocks a live push, the mydatahub_record_id match key behind update_existing, and the person/scope/expiry/one-time binding of confirmation_token. It does not restate the ULID formats, which is fine since the schema already does.

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 ("Pushes an order's records to a connected CRM") plus the match key (mydatahub_record_id) and an explicit scope boundary ("as record operations only: nothing is ever sent to the contacts"). An agent can tell this apart from order-fetching or audience-building siblings without opening any 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 concrete operating guidance: dry_run defaults to true, "Show the dry run to the user before a live push," and a live push requires a person's confirmation or an agent key allowed push_to_crm. It lacks an explicit when-not-to-use clause or a named alternative (e.g., a quoting step), so it stops short of full routing guidance.

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.

Resources