Skip to end of metadata
Go to start of metadata

Rational for a CiviCanvass Component

It appears that all or almost all of the functionality is already implemented.  What is missing is a centralized component that brings these functions together for the purpose of canvassing.

Terminology

The working terms I will use for the functions of a canvass component are script, walk list, canvass, and data entry.

  • Walk script - the questionnaire and data fields associated with a particular canvass
  • Walk list - the contacts who will be canvassed
  • Canvass - a report that combines the script and walk list into a single printout
  • Data entry - the data entry page which resembles the canvass printout and contains select and/or radio boxes for data entry.

Main Page Content

Walk Script

  • Create a new script
  • Manage saved scripts

Walk List

  • Create a new walk list
  • Manage saved walk lists

Canvass

  • Create a new canvass
  • Manage saved canvasses

Data Entry

Implementation

Walk Script - For CiviCanvass, script creation uses the custom data creation function located in Administer CiviCRM.  "New Group of Custom Fields" is the link used to create a new walk script.  The Custom Data Group page in current CRM is re-used but Group Name is changed to read Script Name.  The rest of this function is the same, using Custom Field Data to create the individual data fields.  Under this group "Manage saved scripts" requires accessing the list of saved scripts which is the Administer CiviCRM>>Custom Data Main Page.  The Column Headed "Group Title" becomes "Script".  At the same time a Profile is created using the same Custom Data Group and Custom Fields.  The profile is saved with the same name.

Walk List - Creating a walk list involves targeting specific contacts by address.  Recommended method is to create groups organized in a manner that places contacts in logical, geographically defined subgroups of the entire contact universe.  This could be as simple as grouping by street name or a user can have a more complex system that groups multiple streets into areas called Turfs.

Regarding functionality in a CiviCanvass component, the basic task is the same as the Manage Groups page.  Following the Manage link directs to the Manage Groups page where the user selects the groups to include on the walk list.  Using the current form of CiviCRM would mean using Members>>Select All>>more actions where "more actions" includes an option titled Add Contacts to Walk List.  Not knowing CiviCRM development, I will guess that this involves creating a mysql report that processes the list and meets the requirements of a printable walk list sorted first by street name and second by house number.  To access a "Saved" walk list my suggestion is to use the tag function.  Can the tagging process be automated so that each contact is tagged with the name of the walk list?  I.E. - Once contact groups are added to a walk list, a canvass name is entered in a form.  Saving the canvass also tags each contact with the canvass name.  The Manage link runs a search on this tag and returns a list of all contacts tagged with the canvass name.

Canvass - Here's is where I'm not sure about implementation.  Creating a canvass might follow along the lines of Make Mailing Labels.  The mysql report for this would combine a script and a walk list into format that prints an address identical to a mailing label but instead of two columns of address labels there are multiple columns.  Column One is the address label and column n=the various response options for each data field from the script.  This allows for a one-sheet solution for canvassers.  They have walk list addresses and data recording accessible on print out.

Data Entry - Manage Groups>>Members>>Select All>>more actions>>Batch Update via Profile.  Choosing a saved canvass directly loads the Batch Update data entry screen for the requested canvass.

We could also...

Include a phone-bank function with this component. Add a Call Script option which is the same as the Walk Script function but it creates Call Scripts. Add a Call List option which is the same as the Walk List but instead it creates a report sorted by phone number. Add a Phone Bank option which is the same as the Canvass function but it creates a report joining a Call Script and a Call List.

Labels:
  1. Jul 13, 2009

    I'm very interested in this, and would want both the walk lists and the Phone Bank option. Has any work been done on this?

    I'd like to write a simple mobile date entry app that contains a list of a voting district's (or ward's) voters that had check boxes for all people who have voted. A poll volunteer could check off the names of people who voted and election-day phone bankers could call those who haven't yet to see if they need a ride to the polls or any other help getting to the polls.

    1. Jul 14, 2009

      There's been a lot of discussion / interest - but I'm not aware of an organized project in progress. There is a draft "Walklist" report in the CiviReport portion of the codebase which was "designed" at the developer camp in SF in April. It's currently "hidden" in the UI since it needs some domain expertise / polishing.

      Here's some discussion threads - mostly so you can hook up with others who have expressed interest in these areas: http://civicrm.org/node/415 http://forum.civicrm.org/index.php?topic=3105.0

      I think someone(s) with time, domain expertise and engineering expertise needs to step up and drive the development. Is that you / CiviActions? (smile) Best to continue the conversation on the forums and / or IRC (better visibility).

      1. Jul 20, 2009

        In August I'll have a better sense if some clients of mine are prepared to put funding into this.


Creative Commons License
Except where otherwise noted, content on this site is licensed under a Creative Commons Attribution-Share Alike 3.0 United States Licence.