TeamSnap Synchronization
Please note, this is one-way synchronization from the website to TeamSnap. Any changes made to the schedule in TeamSnap, or any scores posted in TeamSnap, will not be reflected in the website.
To enable this feature you will need to be setup as a "Team Webmaster" in order to have access to the Control Panel for your team, as well as be setup as a "manager" in TeamSnap for your team. Assuming this is the case, this is how to get started:
Step 1) Purchase the Synchronization Feature
Unless your association has purchased the TeamSnap synchronization feature on your behalf, you will need to submit a one-time per season payment of $40 to enable the feature.
Within the Control Panel you'll go to Manage Site Content -> TeamSnap Synchronization. If payment is required for your team, and you haven't already done so, there will be a button on this page which takes you to PayPal to complete the transaction. This page has detailed instructions on the process to help guide you.
Once payment has been completed for your team, or if your association has paid on your behalf, continue to the next step.
Step 2) Authorize the Website to Access your TeamSnap Account
In order for the website to be able to make changes to your team's schedule in TeamSnap, you need to give it permission.
Again, within the Control Panel you'll go to Manage Site Content -> TeamSnap Synchronization. For this step there are also detailed instructions on the page to help guide the process.
Click the button to go to a page which will ask you to login to your TeamSnap account. After logging in you will be asked if you want to give MBSportsWeb permission to view & edit your information, so you'll need to authorize that. After doing so, you'll return back to the Control Panel to continue with the next step.
Step 3) Choose which TeamSnap Team you wish to Synchronize With
If Step 2 was completed successfully you should now see a drop-down list asking you to choose which of your TeamSnap team(s) you would like to synchronize with. If you don't see the team that you need, please ensure that you are setup as a "manager" of that team within TeamSnap (you'll need the owner of the team in TeamSnap to do this for you).
Once you have the correct team selected, click the button to continue.
Step 4) Complete an Initial Synchronization
After you've chosen your TeamSnap team to synchronize with you should see a page with several configuration options available, plus a list of "Pending Synchronization Changes", and a list of "Events That Will Not Be Changed".
If you previously had entered your schedules into TeamSnap (for example, if you enable the synchronization mid-season), the website will need to do an initial merging of events in its schedule for your team with those you had entered in TeamSnap. To do this, the event in the website (game / practice) will need to exactly match the date & start time, and also need to have one, and only one, exact match. When a match is found, the list of Pending changes will show that it will update the event in TeamSnap, adding a synchronization label to the "Notes" section of the event, and to NOT notify the team of that update. If a match is not found, it will create a new event in TeamSnap. So, you have an opportunity to update your TeamSnap schedule to ensure that your dates & times match exactly before doing the initial synchronization.
Since it is important to see what the synchronization will actually do, before it happens, the "Auto-Sync" option is disabled by default, but you can enable this at any time, even before doing the initial synchronization (see Step 5).
If you don't have anything in your TeamSnap account yet then any events (games / practices) that exist in the website will be added. Depending on how many new events are added, the event may notify the team as indicated in the list of pending changes.
At any point you can visit this page to see if there are any pending synchronization changes, and if there are, click the button at the bottom of the list to do a manual synchronization. Even when Auto-Sync is enabled, since that happens in the background about every 10-15 minutes, there's a chance pending changes may show on that page. If Auto-Sync is enabled you can just wait for it to happen, or you can click the button to do a manual synchronization. If Auto-Sync is not enabled then you'll have to do a manual synchronization, so be sure to include your email in the "Logging Email Address" box since the website will email you whenever there are changes pending.
Step 5) Configure Other Settings and setup Auto-Synchronization
After you've done an initial synchronization there are a few other options you can set to help control what happens during the synchronization:
Set your default "Arrive Before" Times. When an event (game or practice) is added to your TeamSnap schedule, the website will set the number of minutes to arrive before based on the settings shown at the top of the page. You have the option to set these defaults separately for practices, home games, and/or away games. Please note, that once an event is in your TeamSnap calendar, you can alter the arrive before time for that event and the website will not change that setting. Only when adding new events, and only for games & practices.
Logging Email Address. If not using Auto-Sync then this is a must, but it can be useful to have your email address here in all cases. Whenever a synchronization happens, either manually or automatically, the website will send an email to this address with a basic summary of what happened. If you have Auto-Sync enabled and you find that you're getting too many emails (because your schedule in the website is changing so often), you can remove your email address here at any time (and add it back later if you choose).
Include or Exclude Tournaments? Assuming your team's tournaments have been added to the website by your scheduler, you can choose to include them in the synchronization. Since tournaments are typically multi-day events, when they are synchronized with TeamSnap they are created as several events using TBD as the start time.
Include or Exclude Team Events? If you are adding additional events to your team website in the Control Panel and you'd like those to synchronize with your TeamSnap schedule, you can choose to include those as well. If a Team Event spans multiple days, then just like a multi-day tournament the website will create several events in TeamSnap using TBD as the start time for each.
Auto-Sync. After you've done an initial synchronization and/or once you are comfortable with the results of doing a manual synchronization, set the Auto-Sync drop-down to Enabled so that whenever your team's schedule changes in the website, your TeamSnap schedule will automatically be updated no more than 10-15 minutes after it happens. And if you have a Logging Email Address specified, the website will notify you every time this happens.
How The Synchronization Works
In order to help you understand what is happening under the hood with synchronization, below are the steps the website takes each time:
1) Get a list of all the locations in your TeamSnap account.
2) Get a list of all the opponents in your TeamSnap account.
3) Get a list of all the events in your TeamSnap account, spanning from 4 months prior to 6 months after the current date.
4) Get a list of all the games & practices, tournaments (if enabled), and team events (if enabled) in the website.
5) For each of the website's events, compile a list of locations and a list of opponents, using the name for each.
6) Compare the names of the locations in the website with those in TeamSnap. If any location isn't in TeamSnap, then add that location. If the address exists, include that information as well. Add a synchronization label to the notes of the TeamSnap location to indicate that it came from the website. Excess locations in TeamSnap are left alone.
7) Compare the name of the opponents in the website with those in TeamSnap. If any opponent isn't in TeamSnap, then add that opponent. Excess opponents in TeamSnap are left alone.
8) Assuming there were no issues synchronizing the locations or opponents, start comparing the list of events in the website with the TeamSnap events.
9) For each event in TeamSnap, if there is a synchronization label in the notes, then
a) If the ID specified in the synchronization label no longer exists in the website, delete the event from TeamSnap.
b) If the ID specified in the synchronization label still exists, ensure that it matches what is in the website. If it doesn't match, then update TeamSnap.
10) For each event in TeamSnap, if there is not a synchronization label in the notes, then
a) Try to find a match with the website, looking for one, and only one, event with the same date, start time, and matching whether or not it's a game. If a match is found, then update the TeamSnap event to match the location, opponent (if it's a game), and add the synchronization label to the notes of the existing event, then update TeamSnap.
11) For any event in the website which didn't match a TeamSnap event (either via the synchronization label or by the date / start time matching), then add that event to TeamSnap including the synchronization label in the notes.
So, given the above, it's important to know that the website is using the "notes" of locations, opponents, and events in TeamSnap to add synchronization labels such as [sync-ms-12345] to track changes. For opponents and locations, this means that you should not change the name of a location or opponent in TeamSnap if it has the synchronization label in the notes. Doing so would add a new location or opponent during the next synchronization and change any events in TeamSnap to use the new location / opponent. You can, however, add an address to a location without issue. Also, for any event which has the synchronization label in the notes, if you change the date / time / location / opponent in TeamSnap, the website will revert those changes the next time a synchronization happens. For this reason, ensure that the schedule in the website is correct and allow it to update the schedule in TeamSnap automatically - if that means notifying your association's scheduler to have them make the change then please do so.