matimo-hubspot
HubSpot CRM tools for Matimo - manage contacts, companies, deals, tickets, and more.
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
- In HubSpot, go to Settings → Integrations → Private Apps
- Click Create a private app
- Under Scopes, select the CRM scopes you need (see table below)
- 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
- PyPI: https://pypi.org/project/matimo-hubspot/
- GitHub: https://github.com/tallclub/matimo
- HubSpot Developer Docs: https://developers.hubspot.com/
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)
| File | Size | Uploaded | |
|---|---|---|---|
| matimo_hubspot-0.1.3.tar.gz | 8.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|