Keep the CRM for selling, and run the work after the sale here

Teams whose sales live in HubSpot or Salesforce and whose onboarding, delivery or account work happens after the deal closes, often in spreadsheets, by people who don't need a CRM seat.

  • HubSpot: import contacts, companies and deals, and create contacts from an automation
  • Salesforce: import accounts, contacts and opportunities, and create contacts from an automation
  • Each new CRM contact's id can be saved back onto the RowFold record
  • Up to 10,000 records a table per import
  • Importing again updates the same tables, and Keep in sync runs it hourly or daily
Start free 30 days free · no credit card
THE OPTIONS

CRMs, side by side

HubSpot

Import contacts, companies and deals — and push new contacts back into the CRM.

Import Sync Actions
  • Create a HubSpot contactAdds a contact to the CRM. Fails if the email is already on a contact. Returns the new contact's HubSpot id.
Everything HubSpot does

Salesforce

Import accounts, contacts and opportunities, and create a Salesforce contact from an automation.

Import Sync Actions
  • Create a Salesforce contactAdds a new contact to Salesforce. Last name is the only field Salesforce insists on. Returns the new contact's Salesforce id.
HOW TO DO IT

How to set it up

I want Salesforce accounts, contacts and opportunities linked the way they are in Salesforce

The import brings each Salesforce object in as its own table, with the account named rather than linked. Import all three, then turn the account names into links, and the structure comes back.

  1. Connect Salesforce under Manage workspace, then Integrations Sign in as a Salesforce user who can see the records you want. The import reads with that user's permissions.
  2. Import Accounts, Contacts and Opportunities Each becomes its own table, named Salesforce accounts, Salesforce contacts and Salesforce opportunities, each with a Salesforce ID column.
  3. Use Convert to Relation… on the Account field of Salesforce contacts Point it at Salesforce accounts. Each contact is linked to the account with that name, and one that doesn't match keeps the text for you to check. Later imports link the contacts they add the same way, by account name; a contact whose account is missing, or whose name two accounts share, arrives unlinked and the run says so.
  4. Do the same on Salesforce opportunities Every account then lists its contacts and its opportunities, the way Salesforce shows them.

You'll know it worked: Open one account and compare its contacts and opportunities with the same account in Salesforce. Accounts that share a name are the ones to check by hand.

I want a lead met outside the CRM added to it straight away

Capture the lead in RowFold, from a form or a quick record on a phone, and let an automation create the contact in the CRM once it is worth having there.

  1. Give the leads table a Text field called CRM id It will hold the id of the contact the automation creates, which is both a link back to the CRM and the guard against duplicates.
  2. Create an automation that runs when A record matches conditions, with Status is Qualified and CRM id is empty Only qualified leads reach the CRM, and a lead that already has an id is skipped.
  3. Add Do something in another app with HubSpot or Salesforce and its create-contact action Fill the name and email from the lead's fields with tokens. Salesforce requires a last name, so make sure every lead has one, for example by making it required on the form that collects them.
  4. Set Save the result to CRM id The new contact's id lands on the lead, so the condition stops a second contact being created for the same person.

You'll know it worked: Qualify a test lead and check a contact appears in the CRM and its id in CRM id. Then change the lead's status and back again, and check no second contact appears.

WHAT IT FIXES

The three things that actually go wrong

The work after a deal closes doesn't fit the CRM. Onboarding steps, installs and renewals end up in a spreadsheet that copies the customer's name and loses track of which deal it came from.

Import the CRM's companies, contacts and deals as tables, then build the delivery work on tables of your own that link to them. Each project points at its deal, and each deal shows its projects.

In Salesforce, contacts and opportunities belong to accounts. The import brings each account across as a name, so which contact belongs where becomes a matter of matching text.

Convert to Relation… turns each imported Account column into a real link to the imported accounts, matching by name. Contacts and opportunities then sit under their accounts again.

People who find leads outside the CRM retype them into it, or don't. A contact met at an event lives in somebody's notebook for a week.

An automation can create the contact in HubSpot or Salesforce the moment the record exists in RowFold, and save the new contact's id back onto the record, so a second contact is never made by accident.

One automation worth building

When a lead's status becomes qualified…

  1. Create the contact in Salesforce with the lead's name and email
  2. Save the new contact's Salesforce id onto the lead
  3. Post to the sales channel with the lead's name and who met them
QUESTIONS

Before you start

Does anything change in my CRM when I import?

No. Imports only read, so importing can't edit or delete a CRM record. The only writes are the ones you put in an automation: create a contact in HubSpot, or create a contact in Salesforce. Each writes one new contact and hands back its id, which you can save on the record that caused it.

Do the imported tables keep up with the CRM?

They can. Importing again updates the tables the first import made, matched on the CRM's own record IDs, and Keep in sync does that hourly or daily; an import never writes back. The CRM's values win on the columns the import fills, so a note typed into one of those is replaced on the next run, while columns you add are never touched. Delivery work still belongs on tables of your own that link to the imported ones, and those links survive every run.

What does creating a Salesforce contact need?

A last name, which is the one field Salesforce insists on; first name and email are optional. The contact is created in the Salesforce org whose user connected RowFold, with that user's permissions. Set Save the result to a Text field and the new contact's Salesforce id is written onto the record, ready for a duplicate check.

How do I stop an automation creating the same contact twice?

Save the new contact's id onto the record with Save the result to, and give the automation a condition that the field is empty. The first run fills it, so any later run for that record stops at the condition. Neither CRM refuses a duplicate on its own, so this check is the one that counts.

Which should I use if we have both?

Whichever the sales team treats as the truth. Import from that one, so every project points at the deals people actually work, and create new contacts back in it. The HubSpot page covers HubSpot's side in more detail, including what its import brings and how often to run it.

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.