3
votes
Resync only empty data
For a batch operation such as resync contact IDs or tags it would save API calls to direct WPF to sync only those contact IDs that are empty/blank. For a site with 5k accounts connecting to a service like Constant Contact that allows 10k API calls/day this would allow us to do more per day in terms of syncing misaligned data.
By the way, this is a different request from https://wpfusion.com/feature-requests/find-users-that-have-no-crm-record-and-fix-them/. In my request here the user has a contact record but the contact ID has fallen off due to whatever reason. I seem to have many of these and it would be much better to sync only those that are empty than to have to resync all 5k users. If I hit my quota limit for any reason doing that I end up with more users without a contact ID than when I started.
If the contact ID is missing, you can run an Export Users operation. I’ve updated the description in the docs to be clearer: https://wpfusion.com/documentation/tutorials/batch-operations/#export-users
That will use three API calls per user (assuming an existing record is found):
1. Search for contact by email address
2. Load tags
3. Sync user meta to the CRM
We could save some API calls by creating an option that doesn’t do #3, but we already have a lot of overlapping tools on that page… I’m worried about further confusing people 🤔
Then as I read Export Users vs Resync Contact IDs for Every User, based on your comment and the help text for those in Advanced Settings, the only difference between them is that Resync doesn’t apply any tags while Export does. Are you saying that in both cases WPF will ignore local users who have Constant Contact IDs in place? If that’s the case then it seems to already work as I’m proposing.
See, it’s already confusing 😅
Resync Contact IDs for Every User applies to every user, whether or not they have an ID already saved.
Export Users *excludes* anyone who already has a contact ID saved.
So that’s going to be a significantly smaller starting group of users in your case.
Ah, so good to know. That would have saved me some confusion recently. Maybe clarify that in the help text in Advanced? Export then seems to be the way to minimize unnecessary API usage.
Yup sounds good. We’ll update it to say, “Queries any WordPress users without a saved contact ID, and either creates new contacts or updates existing ones based on email address. Any registration tags will be applied to new contacts. Any existing contacts will have their tags loaded and cached.”
Jack, just to follow up here even though it’s not exactly the same: I just finished a bulk action to Apply registration tags. I could be wrong but based on the WPF logs it appears that process also only looks at user accounts without the registration tags vs all users, as my logs showed a few hundred http rows while I have over 5k users. If this is the case that’s great and I’d suggest also making it clear that this is only for those without the tags. The help text states it’s “for every registered user” so maybe I’m wrong.
My overall goal would be to always know when I have to factor in API calls for all 5,500+/- users given a 10k daily API limit, meaning some bulk actions have to be split over multiple days, vs when I am only going to use a small number of calls and can safely proceed.
That’s always the case with applying tags actually. If the user already has the tag, no API call will be sent 👍
Excellent, that’s great to know. Sorry if i missed that in the documentation and if it’s not already there it should be. Thanks for the great info on all of this.