> ## Documentation Index
> Fetch the complete documentation index at: https://formsplugin.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# FluentCRM

> Connect FluentCRM on your WordPress site with Framer Forms using the Forms Plugin, with list and tag routing per form.

# Connect FluentCRM with Framer Forms

Send form submissions straight into FluentCRM on your own WordPress site. Contacts are created or updated on submission, and you can route each form to different lists and tags.

Unlike the other integrations, FluentCRM does not use an API key. Instead you create an **incoming webhook** in WordPress and paste its URL into the component.

***

## Step 1 - Create an Incoming Webhook

1. In WordPress, go to **FluentCRM** → **Settings** → **Incoming Webhooks**
2. Click **Add Webhook**
3. Give it a name, for example `Framer Forms`
4. Select the **Lists** and **Tags** new contacts should get by default
5. Set the **Status**:
   * **Subscribed** - contacts are active immediately
   * **Pending** - FluentCRM sends its double opt-in confirmation email first
6. Leave **Headers** set to **No Headers**
7. Save, then copy the generated **Webhook URL**

The URL looks like this:

```
https://yoursite.com/?fluentcrm=1&route=contact&hash=2b3b5ee3-d94f-4504-a6d8-14ac9f9f9e50
```

> [!WARNING]
>
> Treat this URL like a password. Anyone who has it can add contacts to your CRM. If it leaks, delete the webhook in FluentCRM and create a new one - that invalidates the old URL.

***

## Step 2 - Add the Component to Your Form

Create or select your form on the Framer canvas, open the Forms Plugin, go to **Integrations**, choose **FluentCRM**, and insert the component inside your form.

***

## Step 3 - Paste the Webhook URL

Paste the full webhook URL into **Webhook URL** under API Settings.

It is checked the moment you paste it, and the badge on the canvas tells you the result:

| Badge | Meaning |
| - | - |
| **Integration active** | The URL, route and hash are all valid |
| **The webhook hash is not valid for this site** | The hash is wrong or the webhook was deleted in FluentCRM |
| **Webhook URL must contain fluentcrm=1 and route=contact** | Part of the URL is missing - copy it again from FluentCRM |
| **Webhook URL must use https** | Your site must be served over https |

> [!NOTE]
>
> The check does not create a contact. It sends a deliberately invalid email address, which FluentCRM rejects after it has already verified the hash.

### Optional Fields

* **List IDs** - comma-separated FluentCRM List IDs, for example `5`. Find them under **FluentCRM** → **Lists**. Leave empty to use the lists already set on the webhook.

***

## Step 4 - Map Your Fields

Add one mapping row per field you want to send. Enter the `name` attribute of your form field on the left and the FluentCRM contact key on the right. At least one mapping must target `email`.

Common FluentCRM keys:

| Form Field | FluentCRM Key |
| - | - |
| email | `email` |
| firstname | `first_name` |
| lastname | `last_name` |
| phone | `phone` |
| company | `company_name` |

> [!TIP]
>
> The full list of keys is in WordPress under **FluentCRM** → **Contacts SmartCodes**. Use the key name without the surrounding brackets.

***

## Step 5 - Tags

FluentCRM matches tags by **numeric ID only**. A tag name that does not already exist is ignored rather than created, so always use IDs. You can find them under **FluentCRM** → **Tags**.

* **Static Tags** - applied to every submission. Add one ID per row, for example `22`.
* **Dynamic Tag Fields** - the value of a form field becomes the tag. Because FluentCRM matches by ID, each option's **value** must be the numeric tag ID, not the label shown to the visitor.

Example for a dropdown where the visitor picks an interest:

| Option label | Option value |
| - | - |
| Newsletter | `22` |
| Product updates | `23` |

Set **Field Name** to that field's name, and choose **Comma** or **Array** to match how your field submits multiple values.

***

## Step 6 - Result

On submission the contact is created or updated in FluentCRM, added to the configured lists, and given the configured tags. Check **FluentCRM** → **Contacts** to confirm.

### Subscription status and double opt-in

The contact's status is whatever you set on the **webhook** in FluentCRM, not in Framer. To send a double opt-in confirmation email, set the webhook's status to **Pending** in WordPress.

> [!NOTE]
>
> FluentCRM ignores any status sent by an integration, so this is deliberately not exposed in the component - it would imply control the integration does not have.

***

## Troubleshooting

| Problem | Cause |
| - | - |
| Badge says the hash is not valid | The webhook was deleted or regenerated in FluentCRM. Create a new one and paste the new URL |
| Contact created but no tags | Tag names were used instead of numeric IDs |
| Contact created but wrong list | List IDs in the component override the webhook's lists. Clear the field to use the webhook's own lists |
| No confirmation email | The webhook's status is **Subscribed**. Change it to **Pending** in FluentCRM |

## Next Steps

* [Integrations Overview](https://formsplugin.com/docs/integrations/overview.md)
* [Contact Support](https://go.formsplugin.com/contact) if you need help


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.