Salesforce-Avoid using campaigns for business critical processes
This is just a quick warning post for anyone not using Salesforce but thinking about it, or thinking of starting to use campaigns heavily, I would advise against it. Before my company hired me, they hired Model Metrics (a Salesforce Partner, and a damn good one) to help implement their Salesforce instance. We have kind of an odd setup, where we don’t use Salesforce for sales, we use it mostly for CRM and to handle tracking of people attending events we put together. So the logical choice (or so it seemed) was to use campaigns for the events, and campaign members for the people attending said event. Big mistake, and here is why.
1) Modifying campaigns require the most expensive licensing
If you want your users to interact with your campaigns, prepare to pay, big. Only full license users can see or access campaigns. That means no one app users, or any of the other ‘lesser’ licenses can play with them. So you’ll be shelling out the full license fees for anyone that needs to touch that data.
2) Campaign objects are treated different
For reasons I don’t fully understand, the campaign object is just treated as a different animal in Salesforce. It seems to have it’s own set of rules and it’s behaviors when attempting to customize it are often unpredictable. For example, I was just now trying to create an application to work with many campaign members at once, and so I wanted to use the pagination that a standardSetController provides. Oops, no such luck, campaignmembers are not supported by standardSetControllers or list views. I have run into other caveats like that, non of which I can think off of the top of my head right now, but I’ll post them as I remember them.
I know two reasons doesn’t seem like many, but when the alternative is just create your own objects and relationships, the choice becomes easy. It’s too late for us, but you can still save yourself! Don’t use campaigns and campaign members if you are going to be needing to extend their functionality and need to allow lots of users to access them and don’t want to pay full licensing fees.