After connecting QuickBooks to MinuteDock, your QuickBooks Customers will automatically sync as MinuteDock Contacts. If you use sub-customers, you can choose whether those come across as Contacts too or as Projects. This guide covers managing the ongoing sync process and resolving any duplicate MinuteDock Contacts.
Understanding QuickBooks customer sync
Once your QuickBooks integration is active, MinuteDock automatically imports your QuickBooks Customers as MinuteDock Contacts.
You can identify synced MinuteDock Contacts by the QuickBooks icon that appears next to them in the Contacts screen.
⚠️ Important: QuickBooks controls the sync direction - changes made to QuickBooks Customers will update MinuteDock Contacts, but changes made to MinuteDock Contacts will not affect your QuickBooks Customers.
💡 Tip: Add new Customers or edit existing Customers in QuickBooks first, then run a manual sync to update your MinuteDock Contacts. This prevents duplicate MinuteDock Contacts from appearing.
How QuickBooks sub-customers import
If you use sub-customers in QuickBooks, you can choose how they arrive in MinuteDock. They can import as Projects under one Contact, or as separate Contacts of their own.
Sub-customers import as separate Contacts unless you turn the setting on. You can change it whenever you like, though it's worth reading what happens when you change it below if you've already been tracking time in MinuteDock.
| Sub-customers as Projects | Every customer as its own Contact |
A top-level customer becomes | A Contact | A Contact |
A sub-customer becomes | A Project on the parent Contact | A separate Contact |
A client with three jobs looks like | One Contact with three Projects | Four Contacts |
Sub-customers as Projects
Your top-level QuickBooks Customers import as Contacts. Every sub-customer beneath them imports as a Project on that top-level Contact, so all the work you do for a client sits under one record.
QuickBooks lets you nest customers up to five levels deep. MinuteDock has two levels - Contacts, and Projects within them - so every sub-customer beneath a client ends up as a Project directly on that client's Contact, however deeply it sits in QuickBooks. Each Project takes the sub-customer's own name.
For a QuickBooks customer called Acme Corp with a Monthly Retainer job, an Administrative Costs job beneath that, and a Filing job beneath that again:
In QuickBooks | In MinuteDock | Name | Short Code |
Acme Corp | Contact | Acme Corp | - |
Monthly Retainer | Project | Monthly Retainer | monthly_retainer |
Administrative Costs | Project | Administrative Costs | administrative_costs |
Filing | Project | Filing | filing |
All three Projects sit at the same level on Acme Corp. MinuteDock doesn't keep track of which job sat inside which in QuickBooks, so if that nesting matters to how you report, it's worth naming your jobs in QuickBooks so they read clearly on their own.
Each Project gets a Short Code based on its name, so you can type #filing in the Dock to log against it. Short Codes are set when the Project is first created, so if you rename a sub-customer in QuickBooks later, the Project name updates on the next sync but the Short Code stays as it was. You can change it yourself from the Projects screen.
If you already created Projects by hand
If a Project already exists on that Contact with the same name as the sub-customer, MinuteDock links the two rather than creating a duplicate. Your Project keeps its Short Code, rates, budget and description exactly as they are.
The names have to match in full for this to work. Capitals and accents don't matter, but a Project you named Acme: Filing won't be matched to a sub-customer called Filing. Rename it to match before you turn the setting on if you want them linked.
Imported Projects arrive without a billing rate of their own, so time logged against them bills at the parent Contact's rate. If a particular job should bill differently, set a rate on the Project - see Setting up Billing Rates.
Every customer as its own Contact
With this option, every QuickBooks Customer imports as its own MinuteDock Contact, whether it's a top-level customer or a sub-customer. Your Contacts list matches your QuickBooks customer list one for one.
The trade-off is that a client with several jobs appears as several Contacts, so there's no single place to see everything you're carrying for them.
Change how sub-customers import
You'll need the Manage MinuteDock Account & Users Permission to change this setting.
Click the QuickBooks button in the top-right navigation bar
Select Integration Settings from the dropdown
Tick or untick Sync QuickBooks sub-customers as MinuteDock projects
Click the sync now button to bring your customer list across under the new setting
Changing this setting doesn't move any of your existing time. It changes how sub-customers import from the next sync onwards, which means your old records and your new ones both stay in place.
Turning it on. Each sub-customer gets a new Project under its parent Contact. Its old Contact is unlinked from QuickBooks, and removed entirely if nothing has ever been logged against it. Where there is history, that Contact stays behind as an ordinary Contact, holding the time already logged on it. From that point, new time goes to the parent Contact and its Project while the old time stays where it is.
Turning it off. Each sub-customer goes back to being its own Contact. Projects with nothing on them are removed; Projects with time, rates or rules stay as ordinary Projects, keeping their history. Invoices and time exports go back to the parent Contact straight away, without waiting for a sync.
⚠️ Warning: If you've been tracking time against sub-customers in MinuteDock already, turning this on splits that client's history across two records. We'd recommend talking to us first - email team@minutedock.com and we'll look at your account before you change anything. Accounts that haven't tracked time against sub-customers yet can switch freely.
For smaller cases you can tidy up yourself by merging duplicate Contacts from the Contacts screen, which moves Time Entries across rather than losing them - see Managing duplicate Contacts below.
When a sub-customer is deactivated in QuickBooks
Making a sub-customer inactive in QuickBooks disconnects its Project from the integration on the next sync. If nothing has been logged against that Project, it's removed. If it holds time, it stays in MinuteDock as an ordinary Project that's no longer linked to QuickBooks, so your history is kept and you can keep using it or archive it yourself.
ℹ️ Note: If you make a top-level Customer inactive in QuickBooks, its sub-customers stop syncing too, even the ones still active.
Send invoices to sub-customers
Sending invoices back to sub-customers is a separate setting. On the same Integration Settings screen, tick Send invoices to matching QuickBooks sub-customers. With it off, every invoice goes to the top-level Customer no matter which Projects the time sits on.
With it on, an invoice goes to a sub-customer when all the time on that invoice belongs to a single Project. Anything more mixed than that goes to the top-level Customer.
Time on the invoice | Invoice goes to |
All on one Project | That Project's sub-customer |
On two or more Projects | The top-level Customer |
On one Project, plus time logged against the Contact itself | The top-level Customer |
No Project time at all | The top-level Customer |
So if you want a job billed to its own sub-customer in QuickBooks, invoice that job's time on its own. Billing several jobs together sends one invoice to the client's top-level record instead.
If you also import time from QuickBooks, a Time Activity logged against a sub-customer comes into MinuteDock on the parent Contact with the matching Project set.
Run a manual sync with QuickBooks
To manually sync your QuickBooks Customers with MinuteDock Contacts:
Update Customers in QuickBooks - Make any changes to your QuickBooks Customers first.
Access integration settings - Click the QuickBooks button in the top-right navigation bar. (In MinuteDock)
Start the sync - Click the sync now button on the integration settings screen.
Confirm success - Wait for the page to reload. The sync is successful when "last synced" shows "less than a minute ago".
Verify changes - Check your Contacts screen to confirm updates.
✅ Success! New MinuteDock Contacts will be created for QuickBooks Customers, and existing synced MinuteDock Contacts will update to match their QuickBooks Customer counterparts.
Managing duplicate Contacts
If you created MinuteDock Contacts manually before connecting QuickBooks, you may have duplicates - one synced with QuickBooks and one not synced.
Turning on sub-customer Projects can also leave a client's history split between an old Contact and a new Project. See Change how sub-customers import above before you start merging.
Merging duplicate Contacts
Go to Contacts - Click the Contacts screen in MinuteDock.
Find duplicates - Use the search bar to locate duplicate MinuteDock Contacts. Prioritise merging MinuteDock Contacts that are not synced with QuickBooks.
Hide the duplicate - Click the more options button (the three dots) on the MinuteDock Contact you want to remove, then choose Hide.
Choose merge option - If the MinuteDock Contact has Time Entries, you'll be prompted to merge rather than delete.
Select target Contact - Choose the QuickBooks-synced MinuteDock Contact as your merge target.
Complete merge - All Time Entries from the merged MinuteDock Contact will transfer to the MinuteDock Contact you're keeping.
ℹ️ Note: If a MinuteDock Contact has no Time Entries, MinuteDock will offer to delete it instead. Contacts with Time Entries always get the option to merge, so no Time Entries are lost. See Archive or Merge a Contact for what happens to the QuickBooks link.
