PlatformDocs
MCP server

create_contact

Saves a new person record (name, job title, company domain) and returns it with its _id.

View as Markdown

Create contact · Changes data

Saves a new person record (name, job title, company domain) and returns it with its _id. Its main use is to get a contactId for verify_contact. To find new people use search_people. To push someone into a CRM use push_lead_to_crm. The name, position, company domain and email (businessEmail, or personalEmail when there is no work email) are stored; phone and LinkedIn are not. Costs nothing. Errors: 405 when firstName, lastName or position is missing.

ConnectionAccount URL, team member URL or OAuth

Parameters

ParameterTypeRequiredAcceptsDescription
websiteIdstringYesanyWebsite ID from list_websites. Required by the tool schema; the saved record is not linked to it.
firstNamestringYesanyPerson's first name. Required.
lastNamestringYesanyPerson's last name. Required.
positionstringYesanyJob title, e.g. "Head of Marketing". Required.
domainstringNoanyCompany domain without protocol, e.g. "acme.example". Without it verify_contact cannot guess an address.
businessEmailstringNoanyWork email. Saved on the contact; verify_contact checks it.
personalEmailstringNoanyPersonal email, used only when businessEmail is not given.
linkedinUrlstringNoanyLinkedIn profile URL. Accepted but not stored.
phonestringNoanyPhone number. Accepted but not stored.

Tool definition

What your assistant receives from tools/list:

{
  "name": "create_contact",
  "title": "Create contact",
  "annotations": {
    "title": "Create contact",
    "readOnlyHint": false,
    "destructiveHint": false,
    "idempotentHint": false,
    "openWorldHint": false
  },
  "inputSchema": {
    "type": "object",
    "properties": {
      "websiteId": {
        "type": "string",
        "description": "Website ID from list_websites. Required by the tool schema; the saved record is not linked to it."
      },
      "firstName": {
        "type": "string",
        "description": "Person's first name. Required."
      },
      "lastName": {
        "type": "string",
        "description": "Person's last name. Required."
      },
      "position": {
        "type": "string",
        "description": "Job title, e.g. \"Head of Marketing\". Required."
      },
      "domain": {
        "type": "string",
        "description": "Company domain without protocol, e.g. \"acme.example\". Without it verify_contact cannot guess an address."
      },
      "businessEmail": {
        "type": "string",
        "description": "Work email. Saved on the contact; verify_contact checks it."
      },
      "personalEmail": {
        "type": "string",
        "description": "Personal email, used only when businessEmail is not given."
      },
      "linkedinUrl": {
        "type": "string",
        "description": "LinkedIn profile URL. Accepted but not stored."
      },
      "phone": {
        "type": "string",
        "description": "Phone number. Accepted but not stored."
      }
    },
    "required": [
      "websiteId",
      "firstName",
      "lastName",
      "position"
    ]
  }
}

On this page