Trying to set up a form where I collect 1000's of people data that saves directly into Civi's contacts, collecting their data and memberships. We want to collect data and take payments for memberships on the form.

Which form (Gravity Forms/Ninja Forms/Contact Form 7 or Civi's own Profiles) is the best to capture and save this type of data?

It seems we have GF integrated onto WP, but not with Civi - I'm reading it still looks like GF is not integrated with Civi, is this true? I see Caldera Forms is set to shut down, and be absorbed by Ninja Forms - does Ninja Forms integrate with Civi? Is it a free plugin? How easy is it to intergrade the two? Contact Form 7 or Civi's own Profiles and both seem like clunky and time consuming options.

Any help with this would be appreciated by anyone!

  • 1
    Any reason for not using CiviCRM existing only membership forms? Dec 13, 2021 at 18:00

6 Answers 6


There is no 'one and only super simple solution' to your need.

We use a mix of these tools (caldera, form processor + contact form 7...) depending on what we need to achieve.

For example, do you 'just' collect informations that are related to the contact entity or do you also need to create relationships, activities or do you need to create user accounts in WP or both of these with also some payments for contributions and memberships using gateways like Stripe or Paypal?

Answering to these questions will help you to approach the implementation of the form.


Don't forget the Form Builder extension now shipping with CiviCRM.


According to Ninja Form folk civicrm data will be integrated - most recent posting is here but not ready yet.

  • This Ninja integration was originally slated for release by end 2021. Not holding my breath.
    – Graham
    Jan 16 at 17:10
  • Also hearing rumours that Caldera Forms is being (or is) open sourced and hence may have a life beyond end-of-life
    – petednz - fuzion
    Mar 24 at 2:16

AFAIK there is actually an integration of GF with CiviCRM but this might well be a paid extension. Depending on your security approach I would recommend using a solution where you can keep your CiviCRM installation separate from your public website. And if that is or might become a concern for you it would rule out using CiviCRM's profiles as they stand at the moment.

And you might want to check out the Form Processor extension (https://civicrm.org/extensions/form-processor).

  • Separating Civi from the front end CMS may have some security benefits, but it adds brings disbenefits in other areas, such as ease of presenting data from the CRM on the public-facing website. Would love to see some analysis of the pros and cons.
    – Graham
    Jan 16 at 17:07
  • 1
    There are certainly lots of cons on ease of use. Most of the customers I work with tend to see privacy as a more important issue. I can not judge :-) I am afraid the pros and cons differ from organization to organization and are not generic. Jan 17 at 14:12
  • Actually I'm unclear as to the security/privacy benefits of separation.
    – Graham
    Jan 18 at 15:38
  • 1
    The benefits are that you can minimize the access to the CiviCRM server way more than to your public website. So for exampe you can set a firewall that only allows the office VPN and CiviProxy to access the CiviCRM server. Another benefit if you have lots of extensions and customizations is that CiviCRM is less impacted by regular updates/ Check docs.civicrm.org/civiproxy/en/latest for more information. Jan 21 at 7:58
  • Thanks Erik. I appreciate the link.
    – Graham
    Jan 21 at 16:16

This may not be the code-free solution you are looking for but, https://github.com/ginkgostreet/org.civicrm.fieldmetadata is great for custom coded forms. It allows you to use CiviCRM Profiles as your form builder. It's not just limited to Profiles. You can also use it to retrieve metadata about price sets to build forms handling payments.

All it does is provide API's to retrieve descriptions of "field collections", but also provides widgets for forms built in AngularJS. I recently did a project in VueJS and it was straightforward to use the AngularJS code as a guide to re-implement the display widgets. A less-trivial example is the "Chain Select" - e.g. the auto-updating State dropdown that changes when Country is updated.

I've never tried it, but it might pair nicely with the form processor-extension.


Using the Form Processor extension, you can receive data from any form into CiviCRM. While it's not as full-featured as a "true" integration - e.g. your multiple-choice answers are not kept in sync - it gives you a lot more freedom in your form building choice.

I've written a WPForms-CiviCRM and Google Form-CiviCRM integration for use with Form Processor.

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.