Activity Type Versioning
When you create an Activity Type, you configure the rules and reward for completing it:
- What type of task (or tasks) a BrandChamp must complete
- How often they can complete the Activity Type
- What reward they get for each completion
The fields that control those core rules and reward values are marked with the "versioned" identifier in the Activity Type designer:
When you create a new Activity Type, it starts at Version 1:
Any time you edit a "versioned" field and update the Activity Type, you will be prompted that doing so will create a new version:
Note: editing non-versioned fields such as the description text or icon does not trigger creation of a new version as these fields are not used to control the rules or reward of an Activity Type.
So if an Activity Type is at version 1 and we edit a "versioned" field and then save the Activity Type, we leave the original version 1 intact in our database but create a new version 2 with the updated values.
The updated version (v2) is what will be shown to BrandChamps going forward in the "Available Activities" section of the BrandChamps portal. So any new Activities completed from then on will use the values from version 2.
For any BrandChamps who were already in the middle of completing an Activity instance at version 1 (for example they had submitted a task but it hasn't been reviewed yet), they will continue to use the rules and reward from version 1 for those existing Activity instances.
Why is versioning needed
We use versioning for a number of reasons:
- So that the rules or rewards don't change for BrandChamps after they have started to complete an Activity
- So we can validate submitted data correctly
- So we can enforce limits correctly across versions (see below)
Versioning and Limits (Why cloning might not be the right choice)
In some ways, creating a new version of an Activity Type is similar to cloning one, saving your edits and then deleting the original Activity Type. But there's a key difference: with versioning we preserve any completion limits across all versions.
For example: Let's say you have set up an Activity Type that can only be completed one time, ever, by each BrandChamp. And it gives 10 points as a reward:
And let's say you have a BrandChamp called Judy who has already completed that Activity and earned her 10 points. If you now go in and change the reward to 20 points and save that Activity Type (hence creating a new version), the "one time, ever" limit check is preserved: Judy will not be able to complete this Activity Type again.
But if you had cloned it instead, saved the new Activity Type with 20 points and then deleted the original one, the system would have no way to know that Judy had already completed the previous type and so she would be able to complete the cloned Activity Type, earning another 20 points.
So to ensure limits are enforced correctly over time, be sure to just use versioning to update Activity Types.