PieSync Help Center

Explore our help center for quick answers

PieSync Technical Deep-Dive

Aron Gosselin
What is PieSync's sync time from the moment there is a trigger from Connector A to see the change reflected inside of Connector B? (e.g., a field being updated in MS Dynamics CRM to be synced back to HubSpot CRM)

Once a connector is set up, PieSync scans data every 4 to 5 minutes or real time when using webhooks. When PieSync’s engine detects an update or change in app A, it will immediately sync that data to app B.

How many API calls does a sync consume on each connector?

This depends on (1) If the customer is doing an initial or incremental sync and (2) the specific connectors involved.

In the case of an incremental sync, the # of calls is smaller than for an initial sync: 

  • PieSync will do API calls (list) to App B to index creations/updates in App B that the sync engine has not yet detected.This would mostly fit in a single API call to B.
  • The engine then fetches N changed contacts (or companies, leads, …) from side A. This would, most of the time, fit in a single API call to A.
  • Then, the engine would issue at most N find calls to B, for the contacts from the set of N contacts that are already linked or are matched with a contact from B.
  • After merging all contacts, we would execute at most N contact creation or modification calls in B and at most N modification calls in A.
  • Possibly, nothing happens if the contacts are not in scope according to the customer's rules, or nothing has to actually change in either app (depending on rules/mappings).

In general, the amount of calls can be reduced if batching is supported in a connector (executing multiple finds/updates/creates in a single call).

This process is a bit different if a connector purely relies on webhooks (without having a way to fetch changed contacts since a certain time.) However, this is a small minority of use cases.

The process of an initial sync is similar, however, N will be much larger, requiring more API calls:

  • PieSync will start with indexing all contacts in App B. The amount of calls depends on the page size of B. Assuming this is 100, this would take B/100 api calls.
  • Now PieSync will sync from A to B (and index A at the same time). Similarly, they'll fetch all contacts from A. Each contact will either have no effect in B (not in scope or no change needed), or result in a creation/modification in B (whether a matching contact was found or not). So they will have an amount of find calls + an amount of update/create calls which heavily depends on (1) customer rules/mappings (2) match rate (3) batching possible or not. Possibly, they’ll also do update calls to A at the same time (it’s quite possible that merging two contacts results in updates on both sides).
  • Lastly, PieSync will sync from B to A. Here we’re fetching all contacts again. The contacts that were already processed in the previous step will be skipped. Other contacts will either have no effect (out of rule scope) or will result in creations in A.
What happens in case of errors while syncing data from Connector A to Connector B?

When a sync failure occurs due to exceeding the API call limit for a given app, PieSync will automatically try to sync again once the applicable time period has passed. In the event of errors with syncs, PieSync provides an initial knowledge base article on troubleshooting techniques. If that does not work, the customer needs to email PieSync, and the team will then need to access the customer’s app-data to investigate.

Does PieSync save data in memory and retries to complete the sync periodically? If so, how often does it retry and for how many times?

PieSync has a Health feature (now in beta) which allows the user to monitor the syncing status of all contacts for any specific connection. The Health dashboard shows exactly which contacts are syncing and which aren’t, including an error message to figure out why.

Is PieSync planning on extending support to Deals/Opportunities objects for CRM connectors, including HubSpot?

PieSync does not support Deals/Opportunities objects today or any other objects beyond Contacts and Companies. However, this is a priority on the PieSync product roadmap looking ahead.

Is data encrypted in transit?

The platform that externally transfers customers’ data on their behalf to and from upstream application APIs is encrypted in transit.

In case of errors, do admins get notified via email or in-app alerts?

Admins can monitor the status and activity of connections in the Dashboard. The new Health feature, now in beta, provides deeper insights including errors.  Error notifications are not currently possible.

What's the highest volume of syncs PieSync has handled at once?

PieSync has added hundreds of new syncs over the span of a day, syncing more than one million contacts.

What is the difference between PieSync's connectors for HubSpot CRM, Marketing, and Service?

All of these point to the same connector and use the same Contacts API. PieSync differentiates these solely for tracking purposes, to determine how customers plan on using the integration.

Some history: When PieSync was a startup, there were some objections from PieSync's other app partners about connecting to all of HubSpot (for example, if a customer used one solution for marketing automation and another for its CRM, using PieSync to connect to both). The naming convention was to help appease these partners. Again, regardless of the naming convention, all HubSpot-PieSync connectors are the same and use the contacts API.

With PieSync Starter, you get two rules. Does that mean you can only connect one app?

No. You can connect as many apps as you want. The two-rule limit is within a single connection. For example, you could have five different apps connected to PieSync but each app can only have two rules applied.

Do empty values ever overwrite existing values?

During the initial sync with PieSync, nope! It will only enrich data, not overwrite existing values. In other words, the integration will find any gaps on either side of the two-way sync and fill those gaps where possible. This is what's called a "smart merge." Zapier, in contrast, are one-way syncs that, if improperly configured, will erase a field even if there is existing data.

That said, once the sync is up and running, if you delete a value, PieSync will ensure this deletion is reflected on either side of the connector.

Is there an option to update a property only if it's blank in System A but populated in System B, or if populated in both don't update?

Yes, but not by default. PieSync's default behavior is the "smart merge," filling in existing blanks if data is known in one system. In a two-way sync, PieSync will simply propagate changes on either side. 

If you want more customization, when configuring the field mappings, you can make a rule for one-way mappings only or disable certain mappings altogether.

How is PieSync different from Zapier?

Both PieSync and Zapier are incredibly useful tools that cover different things. Zapier is the most popular iPaaS option among HubSpot customers today. Customers rely on Zapier when it comes to automating trigger-based actions across tools, but it is not a bidirectional syncing tool. PieSync is much more about a continuous two-way syncing of new and historical data.

There are several primary things that PieSync does that Zapier does not:

  • Bidirectional syncing: Zapier does not support two-way syncing between apps right now. Think of Zaps like one-way workflows. In certain scenarios, you can fake two-way syncing by setting up two different Zaps that perform opposite actions. For instance, you could have one Zap that creates a new spreadsheet row for every new contact created and another that creates a new contact for every new spreadsheet row.
  • Ongoing updates: PieSync constantly monitors the records in both web apps, and when it detects changes, it updates the data in the other app too, keeping everything in sync. In Zapier, most supported apps do not have triggers for updating data.
  • Historical data sync: Zapier doesn’t sync historical data, just future looking data.  PieSync matches the existing, historical data between two systems.
  • Intelligent interpretation: Zapier does not interpret or add additional intelligence to data pulled from an API. PieSync adds a layer of intelligence on top of the data to interpret fields and relationships between entities.

Additional feature comparisons are available here: