HOWTO Be Secretary
The Secretary has a bunch of duties! This page should eventually contain info about how to properly perform most or all of them.
- 1 Preliminary Background Information
- 2 Necessary Access to Official Records and Systems
- 3 Other Important Documents
- 4 Calling a Member Vote
- 5 Regular Meetings
- 6 Running the Annual Election
- 7 Filing Paperwork
- 8 Helpful books
Preliminary Background Information
- Review Robert's Rules of Order which is the basis for i3 Detroit's meeting's operating meetings
- Familiarize yourself with i3 Detroit's Bylaws and Standing Rules
- Know how to find them on the wiki
- Refer to them when appropriate to answer questions at meetings - it's a good idea to delegate this while you are taking minutes!
- Learn how to edit the wiki
Necessary Access to Official Records and Systems
These are i3 Detroit's official records systems that the secretary is responsible for
The Official Email: email@example.com
- Use this email for official communications to the announce list, individuals, and external organizations
- Make sure this is added to the firstname.lastname@example.org so that you can make announcements
Bylaws and Standing Rules
- Get your wiki access permissions to include Bureaucrats and Administrators so that you have edit permissions
- Make sure other people who don't need access to these don't have that access
CRM aka Customer Relationship Manager
- Get your CRM role set to "director"
- Check your role settings by going to your page on the CRM, then clicking on the roles link
Other Important Documents
- Hold a copy of the current lease to 1481 A Wordsworth St
- Hold a copy of the insurance policy
Calling a Member Vote
- Making sure the item is actually something that can be voted on
- Determining who can vote on it.
- Finalizing the language to be voted on.
- Opening voting.
- Closing voting and announcing results.
Call for Topics
Before every regular meeting a call for topics is sent out by the secretary to email@example.com to help create the agenda. Since regular meetings are on Tuesdays, it is best to send out the call for topics on the preceding Sunday.
- Create a new wiki page for the minutes
- See Category:Meeting Minutes for examples
- Use the format Meeting_Minutes_YYYYMMDD or Board_Meeting_Minutes_YYYYMMDD
- Copy the appropriate template into the new minutes page as a starting point
- Copy the action items from the last meeting's minutes to the review for the new meeting's Action Item Review
- Save the new minutes page
- Send an email to firstname.lastname@example.org
- Announce the meeting time and whether the meeting is a member or board meeting
- Request users add meeting topics and include the URL to the new minutes wiki page
- It's also helpful to include a URL to HOWTO
- Making a note of the time the meeting starts is important to looking all official-like.
- Record all people in attendance at the meeting; this is a legal requirement!
- After the meeting ends, post them to this wiki.
Example of how to document proposals
- Person A moves to nominate/propose
- Person B seconds the motion
Motion to nominate Person C as warden of the Wiki Zone
- 5 in favor of 7 present, motion passes
Use <pre> and </pre> tags to offset proposals so they're easy to pick out
Action items are a record of specific tasks and who is responsible for them. They require a specific name (i.e. cannot be "everyone") and a specific task. Action items are reviewed at the beginning of the next meeting to check on progress toward completing the action. If an action item is not completed at the time of review, it is copied to the current action item list so that it will be reviewed at the following meeting unless the action item is determined to be no longer necessary. It is a good idea to email everyone with an action item a couple days before the meeting (like right after creating the minutes/call for topics post) to increase the chances of the action items being completed.
Documenting Action Items
Action Items from the previous meeting are copied into the "Action Item Review" section of the current meeting. After the item is discussed, use <strike> and </strike> tags to cross off the old item and then put the update. This makes it easier to see the change in status.
Konrad to educate Jamie about strikethroughs Jamie is now educated and has even documented their use!
Every proposal that is passed at a meeting should be documented somewhere. It is the secretary's duty to perform such documentation or delegate it.
- Officer/Zone Coordinator Appointments: Update the relevant wiki pages with current appointments
- Modification to Standing Rules/Bylaws: Update the document on the wiki
- Budget Items: delegated to Treasurer/Budget
- Other resolutions: deal with as appropriate, but DO NOT just note it in the minutes and then do nothing with it
Running the Annual Election
- Use the [[Standing_rules#Board_of_Directors.2C_Officers.2C_and_Elections | standing rules] as guidance. Make sure to check them early, as parts of the election process start in the beginning of August.
- Send out emails both to the regular members-only list and to the announce list. Don't be afraid to repeat the same information over and over. Elections are important stuff and it's better to pound the information into people's heads as much as possible, instead of risking confusion.
In 2015, Jamie shared a Google Doc (view-only) with the members list so that everyone could see who was nominated, even the people that didn't accept. Relative to 2014, this reduced the number of repeat nominations. There were always some viewers on the document, so it seems like a good idea worth repeating.
Jamie always sent out emails to nominees manually. Is there a better way to do this? Probably! Feel free to improve upon her method.
In 2014 Jamie set up an electronic voting system using a system of random vote keys, google forms, and spreadsheet formulas.
Sending out Vote Keys
- Download python 2.7
- Download SendEmail
- Make a folder that contains the SendEmail executable, like "2015 Vote". Put all the rest of the files in this folder.
- Export from the CRM the list of voting members, and separate out the list of email addresses. Put the email addresses in a text file labelled with the date (for example VotingEmails_826.txt) as they will likely need to be re-checked the day of/before the election. Get the number of emails, roughly, as a sanity check.
- Copy the text below and save it as something like "Votekey_EmailGenerator.py" This file will
- Generate a list of random keys, 6 characters long. Confusing characters are taken out of this list. Generate a sufficient number of random keys so as to have extra if needed.
- Write a batch file that uses the program SendEmail to send an email from email@example.com. Make sure that the from email and SMTP authorization username/password are correct. Check the subject and text of the email for outdated references and the correct dates.
#Generates a text file of a specified number of #random alphanumeric sans confusing characaters (1, 0, i, l, o) #strings of a specified length import random import string x=0 #counter keylength=6 #char length of vote key numkeys=120 #number of vote keys desired votekey_output=open("VoteKeys_2015.txt","w") #open file for writing #combine [keylength] random chars into a string and write it to the file, with a newline for x in range(numkeys): votekey_output.write(''.join(random.choice("abcdefghjkmnpqrstuvwxyz" + "23456789") for _ in range(keylength)) + "\n") votekey_output.close() # Load CRM emails CRM_File = open("Good2Vote_8-27-15.txt") VotingEmails=CRM_File.readlines() Voters = len(VotingEmails) # Load Vote Keys VoteKeyFile = open("VoteKeys_2015.txt") VoteKeys=VoteKeyFile.readlines() # Write batch file file = open("newfile.txt", "w") i = 0 while i < Voters: file.write("SendEmail -f firstname.lastname@example.org -u i3Detroit 2015 Elections: Vote Key") file.write(" -t "+VotingEmails[i].rstrip()) file.write(" -m Hello i3Detroit voting member! Below is your vote key for the 2015 Election!") file.write("\\n You will need this key in order to vote in the election on September 1st, 2015. Elections this year are going to be held over a 24 hour period to allow as many members as possible to participate. Voting will be open from 10pm Monday, August 31st until 10pm Tuesday, September 1st. The ballot will be sent out to the general mailing list and you will need to enter your vote key for your vote to be counted. You are strongly encouraged to come to i3 on Tuesday, September 1st at 7:30pm as candidates will be giving speeches to the membership and doing their final campaigning. ") file.write("\\n \\nFor more information about the candidates, see http://i3detroit.org/wiki/Election_2015") file.write("\\n \\nIf you have any questions, email the secretary (email@example.com) ") file.write("\\n \\nVote Key: "+VoteKeys[i].rstrip()) file.write("\\n \\n \\n \\nSincerely, \\nJamie Burdeski\\nSecretary, i3Detroit") file.write(" -s smtp.gmail.com:587 -xu firstname.lastname@example.org -xp youremailpassword -o tls=yes \n") file.write("timeout /t 10 \n") i = i + 1 file.close()
- Run VoteKey_EmailGenerator.py
- Make an excel file and copy the emails and votekeys into it. (for example from VotingEmails_826.txt and Votekeys_2015.txt). This is just for reference. This step could probably be implemented into the python script.
- Rename the output file, newfile.txt, to a batch file (.bat). Double check the contents by opening in notepad++
- Run the batch file in command line. The delay is 10 seconds between each email (so as to not look spammy), so it will take 15-20 minutes to run.
- There will always be stragglers. Add the stragglers' emails to the excel spreadsheet and manually email their vote keys to them. There should be more than enough extra vote keys generated.
Setting up the Ballot
If the secretary is also running for board, it's a good idea to have an election helper who is not running for board to oversee the final ballot counts. If not, it's ok for the Secretary to do everything, although there is the possibility that the secretary could violate the claim of anonymity by checking vote keys against emails. Just don't be a dick, future secretary!
Notes on the ballot
- Data validation in the ballot itself limits the number of votes to 8 (the current number of board of directors)
- All other data validation is done in the spreadsheet that collects form responses
Notes on the vote-validating-and-counting spreadsheet
- There is some test data already in the spreadsheet to see how it'll work
- Form responses 1: this sheet contains the raw data from the form. Don't mess with it, because the form overwrites anything there with new responses.
- Vote Keys: Copy the vote keys into the first column of this sheet
- Data Validation: This sheet copies the first 3 columns of the form response data and then does a lookup against the vote key list, and also checks for duplicates, keeping the last occurrence. It takes the valid votes and formats them for counting. This is the hackiest sheet, so let me know if you have any questions about the logic.
- Vote Count: This sheet counts up all the valid votes for each nominee and makes a pretty graph.
Election Helper: How to set up the final vote after you're done playing with test data
- Open the sample ballot
- Open the responses spreadsheet
- Save an official copy of both for the current election year (very important, otherwise all the responses are public! Make sure you do not check the box that keeps the previous sharing settings)
- In the ballot, Change the nominees to reflect the current years' nominees. You can copy/paste an entire column from excel easily.
- Look over the ballot for any outdated references
- In the ballot, go to menu item Responses > Delete all responses
- Then go to Menu item Responses > Choose response destination > New sheet in an existing spreadsheet
- Select the official spreadsheet that you just created
- Open that spreadsheet if it's not already open
- Delete the previous "Form Responses" sheet that contained old data
- Rename the new Form Response sheet to "Form Responses 1" (it'll break formulas if you don't)
- Double check all the formulas, particularly the array formulas in the top row of the Data Validation sheet. (you may have to hit Enter to re-jigger the array formulae into working)
- Get the list of vote keys from the secretary after they do the final CRM-checking.
- Copy all of the nominees into the first column of the "Vote Count" tab
- In the ballot, click on the blue "send" button. Send the form via email to the secretary. This embeds the form into an email that the secretary can then send to the members list when voting is officially open.
- At the end of the election, open the ballot and go to Responses -> "accepting responses" and toggle to "Not accepting responses"
- Go over the election spreadsheet, check for errors, and when finished, send the secretary the list of newly elected directors so the secretary can announce it all official-like.
- To maintain our non-profit status we need to file an annual report here;
typically this report is filed after elections take place in Septemeber. It needs to be filed on or before October 1. The fee is $20.
- We are a Domestic Nonprofit Corporation registered with the state of Michigan