I am sorry if this is a terrible way to ask this, or I asked it the wrong way, or its in the works. But after my experience working with Civi it seems like I should be able to make a synthesis of a form that uses CiviContribute, CiviEvent, and CiviMember, Profile Fields, CiviRules- but in a more flexible way. I know that CiviCRM Webform for Drupal kind of does it, but there are so many places it doesn't solve all the needs we have.

I was imagining it would go like this.

Form Builder.

And then I could add in the kinds of features I want on the form, and stack them, kind of like how you add profiles to a contribution page.

Civi Rules

Then the form would let me configure the components. Or, at the bare minimum, I could include them but configure them elsewhere. Even better, there would be a very rudimentary layout tool for ordering them.

It seems like everything I build is trying to achieve some part of this solution, but gets 90% of the way there.

Does CiviCRM have any intention of being more "loosely coupled" I suppose? I really love the features it does have and what it has done for the orgs I've work with. No complaints, just wondering if someone can give me an answer as to if this is being worked on, will it be done, is it a valid idea, etc.



The short answer is "yes." If you look at civicrm.org/roadmap you'll see 3 goals for the next evolution of CiviCRM, the first being:


Today our users, and those that support them, are able to customize CiviCRM installations with a number of powerful tools, many with point and click interfaces. But there are still some 'flies in the ointment', for example:

  • Customizing layouts for some back-office screens (e.g. the contact summary page) requires developer skills and can complicate the upgrade processes.
  • Some front-end screens (e.g. online contribution forms and event registration forms) have limited layout and page flow options. Our community spends too much time tweaking these pages to meet their requirements, and maintaining these tweaks through upgrades.
  • Building and improving core forms requires developers to learn an antiquated and poorly documented form layer (HTML_QuickForm). This is an obstacle to bringing new developers into the ecosystem.

A new and powerful form designer built with modern tools will make it quicker and easier for users and service providers to customize screens allowing them to work on substantive improvements (for example like improved workflows for specific use cases). It will attract more developers to the project, bringing their skills and experiences and resources to the project. Replacing older varied code with a new consistent set of tools will increase the mantainability of the code and reliablity of the product.

The core team has been discussing and refining this goal for several years, however there are still some hurdles to clear before it is achieved, the largest being a considerable funding gap. Building revenue streams and fundraising has taken some (but not all) core team attention away from developing new features.

As of this writing, a start has been made on goal #3 the next generation api, and a partner organization has been working on goal #2 Bootstrap theme integration. The core team has successfully laid the technical and community infrastructure in place for iterative improvements and their next task will be to start work on the form builder system with the goal of gradually replacing core forms with the new technology.

  • Generally +1. I'd also link to forum.civicrm.org/index.php?topic=36978.0 as a piece of the form-designer puzzle. That doc was very much based on this goal, although it should be updated to refer to webform specifically as a (positive) example of form administration.
    – Tim Otten
    May 25 '16 at 22:24
  • Thank you for answering my question and showing me where to look (the Roadmap, dur!)
    – Zachary
    May 25 '16 at 22:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.