The conversation happened somewhere else
Most HubSpot records go stale for a dull reason. The conversation took place in LinkedIn messages, or in a Gmail thread that never got logged, or on a call whose notes ended up in a Google Doc, and copying it over is five minutes nobody has at six in the evening. dassi does the copying from the tab where the conversation is. It reads the thread or the notes, finds the contact in HubSpot, and drafts whatever should change for you to check.
Nothing gets installed on the HubSpot side and there’s no token for an admin to approve, because dassi uses HubSpot the way you do, in your browser and signed in as you, which also means it’s limited to what your own user permissions allow. HubSpot’s Gmail and Outlook extension already logs email well, and if you use it you should keep it. Where dassi earns its place is the stuff that extension never sees, like a LinkedIn thread or the notes from a phone call.
Example: right after a discovery call
Your notes from a call are sitting in a Google Doc. You tell dassi “log this call to HubSpot,” and roughly this follows:
- It reads the doc and pulls out who was on the call, what they asked about, any budget or timing they mentioned, and the next step you agreed.
- It searches HubSpot for the contact by email, then by name and company. Two plausible matches means it stops and asks you which one.
- It drafts a call note on the contact and the associated deal, a follow-up task dated for the day you agreed, and a proposed stage change from discovery to proposal.
- All three show up for review before anything is saved. Maybe you keep the note and the task and reject the stage change because it’s early.
- It saves what you approved and tells you what it left alone.
After the first time you can save this as a workflow, and later calls reuse the same steps. It works the same way when the source is a LinkedIn thread or an email reply instead of a doc.
What waits for your approval
By default, every record change. Notes, tasks, lifecycle stage, deal stage, owner, and anything that would overwrite a field that already holds a value all wait for you. You can loosen that for low-stakes writes like adding a note. dassi won’t delete or merge records unless you asked for that exact thing, and when a required property blocks a save it stops and shows you the error instead of guessing a value to get past it.
We go back and forth on whether deal-stage changes should ever skip approval. Our default says no. Some teams will find that fussy after a month, and we’re fine with them changing it.
Limits worth knowing before you start
This is built for the daily trickle, the dozen or so conversations a week that belong in the CRM and somehow aren’t there. Migrating 20,000 contacts is a job for HubSpot’s own import tool, which will be much faster than anything that works page by page.
Every record it reads is page content sent to the AI provider you chose (through dassi’s relay if you use included credits), so think a little about which records you point it at. If HubSpot signs you out, dassi signs back in with whatever Chrome’s password manager autofills and you handle the 2FA prompt. Scheduled runs, such as a Friday list of deals with no activity in two weeks, need your browser open when they’re due.
The LinkedIn side of this lives on the LinkedIn page and in LinkedIn message to CRM. New contacts usually arrive through lead list building or LinkedIn and Reddit pipeline operations, and Gmail inbox triage catches replies that should end up here. The Salesforce version of this page exists too, for the other half of the CRM world.