Xoda built this integration by consuming GoHighLevel (GHL) APIs. This means that in theory Xoda can integrate with any resellers in the GHL ecosystem.
Overall, we maintain a synchronization of lead / contact data between Xoda side and GHL side by sending updated lead data from Xoda to GHL whenever change happens at Xoda side, and sending updated contact data from GHL to Xoda whenever change happens at GHL side.
As such change will be triggered by gym (Xoda side concept) / location (GHL side concept) staff, and it’s not expected that a specific lead / contact record would be updated at exactly the same time at both side, we do not consider such complexity that may be caused by data updating concurrency.
For leads, either Xoda or ACR can be the source of truth. For some fitness businesses, it could be both. Currently, for general contact data (name etc) we accept bi-directional updating, however for Xoda lead status updates, we sync the following events to GHL:
- Lead added
- Lead on Trial
- Lead converted to member (won and sold Membership)
- Lead lost
For member status, we always use Xoda side data as the source of truth. In addition, we also sync the following membership life cycle events to GHL:
- Member won (same event as lead converted above)
- Member cancelled (churned)
- Member drop out (plan or pack expired)
- Member attendance records
- Member on trial (same event as lead on Trial)
We sync member on trial information from Xoda to GoHighLevel.
- - Xoda Member/Trial Status. Plan name and plan duration including trial plans.
We sync plan change event from Xoda to GoHighLevel:
- When a new plan is sold, the plan change event will trigger and replace the current plan custom value in GoHIghLevel.
We sync check-in information from Xoda to GoHighLevel:
- - Last Attendance Date - real time and daily sync as a back up
- - Member booking information - real time and daily sync as a back up
- - Total Number of Visits - real time and daily sync as a back up
To be used to email members when total visits hit's a certain number or reaching out to members if they haven't attended in a while.