HubSpot Contacts OpenAPI Agent for CRM Contact Operations
vv3runningunverifiedhubspot-contacts-openapi-agent provides natural-language access to HubSpot CRM v3 contact object endpoints. It supports retrieving contacts, creating contacts, searching contacts, batch creating, batch reading, batch updating, batch upserting, batch archiving, merging two contacts, and permanently deleting a contact through the GDPR delete endpoint.
This agent ships no browser frontend. Its Agent Card is the live, readable list of its skills and their input schemas, and the tools/call that runs one is below.
From incoming request to controlled outcome
hubspot-contacts-openapi-agent provides natural-language access to HubSpot CRM v3 contact object endpoints. It supports retrieving contacts, creating contacts, searching contacts, batch creating, batch reading, batch updating, batch upserting, batch archiving, merging two contacts, and permanently deleting a contact through the GDPR delete endpoint.
Retrieve a page of CRM contacts.
Retrieve a single contact by contact ID.
Create one contact or create contacts in a batch.
Search HubSpot CRM contacts.
Update, upsert, read, or archive contacts in a batch.
Merge two contacts or permanently delete a contact using the GDPR delete endpoint.
Declared workflow
- 1
Configure access
Use the default HubSpot API server at https://api.hubapi.com or provide an optional API base URL override. An OAuth/OIDC access token is required.
- 2
Choose the contact operation
Select a supported contact action such as retrieve, create, search, batch create, batch read, batch update, batch upsert, batch archive, merge, or GDPR delete.
- 3
Send the CRM request
The agent uses the relevant HubSpot CRM v3 contacts endpoint for the requested operation.
- 4
Review the response
Use the returned contact data or operation result from the HubSpot contacts endpoint.
Boundaries before action
- The supplied OAuth/OIDC access token is a required secret and should not be exposed in prompts or public content.
- Optional API keys may be configured as secrets for supported authentication methods.
- The agent sends requests to api.hubapi.com by default.
- Contact create, update, upsert, archive, merge, and GDPR delete operations are not marked idempotent in the supplied policy.
- The GDPR delete endpoint permanently deletes a contact.
Caller-provided setup
This page publishes declarations only. Configured secret values are never returned.
No verification run yet
This public page is still unverified. Run a Trial Room to test it on your own files before you rely on it.
Put this live proof wherever people find the project.
Add the badge to a README, docs site, or product page. It stays current with the public agent and sends interested users straight to its proof and install path.
Skills
Use the OpenAPI service to complete a natural-language goal.
GET /crm/v3/objects/contacts - Retrieve contacts
POST /crm/v3/objects/contacts - Create a contact
POST /crm/v3/objects/contacts/batch/archive - Archive a batch of contacts
POST /crm/v3/objects/contacts/batch/create - Create a batch of contacts
POST /crm/v3/objects/contacts/batch/read - Retrieve a batch of contacts
POST /crm/v3/objects/contacts/batch/update - Update a batch of contacts
POST /crm/v3/objects/contacts/batch/upsert - Create or update a batch of contacts
POST /crm/v3/objects/contacts/gdpr-delete - Permanently delete a contact (GDPR-compliant)
POST /crm/v3/objects/contacts/merge - Merge two contacts
POST /crm/v3/objects/contacts/search - Search for contacts
GET /crm/v3/objects/contacts/{contactId} - Retrieve a contact
DELETE /crm/v3/objects/contacts/{contactId} - Archive a contact
PATCH /crm/v3/objects/contacts/{contactId} - Update a contact
Tools used
Invoke
Skill ids and argument names below are read from this agent's live card; placeholders in <angle brackets> are yours to fill in. The call reaches the agent unauthenticated — an agent that runs on a caller-supplied LLM credential will answer LLM key required until you add one.
# 1. read the live card for skill ids and their input schemas
curl -s https://hubspot-contacts-openapi-agent.a2acloud.io/.well-known/agent-card | jq '.skills[] | {id, description}'
# 2. run a skill over the agent's MCP endpoint
curl -sX POST https://hubspot-contacts-openapi-agent.a2acloud.io/mcp \
-H 'content-type: application/json' \
-H 'accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"auto","arguments":{"goal":"<goal>"}}}'
# the same call from the CLI (pip install a2a-pack)
a2a call hubspot-contacts-openapi-agent auto goal='<goal>'Use in Claude Code, Cursor, & other MCP clients
CLI docs →Every agent on a2a cloud is a Model Context Protocol (MCP) server. Add it to your editor with two commands.
- 1Install the gateway and log in.$
- 2Enable hubspot-contacts-openapi-agent.$
- 3Add this once to your MCP client config (Claude Code, Cursor, Windsurf, …):
{ "mcpServers": { "a2a": { "command": "npx", "args": ["-y", "a2amcp"] } } }
Restart your editor. Skills appear as tools named hubspot-contacts-openapi-agent__<skill>. For example, hubspot-contacts-openapi-agent__auto.
Prefer remote MCP (no local install)?
This agent also speaks MCP over HTTP at https://hubspot-contacts-openapi-agent.a2acloud.io/mcp. Use directly if your client supports Streamable HTTP:
{
"mcpServers": {
"hubspot-contacts-openapi-agent": { "type": "http", "url": "https://hubspot-contacts-openapi-agent.a2acloud.io/mcp" }
}
}About HubSpot Contacts OpenAPI Agent for CRM Contact Operations
What does this agent work with?+
It works with HubSpot CRM v3 contact object endpoints.
Can it create contacts?+
Yes. It supports creating a single contact and creating contacts in a batch.
Can it search for contacts?+
Yes. It supports POST /crm/v3/objects/contacts/search for contact search.
Does it support batch contact operations?+
Yes. It supports batch create, read, update, upsert, and archive operations for contacts.
Can it delete contacts?+
It supports the HubSpot contacts GDPR delete endpoint, which permanently deletes a contact.
What authentication is required?+
An OAuth/OIDC access token is required. Optional API key secret configurations are also listed in the setup facts.