# Hubspot > Gestiona contactos, empresas, deals y contenido CMS de HubSpot CRM vía API: crear, buscar, asociar y actualizar registros y páginas de tu pipeline de ventas. Fuente: https://skillsagentes.com/skills/openclaudia/openclaudia-skills/hubspot Markdown: https://skillsagentes.com/skills/openclaudia/openclaudia-skills/hubspot.md Repositorio: https://github.com/OpenClaudia/openclaudia-skills Autor: OpenClaudia Licencia: MIT Actualizado: hace 7 meses Coste de contexto: 74 tok instalada, 1.8k tok al activarse, 1.8k tok con todos los archivos del bundle Bundle: 1 archivo, 7 KB Permisos que pide: ninguno declarado ## Instalación Un skill son archivos markdown: los mismos archivos valen para cualquier agente y lo único que cambia es el directorio de destino, es decir la bandera `--agent`. Añade `-g` para instalarlo en todos los proyectos de la máquina. ```bash # Claude Code npx -y skills add OpenClaudia/openclaudia-skills --skill hubspot --agent claude-code # Cursor npx -y skills add OpenClaudia/openclaudia-skills --skill hubspot --agent cursor # Codex npx -y skills add OpenClaudia/openclaudia-skills --skill hubspot --agent codex # Gemini CLI npx -y skills add OpenClaudia/openclaudia-skills --skill hubspot --agent gemini # Windsurf npx -y skills add OpenClaudia/openclaudia-skills --skill hubspot --agent windsurf # Cline npx -y skills add OpenClaudia/openclaudia-skills --skill hubspot --agent cline ``` ## Qué hace - Gestiona contactos, empresas y deals de HubSpot vía API (crear, listar, buscar, actualizar) - Crea asociaciones entre contactos, empresas y deals - Lista propiedades, owners y páginas CMS (site pages, landing pages) - Genera reportes de pipeline agrupando deals por etapa y sumando montos - Detecta deals sin actividad o con fecha de cierre vencida ## Cuándo usarla - El usuario dice "add contact to HubSpot", "create deal", "search CRM" o "HubSpot contacts" - Se pide actualizar la etapa de un deal ("update deal stage") - Se solicita un reporte de CRM o del pipeline de ventas - Se pregunta por gestión de datos de CRM o contenido de HubSpot ("HubSpot pages") ## Qué la activa - "Añade este contacto a HubSpot con su email y empresa" - "Crea un deal nuevo en el pipeline por 50000 dólares" - "Busca contactos cuyo email contenga example.com" - "Actualiza la etapa del deal 12345 a closedwon" - "Dame un reporte del pipeline agrupado por etapa" ## Antes de instalar - Requiere la variable HUBSPOT_ACCESS_TOKEN (token de una Private App de HubSpot) en el entorno o en ~/.claude/.env.global, con los scopes crm.objects.contacts, crm.objects.companies, crm.objects.deals y content. - Necesita en el PATH: curl - Variables de entorno: HUBSPOT_ACCESS_TOKEN - makes network requests - needs API credentials ## Archivos - SKILL.md — 7 KB ## SKILL.md Reproducido tal cual desde OpenClaudia/openclaudia-skills bajo MIT. Esta sección es el documento original y está en inglés. # HubSpot CRM & CMS Skill You are a HubSpot CRM and CMS automation expert. Use the HubSpot API to manage contacts, companies, deals, owners, associations, properties, CMS pages, and files. ## Prerequisites This skill requires `HUBSPOT_ACCESS_TOKEN` (Private App token). Check for it in environment variables or `~/.claude/.env.global`. If not found, inform the user: ``` This skill requires a HubSpot Private App access token. Set it via: export HUBSPOT_ACCESS_TOKEN=your_token_here Or add it to ~/.claude/.env.global Create a Private App at: Settings > Integrations > Private Apps Required scopes: crm.objects.contacts, crm.objects.companies, crm.objects.deals, content ``` ## API Reference Base URL: `https://api.hubapi.com` Auth header: `Authorization: Bearer ${HUBSPOT_ACCESS_TOKEN}` Rate limit: 100 requests per 10 seconds for private apps. ### Contacts **List contacts:** ```bash curl -s "https://api.hubapi.com/crm/v3/objects/contacts?limit=10&properties=firstname,lastname,email,company,phone" \ -H "Authorization: Bearer ${HUBSPOT_ACCESS_TOKEN}" ``` **Search contacts:** ```bash curl -s -X POST "https://api.hubapi.com/crm/v3/objects/contacts/search" \ -H "Authorization: Bearer ${HUBSPOT_ACCESS_TOKEN}" \ -H "Content-Type: application/json" \ -d '{ "filterGroups": [{ "filters": [{ "propertyName": "email", "operator": "CONTAINS_TOKEN", "value": "example.com" }] }], "properties": ["firstname", "lastname", "email", "company"], "limit": 10 }' ``` **Create contact:** ```bash curl -s -X POST "https://api.hubapi.com/crm/v3/objects/contacts" \ -H "Authorization: Bearer ${HUBSPOT_ACCESS_TOKEN}" \ -H "Content-Type: application/json" \ -d '{ "properties": { "firstname": "John", "lastname": "Doe", "email": "john@example.com", "company": "Acme Inc", "phone": "+1234567890" } }' ``` **Get contact by email:** ```bash curl -s -X POST "https://api.hubapi.com/crm/v3/objects/contacts/search" \ -H "Authorization: Bearer ${HUBSPOT_ACCESS_TOKEN}" \ -H "Content-Type: application/json" \ -d '{ "filterGroups": [{ "filters": [{ "propertyName": "email", "operator": "EQ", "value": "john@example.com" }] }], "properties": ["firstname", "lastname", "email", "company", "phone", "lifecyclestage"] }' ``` ### Companies **List companies:** ```bash curl -s "https://api.hubapi.com/crm/v3/objects/companies?limit=10&properties=name,domain,industry,numberofemployees" \ -H "Authorization: Bearer ${HUBSPOT_ACCESS_TOKEN}" ``` **Search companies by domain:** ```bash curl -s -X POST "https://api.hubapi.com/crm/v3/objects/companies/search" \ -H "Authorization: Bearer ${HUBSPOT_ACCESS_TOKEN}" \ -H "Content-Type: application/json" \ -d '{ "filterGroups": [{ "filters": [{ "propertyName": "domain", "operator": "EQ", "value": "example.com" }] }], "properties": ["name", "domain", "industry", "numberofemployees", "annualrevenue"] }' ``` ### Deals **Create deal:** ```bash curl -s -X POST "https://api.hubapi.com/crm/v3/objects/deals" \ -H "Authorization: Bearer ${HUBSPOT_ACCESS_TOKEN}" \ -H "Content-Type: application/json" \ -d '{ "properties": { "dealname": "New Enterprise Deal", "dealstage": "appointmentscheduled", "pipeline": "default", "amount": "50000", "closedate": "2026-06-30" } }' ``` **List deals:** ```bash curl -s "https://api.hubapi.com/crm/v3/objects/deals?limit=10&properties=dealname,dealstage,amount,closedate,pipeline" \ -H "Authorization: Bearer ${HUBSPOT_ACCESS_TOKEN}" ``` **Update deal stage:** ```bash curl -s -X PATCH "https://api.hubapi.com/crm/v3/objects/deals/{dealId}" \ -H "Authorization: Bearer ${HUBSPOT_ACCESS_TOKEN}" \ -H "Content-Type: application/json" \ -d '{"properties": {"dealstage": "closedwon"}}' ``` ### Owners **List owners (sales reps):** ```bash curl -s "https://api.hubapi.com/crm/v3/owners/" \ -H "Authorization: Bearer ${HUBSPOT_ACCESS_TOKEN}" ``` ### Associations Associate contacts with companies or deals: ```bash # Associate deal with contact (type 3) curl -s -X PUT "https://api.hubapi.com/crm/v3/objects/deals/{dealId}/associations/contacts/{contactId}/3" \ -H "Authorization: Bearer ${HUBSPOT_ACCESS_TOKEN}" # Associate deal with company (type 5) curl -s -X PUT "https://api.hubapi.com/crm/v3/objects/deals/{dealId}/associations/companies/{companyId}/5" \ -H "Authorization: Bearer ${HUBSPOT_ACCESS_TOKEN}" # Associate contact with company (type 1) curl -s -X PUT "https://api.hubapi.com/crm/v3/objects/contacts/{contactId}/associations/companies/{companyId}/1" \ -H "Authorization: Bearer ${HUBSPOT_ACCESS_TOKEN}" ``` **Get associated contacts for a deal:** ```bash curl -s "https://api.hubapi.com/crm/v3/objects/deals/{dealId}/associations/contacts" \ -H "Authorization: Bearer ${HUBSPOT_ACCESS_TOKEN}" ``` ### Properties **List all contact properties:** ```bash curl -s "https://api.hubapi.com/crm/v3/properties/contacts" \ -H "Authorization: Bearer ${HUBSPOT_ACCESS_TOKEN}" ``` ### CMS Pages **List site pages:** ```bash curl -s "https://api.hubapi.com/cms/v3/pages/site-pages?limit=10" \ -H "Authorization: Bearer ${HUBSPOT_ACCESS_TOKEN}" ``` **List landing pages:** ```bash curl -s "https://api.hubapi.com/cms/v3/pages/landing-pages?limit=10" \ -H "Authorization: Bearer ${HUBSPOT_ACCESS_TOKEN}" ``` ### Search Operators | Operator | Description | |----------|-------------| | `EQ` | Equal to | | `NEQ` | Not equal to | | `LT` / `LTE` | Less than / Less than or equal | | `GT` / `GTE` | Greater than / Greater than or equal | | `CONTAINS_TOKEN` | Contains word | | `NOT_CONTAINS_TOKEN` | Does not contain word | | `HAS_PROPERTY` | Property exists | | `NOT_HAS_PROPERTY` | Property does not exist | ### Pagination All list endpoints support pagination via the `after` parameter: ```bash curl -s "https://api.hubapi.com/crm/v3/objects/contacts?limit=100&after={next_cursor}" \ -H "Authorization: Bearer ${HUBSPOT_ACCESS_TOKEN}" ``` The `after` value comes from `paging.next.after` in the response. ## Common Workflows ### Pipeline Report 1. List all deals with `dealstage`, `amount`, `closedate` 2. Group by stage 3. Sum amounts per stage 4. Present as pipeline summary table ### Contact Enrichment 1. Search contacts missing key properties (`NOT_HAS_PROPERTY`) 2. For each, check if company domain exists 3. Pull company data and update contact ### Deal Health Check 1. List deals in active stages 2. Flag deals with no activity in 14+ days 3. Flag deals past expected close date 4. Present prioritized action list ## Important Notes - Always use pagination for large datasets. Default limit is 10, max is 100. - HubSpot property names are lowercase with no spaces (e.g., `firstname`, `dealstage`, `closedate`). - Deal stages vary by pipeline. List pipeline stages via the Pipelines API if needed. - Rate limit: 100 requests per 10 seconds. Batch operations when possible. ## Dónde encaja - Categoría: [Bases de datos](https://skillsagentes.com/categorias/bases-de-datos.md) — Diseño de esquemas, migraciones y optimización de consultas. - Creador: [OpenClaudia](https://skillsagentes.com/creators/openclaudia.md) — 76 skills en el directorio - [Todas las skills](https://skillsagentes.com/skills.md) - [Ranking de instalaciones](https://skillsagentes.com/ranking.md) ## Otras skills del mismo repositorio - [Competitor Traffic Report](https://skillsagentes.com/skills/openclaudia/openclaudia-skills/competitor-traffic-report.md): Genera un informe HTML autocontenible de tráfico competitivo: visitas mensuales (SimilarWeb), tráfico orgánico y Domain Rating (Ahrefs), con gráficos ranked, tendencias y tabla de datos. - [Brand Dev](https://skillsagentes.com/skills/openclaudia/openclaudia-skills/brand-dev.md): Obtiene datos de marca (nombre, descripción, logos, industria) desde la API de brand.dev y guarda los logos localmente. - [Gsc Portfolio Audit](https://skillsagentes.com/skills/openclaudia/openclaudia-skills/gsc-portfolio-audit.md): Audita TODAS las propiedades de Google Search Console a la vez: ranking por clics e impresiones con deltas, y diff de keywords por sitio (nuevas, suben, bajan, perdidas, o bien rankeadas sin clics). - [Wechat Moments](https://skillsagentes.com/skills/openclaudia/openclaudia-skills/wechat-moments.md): Clasifica y resume el feed de WeChat Moments (朋友圈) del usuario para que los eventos reales y la información genuina destaquen sobre la promoción, ponderando según cuánto le escribe el usuario a cada autor. - [Podcast Edit](https://skillsagentes.com/skills/openclaudia/openclaudia-skills/podcast-edit.md): Edita audio o video de podcast: recorta charla previa/posterior, quita muletillas, corta silencios, mejora el audio y aplica el mismo corte a una versión en video. ## Skills relacionadas - [V3 Memory Unification](https://skillsagentes.com/skills/ruvnet/ruflo/v3-memory-unification.md): Unifica más de 6 sistemas de memoria en AgentDB con indexación HNSW para mejoras de búsqueda de 150x a 12.500x. Implementa el ADR-006 y el ADR-009. - [Lamindb](https://skillsagentes.com/skills/k-dense-ai/scientific-agent-skills/lamindb.md): Úsalo con LaminDB, el lakehouse de código abierto nativo en linaje para datasets y modelos biológicos: configuración, registro de artefactos, búsqueda, trazabilidad, validación, anotación con ontologías (Bionty) y almacenamiento. - [Google Cloud Solution Hybrid Search Alloydb](https://skillsagentes.com/skills/google/skills/google-cloud-solution-hybrid-search-alloydb.md): Descubre requisitos y genera guía de arquitectura, diseño y despliegue para búsqueda híbrida dinámica (semántica + por palabras clave), optimizada para AlloyDB en Google Cloud. - [Bigquery Basics](https://skillsagentes.com/skills/google/skills/bigquery-basics.md): Gestiona datasets, tablas y jobs en BigQuery. Úsalo cuando necesites interactuar con BigQuery, ejecutar consultas SQL, gestionar recursos o hacer ingesta y análisis básico de datos. - [Attach Db](https://skillsagentes.com/skills/duckdb/duckdb-skills/attach-db.md): Adjunta un archivo de base de datos DuckDB para usarlo con /duckdb-skills:query. Explora el esquema (tablas, columnas, conteos) y escribe un state file SQL para restaurar la sesión con duckdb -init. --- Skills Agentes · [Índice de páginas en markdown](https://skillsagentes.com/sitemap.md) · [Inicio](https://skillsagentes.com/index.md)