HubSpot CRM
Connect HubSpot from Settings → CRM, authorize Kasbly, then enable the sync you need. Kasbly creates and verifies its CRM properties as part of the OAuth connect flow. A portal is marked connected and ready to sync only after that setup succeeds.
Inbound changes, deletes, and merges
Section titled “Inbound changes, deletes, and merges”A HubSpot app webhook subscription delivers inbound changes in real time. It is configured on the Kasbly HubSpot app, so contact support to enable it for your portal.
Without that subscription, Kasbly still imports ordinary changes on the hourly pull and whenever you choose Sync Now. Before each of those two-way syncs, Kasbly checks the HubSpot contacts and deals already linked to Kasbly (only contacts for a Contacts only run, only deals for a Deals only run). If HubSpot no longer returns one because it was deleted or merged, Kasbly retires the local link before outbound updates can recreate it. This fallback can take up to the next hourly sync; use the app subscription when you need immediate updates.
Contact matching in two-way sync
Section titled “Contact matching in two-way sync”Kasbly matches a returning HubSpot contact by its HubSpot ID first, then phone, then email. This keeps the same Kasbly customer when a phone number changes. New contacts still need a phone number because Kasbly conversations use a messaging address. An email-only HubSpot contact is imported only when its email matches an existing Kasbly customer; otherwise Sync History explains how to fix it.
Properties used by Kasbly
Section titled “Properties used by Kasbly”Kasbly creates and owns these HubSpot properties:
- Deals —
kasbly_conversation_id: single-line text and unique. It is the stable identifier Kasbly uses to create or update the same deal for a conversation. - Contacts —
kasbly_lead_score: number. It stores Kasbly’s lead score when available. - Contacts —
kasbly_tags: single-line text. It stores Kasbly tags as a comma-separated value when available.
If your HubSpot permissions prevent property creation, reconnect using an
administrator account. An administrator can also create the properties
manually with the exact internal names above; kasbly_conversation_id must be
marked unique.
n8n CRM Lead Sync
Section titled “n8n CRM Lead Sync”The gallery CRM Lead Sync template upserts HubSpot deals by
kasbly_conversation_id (the latest conversation on the
LEAD_SCORING_CHANGED webhook) and only runs when new_score crosses the
tenant hot-lead threshold. Do not install it while native HubSpot sync is
enabled — Settings → CRM already writes the same unique deal property, and a
second writer creates duplicates that two-way sync cannot round-trip.
Reconnecting an existing portal
Section titled “Reconnecting an existing portal”Reconnecting is safe. Kasbly treats properties that already exist as ready and does not create duplicates. If deal sync reports that the conversation ID property is missing or not unique, reconnect HubSpot to retry setup before running a full sync again.
