# Introduction

**[Form Processor][formprocessorrepo]** is an extension originally developed by [CiviCooP][civicoop], mainly funded by [Roparun][roparun], [Velt][velt], [Barnekreftforeningen][barnekreft] and CiviCooP themselves.

The aim of the extension is to create a _framework_ to enable swift development (increasingly without coding) of forms that are used on the public website and communicate with CiviCRM.

The configuration we had in mind when developing is a CiviCRM installation on a different server than the public website and communication with CiviCRM using the CiviMRF framework (see [the CiviMRF GitHub repo][cmrf-repo]).

!!! Note "About CiviMRF"
    **CiviMRF** is a framework that enables communication between a public website and CiviCRM on a separate server. It contains a generic core, a Drupal 7 specific implementation, a Wordpress specific implementation, a Drupal 8 specific implementation etc.

This is not required, you can just as well use the **Form Processor** extension to communicate with a CiviCRM installation on the same server as the public website.


## Contents

This guide is a first attempt to explain the basic concept of the **Form Processor** and a few examples on how to use the form processor.

Actually we should mention here that it is the combination of the **Form Processor** extension _and_ the **Action Provider** extension (see [Action Provider extension][actionproviderrepo]) in combination that provide the framework. The **Action Provider** provides predefined *actions* that can be used to do stuff in CiviCRM with the data entered on the form, or *retrieval methods* to provide default data to the form.

There are a few requirements to be able to get the full benefits of the **Form Processor** extension:

- [Requirements](requirements.md)

The basic concepts of the **Form Processor** are explained on:

- [Basic Concepts](basic-concept.md)

In this guide you will also find an example to set up forms with the **Form Processor** without coding and an example how to develop your own *actions* and *retrieval criteria*, as well as an introduction on how to create your own:

- [How to create a basic form to sign up for a newsletter](sign-up-newsletter.md)
- [Introduction to creating your own](create-your-own-introduction.md)
- [How to create a form for your email preferences](email-preferences.md)

## CiviCRM versions

The **Form Processor** extension has initially been developed with CiviCRM 4.7.4 and has been tested with CiviCRM 5.x on various sites.

!!! Note
    If you want the **Form Processor** updated to a newer version you can do so. Alternatively, if you want us to do it and have some funding, contact Jaap Jansma (<jaap.jansma@civicoop.org>) or Erik Hommel(<erik.hommel@civicoop.org>). You can also find them on the [CiviCRM Mattermost Channel][mattermost] using the handles **jaapjansma** or **ehommel**.

## Screen prints

In this guide you will find a number of screenshots. These were all taken from an installation with the [Shoreditch extension][shoreditch].

[civicoop]: http://www.civicoop.org/
[roparun]:https://www.roparun.nl/en/
[velt]:https://velt.be/
[barnekreft]:https://www.barnekreftforeningen.no/
[cmrf-repo]:https://github.com/CiviMRF
[actionproviderrepo]:https://lab.civicrm.org/extensions/action-provider
[formprocessorrepo]:https://lab.civicrm.org/extensions/form-processor
[mattermost]:https://chat.civicrm.org/civicrm/
[shoreditch]:https://civicrm.org/extensions/shoreditch