hubspot
Kickside HubSpot — private-app-token connection provider for the HubSpot CRM, with split read/write agent tools over contacts, companies, deals, and tasks.
BUSL-1.1 358 downloads
Updated 3 minutes ago Repository
kicksidehubspotconnectioncrm
Run
wippy run kickside/hubspotKickside HubSpot
Private-app-token connection provider for the HubSpot CRM.
- Connection — a stored private-app access token (
kickside.connection:connectionbinding, generic credential form).test_connectionverifies the token against the HubSpot account-info API;discover_resourceslists the supported CRM object types. - Transport — a thin REST client over
https://api.hubapi.com(Bearer token):crm/v3/objects(list/get/search/create/update/archive),crm/v3/owners,crm/v3/properties(schema), andcrm/v4associations. The client honors 429 retry windows, decodes 200/201/204 honestly, and builds incremental search bodies with the configured object watermark property>= watermark. - Source ports — pull contacts, companies, deals, and tasks as raw HubSpot
records with normalized provenance (
external_source,external_id,external_version) and a backfill-to-live cursor. - Sink port — writes raw HubSpot properties for contact/company/deal upsert and task-backed activity logs. Mapping is declared config for the mapping artifact; the provider does not transform canonical fields on write.
- Config — per-object enabled/direction,
watermark_property, property selection, and editablehubspot_property -> canonical fieldmap data seeded from production GTM/ICP/NPS property names. Defaults: contacts uselastmodifieddate; companies, deals, and tasks usehs_lastmodifieddate. Setall_properties: true(or select["*"]for one object) for a portal schema mirror. The source discovers every readable property and hydrates records with bounded batch reads. - Reader trait (
HubSpot Reader) —HubSpotRead: list, get, and search contacts / companies / deals / tasks, plus owners and paged property schemas. - Writer trait (
HubSpot Writer) —HubSpotWrite: create, update, archive objects and create associations. Gate it behind the inbox for suggest-only flows.
Read and write are separate traits/tools so an agent can be granted suggest-only (Reader) or write-through (Reader + Writer) access. Sync routines / polling are module-owned data streams or source-syncs that use these traits/tools; this provider only owns the connection and transport.