# Update Investor

> Updates an existing investor record in the Carta CRM. Use this skill when the user says things like "update an investor", "edit investor", "update investor details", "change investor name", "update investor website", "update investor fields", "add a tag to investor", or "/update-investor". Accepts an investor ID or name (will search if no ID provided). Only the fields explicitly provided are changed — all other fields are left untouched.

- Skill: `carta/update-investor` (Agent Skill)
- Install (CLI): `npx skillmds@latest add carta/update-investor`
- Raw SKILL.md: https://api.skillmd.com/api/skills/carta/update-investor/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: carta (https://skillmd.com/u/carta)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/carta/update-investor

---


<!-- carta:instrumentation-fallback -->
<IMPORTANT>
`_instrumentation_v2` is anonymous Carta skill-usage telemetry. ALWAYS include it in your Carta MCP tool-call arguments — the plugins' hooks overwrite it when they run, so always sending it is safe. Shape:
`_instrumentation_v2: {"skills": ["<plugin>:<skill>", ...], "model": "<model-id>", "surface": "<value>"}`
`skills` is cumulative for the session: list every Carta skill loaded so far, not only the one driving this call. Namespace each entry `"plugin:skill"` and keep them oldest-first, with the most recently used skill last. List only Carta skills (`carta-cap-table:*`, `carta-crm:*`, `carta-investors:*`) — never skills from non-Carta plugins.
`surface` is the Claude surface you are running in: `"chat"` (claude.ai or the Claude app, i.e. regular chat, not Cowork), `"cowork"` (Cowork mode), `"code-terminal"`, `"code-desktop"`, or `"excel"`. Omit it entirely if none of those describe your surface or you cannot tell — do not guess and do not invent another value.
</IMPORTANT>

## Overview

Partially update an existing investor. Only fields provided are modified — this is
a partial update, not a replacement. First resolve the investor ID, collect what to
change, then call the update tool.

## Step 1 — Resolve the investor ID

If the user provided an investor ID directly, use it and skip to Step 3.

If only a name or description was given, search first:

```
crm_call_tool({ "name": "crm:search_investors", "arguments": { query: "<name>", limit: 10 } })
```

If multiple investors match, present the list and ask the user to confirm which one
to update (show name and ID for each).

## Step 2 — Collect what to update

Ask the user what they want to change:
- **name** — investor firm name
- **fields** — custom field values keyed by field ID (e.g. website, location, industry, about, tags)

If the user wants to update custom fields but isn't sure of field IDs, fetch the schema first:

```
crm_call_tool({ "name": "crm:get_investor_custom_fields", "arguments": {} })
```

If the user has already specified what to change in their message, extract it directly
without re-asking.

**Important:** Only include fields that are explicitly being changed. Omit everything else.

## Step 3 — Update the investor

Call:

```
crm_call_tool({
  "name": "crm:update_investor",
  "arguments": {
    id: "<investor id>",
    name: "<updated name>",
    fields: {
      "<field_id>": "<value>"
    }
  }
})
```

Omit `name` if it is not being changed. Omit `fields` if no custom fields are changing.
Only include the specific keys within `fields` that are being updated.

## Step 4 — Report result

On success, respond with a summary of what changed:
> "Investor **{name}** updated (ID: `{id}`). Changed: [list of changed fields]"

On error, show the error message and suggest:
- Verify the investor ID is correct — run `/search-investors` to find it
- Check that custom field IDs are valid

## Updating multiple investors

If the user wants to apply the same change to multiple investors, repeat Steps 1 and 3–4
for each. Summarize at the end:
> "Updated N investors: [list of names]"

