Skip to main content
Glama

Retry Blocked Enactment

retry_blocked_enactment

A retry with the cause still in place fails and re-blocks identically — fix the cause in the same call: pass email for an email-shaped block (email_not_found, a missing address) and/or linkedin_url for a wrong or missing LinkedIn identifier (missing_identifier, a failed resolution). Both stamp the EXISTING prospect row — never re-add the person via track_prospects with the new contact info, which creates a duplicate prospect. A cr_already_sent block has no fix here: Sliq's records show it already sent this person a connection request. Tell the user; if they have since re-invited by hand, register_manual_linkedin_invites picks the campaign up from that invite; otherwise drop the prospect with update_prospect(stage='skipped'). A name_mismatch block means the LinkedIn profile belongs to someone other than the person they were added as (data.supplied_name): retrying continues the campaign with that profile, with no new lookup — do it only when it's the same person under another name; otherwise skip the prospect and track the intended person (a linkedin_url fix is refused on this block). Dict confirming the prospect, the node they rest on, the cleared reason, and any contact fixes applied (email / linkedin_url). An email fix lands on the campaign row and the person's profile; profile_note is present only when the profile was left as it was because another person in the workspace already carries that address — pass the note on to the user.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
emailNoAn address to stamp on the prospect before retrying (optional) — the same write as update_prospect's `email`; refused if another prospect in the account already owns it.
agent_idYesID of the agent whose flow the prospect is on.
prospect_idYesThe prospect's `id` — the outreach_prospects primary key, as returned on every query_prospects row.
linkedin_urlNoA corrected LinkedIn profile URL or slug (optional). Applied as an unverified claim the retried send verifies through the profile resolver, so a wrong-person pairing is held for adjudication like any other. On a previously-verified profile (a dead or reassigned URL) the old verification is cleared and the corrected identity re-verifies fresh; refused only when a teammate's prospect verified the same person — remove this prospect and track the correct profile instead.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • addedInput schema / properties / agent_id
      Added value: +{
      +  "description": "ID of the agent whose flow the prospect is on.",
      +  "type": "integer"
      +}
    • removedInput schema / properties / task_id
      Removed value: -{
      -  "description": "ID of the task whose flow the prospect is on.",
      -  "type": "integer"
      -}
    • changedInput schema / required
      Previous value: -[
      -  "task_id",
      -  "prospect_id"
      -]New value: +[
      +  "agent_id",
      +  "prospect_id"
      +]
  2. Changed1 schema field changed
    • changedInput schema / properties / linkedin_url / description
      Previous value: -"A corrected LinkedIn profile URL or slug (optional). Applied as\nan unverified claim the retried send verifies through the profile\nresolver, so a wrong-person pairing is held for adjudication like any\nother. Refused once a live lookup verified the current profile — a\ndifferent URL then means a different person: remove them from the\ncampaign and track the correct profile instead."New value: +"A corrected LinkedIn profile URL or slug (optional). Applied as\nan unverified claim the retried send verifies through the profile\nresolver, so a wrong-person pairing is held for adjudication like any\nother. On a previously-verified profile (a dead or reassigned URL) the\nold verification is cleared and the corrected identity re-verifies\nfresh; refused only when a teammate's prospect verified the same\nperson — remove this prospect and track the correct profile instead."
  3. First observed

TDQS

A5/5.0
Behavior5/5

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

Annotations only indicate readOnlyHint=false and destructiveHint=false, providing minimal safety context. The description goes far beyond by disclosing side effects: it clears the block, leaves the prospect unstamped, and re-fires on a later tick (no immediate dispatch). It also warns that retrying with the cause still in place fails and re-blocks identically, and that it never re-adds the person to avoid duplicates. It explains the behavior for each block type, including the profile_note edge case. This is rich behavioral transparency that the annotations do not cover.

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

Conciseness5/5

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

The description is long but well-structured with <summary> and <returns> sections. The main purpose is front-loaded in the first sentence, and each subsequent sentence adds necessary detail about block types, fixes, and alternatives. There is no fluff; every sentence earns its place given the complexity of the tool. The structure aids comprehension.

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?

Given the tool's complexity (multiple block types, conditional fixes, and alternatives), the description is complete. It covers the action, the conditions for each block type, what to do when a fix isn't possible, the return value, and edge cases like profile_note. Nothing an agent needs to invoke this tool correctly is missing; the output schema is not present, but the <returns> section describes the return structure sufficiently.

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

Parameters5/5

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

Schema description coverage is 100%, so the schema already documents each parameter. However, the description adds significant meaning beyond the schema: it explains that 'email' is for email-shaped blocks (email_not_found, missing address) and 'linkedin_url' for wrong/missing LinkedIn identifiers, and clarifies that both stamp the EXISTING prospect row. It also explains the 'linkedin_url' behavior regarding unverified claims and verification clearing, which is not in the schema. This greatly enhances the agent's ability to use the parameters correctly.

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?

The description opens with a clear verb-resource pair: 'Clear a prospect's blocked flow step so it retries.' It specifies the exact resource (blocked flow step) and the action (clear and retry), and immediately distinguishes itself from related tools like report_enactment_blocked and query_prospects by referencing them and explaining the difference. This is unambiguous and highly specific.

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

Usage Guidelines5/5

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

The description provides explicit when-to-use guidance: it is for blocked prospects, and it details the conditions for each block type (email_not_found, missing_identifier, cr_already_sent, name_mismatch). It also states when NOT to use it (for cr_already_sent there is no fix here, and for name_mismatch only when it's the same person), and names alternatives (register_manual_linkedin_invites, update_prospect, track_prospects). This is comprehensive and leaves no ambiguity about selection.

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