원클릭으로
hubspot
Read or update CRM contacts, deals, companies, and tickets in HubSpot
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Read or update CRM contacts, deals, companies, and tickets in HubSpot
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
| name | hubspot |
| display_name | HubSpot |
| description | Read or update CRM contacts, deals, companies, and tickets in HubSpot |
| auth_type | oauth2 |
| category | crm |
When the user wants their voice agent to interact with HubSpot CRM during a phone call. Common triggers:
Check connection via check_connection("hubspot").
If not connected: Use secret("hubspot") in tool scripts. The system
will automatically emit the correct action card based on the platform
configuration. Do NOT emit action cards manually.
Discover properties (HubSpot supports auto-discovery):
api_call("hubspot", "GET", "/crm/v3/properties/contacts") → list contact propertiesapi_call("hubspot", "GET", "/crm/v3/properties/deals") → list deal propertiesUse discovered property names in tool config.
If discovery fails, use standard HubSpot properties (firstname, lastname,
email, phone, company).
{
"name": "hubspot.create_contact",
"description": "Create a new CRM contact for the caller",
"params": [
{"name": "firstname", "description": "Caller's first name", "type": "string", "required": true},
{"name": "lastname", "description": "Caller's last name", "type": "string", "required": false},
{"name": "phone", "description": "Caller's phone number", "type": "string", "required": true},
{"name": "email", "description": "Caller's email address", "type": "string", "required": false}
],
"script": "let key = secret('hubspot');\nlet props = {firstname: firstname, phone: phone};\nif (lastname) props.lastname = lastname;\nif (email) props.email = email;\nlet resp = http_post_h('https://api.hubapi.com/crm/v3/objects/contacts', {properties: props}, {'Authorization': 'Bearer ' + key, 'Content-Type': 'application/json'});\nif (resp.status >= 200 && resp.status < 300) { return 'Contact created.'; }\nthrow new Error(`HubSpot ${resp.status}: ${resp.body}`);",
"side_effect": true
}
{
"name": "hubspot.search_contact",
"description": "Look up a contact in HubSpot by phone number",
"params": [
{"name": "phone", "description": "Phone number to search for", "type": "string", "required": true}
],
"script": "let key = secret('hubspot');\nlet body = {filterGroups: [{filters: [{value: phone, propertyName: 'phone', operator: 'EQ'}]}], properties: ['firstname','lastname','email','phone']};\nlet resp = http_post_h('https://api.hubapi.com/crm/v3/objects/contacts/search', body, {'Authorization': 'Bearer ' + key, 'Content-Type': 'application/json'});\nif (resp.status >= 200 && resp.status < 300) { let data = JSON.parse(resp.body); if (data.total === 0) { return 'No contact found.'; } return JSON.stringify(data.results[0].properties); }\nthrow new Error(`HubSpot ${resp.status}: ${resp.body}`);",
"side_effect": false
}
secret("hubspot") for credentialsapi_call to discover property names before hard-coding themthrow using resp.status/resp.body{"properties": {...}} for create/update requestsRead or update contacts, opportunities, notes, and conversations in GoHighLevel
Save or retrieve records from Airtable bases
Send emails, SMS, or manage contacts via Brevo (formerly Sendinblue)
Manage bookings, availability, and event types in Cal.com
Check availability, create scheduling links, or list upcoming events in Calendly
Create or update tasks and lists in ClickUp