Changes between Initial Version and Version 1 of VolunteerRecruit


Ignore:
Timestamp:
Apr 19, 2007, 10:30:19 AM (17 years ago)
Author:
davea
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • VolunteerRecruit

    v1 v1  
     1[[PageOutline]]
     2= Recruiting and retaining volunteers =
     3
     4The following is a list of suggestions for getting more people to participate in your project. Much of this is based on [http://boinc.berkeley.edu/poll_results.php the results of the BOINC user survey]; study this yourself.
     5
     6Most of these suggestions involve writing prose to be read by the general public. If (like many scientists) you are not good at this or avoid doing it, find someone who is good at it. This could be one of your students, a friend of a friend, or a professional writer.
     7
     8English is the most widely-spoken language among BOINC participants, and you should probably use it as the main language for web materials and email. BOINC provides mechanisms for [http://boinc.berkeley.edu/translation.php Web site translation]; it's generally easy to get volunteers to do this.
     9
     10== Project web site ==
     11Your project's web site has a large role in attracting participants. Some suggestions:
     12
     13    * Present your project's credentials: the educational credentials of its leaders, its research track record, and the status of its institution.
     14    * Describe what your project is doing: its high-level scientific goals, its methods, the details of the computation being done using volunteers, and the (non-distributed) computations that precede and follow this. How will your research affect the lives of everyday people now and/or 50 years from now?
     15    * Who owns the intellectual property that arises from volunteer computations? Will it be released to the public? When, and under what terms?
     16    * Show all the scientific results of the computation so far, and any publications that arise from these results. ([http://depts.washington.edu/~bakerpg/publications.html Rosetta@home] and [http://folding.stanford.edu/papers.html Folding@home] provide good examples of this). Announce new results and publications on the News column. Make sure your News column is being properly published as an RSS feed.
     17    * Give some personal information about your team members: their names, background, interests, and preferably a photograph. This will 'humanize' your project in the eyes of potential participants.
     18    * Take an active role in your web site's message boards. Read them frequently, and respond quickly to any negative threads that arise. Make a periodic posting giving 'insider info' on your project.
     19    * Make sure your the web site has clear navigation, so that the above information is easy to find from the front page. Do a user study - show your web site to a strangers, ask them to browse it and/or to find particular information, and get their feedback (you may be surprised).
     20    * If possible, create a graphical identity (logo, color scheme, etc.) for your project. Your web site should project professionalism and inspire confidence and interest in prospective volunteers.
     21
     22== Publicity ==
     23The world will not beat a path to your door. You need to work hard to spread the word about your project.
     24
     25    * Get in the mass media (newspapers, magazines, radio, television) as much as possible. If your institution has a PR director or media spokesperson, contact them while you're developing your project, and again any time your project has major news. If no such person is available, call local media outlets yourself.
     26    * Exploit existing organizational relationships. If you work at a University, try to get your project running on the PCs in the teaching labs, and on the PCs of students, faculty and staff. If you have connections with organizations with PR capabilities (i.e., web sites or newsletters), enlist their support for your project, and get them to publicize it. A typical example: professional organization in your subject area.
     27    * The BOINC web site will generally announce new projects. Also, make sure your project is listed on [http://boinc.berkeley.edu/acct_mgrs.php account managers] like GridRepublic and BAM!
     28    * Use the web. Announce your project in forums like Slashdot, and on the message boards of the major cross-project teams like BOINC Synergy, Overclockers UK, Team Anandtech, etc.
     29
     30== Email-based mechanisms ==
     31
     32BOINC provides PHP-based tools for sending three types of email to participants:
     33
     34    * ''Newsletters''. These are periodic (perhaps every few months) and are sent to all participants. Typically you would use them to summarize your project's results, to discuss its future plans, to make announcements, etc.
     35    * ''Reminders''. These are sent to participants who seem to have stopped computing to your project, or who signed up but never got any credit. Typically they would be short messages, encouraging the participant to take a specific action.
     36    * ''Friend-to-friend''. These are sent by participants to their friends and family, to tell them about your project and urge them to join. The sender can add an optional message.
     37
     38Effective use of all types of email is critical to maintaining and growing your participant base. In the absence of any email, participation typically decreases by a few percent every month. BOINC supplies the framework, but you must write the actual emails, or modify BOINC's samples as needed for your project. .
     39
     40The newsletter and reminder scripts provide the following features:
     41
     42    * They let you send different emails to different 'classes' of participants. For example, you can send a different newsletter to participants who haven't computed for your project in a while.
     43    * They let you personalize emails, e.g. by inserting the participant's name or their total credit.
     44    * They provide a mechanism for inserting a secure 'opt-out' link. Note: You should ALWAYS include an 'opt-out' link at the bottom of emails (both HTML and text). In may be illegal for you to do a mass email without one. Make sure you test this link.
     45
     46The scripts requires that you use [http://phpmailer.sourceforge.net/ PHPMailer], a PHP function for sending mail that's more full-featured than the one built into PHP. Download it, put it in html/inc, and set the USE_PHPMAILER, PHPMAILER_HOST, and PHPMAILER_MAILER variables in [http://boinc.berkeley.edu/web_config.php your project.inc file].
     47
     48All of the tools let you send multipart HTML/text messages. We recommend that you use this feature - and HTML message can include your logo and/or institutional insignia, can include hyperlinks, and can look more attractive.
     49
     50The general procedure for using each scripts is:
     51
     52    * Create a directory (mass_email, reminder_email, or ffmail) in your html/ops/ directory. In that directory, create separate files for the text body template, HTML body template, and subject line to be sent to each class of participants. NOTE: the HTML files are optional; if you leave them out, text-only emails will be sent.
     53    * Run the script in testing mode (see below) to ensure that the emails are as you intend.
     54    * Once testing is complete, run the script in production mode. Typically, the newsletter script is run from the command line. The reminder script is typically run as a [http://boinc.berkeley.edu/tasks.php periodic task], every 24 hours or so.
     55
     56The newsletter and reminder scripts use the recent-average credit (expavg_credit) field in the user table. To make sure this value is accurate, run [http://boinc.berkeley.edu/project_tasks.php update_stats] manually if you're not running it as a periodic task.
     57=== Personalizing emails ===
     58
     59The newsletter and reminder scripts replace the following macros in your email bodies (both HTML and text):
     60
     61 <name/>::      User name
     62 <create_time/>::       When account was created (D M Y)
     63 <total_credit/>::      User's total credit
     64 <opt_out_url/>::       URL for opting out (this URL includes a salted version of the participant's account key, and so is different for every participant).
     65 <lapsed_interval/>::   The number of days since user's client contacted server (defined only for lapsed users, see below).
     66 <user_id/>::   The user ID (use this to form URLs)
     67
     68=== Avoiding spam filtering ===
     69Your email is less likely to be rejected by spam filters if:
     70
     71    * Your HTML and text versions have the same text.
     72    * Your HTML version either contains no images, or has at least 400 words.
     73
     74== Newsletters ==
     75
     76The script html/ops/mass_email_script.php is for sending email newsletters. The script categorize participants as follows:
     77
     78    * ''Failed'': zero total credit. These people failed to download and install the client software, or failed to get it working (e.g. because of proxy problems) or uninstalled it before finishing any work.
     79    * ''Lapsed'': nonzero total credit but recent average credit < 1: These people did work in the past, but none recently.
     80    * ''Current'': recent average credit >= 1. These are your active participants.
     81
     82To use the script, create the following files in html/ops/mass_email:
     83
     84 failed_html::  HTML message sent to failed users. Example:
     85{{{
     86<html>
     87<body bgcolor=ffffcc>
     88Dear <name/>:
     89<p>
     90Test Project continues to do pioneering computational research
     91in the field of Submandibular Morphology.
     92In recent months we have discovered over
     9317 new varieties of Frombats.
     94<p>
     95Our records show that you created a Test Project account
     96on <create_time/> but that your computer
     97hasn't completed any work.
     98Possibly you encountered problems
     99installing or using the software.
     100Many of these problems have now been fixed,
     101and we encourage you to visit
     102<a href=http://a.b.c>our web site</a>,
     103download the latest version of the software, and try again.
     104<p>
     105<font size=-2>
     106To not receive future emails from Test Project,
     107<a href=<opt_out_url/>>click here</a>.
     108</font>
     109</td></tr></table>
     110</body>
     111</html>
     112}}}
     113 failed_text::  Text message sent to failed users. Example:
     114{{{
     115Dear <name/>:
     116
     117Test Project continues to do pioneering computational research
     118in the field of Submandibular Morphology.
     119In recent months we have discovered over
     12017 new varieties of Frombats.
     121
     122Our records show that you created a Test Project account
     123on <create_time/> but that your computer
     124hasn't completed any work.
     125Quite possibly you encountered problems
     126installing or using the software.
     127Many of these problems have now been fixed,
     128and we encourage you to visit
     129<a href=http://a.b.c>our web site</a>,
     130download the latest version of the software, and try again.
     131
     132To not receive future emails from Test Project, visit
     133<opt_out_url/>
     134}}}
     135 email_failed_subject::         Subject line sent to failed users. Example: 'Test Project News'.
     136 lapsed_html::  HTML message sent to lapsed users
     137 lapsed_text::  Text message sent to lapsed users
     138 lapsed_subject::       Subject line sent to lapsed users
     139 current_html::         HTML message sent to current users
     140 current_text::         Text message sent to current users
     141 current_subject::      Subject line sent to current users
     142
     143=== Testing ===
     144
     145Test your email before sending it out to the world. As distributed, mass_email_script.php has the following variables defined near the top:
     146{{{
     147$testing = true;
     148}}}
     149Set it to false to actually send emails (rather than just print to stdout).
     150{{{
     151$userid = 1;
     152}}}
     153If this is nonzero, email will be sent to the given user ID; Otherwise it will be sent to all users.
     154
     155To start, set $userid to the ID of your own user record. Run the script by typing
     156{{{
     157php mass_email_script.php
     158}}}
     159It will print (to stdout) the contents of all three email types (failed, lapsed, and current). Verify that the subject, HTML and text are correct.
     160
     161Then set $testing = false and run the script again. You'll get three emails; check them.
     162
     163Then set $testing = false and $userid = 0, create an empty file called mass_email/log (see below), and run the script. You'll get voluminous output to stdout, but no emails will be sent. Control-C it quickly if you want. Make sure that each user is being sent the right type of email.
     164
     165When you're sure that everything is correct, set $testing = false, set mass_email/log to empty, and run the script. It will now send mass emails. Depending on the size of your user table, it may take hours or days to complete. You can control-C it and restart whenever you want; it automatically picks up where it left off (see below).
     166Checkpoint/restart
     167
     168mass_email_script.php manages checkpoint/restart when dealing with large numbers of participants. Mails are sent in order of increasing user ID. The file mass_email/log has a list of IDs that have been processed. On startup, the script reads this file, finds the last entry, and starts from there.
     169
     170If you are starting a mass email from the beginning, empty the file mass_email/log; i.e.
     171{{{
     172truncate mass_email/log
     173}}}
     174== Reminder emails ==
     175
     176The script html/ops/remind.php is for sending reminder emails. The script categorizes users as follows.
     177
     178    * Failed: the account was created at least 14 days ago, has zero total credit, and hasn't received a reminder email in 30 days. These people typically either had a technical glitch, or their hardware and/or preferences didn't allow sending them work, or the application crashed on their host. The reminder email should direct them to a web page that helps them fix these problems.
     179    * Lapsed: the user has positive total credit, hasn't done a scheduler RPC in the past 60 days, and hasn't been sent a reminder email in the past 30 days. They probably stopped running BOINC or detached this project. The reminder email should gently prod them to start running BOINC and attach to this project again.
     180
     181The numbers 14, 30, and 60 are all parameters in the script; edit it to change them.
     182
     183To use the script, create the following files in html/ops/reminder_email/:
     184
     185 failed_html::  HTML message sent to failed users
     186 failed_text::  Text message sent to failed users
     187 failed_subject::       Subject line sent to failed users
     188 lapsed_html::  HTML message sent to lapsed users
     189 lapsed_text::  Text message sent to lapsed users
     190 lapsed_subject::       Subject line sent to lapsed users
     191
     192remind.php can be run as often as you like. We recommend running it every hours, specifying it as a task in config.xml. When it sends email to a user, it stores the time in their database record, and won't send them another email for at least 30 days. For this reason, it has no checkpoint/restart mechanism.
     193
     194The procedure for testing your reminder email is similar to that for email newsletters (see above).
     195== Friend-to-friend emails==
     196
     197The web page ffemail_form.php lets users send emails to their friends. To use this feature, you must create the following files in html/ops/ffmail/:
     198
     199 subject::      The subject line used for friend-to-friend emails
     200 html::         HTML template for friend-to-friend emails
     201 text::         Text template for friend-to-friend emails
     202
     203Samples are supplied for each of these. The following macros are substituted in the message bodies:
     204
     205 <fromname/>::  The name of the sender
     206 <toname/>::    The name of the recipient
     207 <comment/>::   The comment supplied by the sender