Skip to main content

matimo-hubspot

HubSpot CRM tools for Matimo - manage contacts, companies, deals, tickets, and more.

PyPI Docs


Installation

pip install matimo matimo-hubspot

Available Tools (50 Total)

Full CRUD coverage across 10 HubSpot object types:

Object Create Get List Update Delete
Contacts ✅ ✅ ✅ ✅ ✅
Companies ✅ ✅ ✅ ✅ ✅
Deals ✅ ✅ ✅ ✅ ✅
Tickets ✅ ✅ ✅ ✅ ✅
Leads ✅ ✅ ✅ ✅ ✅
Products ✅ ✅ ✅ ✅ ✅
Line Items ✅ ✅ ✅ ✅ ✅
Orders ✅ ✅ ✅ ✅ ✅
Invoices ✅ ✅ ✅ ✅ ✅
Custom Objects ✅ ✅ ✅ ✅ ✅

Tool naming convention: hubspot-{verb}-{object}

Examples: hubspot-create-contact, hubspot-list-deals, hubspot-update-ticket, hubspot-delete-company


Quick Start

import asyncio
import os
from matimo import Matimo
from matimo_hubspot import get_tools_path

async def main():
    matimo = await Matimo.init(get_tools_path())

    # Create a contact
    contact = await matimo.execute('hubspot-create-contact', {
        'firstname': 'Jane',
        'lastname': 'Smith',
        'email': 'jane@example.com',
        'company': 'Acme Corp',
    })

    # List all deals
    deals = await matimo.execute('hubspot-list-deals', {
        'limit': 20,
    })

    # Update a ticket
    await matimo.execute('hubspot-update-ticket', {
        'ticket_id': '12345',
        'subject': 'Updated subject',
        'hs_pipeline_stage': '4',
    })

asyncio.run(main())

Authentication

export MATIMO_HUBSPOT_API_KEY="pat-na1-your-private-app-token"

Setting Up a HubSpot Private App

  1. In HubSpot, go to Settings → Integrations → Private Apps
  2. Click Create a private app
  3. Under Scopes, select the CRM scopes you need (see table below)
  4. Copy the Access Token

Required Scopes by Object

Objects Scopes
Contacts crm.objects.contacts.read, crm.objects.contacts.write
Companies crm.objects.companies.read, crm.objects.companies.write
Deals crm.objects.deals.read, crm.objects.deals.write
Tickets tickets (read + write)
Custom Objects crm.objects.custom.read, crm.objects.custom.write

LangChain CRM Agent Example

from matimo import Matimo
from matimo_hubspot import get_tools_path
from matimo.integrations.langchain import convert_tools_to_langchain
from langchain_openai import ChatOpenAI
from langchain.agents import AgentExecutor, create_tool_calling_agent
from langchain_core.prompts import ChatPromptTemplate

matimo = await Matimo.init(get_tools_path())
lc_tools = convert_tools_to_langchain(
    matimo.list_tools(), matimo,
    credentials={'MATIMO_HUBSPOT_API_KEY': os.environ['MATIMO_HUBSPOT_API_KEY']},
)
llm = ChatOpenAI(model='gpt-4o-mini')
prompt = ChatPromptTemplate.from_messages([
    ('system', 'You are a CRM assistant.'),
    ('human', '{input}'),
    ('placeholder', '{agent_scratchpad}'),
])
agent = create_tool_calling_agent(llm, lc_tools, prompt)
executor = AgentExecutor(agent=agent, tools=lc_tools)
result = await executor.ainvoke({'input': 'Find all open deals and summarize pipeline status'})

Documentation


Links

Release files for matimo-hubspot 0.1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for matimo-hubspot 0.1.3
File Size Uploaded
matimo_hubspot-0.1.3.tar.gz 8.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for matimo-hubspot 0.1.3
File Interpreter ABI Platform
matimo_hubspot-0.1.3-py3-none-any.whl Python 3 none any Details

Total release size: 49.5 kB

Release files / matimo_hubspot-0.1.3.tar.gz

Download URL matimo_hubspot-0.1.3.tar.gz
Size 8.5 kB
Tags Source
SHA-256 checksum
How to use checksums
2d1a1e861369794659ae0508ce342553a29a81d3d6a343b8ae37a166b4c42929
BLAKE2b-256 checksum
How to use checksums
1de322fe0331a4efeb2698a95ffff8f2b92fac2a7fe0d894127f029d8d68a4cc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / matimo_hubspot-0.1.3-py3-none-any.whl

Download URL matimo_hubspot-0.1.3-py3-none-any.whl
Size 41.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
153d1099865cde74a6d90bac3bff76e7861c668850d6292c1e1001a852c29a7f
BLAKE2b-256 checksum
How to use checksums
b6590ade9538ae87ab232667400b4860038e74379eb09c0b186348f5bbea32ca
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release history Release notifications | RSS feed

This release

0.1.3 This release

2 release files

0.1.2

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page