Free live webinar

Same team, more pipeline: AI-powered marketing for Dynamics 365 · Wed 11 Nov · 1:00pm ET · with Microsoft MVP Mark SmithSame team, more pipeline · 11 Nov

Save my seat

CRM organization sync

When a CRM is connected, the companies in it sync with your organizations: Dynamics 365 accounts, Pipedrive organizations and HubSpot companies. They stay in step both ways, like contacts — a change on either side reaches the other, under your connection's conflict rule. A contact's account in the CRM is its organization here, every synced contact and organization shows its CRM owner, and each deal knows its organization.

This guide says "account" for all three. The app's screens use your CRM's own word: Account for Dynamics 365, Organization for Pipedrive and Company for HubSpot.

What syncs

WhatDirection
An account ↔ an organization: the fields you map on the Account tabBoth ways
A contact's account ↔ the contact's organizationBoth ways
The CRM owner of a contact or an accountIn only — read-only here
A deal's accountIn only — deals are a read-only mirror
An account deactivated or deleted in your CRMIn only — its organization is archived here

An organization that none of your synced contacts belongs to stays in the app: no account is created for it.

An organization linked to an account that is still active in your CRM shows a chip on its page — Synced with Dynamics · synced 2 min ago, or "· not synced yet" — that opens the account in your CRM; an account deleted or deactivated in your CRM has no chip (see The organization page).

Turning it on and off

Organization sync is on for every CRM connection, including the ones you made before it existed. It starts by itself once your CRM's contacts have come in, unless sync is paused.

An admin turns it off, or back on, in the connection's details with the Sync accounts switch (Sync organizations for Pipedrive, Sync companies for HubSpot). Under it, a status line says where it has got to — for example "1,204 accounts linked · first sync · step 2 of 3 · last change 2 min ago" (companies in HubSpot, organizations in Pipedrive), or "waiting for the contact sync" before it starts. The connection's Sync health card has a row for your CRM's accounts beside Contacts and Leads — Accounts (Companies in HubSpot, Organizations in Pipedrive) — with the same three columns: its status (Running, Not started, "Full sync · step 2 of 3" while the first sync runs, Paused — with the reason on the line under it — or Off), the accounts linked, and the changes waiting to send to your CRM (see What the Sync health card shows).

  • Turning it off asks you to confirm first. Organizations stop syncing with your CRM. Nothing is deleted; turning it back on resumes where it stopped, and the links between your organizations and your CRM's accounts are kept. Turning it back on also reads your CRM's accounts again, to catch up on what changed while it was off. If the switch can't be saved, the reason shows under it.
  • With it off, contacts sync as before: a contact is linked to an organization by its company name or work email domain, and one that's already linked is never moved (see How contacts get linked automatically) — except a contact whose CRM record has had an account while organization sync was on: its company text no longer links it. Each contact's CRM owner still comes in (see CRM owner).

The first sync

The first time organization sync runs on a connection, it works in three steps:

  1. It learns each contact's account and CRM owner. It reads your synced contacts and leads once more — only those inside your sync scope — and notes the account and the owner of each. Nothing else on a contact changes, and its "last changed" time stays as it was.
  2. It brings in the accounts. With no sync scope, every account in your CRM; with a scope, the accounts your synced contacts belong to. Each one is matched to an organization you already have, or becomes a new one (see How an account finds its organization).
  3. It links contacts to their account's organization. Where a contact's organization here differs from its account in the CRM, your connection's conflict rule decides which one wins, as it does for a field you've just mapped.

The first sync is quiet: it starts no journey, writes nothing to your CRM and never creates an account there. That way an Organization created journey doesn't start for every company you already have on the day this arrives. It reads each contact once, at the same pace as a contact sync, so a large CRM takes a while; the status line shows how far it has got, and after a restart it carries on where it stopped.

On a new connection, the first sync runs after your CRM's contacts come in and before the app adds its own contacts to your CRM. So those contacts go into your CRM with their account: one the app finds there, or creates (see Creating accounts in your CRM) — the first sync itself still creates none. If the first sync can't finish then — it's paused, for example — the app adds its contacts anyway and the first sync carries on afterwards. Before it starts, the first sync waits until your CRM's contacts are all in — up to 30 minutes, then it starts anyway.

After the first sync, changes flow both ways as they happen. Accounts are checked on the regular sync schedule, like leads and deals.

How an account finds its organization

An account that's already linked to an organization keeps updating that one. A new account is matched in this order, and the first step with exactly one answer wins:

  1. Its contacts — the organization most of the account's synced contacts are linked to. A tie moves on to the next step.
  2. Its website's domain — the organization that has that domain.
  3. Its email's domain, where your CRM keeps an email on the account — never a free email domain such as gmail.com.
  4. Its name — only when exactly one active organization has that name and it has no account in this CRM yet. Names compare the way they do everywhere in the app, so "ACME, Inc." matches "Acme".
  5. Otherwise a new organization is created.

Only active organizations are matched, and an organization that's already linked to another account in the same CRM is skipped, so matching never gives one organization two accounts. A new organization's About this record reads "CRM sync", and its website's domain is added to its domains when no other organization has it — so new contacts with an email at that domain find it. An account with no name gets its website's domain as its name, or "Unnamed account" ("Unnamed organization" in Pipedrive, "Unnamed company" in HubSpot).

An account matched to an organization you already have brings your CRM's details with it: your CRM's values for the fields you map are applied to it once, whatever your conflict rule says — the organizations you had were never synced with this CRM, and many were made from your contacts' company names. A field your CRM leaves blank keeps the app's value, and that value isn't written to your CRM until someone edits the organization. From then on your connection's conflict rule decides, as it does for contacts.

Mapping account fields

While organization sync is on, the field mapping has a tab for accounts next to the contact tabs: Account (Organization in Pipedrive, Company in HubSpot). It maps your CRM's account fields to organization fields and works like the other tabs.

  • You can map the name, website, LinkedIn URL, description, logo URL, industry, type, employees, annual revenue, phone, the address lines, city, state, postal code, country, and your custom organization fields. Industry and type map value by value, like any dropdown.
  • A dropdown's values are mapped wherever you pick its field — on any tab, including a row you set to Ignore before. Its Options list shows the field you picked, with the values whose names match already filled in. A value you leave unmapped is added to the field as a new option when you save, so your CRM's values always have somewhere to go.
  • A value the app couldn't store is flagged on its row — an account's industry that has no option to land on, say, or a phone number that isn't one: "1 value not in your option map: '8'". The organization keeps what it had. Map the value, save, then run Force re-sync to fill the organizations already synced.
  • You can't map an organization's domains (they come from its website), status, source, tags or Owner. A field in your CRM that points at another record can't become a new organization field: its row says "No compatible field — organization fields can't be references."
  • A starting mapping is filled in for you the first time organization sync runs on a connection whose Account tab is still empty — one you connected before organization sync existed, say: the name, website, phone, description, employees, annual revenue, address lines, city, state and postal code, wherever your CRM has a field that clearly matches. A tab you've saved, even with every row set to Ignore, is left as it is. Industry, type and country are left for you to map, because their values need translating and a wrong guess would be written back to your CRM.
  • Two fields are never suggested. Pipedrive's full address isn't proposed for the first address line, and HubSpot's company domain isn't proposed for the website: written back, they would put the wrong value into your CRM. You can still map either by hand.
  • The name has to be mapped. If it isn't — your CRM has no field that matches it, or the Account tab was saved without one — organization sync waits, and the connection says "Map the account name to start." ("Map the organization name to start." in Pipedrive, "Map the company name to start." in HubSpot) with Open field mapping. Map it on the Account tab to start it; the banner clears as soon as the mapping is saved.
  • The CRM owner is mapped for you. The contact tabs and the Account tab each show your CRM's owner field as a locked, Read-only row that fills the CRM owner (name and email) — "Filled from HubSpot on every sync. It can't be changed in the app.", with your CRM's name (see CRM owner). If you had mapped the owner field to a field of your own before, that field keeps filling too.
  • A contact's account field isn't a row on the contact tabs. The field your CRM keeps a contact's account in — Company Name in Dynamics 365, the associated company in HubSpot, the organization in Pipedrive — syncs as the contact's organization (see A contact's account), so it isn't offered for mapping. A mapping of it you already had stays; while organization sync is running it isn't written back to your CRM.
  • A field you map later fills each organization the next time its account changes in your CRM. To fill them all now, run Force re-sync — a newly suggested row says "Run Force re-sync to back-populate existing organizations."
  • A tab your CRM won't let the app read says so in place — for example "HubSpot didn't allow reading its company fields." — and the other tabs map as usual. A tab with no fields at all says so too; you can still add custom fields by hand under Settings → Fields.

A contact's account

A contact's account in your CRM is its organization here, kept in step like any synced field under your connection's conflict rule.

  • Moved in your CRM — the contact moves to the organization of its new account. A journey that starts when someone joins a company (Contact updated watching Organization) can start for it.
  • Cleared in your CRM — the contact is unlinked from its organization, and its company name doesn't link it again (see below).
  • Never set in your CRM — the contact keeps the organization you gave it here, and nothing is written to your CRM for it.
  • Linked, moved or unlinked here — by you, the assistant, the API, a contact import or a merge — your CRM's record is changed to match, and unlinking here clears the account there (see Creating accounts in your CRM).
  • Only a change to the link is written. Editing a contact's other fields — by hand, or with an import that updates other columns — leaves its account in your CRM as it is and creates no account. Where the first sync moved a contact to its account's organization, nothing is written back. Where your conflict rule kept the app's organization instead, that counts as a change: your CRM's record is changed to match the next time that contact is sent to your CRM — and the account is found or created there if the organization has none.
  • A person with both a contact and a lead in your CRM — the contact's account decides; the lead's counts only when there's no contact record.
  • Dynamics 365: a contact whose Company Name is another contact, not an account, counts as having no account.

Changes your CRM makes, and the first sync's linking, are never written back to it. A contact whose CRM record has never had an account is still linked by its company name or work email domain, as described in How contacts get linked automatically. Once a contact's CRM record has had an account, its company text no longer links it: a contact your CRM unlinks stays without an organization here until your CRM gives it an account again, or you link it yourself.

Creating accounts in your CRM

An account is created in your CRM only when a synced contact is linked to an organization that has no account there yet — when you link someone to a new company, say, or import people and link them to companies your CRM doesn't have. An import that only updates other columns creates none. The app looks for the account first:

  1. by the organization's website domain — or its own domain, when it has no website — in Dynamics 365 and HubSpot, which keep a website or a domain on each account;
  2. then by its exact name.

If it finds exactly one account by domain, or else by name, the organization is linked to it and takes its details, as a matched account does (see How an account finds its organization). If it finds none, the account is created with the organization's mapped fields and linked to the organization. Either way the contact is linked to it in your CRM. Two contacts linked to the same new company at the same moment still make one account.

If more than one account has that name — or the one it finds is already linked to another organization — nothing is linked or created, and the connection's Sync health card says why, for example "No CRM account was linked for organization …: 2 CRM accounts match it." The app tries again the next time that contact is sent to your CRM. An archived organization, or one whose account was deleted or deactivated in your CRM, never gets a new account.

The first sync never creates an account, and neither does an organization that none of your synced contacts belongs to.

Archiving, deleting and restoring

  • An account deactivated in your CRM archives its organization here, and reactivating the account unarchives it.
  • An account deleted in your CRM — or archived, in HubSpot — is noticed the next time the app writes to it, and its organization is archived then.
  • Archiving or unarchiving an organization here never changes the account in your CRM.
  • An organization linked to an account offers no Delete — the app deletes an organization only when no contacts and no CRM record are linked to it, and the link stays even after the account is deleted or deactivated in your CRM (the organization's page then no longer lists it); a merge moves it to the organization you keep. Archive it instead.

Merging organizations

When you merge organizations, their accounts move to the organization you keep:

  • If the kept organization has no account in your CRM, the merged one's becomes its account.
  • If it already has one, the merged organization's account stays linked to it as a second account, listed on its page as Also linked (merged): … with your CRM's name and the account's id. A second account still finds its contacts and deals for the kept organization, but its fields don't update it, and your edits aren't written to it.
  • Every person the merge moves gets the kept organization's account in your CRM.

Nothing is merged in your CRM itself — merge the accounts there if you want one record.

CRM owner

Every synced contact and organization shows its CRM owner: the user — or, in Dynamics 365, the team — who owns it in your CRM, as your CRM shows them. Its page shows it under the name: "CRM owner · Jane Doe · jane@acme.com".

  • It's read-only. It changes only in your CRM. Nobody can set it here — not you, the assistant, the API, a form or an import — and it's never written back.
  • It always comes in, even when your conflict rule keeps the app's version of the record's other fields.
  • A contact's CRM owner comes in even with organization sync off, like any other field of the contact. With organization sync off there is no first sync, so a contact you already had gets its CRM owner the next time it changes in your CRM. An organization's CRM owner comes in while organization sync is on.
  • A Dynamics 365 team shows the team's name and no email. A user who is later disabled or removed in your CRM keeps the name and email the app last saw.
  • A person with both a contact and a lead shows the contact's owner.
  • Your app's own Owner field is separate. It names a user of this app, and you set it here. An organization's Owner is never synced with your CRM; a contact's is only if you've mapped a field of your CRM to it on a contact tab.

You can use the CRM owner:

  • in the Contacts and Organizations lists, as the CRM owner and CRM owner email columns, sorted and saved in a view;
  • in conditions — segments, saved views and a journey's If / Else — for example "CRM owner is Jane Doe" (see CRM owner conditions);
  • in journeys: a new owner in your CRM is a Contact updated or Organization updated change, so a journey can start on it. In Dynamics 365 and Pipedrive, where every record has an owner, the first time the app learns a record's owner — such as just after the app adds it to your CRM — starts nothing (see The "Contact updated" event and The "Organization updated" and "Organization created" events);
  • in messages: {{ contact.crm_owner_name }}, {{ contact.crm_owner_email }}, {{ organization.crm_owner_name }} and {{ organization.crm_owner_email }} print the owner's name and email (see Merge fields vs. placeholders).

If the connection isn't allowed to read your CRM's users, the app can't look owners up and keeps only what your CRM's own record carries. The connection's Sync health card says what's missing on its CRM owner row:

  • Dynamics 365 keeps the owner's name but no email: "Owner emails aren't stored — Dynamics didn't allow reading its users."
  • HubSpot keeps only the owner's id: "Only owner ids are stored — HubSpot didn't allow reading its users."
  • Pipedrive keeps the name and email on a person, but only the id on an organization or a lead: "Only owner ids are stored for organizations and leads — Pipedrive didn't allow reading its users."

Deals

Each deal in the read-only deal mirror knows its organization: the organization of the deal's account in your CRM (in Dynamics 365, the opportunity's account — or its customer, when that's an account; in HubSpot, the deal's primary company; in Pipedrive, the deal's organization). By the time a connection's first sync finishes, every deal has its organization: deals brought in after it (usually all of a new connection's) get it as they arrive, and deals already here are read once more to pick it up. After that, a deal is read again only when it changes in your CRM, or when you run Force re-sync.

  • A deal whose account hasn't synced yet has no organization, and gets it the next time the deal changes in your CRM.
  • A deal moved to an account the app hasn't linked loses its organization until that account is linked and the deal changes again.
  • A deal whose account is removed in your CRM loses its organization.
  • If your CRM's account read for a deal fails — HubSpot's company association, say — the deal keeps the organization it had.

What your CRM connection needs

CRMWhat organization sync needs
Dynamics 365Read, Write and Create on Account; Append on Contact and Lead with Append To on Account, to set a contact's or lead's account; Read on User and Team, for the CRM owner
HubSpotcrm.objects.companies.read, crm.objects.companies.write, crm.schemas.companies.read and crm.objects.owners.read, added to your private app
PipedriveNothing new — what you approved when you connected covers organizations and owners

See CRM permissions reference for the full list.

When organization sync pauses

Organization sync pauses, and your contacts keep syncing, when:

  • A permission is missing. When it starts, the app checks it can read your CRM's accounts, and anything your CRM refuses later — reading or writing an account, or setting a contact's account — counts too. The connection shows a banner naming what's missing, for example "Organization sync is paused: HubSpot did not grant crm.objects.companies.read. Contacts keep syncing." Grant it in your CRM, then click Check again on the banner. Not being allowed to read your CRM's users doesn't pause it (see CRM owner).
    • HubSpot: most connections need the company scopes added to the private app first.
    • Dynamics 365: a connection that can read accounts but not write or create them brings accounts in, then pauses the first time it needs to write one.
  • The account name isn't mapped — the connection says "Map the account name to start." (in your CRM's word) until you map it.

While it's paused, contacts sync as they do with organization sync off. Once it's running again, nothing is written to your CRM until someone changes something in the app: an organization you edited while it was paused reaches your CRM the next time it's edited, and a contact you linked or moved meanwhile, the next time that contact is sent to your CRM.

Sync errors

An account the app can't save — one whose name is longer than 200 characters, for example ("Name over 200 characters") — is listed with the connection's sync errors, marked with your CRM's word for an account, and can be retried once it's fixed in your CRM. Writes to an account that fail are listed the same way (see Review sync errors).

Known limits

  • Accounts arrive on the regular sync schedule, not within seconds — in Pipedrive too, where change notifications cover persons only.
  • A deleted account is noticed late: the next time the app writes to it, not on the regular sync.
  • Account lists don't become segments. A list of accounts in your CRM isn't imported as an organization segment.
  • CRM users aren't matched to app users. The CRM owner is shown as your CRM has it; the app's own Owner stays separate.
  • Archiving and unarchiving aren't written to your CRM.
  • Pipedrive keeps an organization's city, state and postal code only with its full address. An organization the app creates in Pipedrive — or one with no address there yet — gets none of them, even when they're mapped, unless Pipedrive's full address is mapped too and the organization has one.
  • The Synced with … chip stays after you turn organization sync off or switch CRMs; its "synced …" time says when the account last synced.
  • The reason no account was linked stays on the Sync health card until a later account is linked.
  • With a sync scope, accounts follow your contacts — see Accounts follow your contacts.
  • What changes while organization sync is off waits for the next change. A contact moved to another account in your CRM while organization sync was off moves here the next time that contact changes in your CRM, and an organization you edited here meanwhile reaches your CRM the next time it's edited.

FAQ

Q: Will turning this on start my "Organization created" journeys for every company I have? A: No. The first sync starts no journey. After it, a new account in your CRM, or a change to one, starts Organization created or Organization updated like any other change.

Q: I created an organization in the app. Why isn't it in my CRM? A: An account is created only when one of your synced contacts is linked to the organization. Link a synced contact to it, and the account is found or created in your CRM.

Q: Can I change a contact's CRM owner here? A: No — change the owner in your CRM, and it comes in on the next sync. The app's own Owner field is the one you set here.

Q: What happens to my organizations if I turn organization sync off? A: Nothing is deleted, and the links to your CRM's accounts are kept. Turn it back on and it carries on where it stopped.