Features for v1.8
| 1.8 Roadmap Status-June 25, 2007 This document covers planned features and improvements for the 1.8 release. The release is now in feature freeze, and issue tracker entries have been created with detailed engineering specifications for all planned features. We're targeting mid July 2 for 1.8 Alpha release. Some requested features have been postponed to subsequent releases - these are listed under Postponed to 2.0 If your organization or client requires any of these sooner, consider contributing targeted engineering or financial resources. |
CiviReport Phase 1
- CRM-1862 Integration of an open-source reporting tool and delivery of a core set of reports which can be cloned and modified as needed for a given installation. BIRT is currently the favored tool for this integration - although we are still evaluating options. Check out this Blog thread for details. Draft listing of preconfigured reports.
Core CiviCRM
- CRM-736 Find and Merge Duplicates functionality. Specification at: Dedupe - Phase One
- CRM-1861 Delete a location from contact edit screen (either explicit delete link, or just delete a location if none of the fields contain data). Currently there is no way to delete a location.
- CRM-1860 Add custom field type = "Link". Store (and validate) complete URL as data (string). When "viewing" this field - render the field Label as the link text. EXAMPLE: <a href="$fieldValue" >$fieldLabel</a>
- CRM-1917 Household / Individual Addressing improvement (per community feedback on the wiki HouseHolding ).
- CRM-1942 Site and User Level UI Configuration options (phase 1)
- CRM-1941 Profile create/edit forms - Settings option to send notification email to one or more email addresses when a contact record is created or updated via that profile.
- CRM-1914 Batch geocoding script (gecocode ALL contacts or a range of contact ID's). Also includes UI "switch" to enable geocoding during import for smaller import files.
- CRM-1942 Support for "Employer" field in Individual profiles (hard-coded ACR as in our built-in Add/Edit Individual form)
- CRM-1815 Improved, collapsible Admin Control Panel - with descriptions of each option.
CiviEvent Phase 2
- Support for complex / multiple event fees. In progress (by Marshall Newrock of Ideal Solutions). Spec at Price Sets.
These improvements were requested by community members on the Phase 2 specs page (Some requested items have been postponed to 2.0 based on complexity and resource availability.)
- CRM-1863 Option to HIDE the Event Location for Event Info page, and/or Event Registration (and Confirmation), and/or Event Thank-you, and/or Email Confirmation/Receipt.
- CRM-1884 Add a Close Date for online registration, after which participants must be registered through the backend.
- CRM-1944 Import UPDATE of participants - so you can import a CSV file with attendance/status updates for an existing set of event participants. Matches participants on Event + Contact field(s).
- CRM-1921 Add Hcalendar microformat markup to Event Info template (http://microformats.org/wiki/hcalendar)
- CRM-1882 RSS feed for events (implement a simple RSS format AND a gData feed for Google Calendaring).
- CRM-1883 Add "Send Email to Contacts" task to Find Participants, Find Members and Find Contributions search screen "actions".
- CRM-1922 Include "Role" as a search criteria in Find Participants (e.g. host, attendee, speaker, etc.).
- CRM-1922 Include "Event Type" as a search criteria in Find Participants.
- CRM-1988 "Add Contacts to Event" action option from search results. Allows you to quickly register a batch of contacts for an event.
CiviMember and CiviContribute Improvements
- CRM-1955 Allow multiple payment processors in CiviCRM. Each contribution/event page can be configured to use a different payment processor.
- CRM-1987 Administrators can enter and process credit card transactions on behalf of a donor.
- CRM-1880 Don't require amount labels - if they are not present just display the amount option.
- CRM-1938 Option to automatically send a receipt for offline (manually entered) contributions using a "hard-coded" offline receipt template. (For 2.0 we want to support admin-configurable Message Templates for this - but we need to implement name-spaced tokens for Contribtuion, Membership, Participant... before we can do this.)
- CRM-1881 Allow "free" option for Online Contribution pages. If user selected/entered amount = 0, bypass payment processor. This allows folks to offer range of memberships from FREE to various fee-levels.
- CRM-1939 Add annual contribution totals to contacts' Contribution tab.
CiviLingua (community driven and developed by Joe Murray et al)
Postponed to 2.0
These features have been postponed to 2.0 due to size and complexity, or dependencies on other work. If your organization requires any of these sooner, consider contributing targeted engineering or financial resources.
Core CiviCRM
- CRM-1940 Add "Previous" and "Next" navigation links to the contact detail screens when accessing from a group/search results set. This makes it easy to browse through the contacts in a particular set.
- Configurable Contact Matching rules for Organizations and Households. (However, the new "Find (suspected) Duplicate Contacts" features supports rule configuration for all 3 contact types.)
- Safe deletes / possibly some kind of summary "not used" field which checks deceased, do not contact, member expired and other properties - configurable (per walt daniels)
- When creating a profile allow user to add a custom field *group* to the profile rather than having to add one field at a time.
- Add Visibility setting for tags (controls which tags are included in Profile forms)
Full text CiviCRM search
- Full text search of CiviCRM DB using Solr and Lucene. Check out this blog thread for details
CiviMember and CiviContribute Improvements
- Introduce "Pay Later" option for CiviContribute and CiviEvent.
- Initial implementation of pledge, soft credit and matching gifts. Draft specifications....
- Allow site to configure separate payment processor accounts by Contribution Page (current "global account" acts as default - if processor account is not set at page level).
- Mail-merge tokens for aggregate values (esp total contribution amount YTD, MTD, since inception)
- Create NEW contributions in "batch" (using a reserved Profile)
- One-click offline membership renewal (with option to create contribution record automatically and send receipt/confirmation)
CiviEvent Phase X
- Extend the data model to allow entities in the CiviCRM DB to "own" an event (e.g. and Organization, Group or Individual). This has implications for permissioning and also probably means we would need a simplified "end-user" event creation wizard which hides many of the current config options.
- Create Recurring Events:
- With frequency + duration - Every Monday at 7pm for 12 weeks
- OR with a set of dates - April 7, April 10, April 14, April 17
- Review the Recurring Events data representation in the iCalendar specification for additional properties - http://www.ietf.org/rfc/rfc2445.txt
- Static URLs for event participant listings. NOTE: This can be done as of 1.7 using a Smart Groups created from Advanced Search.
- Static URLs for Batch Update Via Profile for a given event (ie an attendance sheet).
- Allow for nesting events. One event should be able to contain multiple other events. Ideally administrators would be able to designate certain child events as mandatory (participant automatically registered for child when registered for parent) or optional. See the first comment for more information. Participant statuses for the parent would be defined as Attended if all registered children were attended, No Show if no registered children were attended, and Partial if at least one child event was attended. Participant statuses should be independent for all children. Participant status for the parent event should be either automatic (determined based on statuses of the children) or manual (independent of children).
Custom Data Redesign
- Check http://civicrm.org/node/150 for details and links to mailing list discussion
Streamlining Data Entry
- New Individuals (Batch Entry) via Profile - Grid-style input form which allows user to fill-in profile-configured fields for a batch of new contacts. Useful for creating contacts from mailer or event "sign up" cards, etc. Interface is the same as Batch Update via Profile - except that contact first name, last name and email are always included as the first 3 input columns. Navigation to this feature via link on Home Dashboard, and Quick Add block.
- Extend Auto-complete drop-down 'search' on contact name to streamline work-flow for the following tasks. We need to figure out how to allow the user to differentiate contacts with the same or similar names on select (maybe write the primary email and city/state to a read-only block next to the ComboBox when a contact is selected).
- New Relationship
- New Contribution
- New Activity
- New Membership
- Add "tasks" (
more actionsdropdown) from Search Results which allow bulk Event Registration, Membership Signup, and possibly Record Contributions. For Events and Membership, it would be useful enough if all selected contacts get the same values (i.e. selected 10 contacts are registered for Event A with Fee Level 1). For Contributions, this might not be as useful - so a simple grid with contact name, amount, pay method would be better. - Edit Individual fields from Contact Summary screen (double-click opens field for editing)
Search Builder - Phase X
- Support tokens in Search Builder criteria. Initial use would be a token to dynamically replace a search criteria with the value of that property from the current user's contact record.
- Additional operators for Search Builder - IS NULL, IS NOT NULL, IS EMPTY. (This may not be do-able w/o overhaul of search - but has come up quite a bit on the lists
).
Miscellaneous
- Toggle to show/hide disabled rows in any selector
- Reduce / prevent timeouts during large imports by sending periodic status bits back to client browser.
- Reduce memory usage of CiviCRM (export mapping, other places ??)
- Allow creation of activities where source_contact_id is NOT the logged in user (e.g. create activities for another user/contact)
Permissioning
- Move all permissioning to within CiviCRM (i.e. no longer use Drupal permissions, but this enables us to better support Joomla and other CMS' (like WebGUI)
- Ability to restrict contact read and write permissions so that authenticated users with a particular role are only be able to view and edit the contacts that they themselves have added.
- Solution for edit permissioning based on a relationship (esp primary contact->organization use case) ?? This is related to CRM-1763 as well (which needs more thought/specification - and hence is probably a postpone to x.x).
CiviMail Improvements
- Mailing Content Generation:
- Ability to use saved Message Templates (with tokens) for mailings.
- Ability to use CMS content (nodes/stories) as content for mailings.
- Ability to compose email & text messages on screen rather than upload files [CRM-1167]
- Preferably with nice AJaX interface that allows them to drag and drop tokens from a list of possibilities [CRM-1168]
- Offer a forward to a friend token that works like (http://www.flock.com/start/) - which gets around the user forwarding the unsubscribe links. _[I suspect a lot of situations when the body part of the mailto: link is too long and the link is non-working. also, a lot of users use webmails - think GMail - and do not use any plugins resolving the mailto: links to their webmails]
Comments (13)
Feb 22, 2007
Luc Stroobant says:
It's a good idea to try to do some performance tuning and optimisations in a fut...It's a good idea to try to do some performance tuning and optimisations in a future release. CiviCRM is a great product, but with all the features it has, it starts to get quite memory hungry. On a high traffic site, that can become a problem. On our site, we need at least a 40 MB memory limit for PHP. When the limit is set lower, you're not able to login anymore. I'm not sure what's the cause of this, but I suspect the custom fields in our profiles ( http://www.tik.be/user/register ) Off course we also use a few other third party drupal modules, so I guess it's a combination of CiviCRM and those other modules. I'll do some investigation about it and try to post some information on the wiki.
Feb 22, 2007
Donald A. Lobo says:
Luc: Memory and CPU optimizations are an ongoing project If there are specifi...Luc:
Memory and CPU optimizations are an ongoing project
If there are specific places where u think we consume more memory than expected, please let us know and we can track it down. We've decreased memory usage a fair amount in the last few revisions, but i also suspect we have ways to go.
Mar 17, 2007
Jared Chapman says:
I think the product is wonderful and am very pleased with it. Thank you for all ...I think the product is wonderful and am very pleased with it. Thank you for all you do. We will try to give back soon with a new payment gateway and maybe a plugin for laying out forms.
We are a large University (30,000 students). I am in the Joomla shop and the only real big need I have that is not there is the types of ACL and reporting that has been described and project orientation as described at http://forum.joomla.org/index.php/topic,47911.0.html.
After reviewing 192 commercial products like Kintera, I have compiled a pretty extensive list of features that are available. Below is a the list, modified from when I posted it for 1.7, of the remaining features. I don't think you need to do them all, just wanted to give you some idea of what is out there. Sorry they are not organized very well.
create recurring events Provide meal options Approve an Event Create complex events with multiple tracks, activities, times, locations, prerequisite sessions, choose only one activity from a list, mutually exclusive create a group of events process cancellations Conditional branching, allow users different registration paths depending specific information identify and eliminate duplicate bookings Participant can change their registration online Allow participants to register online for sub-activities within an event Allow participants to register online for activity tracks within an event Verify registering participant against an invitee list Sell additional product and services through the registration group registration sold out and waitlist substitutions collect expressions of interest allow individuals to schedule a time slot with an individual or an event allow individuals to choose from several rooms Automatically assign people to specific appointments Track meetings between individuals print membership cards approval process for membership multiple clubs or organizations managed by divers central groups Club registration with multiple levels of approval (i.e., president, advisors, staff, administrator) Send participants a survey after an event and report the survey response data automatically Assign participants to specific housing accommodation units based on criteria like gender Track participant progress through certification or educational processes Create certification and education programs Create class schedules Create syllabi equipment checkout follow-up Program or project oriented rather then eventComprehensive correspondence to speakers, chairpersons, reviewers and authors Review process management Detailed lists including program, audio visual and room setup Abstract submission via the internet Speakers checklist Stores biographical details of a speaker in HTML format Preview publication for layout, should look nice select and notify authors Submit to judges without revealing authors Manage revision process Allow for online editing Manage multiple authors Stores multiple authors for one paper Schedule resources to be available schedule room setups Schedule rooms location management floor plans for exhibits online booths Exhibition can be run in booth or space mode Booth details are stored, including its dimension, sides and fascia name Sophisticated appointment scheduling system Exhibition stand inventory management system Comprehensive exhibitor checklist Work flow manager Travel manager Place restrictions on which seating or other aspects of the set up create floor plans for rooms
create Seating assignments for participants table tents automatically create name badges modify look and feel of name badges edit individual name badges before printing Print name badges for participants email reminders to team members of specific to do tasks Reuse data that automatically adjusts due dates by new date of the event assign tasks to specific volunteers
Provide reminders Customer menu generation grocery list create certificates Track speaker requirements and audio visual needs for sessions Task lists Track event content providers like djs or speakers activity plan task schedules Manage staff and their responsibilities relative to an event Create materials list Risk management program Schedules/itineraries event tools for working with vendors online contests Create brochures manage campaigns and advertising till software Send a bill to a participant Print online receipts credit card refunds can be processed on-line use multiple merchant accounts Multiple levels of discounts Give discounts though promotional codes or other means Collect credit card payments online for an event using service provider's merchant account Collect credit card payments online for an event using our merchant account Variable pricing based on event packages or groups/collections Variable pricing for events based based on time (early-bird) or category (guest, spouse) manage cash receipts tickets Create custom reports Select reports from templates View reports as html in a browser download reports for view in excel Create graphs and charts from data Set goals and measure activities against goals create reports across organizations/division score cards Track participants between events Dashboard reporting environment for quick reporting of key metrics track payments from participants Track payment to suppliers create audit trails create invoices, receipts Budgeting reports: anticipated and actual Detailed financial reports html emails automatically convert to plain text when required opt out options for all email communication mail merge mailing labels alert participants to similar events Copy email information to event coordinator manage participant follow-up Track participant attendance and no shows on past events format for print, should look nice Manage revisions Be connected to the planning process Levels of approval Documentation Ability to search events by attribute or keyword in front endpda integration Track/log/audit changes to the system and revert to historical views Integration with Crystal Reports one click integration with MS Word and Excel Associate a status with an event for filtering Can use our logins Integrated with Outlook/exchange Must have multiple levels/siblings for administration with access controls Must be able to provide reports at various administrative levels Appointment manager - match people to people or events based on schedule and criteria
Event planning tools - Budgets, to-do lists, activity plan
Mar 17, 2007
Jared Chapman says:
sorry about the above, when I hit save it took out all the line breakssorry about the above, when I hit save it took out all the line breaks
Mar 17, 2007
Cole Ashcraft says:
There are a handful of CiviEvent requests at on the CiviEvent+-+Phase+2 page.There are a handful of CiviEvent requests at on the CiviEvent+-+Phase+2 page.
Mar 25, 2007
Benjamin Drake says:
Idea for CiviContribute and CiviMember: We receive a large number of membership...Idea for CiviContribute and CiviMember:
We receive a large number of membership renewals and contributions that come in via standard mail. I'm able to enter these as membership renewals and contributions by logging in as the administrator, but it would be really great if CiviCRM could automatically send a thank-you email and receipt to the member/contributor. I used to track all of our membership information in QuickBooks and was able to do this using a QuickBooks Sales Receipt. Having this in CiviCRM would cut down on workload tremendously...
Thanks for considering this!
Apr 12, 2007
Steve Wartik says:
We generate a report on members whose memberships expire at a specified time. We...We generate a report on members whose memberships expire at a specified time. We implement it directly in SQL, not through the CiviCRM API (v1.6), because using the API would require multiple queries, an overhead we can't afford given the number of rows in our civicrm tables. I attach the query at the end of this comment, in hopes that it can serve as a specification for the query builder in the next version. The %s markers indicate the user-supplied parameters.
SELECT i.first_name, i.last_name, a.street_address, a.city, sp.abbreviation AS State, IF (a.postal_code_suffix IS NOT NULL, CONCAT(a.postal_code, '-', a.postal_code_suffix), a.postal_code) AS zip, e.email AS email, m.end_date AS Expires, cvfs.char_data AS Family_Size, cvrc.char_data AS Ride_Class, GROUP_CONCAT(ifm.first_name, ':', ifm.last_name, IF(fme.email IS NOT NULL, CONCAT(':', fme.email), ':') SEPARATOR ',') AS family_members FROM civicrm_membership m INNER JOIN civicrm_contact c ON m.contact_id = c.id INNER JOIN civicrm_individual i ON i.contact_id = c.id LEFT JOIN civicrm_custom_value cvfs ON cvfs.entity_id = c.id LEFT JOIN civicrm_location l ON l.entity_id = c.id LEFT JOIN civicrm_address a ON a.location_id = l.id LEFT JOIN civicrm_state_province sp ON sp.id = a.state_province_id LEFT JOIN civicrm_relationship r ON r.contact_id_a = c.id LEFT JOIN civicrm_individual ifm ON ifm.contact_id = r.contact_id_b LEFT JOIN civicrm_email e ON e.location_id = l.id LEFT JOIN civicrm_custom_value cvrc ON cvrc.entity_id = c.id LEFT JOIN civicrm_location fml ON fml.entity_id = ifm.contact_id LEFT JOIN civicrm_email fme ON fme.location_id = fml.id WHERE NOT EXISTS (SELECT * FROM civicrm_membership m2 WHERE m.contact_id = m2.contact_id AND (m2.end_date > m.end_date OR m2.membership_type_id = 7)) AND l.entity_table = 'civicrm_contact' AND l.is_primary AND (m.end_date >= '%s' AND m.end_date <= '%s') AND (cvfs.entity_id IS NULL OR (cvfs.entity_table = 'civicrm_contact' AND cvfs.custom_field_id = 5)) AND (cvrc.entity_id IS NULL OR (cvrc.entity_table = 'civicrm_contact' AND cvrc.custom_field_id = 8)) AND (r.id IS NULL OR r.relationship_type_id = 8) AND (fml.id IS NULL OR (fml.entity_table = 'civicrm_contact' AND fml.is_primary)) GROUP BY i.first_name, i.last_name, a.street_address, a.city, sp.abbreviation, a.postal_code, a.postal_code_suffix, e.email, m.end_date, cvfs.char_data, cvrc.char_data ORDER BY i.last_name, i.first_nameApr 21, 2007
Andrew Perry says:
I appreciate that this is an open source product so I make this as a humble requ...I appreciate that this is an open source product so I make this as a humble request. CiviMail is a vitally important feature for a CRM - ie the ability to easily e-mail different groups is key. At the moment, non-profit clients who don't have an IT person have difficulty creating the files that CiviMail currently requires and therefore we often end up having to do this for them or get them to run a separate e-mailing system (which they are not happy with).
It would be fantastic if a wysiwyg on screen editor (using a simple interface like the open source FCKeditor) could be implemented prior to the more enhanced token based system referred to in the CiviCRM 2.0 list.
Moving all permissioning to within CiviCRM will be a great feature for us Joomla users/developers, whose clients want to be able to give admin access to parts of CiviCRM but not website content, but I imagine it is a big job and that the CiviMail improvements above would give a relatively quick win.
We may have a client who will pay us to replace the two file upload boxes in CiviMail with a simple FCKEditor enhanced text-area (for the HTML e-mail) and a text-area for the plain-text version. Is this something that you would be interested in putting into 1.8 pending the bigger enhancements for 2.0?
Apr 22, 2007
Donald A. Lobo says:
Andrew: A contribution for this would be great. Rather than FCKEditor we would...Andrew:
A contribution for this would be great. Rather than FCKEditor we would prefer to use the editor bundled with the dojo toolkit. You should check the dojo website for details and potentially how to integrate
Jun 27, 2007
Andrew Perry says:
Just letting you know we are starting work on implementing the dojo wysiwyg edit...Just letting you know we are starting work on implementing the dojo wysiwyg editor for CiviMail working from 1.7 - since there doesn't seem to be any CiviMail enhancements on the roadmap for 1.8 we're assuming that there shouldn't be anything likely to break too badly if we develop this enhancement to 1.7 and then send it to you to take a look at to include in 1.8.
Jun 28, 2007
Donald A. Lobo says:
Yes that would indeed be most excellent. If we get this in the next few days or...Yes that would indeed be most excellent. If we get this in the next few days or so, we'll include it in 1.8, else we'll need to push it to 2.0 (since we dont want any code changes after the alpha release)
Jun 11, 2007
Alfred Nutile says:
Who would I talk to about investing in the 2.0 roadmap to speed it up? We ...Who would I talk to about investing in the 2.0 roadmap to speed it up? We really need the pledge end of things.
Thanks
Jun 11, 2007
Donald A. Lobo says:
You can send us mail Some wiki links worth reading and commenting on are: htt...You can send us mail
Some wiki links worth reading and commenting on are:
http://wiki.civicrm.org/confluence/display/CRM/Proposal+for+a+Pledge+Drive+Module http://wiki.civicrm.org/confluence/display/CRM/Pledges
If you have the resources and/or the funding, we could potentially make it happen before the 2.0 release