All tools

CRM · create_contact_hubspot

Create HubSpot contact

Create or update a HubSpot contact (bulk import, stage, notes).

Price
included
Requirements
HubSpot
set it up in Settings → Integrations
Human approval
Yes, by default
outside-facing write: a human validates

Input

FieldTypeDescription
modeupsert | update"upsert" (default) = create or update by email (import). "update" = modify existing contacts only (by contactId or email) + dated note; never creates.
contactsarrayBatch: the FULL list of contacts to import (upsert) or to update (mode=update, each with contactId or email) in one call — preferred whenever there is more than one. Each item takes the same fields as a single contact. Up to 100 per call; larger lists are chunked automatically. When provided, the top-level single-contact fields are ignored.
contactIdstringmode=update, single contact: HubSpot contact ID (from lookup_crm). Alternative to email.
emailstringSingle contact: prospect's professional email (optional in upsert; identifier in update). Ignored when `contacts` is provided.
firstNamestringProspect's first name
lastNamestringProspect's last name
companystringCompany name
jobTitlestringJob title / position
phonestringPhone number (mobile preferred)
linkedinUrlstringLinkedIn profile URL
websitestringCompany website URL
lifecycleStagesubscriber | lead | marketingqualifiedlead | salesqualifiedlead | opportunity | customerHubSpot lifecycle stage (default: lead)
leadSourcestringHow this lead was acquired, e.g. "Prospection", "SIRENE", "LinkedIn"
notesstringInternal notes about this prospect (stored in the contact notes field)
leadStatusstringmode=update: hs_lead_status (NEW, OPEN, IN_PROGRESS, OPEN_DEAL, UNQUALIFIED, ATTEMPTED_TO_CONTACT, CONNECTED, BAD_TIMING)
emailBouncedbooleanmode=update: the email bounced — dated note + bad-address flag
optOutbooleanmode=update: the contact opted out — dated note + opt-out flag; never contact again
logNotestringmode=update: dated note to log on the contact (reply summary, call outcome, next step)
propertiesobjectmode=update: raw HubSpot property name → value (advanced)

Call this tool

Through the HTTP API, or from the MCP server with the run meta-tool.

curl https://api.ezyagents.fr/gateway/v1/run \
  -H "Authorization: Bearer ezk_…" -H "Content-Type: application/json" \
  -d '{"tool":"create_contact_hubspot","input":{"mode":"upsert","contacts":[],"contactId":"…","email":"…"}}'
$run({ "tool": "create_contact_hubspot", "input": {"mode":"upsert","contacts":[],"contactId":"…","email":"…"} })