Type: New Feature
Affects Version/s: 3.0
Fix Version/s: Unscheduled
A simple CiviCRM campaign module should be setup in the future. For most organisations it is very important to track where memberships and contributions come from and to track the efficiency of the differrent channels. I think a simple campaign module could be included in CiviCRM re-using the current functionality and minimal new functionality.
A campaign has a generic flow: Definition & preparation -> Target group selection -> execution -> fulfillment -> reporting. In the first version the focus should be on definition, fulfillment and reporting. So no internal selection and, for now, no internal execution.
It might be best to treat this as a new module with it's own administration screens and functionality. The new module would have a screen where 'campaigns' can be added and administered. A campaign would have the following fields:
- Status (e.g. in preparation, active, closed) -> reference table needed
- Begin date
- End date
- Channel/type (e.g. phone, email, door-to-door, advertisement) -> reference table needed
With these fields it should be possible to register campaigns and keep track of the 'source' of the items.
The contributions, memberships and events have the 'source' field. This being the source of where the item originated from. This is currently a free-form field but it might be better to have this read from a table in drop-down. This will make the sources consistant throughout all items and thus easier to report on.
In my view the dropdown should be filled from two tables (a join). One being the regular drop down for sources which are not campaign related (or when user is not using campaigns). This would be a normal change on the core code and not campaign related. The other table being the campaign definition table (all campaigns with status valid and with valid dates).
The import code and the code to adding the items to the contacts should be changed to include the source/campaign field.
The reporting can in the first version be kept simple. An overview of the campaigns, their status and the number of items and money generated.
I think the things described above will give a simple, but solid foundation for a campaign module. It could be expanded with incentives (linking with premiums), call lists, scripting, a selection tool, email campaigns etc.