Adds one or more contact records to the Carta CRM via the Carta CRM MCP Server. Use this skill when the user says things like "add a contact", "create a contact record", "add contact to CRM", "save a contact", "upload contact to Carta CRM", or "/add-contact". Collects contact information conversationally, then creates it via the MCP server. Only name is required — all other fields are optional.
Scanned 9/12/2026
Install to Claude Code
npx -y skills add carta/plugins --skill add-contact --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Add Contact?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/carta-add-contact)More formats (shields.io, HTML) on the badges page.
---
name: add-contact
description: >
Adds one or more contact records to the Carta CRM via the Carta CRM MCP Server.
Use this skill when the user says things like "add a contact", "create a contact
record", "add contact to CRM", "save a contact", "upload contact to Carta CRM",
or "/add-contact". Collects contact information conversationally, then creates it
via the MCP server. Only name is required — all other fields are optional.
allowed-tools:
- mcp__carta__crm_call_tool
version: 1.0.0
model: haiku
---
<!-- 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
Help the user create one or more contact records in the Carta CRM using the
`create_contact` MCP tool. Only `name` is required — collect that and any other
details the user has already provided, then call the tool. Do not block on optional fields.
## Step 1 — Collect contact information
Only `name` is required. Extract everything the user has already provided in their
message without re-asking. If `name` is missing, ask for it once.
Fields you can collect:
- **name** (required) — full name, or derived from firstName + lastName
- **firstName**, **lastName**, **middleName** (optional)
- **emailDetail** — primary email; emailDetailSecond/Third/Fourth for additional emails
- **phone** — primary phone; businessPhone/thirdPhone/fourthPhone for additional numbers
- **title** — job title
- **headline** — short bio or tagline
- **location** — work location: city, state, country
- **socialLinks** — linkedinUrl, twitterUrl, githubUrl, facebookUrl
- **jobs** — work experience: array of {companyName, title, startedOn, endedOn}
- **tags** — array of string tags
- **notes** — free-text notes
- **listId** — if provided, adds the contact to that list
If the user wants to populate custom fields, fetch the schema first:
```
crm_call_tool({ "name": "crm:get_contact_custom_fields", "arguments": {} })
```
Never ask for `listId` unless the user brings it up.
## Step 2 — Create the contact
Call:
```
crm_call_tool({
"name": "crm:create_contact",
"arguments": {
name: "<contact name>",
firstName: "<first>",
lastName: "<last>",
emailDetail: "<email>",
phone: "<phone>",
title: "<title>",
tags: ["<tag1>"],
fields: { "<field_id>": "<value>" }
}
})
```
Include only the fields the user provided. Omit everything else.
## Step 3 — Report result
On success, respond with:
> "Contact **{name}** saved successfully (ID: `{id}`)."
On error, show the error message and suggest:
- Check that `name` is provided and non-empty
- Verify the `listId` exists if one was provided
## Adding multiple contacts
If the user wants to add multiple contacts, repeat Steps 1–3 for each one, then
summarize:
> "Created N contacts: [list of names with IDs]"
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!