=== Doitforme CRM Forms ===
Contributors: alexdfm
Tags: crm, forms, contact form, lead capture
Requires at least: 6.2
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.1.2
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Privacy Policy: https://launchpad.doitforme.eu/el/data-protection-policy/

Send mapped fields from supported WordPress form plugins to Doitforme CRM.

== Description ==

Doitforme CRM Forms connects supported WordPress form plugins to Doitforme CRM. It detects active providers through the WordPress active-plugin registry,
 including network-activated plugins on multisite, and registers hooks only for providers that are active.

Supported form providers:

* Contact Form 7
* WPForms
* Ninja Forms
* Formidable Forms
* Fluent Forms
* Forminator
* MetForm
* SureForms

The plugin uses each provider's successful-submission hook. Provider data is normalized, sensitive and internal fields are filtered, and only fields explicitly
 configured under Settings > Doitforme CRM Forms are included in the CRM payload. If a form has no saved mappings, none of its fields are sent.

Standard CRM fields include firstName, lastName, city, country, email, phone, fullName, and message. Multiple fields may also be mapped as custom fields. Custom fields are sent under the fields key using their source field names.

Each lead request contains the mapped standard fields, an optional fields object containing custom fields, and a submissionId used by the CRM to prevent duplicate delivery. Provider names, form titles, form IDs, entry IDs, and timestamps are not included in the lead payload.

Passwords, payment-related fields, CAPTCHA values, nonces, anti-spam fields, tokens, and other sensitive or internal fields are filtered before mapping.

The lead request is initiated as a non-blocking HTTP request from the provider's successful-submission hook, so the visitor does not wait for the CRM response. The current implementation does not maintain a local delivery queue, retry failed deliveries, or receive the final CRM response.

Connecting the plugin requires a Doitforme username and password. They are sent to the login service only and are never stored by the plugin. The returned Keycloak access token and CRM integration token are encrypted before being saved in the WordPress options table. The integration ID and access-token expiration timestamp are also saved so the connection can be managed and revoked.

Deleting the plugin through WordPress removes its saved settings, credentials and mappings. Deactivating the plugin does not delete this data.

== Installation ==

1. Install and activate Doitforme CRM Forms.
2. Open Settings > Doitforme CRM Forms.
3. Sign in with your Doitforme account to create the CRM integration.
4. Add mappings between fields from installed forms and the available CRM fields.
5. Save the field mappings.

== External Services ==

This plugin communicates with services operated by Doitforme. For connection to the CRM, it sends the username and password.
On successful login API credentials are generated via an external service we control and revoked when the user disconnects from the service.
When creating a lead after a supported form reports a successful submission, it sends the explicitly mapped standard fields, and submissionId as well as the API key.
Sensitive fields like passwords are excluded from the list of mapped fields.

== Privacy ==

The plugin sends only explicitly mapped form values and a submission identifier to the Doitforme CRM lead service.
Site owners are responsible for configuring mappings, obtaining any consent required for their forms, and documenting this data transfer
in their own privacy notice.

== License ==

This plugin is licensed under the GNU General Public License, version 2 or later.
