Pushing to your CRM
Send formatted records straight into HubSpot, Salesforce or Pipedrive, with no file to download. Connected over OAuth, on the Starter, Pro and Agency plans.
By Operelio team · Updated November 1, 2026
On this page10
What CRM push does
Instead of downloading a CSV and importing it into your CRM by hand, CRM push writes your formatted records straight into it. Available on Starter, Pro, and Agency plans for HubSpot, Salesforce, and Pipedrive. Connection is via OAuth so your CRM password is never stored in Operelio.
A push is not a blind upload. Your rows are matched against the records you already have, and before anything is written you get a report telling you exactly what is about to happen.
Connecting your CRM
In the app, a workspace admin opens Integrations in the rail and presses Connect on that CRM's card (Connect HubSpot, for example). Everyone in the workspace then pushes through that connection. Operelio uses OAuth, so your CRM password is never stored. You will be redirected to your CRM's login page to authorize the connection.
Salesforce has one extra step the other CRMs don't: before a workspace admin can connect it, a Salesforce admin installs the free Operelio package in your org. The install happens once and takes about a minute. The Salesforce card on the Integrations page has a Copy install link button to send your admin, and the Connect Salesforce to Operelio guide walks them through it. HubSpot and Pipedrive connect without any install.
On HubSpot, Operelio asks for contacts and companies, plus deals if you allow them. On Salesforce it gets API access as the connecting user and works with contacts, leads, accounts and opportunities. On Pipedrive it works with people, organizations and deals. It also reads your user list, so you can assign an owner, and writes a note on the HubSpot contacts and Pipedrive records the push creates when you map a notes column. It doesn't read any other object.
Once connected, the CRM shows as Connected under To on the CRM Formatter's Format step, and the push appears on the results page after you run it.
The report you get before anything is written
Pick a destination and Operelio checks your file against the CRM account you connected. The push card gives three numbers, and every row in the file is in exactly one of them: what will be created, updated or not sent (on Salesforce, not sent or refused). They add up to your rows out, so nothing is left unexplained. After the push it counts Created, Updated, Refused and Not sent.
Not sent covers the rows Operelio chose not to send and the rows your CRM won't take, each with its reason. The reasons Operelio holds a row back are named: no email to match on, the same address already used by an earlier row, create or update switched off, or nothing left to fill when you are only filling blanks. A row with a value your CRM won't take is never counted as a contact you are going to get. HubSpot and Pipedrive hold such rows back, or send them without a dropdown, checkbox or label value they won't take. Salesforce is sent them and refuses them itself.
The report also catches what a CRM would normally only tell you after the fact: a value that isn't on a restricted picklist, text longer than the field allows (Salesforce), a required value missing, and on HubSpot an address it cannot accept. Each one comes with the number of rows affected and an example value. Fields your account doesn't have, and fields your user can't write to, are listed separately, because the fix differs: one needs a new field, the other needs access.
Rows that look like an existing contact by name and company, where the email didn't match, are surfaced for you to look at. Operelio never merges on a resemblance.
Nothing reaches your CRM until you confirm.
How pushing works
A file of people is matched on email; a file of companies is matched on website, then company name. An address already in your CRM updates that record, a new address creates one, and you can switch either half off if you only want one of them. On HubSpot the match also covers a contact's additional email addresses, the ones left behind when two contacts were merged, so a row addressed to the old one updates the surviving contact instead of making a second.
Updating fills blank fields only by default. A value already in your CRM is left alone unless you choose to overwrite it with your file. On Pipedrive, where a person can hold several labeled email addresses and phone numbers, the ones already on the record keep their labels and stay where they are, and your file's value goes in as the primary.
Three columns can do more than fill a field. An owner column sets who owns each record, or you can assign everyone in the push to one rep; a row whose owner can't be found still goes in, unassigned on HubSpot, owned by you on Salesforce or by the default owner on Pipedrive, and the result says so. A notes column becomes a note on each HubSpot contact or Pipedrive person or organization the push creates. On HubSpot, what your mapping puts in the Notes field becomes that note on its own, unless your HubSpot has a Notes field of its own. A record it matches keeps the notes it has, and HubSpot companies and Salesforce records get no note. A company column finds or creates the Pipedrive organization, or the Salesforce account, and links the contact to it. That last one matters on Salesforce, where a Contact has no company field of its own. On a HubSpot contacts push, Create a HubSpot list from this push makes a list of exactly the contacts it sends.
If your Do Not Contact list is switched on, suppressed people are held back before the push and written to their own file.
Large files
A push to Salesforce, or of contacts to HubSpot, carries the whole job, up to your plan's row limit: 50,000 rows on Starter, 75,000 on Pro, 150,000 on Agency. A push of companies to HubSpot takes up to 50,000 rows, and so does a Pipedrive push. A push of deals, or opportunities on Salesforce, takes up to 2,000 rows. Pipedrive also limits how many API calls each account can make a day, set by its plan and number of seats, and every person pushed uses some of them. Before a big push of contacts, Operelio says if the file is likely to need more of the allowance than the account has left that day. If it runs out, a push of contacts pauses, and the rest goes in by itself after Pipedrive resets it. A push of organizations doesn't pause: rows past the allowance fail. Pipedrive shows the allowance in Company settings, under API usage.
Operelio splits the work into batches and carries on across them by itself. While it runs, the screen shows how many records have landed, so a long push reads as progress rather than a button that stopped working. If your CRM rate-limits Operelio, it waits briefly and retries; rows still turned away after that are listed as failures. Two big pushes to one HubSpot account can run at once and share its rate limit. A third waits up to 2 minutes, then stops before sending anything and says HubSpot is busy with another push. A Salesforce push of 10,000 or more contacts or leads goes through Salesforce's Bulk API, which saves the rows in batches; how long it takes depends on your org and Salesforce's own queue. Smaller pushes, and pushes of accounts, go 200 rows at a time. You can close the tab: it keeps going and finishes on its own.
What comes back
When the push finishes you get counts for created, updated, refused by the CRM and not sent, which rows did what, and any warnings raised along the way. Rows the report forecast as held back or refused come back the same way, so a push that went exactly as forecast doesn't look like a push that went wrong.
If some rows fail and others don't, the ones that worked stay put. Each failure is listed with its row number and the message your CRM sent back (on HubSpot, the first 500), so you can fix those rows and push them again on their own.
Supported CRMs and record types
A file of people is matched to existing records by email address. A file of companies (HubSpot Companies, Salesforce Accounts, Pipedrive Organizations) is matched by website or domain, then by company name. When a contacts push carries a company column, Salesforce accounts and Pipedrive organizations are also found or created and linked to the contact.
| CRM | Record types |
|---|---|
| HubSpot | Contacts, Companies, Deals |
| Salesforce | Contacts, Leads, Accounts, Opportunities |
| Pipedrive | People, Organizations, Deals |
Deals from a file
A file formatted for HubSpot Deals, Salesforce Opportunities or Pipedrive Deals makes at most one deal per row, called an opportunity on Salesforce, in the pipeline and stage you pick on the push card. Only the first two open stages of the pipeline are offered, as your CRM has them.
Each deal goes on the person the row's email finds and the company its website or name finds. A person or company that isn't in your CRM yet is made first: the person from the row's email, and the name if the file has one, the company from the row's name and website. On Salesforce, a row that names no account isn't sent, since an opportunity needs one. Rows on your Do Not Contact list aren't sent: the push checks the list again before it makes anyone, and makes nothing if the list can't be checked.
A person who already has an open deal in that pipeline doesn't get a second one. Pushing the same file again finds the people, companies and deals the first push made rather than making them again. If the CRM refuses a deal after its person or company was made, the result says what was made, and pushing the file again finishes the row.
Run it automatically with a trail
Once the settings are right for the files you get every week, a trail can run them for you. A trail watches a folder and runs your cleanup steps and the mapping you saved on every file that lands there, then pushes the result into HubSpot, Salesforce or Pipedrive, with nine always-on safety checks, two more you set, and approval built in. Set it up once and the cleanup, the verification, the lead routing and the CRM import are automated from then on.
Trails run on Starter and above.
Send formatted records straight to HubSpot, Salesforce or Pipedrive, with no download.
Related
Frequently asked questions
Does it create or update records?
Push both creates and updates. People are matched to existing records by email, companies by website or name: new addresses become new records, and matches update the existing record. On HubSpot the match also covers a contact's additional email addresses, so a row sent to an address left behind by a merge updates the surviving contact. Before the push, the push card shows three counts that add up to your row count: what will be created, updated or not sent, with the reason for each row not sent, including rows the CRM won't accept. After the push, the report counts Created, Updated, Refused and Not sent.
Will it overwrite what's already in my CRM?
Not by default. An update only fills fields that are blank on the CRM record, so a value you already have is left alone. Overwriting is a separate choice you have to make on the push screen. Operelio never deletes or merges records.
How big a file can I push?
To Salesforce, or contacts to HubSpot, the whole job: up to 50,000 rows on Starter, 75,000 on Pro and 150,000 on Agency, sent in batches and resumed for you. Companies to HubSpot, up to 50,000 rows a push. Deals, or opportunities on Salesforce, up to 2,000 rows a push. To Pipedrive, up to 50,000 rows a push, within Pipedrive's daily allowance of API calls, which depends on your Pipedrive plan and seats; if a push of contacts uses it up, it pauses and finishes after Pipedrive resets it.
What plan do I need?
CRM push requires Starter, Pro, or Agency.
Ready to get started?
Upload a file and run your first transformation. Free, no credit card required.