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 HUBSPOT_ACCESS_TOKEN="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={'HUBSPOT_ACCESS_TOKEN': os.environ['HUBSPOT_ACCESS_TOKEN']},
)
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/
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
matimo_hubspot-0.1.2.tar.gz
(8.5 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file matimo_hubspot-0.1.2.tar.gz.
File metadata
- Download URL: matimo_hubspot-0.1.2.tar.gz
- Upload date:
- Size: 8.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9e3c0787585cab9e1803ba832ee4105d215ddde2d13f21803a71d7776a8f75d4
|
|
| MD5 |
7bb1eec6c8c68ebb9b0aaa1a22615854
|
|
| BLAKE2b-256 |
9337df84c7ef146147905162738e9793ca4945b865c969d3eeaf9a3ae35c4aab
|
File details
Details for the file matimo_hubspot-0.1.2-py3-none-any.whl.
File metadata
- Download URL: matimo_hubspot-0.1.2-py3-none-any.whl
- Upload date:
- Size: 41.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e0952b3cb8306d0e5a1af95d5ca78cf498cf2cb4a96b4f47c2939bcf77e0f08d
|
|
| MD5 |
119fae7353c43fdc4d3c4cbca60a881a
|
|
| BLAKE2b-256 |
dcf4f0a3aff75c2f8e97ef24c6df14f3a9a1665c66330475e213a0face96cc60
|