A CRM is very good at the half of this you already do

Teams running sales in HubSpot whose actual delivery — installs, onboardings, casework, production — currently lives in a spreadsheet nobody has connected to the deals that created it.

  • Contacts, companies and deals arrive as three separate tables, ready to link
  • Model the delivery side in RowFold and link it to the deal that caused it
  • An automation can create a HubSpot contact when something is captured elsewhere
  • Report across sales and delivery in one place, without exporting either
  • Importing again updates the same tables, hourly or daily if you like — it is never a two-way sync
  • HubSpot stays the CRM. This is the half that happens afterwards
Start free 30 days free · no credit card
WHAT IT DOES

Exactly what connecting HubSpot gives you

Brings data in

Pull HubSpot into RowFold tables you own — filter them, report on them, link them to everything else in the workspace.

And it stays current: importing again updates the same tables, adding new records and updating changed ones, so links from your other tables hold. Keep in sync does that for you hourly or daily.

Writes back

Automation steps that act on HubSpot when something happens in RowFold:

  • Create a HubSpot contact Adds a contact to the CRM. Fails if the email is already on a contact. Returns the new contact's HubSpot id, which the step can save onto the record or pass to the next step.

What it doesn't do: It has no say in what a booking page offers. An import only reads: nothing is written back to HubSpot, a record deleted there stays here, and a sync runs hourly at most rather than the moment something changes. Anything else you have read about HubSpot and RowFold, this page is the authority: it is generated from the connector's own code.

HOW TO DO IT

The jobs people connect HubSpot for

I want to bring my contacts, companies and deals across

The three come in as three separate tables, one per object, rather than one flattened export. HubSpot's own associations don't travel: a contact carries its company as text, which one conversion turns into a real link, and a deal carries neither its company nor its contacts. What you do next matters more than the import: the point is to build your delivery side against these records, not to admire a copy of your CRM.

  1. Connect HubSpot under Manage workspace, then Integrations Any plan whose account can authorise an app will do, including the free tier. RowFold asks to read contacts, companies and deals, and to create a contact.
  2. Press Import data and choose what to bring Each object is offered separately. Import runs in the background, so a large CRM does not hold the page open. Bring companies across before contacts if you mean to link them, so the companies are there to match against.
  3. Turn the contacts' Company column into a link In the field editor, Convert to Relation… on Company, pointing at HubSpot companies. Every contact whose company name matches is linked, anything matching nothing (or matching two companies) keeps its text, and later imports go on filling the column that way for the contacts they add. Deals have no company or contact column, so there is nothing to convert on them.
  4. Treat the imported tables as your spine A later import updates them in place and leaves columns you add alone, but delivery is a thing of its own: track it on a table that links to them, where it gets its own statuses, owners and dates.
  5. Build the delivery tables you actually needed and link them to the deals Installs, onboardings, casework, site visits. Each one pointing back at the deal that caused it is what lets you report across the seam that neither system can see on its own.

You'll know it worked: Open a contact and look at Company. Straight after the import it is text; after the conversion step it is a chip linking to that company, and a contact whose company name matches nothing keeps its text for you to fix. Deals show no company or contact column at all, which is the import working as described rather than a link that failed.

I want a website enquiry to become a HubSpot contact automatically

Anything captured outside the CRM gets retyped into it, which means it arrives late or not at all. This closes that loop at the moment of capture. The one thing to plan for is duplicates, because HubSpot refuses them rather than merging.

  1. Capture the enquiry into a RowFold table first A form, an inbound email address or a webhook. Writing it down on your side first means a HubSpot outage costs you a sync rather than the enquiry.
  2. Add a condition that skips people you already have The create step fails when the email is already on a contact. That refusal is the safe direction, but it is still a failed run in your log every time an existing customer fills the form in.
  3. Add the Create a HubSpot contact step and map email, name and company Email is the one that matters, because it is what HubSpot deduplicates on and what every later lookup uses.
  4. Save the contact's HubSpot id on the enquiry Choose a Text field under Save the result to. The id is how HubSpot refers to the new contact, so a condition that the field is empty stops a second attempt, and later automations can tell this enquiry already reached the CRM.
  5. Notify whoever has to act on it in the same automation A contact created in a CRM nobody is watching is not a lead. Post it to the sales channel or assign the record, so the automation ends with a person rather than a row.

You'll know it worked: Submit a test enquiry with an address you know is not in HubSpot, then one you know is. The first should appear in the CRM; the second should show a clean refusal in the run log rather than a duplicate contact.

WHAT IT FIXES

The four things that actually go wrong

A CRM is built around the pipeline and loses interest after Closed Won, which is precisely where most of the work starts. The onboarding, the install schedule, the snagging list and the renewal date end up somewhere else entirely.

The deals come in as records you can link to anything. Build the delivery side as tables of your own — jobs, milestones, site visits — each pointing back at the deal that caused it, so the commercial story and the operational one are finally the same story.

Modelling delivery inside the CRM means custom objects, which are a pricing tier decision as much as a data one, and are then awkward for the people who do the work rather than sell it.

Model it in RowFold instead, with ordinary tables, relations and rollups, and leave HubSpot doing the thing it is genuinely best at. The link between the two is a relation, not a migration.

Reporting across the seam is impossible, so nobody does it. Revenue per install hour, margin by account manager, which deal type generates the most support afterwards — all of it needs both halves at once, and the halves are in different companies' databases.

Once both are tables in one workspace, those become ordinary questions. Group deals by owner and total the delivery hours against them; nothing has to be exported and reconciled in a spreadsheet first.

Anything captured outside the CRM has to be retyped into it, so it either arrives late or does not arrive. A form filled in at a trade stand becomes a contact when somebody gets round to it.

The create-contact step closes that loop as part of the thing that already happened. A form submission becomes a record in RowFold and a contact in HubSpot in the same moment, with nobody copying an email address between two tabs.

One automation worth building

When a form submission arrives from the website…

  1. Check the enquiry is not from an existing account, so the CRM is not handed a duplicate
  2. Create a HubSpot contact from the email, name and company on the record
  3. Notify the sales channel in Slack with the enquiry and who it has been assigned to
QUESTIONS

Before you start

Is this a two-way sync?

No, and it is worth being blunt about it. Data comes in when you import, and one specific thing goes out: creating a contact from an automation. Edits made in RowFold do not flow back to HubSpot, and edits made in HubSpot do not appear in RowFold until the next import, which Keep in sync can run hourly or daily. Treat HubSpot as the source for contact and deal facts, and RowFold as the source for everything you build around them.

Am I supposed to replace HubSpot with this?

No. If your problem is the pipeline, sequences and marketing, HubSpot is better at that than a general workspace will be. This connector exists because the other half — what your team actually delivers after somebody says yes — is usually in a spreadsheet, and that is a problem RowFold is good at.

What happens if the contact already exists?

The step fails for that record rather than creating a duplicate or quietly overwriting the existing contact, and the failure is visible in the automation's run log. That is the safer direction: a CRM full of near-identical contacts is a much more expensive problem than an automation you can see refusing. Put a condition in front of it if duplicates are expected.

Do custom properties come across?

The import brings the objects and their fields as tables you own. Where something does not map cleanly, the answer in RowFold is usually not to force it into the imported table but to put it on the table next door — the one modelling your delivery — where you control the shape and are not constrained by anybody's object model.

Which HubSpot plan do I need?

Any plan whose account can authorise an app, including the free tier. The permissions requested are read access to contacts, companies and deals, plus the ability to create a contact — none of it gated behind a paid HubSpot feature. If your account can install an app at all, it can connect this one.

Can I import again to pick up CRM changes?

Yes. Importing again updates the tables the first import made, matched on HubSpot's record IDs: new contacts, companies and deals are added, changed ones updated, and the links your own tables made to them stay put. Keep in sync does the same hourly or daily. Nothing goes back to HubSpot, so a value edited here in a column the import fills is replaced by HubSpot's on the next run. Keep your own facts in columns or tables you add, which the import never touches.

Do HubSpot's associations come across?

No. Each object is imported on its own with the properties HubSpot returns for it, so the contact-to-company and deal-to-company associations are not rebuilt as links here. A contact does carry its company NAME as text, and Convert to Relation… turns that column into real links to the imported companies in one pass, after which later imports keep filling it for the contacts they add. A deal carries neither its company nor its contacts, so deals are linked by the tables you build around them — the install, the onboarding, the casework that points back at the deal — rather than the other way round.

Describe yours and watch it build

There is no template to wait for. Type a sentence about what you run and RowFold assembles the tables, links, views and dashboard around it — then you change whatever does not fit.

Start free Free for 30 days. Then $29/month per editor, with unlimited free read-only viewers.