Two way
Both systems stay the same. Every sync runs from the leading system into the other, then back.
- You pick whether ServiceM8 or Square leads
- Changes on either side travel
- Nothing bounces back and forth
How syncing works
Every integration runs the same way, whichever two systems it connects. Here is what one sync does, how you choose the direction, and what happens when the same record changed on both sides. Each pair page then shows which fields travel between those two systems.
Your choice
Keep both systems identical, or let one feed the other, per record type. Shown for ServiceM8 and Square.
Both systems stay the same. Every sync runs from the leading system into the other, then back.
One system feeds the other. Pick ServiceM8 or Square as the source; the other receives.
How a sync runs
What happens every time an integration runs, in the order it really happens. Shown for ServiceM8 and Square.
Step 1 of 7
Credentials for ServiceM8 and Square are checked and sign in tokens refreshed automatically. If a connection was removed on either side, the integration pauses and you get one message with a reconnect button.
Conflicts
Between two syncs
The phone number of the same client is changed in both systems
Two different values. Run the sync to see which one both systems end up with.
One way
FAQ
How every integration handles duplicates, deletions, part payments, a dropped connection, timing, filters and custom fields, whichever two systems it connects.
No. Records synced before stay linked. Before anything new is created, the platform looks for the same record in the other system and updates that one instead:
When several records were matched to one record in the other system, that record's changes are not copied back to them.
On a two way sync two records can both match one record on the other side, for example two HubSpot contacts with the email of one GoHighLevel contact.
The record that already syncs keeps syncing and the second one waits. Nothing is merged and the sync carries on.
You get a notification, and the integration's Conflicts tab shows both records. Use the other one instead or keep the current one, one at a time or many at once. A history keeps every resolved conflict with who resolved it and when, and a choice can be switched back or reopened.
No. A deal or opportunity already lost, a job already cancelled, or an invoice already voided before its first sync is not created. A deal that was still open when it first travelled moves to won or lost on a later sync, and a closed deal is never reopened.
Yes. Test with sample records on the last setup step shows per record type how many records would sync, how many are left out and why, with a few examples field by field. It reads up to 100 records per record type and writes nothing to either system.
A record whose contact was deleted or archived in the other system, an invoice for a customer deleted in QuickBooks for example, is skipped with that reason instead of failing on every sync. The contact is never created again behind your back. Restore it in that system and the record syncs with its next change, or with a Full sync.
The other system gets a payment for exactly the amount newly paid. A 40 instalment on a 100 invoice arrives as 40, and a later instalment bringing it to 70 arrives as one more 30, so nothing is counted twice. FreeAgent records no payment from outside and leaves it to its bank feed.
Only in two cases. No customer is ever deleted, and an update only sends the fields it carries, so a field the other system does not know is never wiped.
The two exceptions:
The platform notices, switches that connection off, pauses the integrations that use it and sends you one message with a button to fix it:
Once it works again, the paused integrations start again by themselves within a few minutes, without creating anything twice.
The one where your team makes most changes. It only decides the rare case where the same record changed in both systems between two syncs.
You choose per integration, from every 15 minutes up to every 3 days. Every 4 hours and slower is included on every plan.
Faster syncing comes with the higher plans, down to every 15 minutes on Agency. On any plan you can add faster sync:
A few systems set their own limit: GoHighLevel, Keap and Simpro are synced at most every 30 minutes, WooCommerce at most every hour.
No. On a one way sync the receiving system is where the work lives, so what your team does there stays there.
Yes. Pick one way and the setup shows what travels in that direction. Pick both ways and it shows everything the two systems can do, also what only travels the other way round, such as GoHighLevel invoices into Xero next to contacts from Xero.
Those run one way, and the contacts then sync both ways, so every record finds its contact in both systems.
A stage rule turns a moment in one system, such as a deal won or a quote accepted, into new work or a draft invoice in another.
Each rule needs a start date, 60 days back by default, so nothing won or accepted long ago becomes a new record on the first run.
A sale is never billed twice:
Yes. The start date, the moment a record may travel and the minimum amount apply in both directions.
Tags and pipeline stages belong to one system, so each side gets its own pick, like GoHighLevel tags one way and HubSpot lifecycle stages the other. A side without such a filter sends all of its records the other way.
The standard fields of each record type sync. Custom fields sync in two places today:
Need custom fields for another pair? Request it.
Yes. Tell us through the request form what should travel and when. We answer every request within one working day.
Get started
Pick your two systems, confirm what syncs, and watch the first sync run.