EA-Groups-CRM

所属分类:企业管理
开发工具:JavaScript
文件大小:2393KB
下载次数:0
上传日期:2019-10-10 11:54:13
上 传 者sh-1993
说明:  这是一个客户关系管理(CRM)系统,用于帮助EA小组组织他们的一对一辅导课程...
(This is a Customer Relationship Management (CRM) system to help EA groups organise their one-on-one coaching sessions with community members.)

文件列表:
_CRMsetup.js (3994, 2019-10-10)
_config.yml (182, 2019-10-10)
bundle.js (74528, 2019-10-10)
datePickerNewMeeting.html (600, 2019-10-10)
datePickerOldMeeting.html (866, 2019-10-10)
images (0, 2019-10-10)
images\Dashborad.PNG (34401, 2019-10-10)
images\EA_Logo_text.png (616368, 2019-10-10)
images\Folder_structure.PNG (22498, 2019-10-10)
images\Metrics.PNG (20070, 2019-10-10)
images\Metrics_in_candidate_sheet.PNG (16809, 2019-10-10)
images\actionablesMeetingNotes.png (4314, 2019-10-10)
images\activeInactive.png (4087, 2019-10-10)
images\addCandidates.png (9864, 2019-10-10)
images\addEvaluationAfter.png (14230, 2019-10-10)
images\addEvaluationBefore.png (13806, 2019-10-10)
images\addFolderId.png (7258, 2019-10-10)
images\addMeeting.png (17071, 2019-10-10)
images\addMemberListId.png (7169, 2019-10-10)
images\addOnboardingAfter.png (20144, 2019-10-10)
images\addOnboardingBefore.png (20116, 2019-10-10)
images\advancedService.png (64244, 2019-10-10)
images\authorizationAllow.png (61913, 2019-10-10)
images\authorizationRequired.png (10823, 2019-10-10)
images\candidate_sheet.PNG (33264, 2019-10-10)
images\codeNames.png (64827, 2019-10-10)
images\copyCode.png (105198, 2019-10-10)
images\deleteText.png (16684, 2019-10-10)
images\deleteTextScript.png (5044, 2019-10-10)
images\errorNoIds.png (54614, 2019-10-10)
images\errorNoMemberlist.png (46109, 2019-10-10)
images\errorNotFolder.png (34437, 2019-10-10)
images\errorNotVerified.png (42483, 2019-10-10)
images\errorWrongMemberlist.png (29053, 2019-10-10)
images\favicon.ico (32988, 2019-10-10)
images\filesGitHub.png (19653, 2019-10-10)
images\folderStructure.png (41710, 2019-10-10)
... ...

# Table of content 1. [CRM system setup](https://github.com/EANorwayService/EA-Groups-CRM/blob/master/#setupCRM) 1. [About the CRM system](https://github.com/EANorwayService/EA-Groups-CRM/blob/master/#aboutCRM) 1. [Use the CRM system](https://github.com/EANorwayService/EA-Groups-CRM/blob/master/#useCRM) 1. [Troubleshoot](https://github.com/EANorwayService/EA-Groups-CRM/blob/master/#troubleshoot) 1. [FAQ](https://github.com/EANorwayService/EA-Groups-CRM/blob/master/#FAQ) 1. [Extra](https://github.com/EANorwayService/EA-Groups-CRM/blob/master/#extra) # CRM system setup ### Required for CRM system setup 1. A Google account 2. Access to the Google/Team Drive Folder where you want to place your CRM system.
3. A list of names with (optional) contact info you want to import to your CRM system. We will call this "the member list" in this guide. You can also start without any initial candidates and add individuals later.
### Step 1: Open the system in Google App Script, and copy the project [Open this link](https://github.com/EANorwayService/EA-Groups-CRM/blob/master/https://script.google.com/a/effektivaltruisme.no/d/1b3tvzY4FpxrJmMaEKILrUdpSjP0UWf_fjcAQxvPVpvO9fyy6rkT5728N/edit) in a new tab. It contains the project in Google App Script where the code to the system lies. Make sure that you're logged in to script.google.com with the user that you want to have access to the system. Check which user is logged in in your upper right corner. Then, select **File > Make a copy**. You now have you're own copy of the system code. You can give it a new name - whatever you'd like. ### Step 2: Enable Advanced Drive Service Do the following in the new project in Google App Script: Click **Resources > Advanced Google Services** scroll down to **Drive API** and enable it.
![Advanced Google Services](https://github.com/EANorwayService/EA-Groups-CRM/blob/master/images/advancedService.png) ### Step 3: Add the ID of the member list to CRMsetup.gs Find or make a Google spreadsheet with a list of the names of the people you want to import to your CRM system. You can use a wider list of people and later choose who you specifically want to add as candidates to the system.
See [this example](https://github.com/EANorwayService/EA-Groups-CRM/blob/master/https://docs.google.com/spreadsheets/d/1PEZhv7JwFeFfu8oeloPuxFmHMNCop2YdguYI1G0g4io/edit?usp=sharing) of such a list, and use the example list if you are only testing the system. Your list should have the same structure as the example linked above, though it can have multiple extra columns. The script assumes that your list starts in cell A1.
Copy the ID of the member list found in between the last two backslashes, as shown in the picture below. Do not include the backslashes.
![How to find ID for member list](https://github.com/EANorwayService/EA-Groups-CRM/blob/master/images/memberlistId.png) Then, go to your project in Google App Script and make sure you are in CRMsetup.gs. Find line 14 where it says **MEMBERLIST_ID**, and enter the ID of the member list between the quotationmarks. Do not remove the quotationmarks. Save the script by selecting **File > Save.** br/> ![Where to add ID for list of members](https://github.com/EANorwayService/EA-Groups-CRM/blob/master/images/addMemberListId.png) ### Step 4 (Optional): Enter a name for your CRM-system folder in CRMsetup.gs While in file CRMsetup.gs in your project on Google App Script, find line 18 where it says **NEW_FOLDER_NAME**. Enter the name of your CRM-system. You can choose to not change the name, and then it will be called _CRM-system_. ### Step 5: Add the ID of the destination folder to CRMsetup.gs Choose a secure folder on Google/Team Drive with the sharing settings of your liking (but your Google account must have full access). Make sure that you are logged into your preferred user account. This folder will be the location of your CRM-system. Find the ID of that Google Drive folder between the last two backslashes. Copy the ID, and do not include the backslashes.
![How to find ID for folder](https://github.com/EANorwayService/EA-Groups-CRM/blob/master/images/teamDriveId.png)
Then, go to your project in Google App Script and make sure you are in CRMsetup.gs. Find line 22 where it says **DRIVE_FOLDER_ID**, and enter the ID of the destination folder between the quotationmarks. Do not remove the quotationmarks. Save the script by selecting **File > Save.**
![Where to add folder ID](https://github.com/EANorwayService/EA-Groups-CRM/blob/master/images/addFolderId.png)
### Step 6: Try to run setupCRM() function in CRMsetup.gs Be sure all scripts are saved by selecting "File" and "Save". Then, select: **Run > Run function > setUpCRM**.
![Run setUpCRM function](https://github.com/EANorwayService/EA-Groups-CRM/blob/master/images/setUpFunction.png)
NB: You may be asked to review [authorization](https://github.com/EANorwayService/EA-Groups-CRM/blob/master/https://developers.google.com/apps-script/guides/services/advanced), see picture below.
![Authorization](https://github.com/EANorwayService/EA-Groups-CRM/blob/master/images/authorizationRequired.png)
If you can not find the function setupCRM() you might be in the wrong file. The CRM system is not a published app nor is it verified by google, therefore google needs permission to run the app. More information [here](https://github.com/EANorwayService/EA-Groups-CRM/blob/master/https://developers.google.com/apps-script/guides/services/advanced). Click review permission and allow.
![Allow authorization](https://github.com/EANorwayService/EA-Groups-CRM/blob/master/images/authorizationAllow.png)
If Google tells you that the CRM system is not an app verified by them, select **Advanced > Go to CRM(unsafe)** and proceed to step 7.
![App is not verified by google](https://github.com/EANorwayService/EA-Groups-CRM/blob/master/images/errorNotVerified.png)
If Google does not tell you this, go check in your destination folder. If the system isn't there, proceed to step 7. If the system is there, proceed to step 8. ### Step 7: Run setUpCRM() function again After reviewing permission, allowing the CRM system access and approving that you know and trust the app/developer, you need to run the setUpCRM function once more.
Make sure you are in the setUpCRM.gs file and select **Run > Run function > setUpCRM**. If you can not find the function **setupCRM()** you might be in the wrong file.
![Run setUpCRM function](https://github.com/EANorwayService/EA-Groups-CRM/blob/master/images/setUpFunction.png)
If there are multiple versions of the CRM-system in the destination folder, you should remove all older versions from that folder and only run the newest one.
You now have a CRM-system on your Google/Team drive! ### Step 8: Move CRM Key spreadsheet to a secure location (optional) If you prefer to used anonymised code names and you don't want everyone using the CRM-system to have access to candidates' real name you can move the Key spreadsheet to some other location (see more information about the Key spreadsheet in "About the CRM-system" section below.
Only accounts given access to this sheet may run the function "add candidates". Remember that everyone who has access to the script files can also access data from the Key spreadsheet.
If you have questions about whether you should move your CRM Key spreadsheet to a secure location or not, feel free to contact us at post@effektivaltruisme.no # About the CRM system This is a Customer Relationship Management (CRM) system run in Google App Script developed by Effective Altruism Norway. The purpose of this CRM system is to streamline one-on-one meetings for EA groups. Key features of the system: 1. Uses well known spreadsheets and documents in Google Suite. 2. Makes it easy to plan, follow up and evaluate 1:1 meetings for career guiding etc. 3. Makes it easy to adjust and develop to the needs of your group. 4. Lets you see how well you're succeeding at your own set metrics. ### Folder structure The CRM system consists of two spreadsheets (named "CRM Main" and "CRM Key"), a folder with separate folders for each registrered candidate and a folder with document templates.
![Structure of folders](https://github.com/EANorwayService/EA-Groups-CRM/blob/master/images/folderStructure.png)
Inside the folder "CRM Candidate Folders" there is one folder for each candidate. In this example the candidates have code names.
![Structure of candidate folder](https://github.com/EANorwayService/EA-Groups-CRM/blob/master/images/folderStructureCandidates.png)
### Candidate folder In each candidate folder there is a folder with meeting notes. You can also store other documents specific to that candidate in the candidate folder. There is a link to the candiate folder in the Metrics sheet and in the Candidate sheets.
![Candidate folder](https://github.com/EANorwayService/EA-Groups-CRM/blob/master/images/folderStructureCandidateFolder.png)
#### Meetings folder Notes from all meetings with a candidate are saved in the meetings folder, which lies in the Candidate folder. These notes are created automatically when a new meeting is planned.
![Folder with meeting notes for each candidate](https://github.com/EANorwayService/EA-Groups-CRM/blob/master/images/meetingsFolder.png)
### Templates folder This folder contains the templates for the meeting notes and candidate sheets. If you want to change the template for meeting notes you can do it after the system has been set up, see insturctions in the [faq](https://github.com/EANorwayService/EA-Groups-CRM/blob/master/#faq). #### Meeting notes This is an example of how meeting notes can look. If you want to change the template for meeting notes you can do it after the system has been set up, see insturctions in the [faq](https://github.com/EANorwayService/EA-Groups-CRM/blob/master/#faq).
![Notes for a planned meeting](https://github.com/EANorwayService/EA-Groups-CRM/blob/master/images/newMeetingDoc.png)
### Key spreadsheet The CRM Key spreadsheet contains contact information of the candidates and should be stored in a safe place with strict access only for those who need it. At default it consists of only one sheet, but other sheets with sensistive information like sheets linked to forms could also be stored here. For example, EA Norway stores the responses from it's onboarding and evaluation forms in the Key spreadsheet.
#### Key sheet This sheet makes it possible to give candidates code names so that you don't need to use their actual name throughout the system to protect their identity. However, if you dont want to use code names, you can use their actual names in the code name column.
![The CRM Key sheet](https://github.com/EANorwayService/EA-Groups-CRM/blob/master/images/sheetKey.png)
### CRM Main spreadsheet The CRM Main spreadsheet is the most central spredsheet of the system. This will be the sheet you are using most often and it provides you with an overview of results from your 1:1 meetings, and the candidate sheets of all the candidates in the system. With some basic understanding of spreadsheets you can add your own metrics to track.
#### Dashboard This is the first sheet of the CRM Main spreadsheet and provides you with an aggregated data for all active candidates. Information in the spreadsheet is updated automatically here when changed in the candidate sheets. This sheet is meant to be read only.
![Dashboard sheet](https://github.com/EANorwayService/EA-Groups-CRM/blob/master/images/Dashborad.PNG)
#### Metrics This sheet contains information on all candidates, one person per row. By using filters it is possible to select a subset to look for specific information of eye ball a distribution. Information is added and updated automatically in this sheet. This sheet is meant to be read only.
![Metrics sheet](https://github.com/EANorwayService/EA-Groups-CRM/blob/master/images/Metrics.PNG)
#### Planner This sheet shows an overview of previous meeting and planned meeting of each candidate. The information is fetched form the candidate sheets and this sheet is meant to be read only.
![Planner sheet](https://github.com/EANorwayService/EA-Groups-CRM/blob/master/images/sheetPlanner.png)
#### Candidate sheets Each candidate has their own candidate sheet, and a new sheet is created each time a new candidate is added. These sheets are automatically created when a candidate is added.
![Example of candidate sheet](https://github.com/EANorwayService/EA-Groups-CRM/blob/master/images/candidate_sheet.PNG)
#### Dashboard Historical Data (_hidden in spreadsheet_) This sheet stores historical data from the Dashboard sheet, by adding a snapshot of all information from the Dashboard sheet once a week. Only used for calculation purposes and should not be edited it you are very sure of what you are doing.
#### Meetings Historical Data (_hidden in spreadsheet_) This sheet saves information from all planned meetings, updates automatically when a meeting is added. Only used for calculation purposes and should not be edited it you are very sure of what you are doing.
#### Metrics Historical Data (_hidden in spreadsheet_) This sheet saves historical information on all candidates. By automatically adding a snapshot of all information from each candidate sheet once a week. Only used for calculation purposes and should not be edited it you are very sure of what you are doing.
# Using the CRM system Want to see the CRM system in action? Feel free to schedule a call with the EA Norway team at post@effektivaltruisme.no to have a run-through of how to use the system. ### Add candidates Start in the Key spreadsheet. You may use code names for the candidates, instead of their real names, to mask their identity. A good tool for generating random code names is www.codenamegenerator.com. If you don't want to use code names, you can use the candidates' real names in the code name-column of the Key sheet.
After you have added code names click **CRM > Add candidates** in the Google Sheet Menu. Only candidates with text in the code names column will be added to the system. The script assumes values in column B(from cell B3) are code names. If you want to use candidates' real names add their names to column B instead of code names.
![Example of codenames](https://github.com/EANorwayService/EA-Groups-CRM/blob/master/images/keySheet.png)
In the example above Pernille and Kari would not be added as candidates since nothing is written in the Code Name column (no value in column B). After you have added code names click **CRM > Add candidates**. Only members/candidates with code names will be added to the system.
![Update candidates](https://github.com/EANorwayService/EA-Groups-CRM/blob/master/images/addCandidates.png)
When candidates are added, each one will have their own subfolder in the folder "CRM Candidate Folders". They also get their own sheet in the CRM Main spreadsheet, and their information is linked in the Metrics overview sheet. The names of the candidate folders and candidate sheets can only be changed if the code name is changed everywhere at once (inlcuding the hidden Metrics Historical Data sheet and the hidden Meetings Historical Data sheet).
### Add metrics for candidates In the candidate sheets, there are metrics with which you can evaluate each individual candidate. If you would like to add other metrics, either try it yourself in the code or contact us at post@effektivaltruisme.no. ![Metrics candidate sheet](https://github.com/EANorwayService/EA-Groups-CRM/blob/master/images/Metrics_in_candidate_sheet.PNG)
The Metrics with white background can be set here for each candidate, but those with grey background are read only and should not be altered directly.
### Plan meetings and create meeting notes Go to the candidate sheet of the candidate you plan to meet. Select **CRM > New meeting > Plan new meeting/Add old meeting**
![Plan new meeting](https://github.com/EANorwayService/EA-Groups-CRM/blob/master/images/addMeeting.png)
If you choose "Plan new meeting", meeting notes are created automatically from the meeting notes template and added to the candidate's folder. If you want to add a meeting you already had, choose "Add old meeting" instead. Provide the date of your meeting and url to your meeting notes.
To replace the meeting notes template, see instructions in the [faq](https://github.com/EANorwayService/EA-Groups-CRM/blob/master/#faq). Information about meetings will be added to the hidden sheet "Meetings Historical Data" for certain background handling.
### Add actionables to meeting notes If your meeting notes have a table, the code will assume that the very last table in the document is a list of actionables and will be added to the candidate's folder. This is how it looks in exisitng template:
![Actionables in meeting notes](https://github.com/EANorwayService/EA-Groups-CRM/blob/master/images/actionablesMeetingNotes.png)
Actionables from previous meetings will be added to the candidate sheet as well as the notes of the upcoming meeting (added on the day of the upcoming meeting).
### Set candidates as active/inactive To set a candidate as inactive simply change the variable in the candidate sheet.
![Varibale active inactive in the candidate sheet](https://github.com/EANorwayService/EA-Groups-CRM/blob/master/images/statusActiveInactive.png)
Change status of candidate
![Choose active or inactive](https://github.com/EANorwayService/EA-Groups-CRM/blob/master/images/activeInactive.png)
When the system is updated after a candidate is set as "inactive" their sheet will be hidden. When a candidate is inactive their information will not be counted in Dashboard, but for the number of meetings held, which are still counted.
To set a candidate back to active you can unhide the sheet and switch back to active. If you only unhide the sheet, it will be hidden again when system updates. To unhide a sheet, select **View > Hidden sheets**. ### Update system Updating the system after adding, removing og changing data in it is done daily at 5 am CET. If you want to update the system manually, select **CMR > Update > Update Everything**. This function will check for new inactive candidates, fills the next five meetings in the dashboard, fills previous meeting and upcoming meeting in candidates sheet and check for new candiadates to add.
![Update everything in system](https://github.com/EANorwayService/EA-Groups-CRM/blob/master/images/updateEverything.png)
# Troubleshoot ### No items with the given ID could be found ![Error if IDs are wrong](https://github.com/EANorwayService/EA-Groups-CRM/blob/master/images/errorNoIds.png)
This error means that one of the id's are wrong. It is probably the ID for the destination folder that is missing.
### Invalid argument: parent ![Error if the folder is not a folder](https://github.com/EANorwayService/EA-Groups-CRM/blob/master/images/errorNotFolder.png)
This means that an ID for a folder is the ID for something else than a folder. Check again that the ID for the destination folder is correct.
### Access denied DriveApp ![Error if access is missing](https://github.com/EANorwayService/EA-Groups-CRM/blob/master/images/errorWrongMemberlist.png)
This means that you don't have access to, or that the ID to a file is wrong. Check again that the Id for the member list is correct and that you have access to all template files.
### We're sorry a server error occurred ![Error if a file ID is missing](https://github.com/EANorwayService/EA-Groups-CRM/blob/master/images/errorNoMemberlist.png)
This probably means that an ID for a file is missing, check again that you added the ID for the member list.
### If it is not the member list ID and not the destination folder ID: 1. Double check that you use the correct Google account when *editing* the scripts, it says what account you use in the top right corner. 2. The code was not copied correctly from GitHub. 3. There is a mistake in the template folder :( Contact EA Norway (post@effektivaltruisme.no) 4. There is a mistake in the code :( Contact EA Norway (post@effektivaltruisme.no) # FAQ ### How to change meeting notes template If you replace the whole file you also need to update the file id in the code, if you only replace the content of the existing file you do not have to change anything in the code. The meeting notes template can be changed by going to your CRM folder and click:
**CRM Templates > CRM Template Meeting Notes**.
If you want to replace the file, and not just the content of the existing file, open the code editor with you CRM code. Click **File > Project properties > Script properties** and change the value of MEETING_NOTES_TEMPLATE_ID to the ID of your meeting notes file. This file can by save anywhere but the person running the "add meeting" function needs to have link access to it.
### Can I change the names of spreadsheets or sheets? The names of the _spreadsheets_ can be changed. But unfortunately the names of the _sheets_ within the spreadsheets *can not be changed* without also changing them in the code. Also, the folders with the code names of each candidate *can not be changed*.
### Can I remove, add or change something in sheets? The code does not know what your sheets look like if you make changes. If you change the structure of sheet you probably also need to change this in the code if it is a part that is affected by the code. Either try on your own or contact us on post@effektivaltruisme.no if you'd like to do this.
### Can I change the names of the folders? You can change the names of all folders *except the candidate folders*, they need to have the same names as the candidates. The folders with the meeting notes inside the candidate folders also need to have the original name, if no folder with the name "Meeting Notes" is found in candidate folder a new folder with the name "Meeting Notes" ... ...

近期下载者

相关文件


收藏者