A computer-implemented method performed at a server to provide a synchronization notification to a client device comprising the steps of: receiving notification that an event of interest has been received; receiving a device/user configuration file having a unique synchronization identifier or a link to the unique synchronization identifier; determining if the client device has received the event of interest; if the client device has received the event of interest, not sending the synchronization notification; if the client device has not received the event of interest, determining if the unique synchronization identifier equals a unique tracking identifier, wherein the unique synchronization identifier is updated after each successful synchronization and wherein the unique tracking identifier is a last-known unique synchronization identifier of the client device maintained in a memory of the server; if the unique tracking identifier does not equal the unique synchronization identifier: setting the unique tracking identifier equal to the unique synchronization identifier; setting a timeout equal to the current time plus a predetermined value; and sending the synchronization notification to the client device; if the unique tracking identifier equals the unique synchronization identifier and if the current time is less than the timeout value, sending no synchronization notification; and if the unique tracking identifier equals the unique synchronization identifier and the current time is greater than the timeout, sending the synchronization notification to the client device and setting the timeout equal to the current time plus the predetermined value. receiving notification that an event of interest has been received; receiving a device/user configuration file having a unique synchronization identifier or a link to the unique synchronization identifier; determining if the client device has received the event of interest; if the client device has received the event of interest, not sending the synchronization notification; if the client device has not received the event of interest, determining if the unique synchronization identifier equals a unique tracking identifier, wherein the unique synchronization identifier is updated after each successful synchronization and wherein the unique tracking identifier is a last-known unique synchronization identifier of the client device maintained in a memory of the server; if the unique tracking identifier does not equal the unique synchronization identifier: setting the unique tracking identifier equal to the unique synchronization identifier; setting a timeout equal to the current time plus a predetermined value; and sending the synchronization notification to the client device; if the unique tracking identifier equals the unique synchronization identifier and if the current time is less than the timeout value, sending no synchronization notification; and if the unique tracking identifier equals the unique synchronization identifier and the current time is greater than the timeout, sending the synchronization notification to the client device and setting the timeout equal to the current time plus the predetermined value. setting the unique tracking identifier equal to the unique synchronization identifier; setting a timeout equal to the current time plus a predetermined value; and sending the synchronization notification to the client device; if the unique tracking identifier equals the unique synchronization identifier and if the current time is less than the timeout value, sending no synchronization notification; and if the unique tracking identifier equals the unique synchronization identifier and the current time is greater than the timeout, sending the synchronization notification to the client device and setting the timeout equal to the current time plus the predetermined value.