Skip to main content
Glama

Start useful customer work

start_onboarding
Read-only

Returns saved choices, entry context and workspace evidence for one useful customer result. Follow guidance; use accessible existing data and keep the team's setup. A useful brief or draft does not require a CRM write. Optional workspace-setup questions remain available; admins confirm through finalize_workspace_setup. Only after the user explicitly chooses collection, pass start_import:true once, then read again. Blank and CSV choices do not authorize email collection.

When to use: Get a first useful result or resume customer work; team members reuse existing context. Setup remains optional.

Example: Prepare one real customer follow-up.

Input Schema

NameRequiredDescriptionDefault
start_importNoTrue only with explicit permission to import the connected inbox and calendar. Default false; a plain read never starts collection.

Output Schema

NameRequiredDescriptionDefault
stateNo
guidanceNo
checklistNo
user_journeyNo
workspace_idNo
entry_contextNo
next_questionNo
get_started_urlNo
import_evidenceNo
available_motionsNo
available_templatesNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / properties / user_journey / properties / agent / anyOf
      Previous value: -[
      -  {
      -    "enum": [
      -      "claude",
      -      "chatgpt"
      -    ],
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "enum": [
      +      "claude",
      +      "chatgpt",
      +      "copilot"
      +    ],
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
  2. Changed1 schema field changed
    • removedInput schema / $schema
      Removed value: -"https://json-schema.org/draft/2020-12/schema"
  3. Changed25 schema fields changed
    • removedOutput schema / $schema
      Removed value: -"https://json-schema.org/draft/2020-12/schema"
    • removedOutput schema / additionalProperties
      Removed value: -{}
    • removedOutput schema / properties / available_motions / items / additionalProperties
      Removed value: -false
    • removedOutput schema / properties / available_templates / items / additionalProperties
      Removed value: -false
    • removedOutput schema / properties / checklist / items / additionalProperties
      Removed value: -false
    • removedOutput schema / properties / entry_context / additionalProperties
      Removed value: -false
    • removedOutput schema / properties / import_evidence / additionalProperties
      Removed value: -false
    • removedOutput schema / properties / import_evidence / properties / accounts / additionalProperties
      Removed value: -false
    • removedOutput schema / properties / import_evidence / properties / accounts / properties / top / items / additionalProperties
      Removed value: -false
    • removedOutput schema / properties / import_evidence / properties / accounts / properties / top / items / properties / domain / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / import_evidence / properties / accounts / properties / top / items / properties / domain / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / import_evidence / properties / accounts / properties / top / items / properties / industry / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / import_evidence / properties / accounts / properties / top / items / properties / industry / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / import_evidence / properties / candidates / items / additionalProperties
      Removed value: -false
    • removedOutput schema / properties / import_evidence / properties / candidates / items / properties / evidence / additionalProperties
      Removed value: -false
    • removedOutput schema / properties / import_evidence / properties / contacts / additionalProperties
      Removed value: -false
    • removedOutput schema / properties / import_evidence / properties / touches / additionalProperties
      Removed value: -false
    • removedOutput schema / properties / state / additionalProperties
      Removed value: -{}
    • removedOutput schema / properties / state / properties / framework / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / state / properties / framework / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / state / properties / id / pattern
      Removed value: -"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    • removedOutput schema / properties / state / properties / name / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / state / properties / name / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / user_journey / additionalProperties
      Removed value: -false
    • removedOutput schema / properties / workspace_id / pattern
      Removed value: -"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
  4. Changed3 schema fields changed
    • changedInput schema / properties / start_import / description
      Previous value: -"On an empty workspace, pass true once to fetch the connected inbox and calendar; the read itself never writes. Default false."New value: +"True only with explicit permission to import the connected inbox and calendar. Default false; a plain read never starts collection."
    • addedOutput schema / properties / entry_context
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "kind": {
      +      "enum": [
      +        "creator",
      +        "joining",
      +        "unknown"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "kind"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / user_journey
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "agent": {
      +      "anyOf": [
      +        {
      +          "enum": [
      +            "claude",
      +            "chatgpt"
      +          ],
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "audience": {
      +      "anyOf": [
      +        {
      +          "enum": [
      +            "solo",
      +            "team",
      +            "rollout"
      +          ],
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "need": {
      +      "anyOf": [
      +        {
      +          "enum": [
      +            "follow-ups",
      +            "prepare",
      +            "organize"
      +          ],
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "path": {
      +      "anyOf": [
      +        {
      +          "enum": [
      +            "email",
      +            "blank",
      +            "csv"
      +          ],
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "stage": {
      +      "anyOf": [
      +        {
      +          "enum": [
      +            "welcome",
      +            "audience",
      +            "need",
      +            "workflow",
      +            "paths",
      +            "connect",
      +            "first",
      +            "workspace"
      +          ],
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "teamSize": {
      +      "anyOf": [
      +        {
      +          "enum": [
      +            "just-me",
      +            "2-5",
      +            "6-20",
      +            "21-plus"
      +          ],
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "usefulResult": {
      +      "anyOf": [
      +        {
      +          "enum": [
      +            "brief",
      +            "draft",
      +            "organized"
      +          ],
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "workflow": {
      +      "anyOf": [
      +        {
      +          "enum": [
      +            "inbox",
      +            "notes",
      +            "spreadsheet",
      +            "crm"
      +          ],
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    }
      +  },
      +  "required": [
      +    "need",
      +    "workflow",
      +    "path",
      +    "agent",
      +    "stage"
      +  ],
      +  "type": "object"
      +}
  5. First observed

TDQS

A3.9/5.0
Behavior4/5

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

Goes well past readOnlyHint by spelling out the side effect the annotation cannot express: collection only begins when start_import:true is passed once after explicit user choice, and blank/CSV choices do not authorize email collection. This is exactly the kind of consent-gating context an agent needs. It slightly sidesteps the tension between readOnlyHint=true and a flag that triggers inbox/calendar import, so the safety profile is not fully reconciled.

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

Conciseness3/5

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

Front-loads the return content, which is the right order, but it is padded: 'useful customer result' / 'useful brief or draft' repeat the same vague adjective across sentences and the optional-setup point is restated twice. It could be roughly half its length without losing any instruction.

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?

An output schema exists, so the return shape needn't be explained, and the description instead covers the two-step flow (call, then read again) and the consent gate for import. What is missing is any indication of what 'workspace evidence' contains or what to do if required setup is absent, which matters for a first-run entry point.

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 boolean is already documented; the description still adds real semantics beyond it — that it must be passed only after explicit consent, only once, and that a plain read never starts collection. It does not clarify whether the import runs asynchronously or how to detect completion, which is a meaningful remaining ambiguity.

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

Purpose4/5

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

States a concrete return payload (saved choices, entry context, workspace evidence) for the start_onboarding entry point, which is far more than the name alone conveys. It also names finalize_workspace_setup as the admin-side sibling, giving differentiation. The phrase 'one useful customer result' is vague marketing framing rather than a precise scope statement, keeping it off a 5.

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?

An explicit 'When to use' line covers first-result and resume-work cases, and the description adds a clear exclusion ('a useful brief or draft does not require a CRM write') plus a routing rule to finalize_workspace_setup for admins. The remaining gap is that it never says when to prefer get_context or show_workspace_setup, both of which look adjacent in the sibling list.

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