Field Mapping
Each Formidable form can have its own field mapping configuration. Mappings are stored in the formidableFieldMaps setting as an array of per-form objects. Each mapping specifies how form fields translate to Pipedrive person fields, deal fields, and notes.
Person Fields
Person field mappings connect Formidable field IDs to Pipedrive person field names. The following built-in person fields receive special handling:
| Pipedrive Field | Behavior |
|---|---|
| First name / Name | Sets first_name on the person. Combined with Last name to build the full name. |
| Last name | Sets last_name. Combined with First name. |
| Adds the email as primary. Existing emails on the person are preserved (not duplicated). | |
| Phone | Adds the phone as primary. Existing phones are preserved. |
All other person fields (including custom fields) are mapped by their Pipedrive field name. Enum and set field types are resolved automatically: the submitted text value is matched against the Pipedrive field’s option labels to find the correct option ID.
Deal Fields
Deal field mappings work the same way as person fields, connecting a Formidable field ID to a Pipedrive deal field name.
Enum Overrides (enumMap)
Deal field mappings support an optional enumMap object that translates form submission values to Pipedrive option labels before resolving the option ID. This is useful when the form uses different labels than Pipedrive.
Example: if a form has a “Program” dropdown with the value “CS” but the Pipedrive deal field expects “Computer Science”:
{
"pdFieldName": "Program",
"formFieldId": "123",
"enumMap": {
"CS": "Computer Science",
"BA": "Business Administration"
}
}
The enumMap is applied before the option ID lookup, so the final value stored in Pipedrive is the numeric option ID corresponding to “Computer Science”.
Note Fields
Note field mappings specify Formidable fields whose values are combined into a single HTML note attached to the deal. Each mapping has a formFieldId and a label (the display name shown in the note). Notes are created after the person and deal are written.
The resulting note looks like:
Form Submission: <Form Name>
Field Label: submitted value
Another Field: submitted value
Pipeline Selection
Each form mapping specifies a pipeline name. When a new deal is created, the server finds the first stage in that pipeline and assigns it. Existing deals are not moved to a different pipeline.
Inactive Pipeline
The global Formidable configuration includes an inactive pipeline ID. This pipeline is used for returning contacts: when a person is found in Pipedrive but has no open deals, the server checks for closed or lost deals in the inactive pipeline. If found, that deal is updated instead of creating a new one.
The inactive pipeline is a catch-all for contacts who previously completed your funnel. By routing returning submissions to their existing closed deal, you preserve the full history on a single deal record.
Lead Assignment
Lead assignment uses weighted random selection from a list of agents configured in settings (formidableAgents). Each agent entry has:
| Property | Description |
|---|---|
pdUserId |
The Pipedrive user ID to assign as deal/person owner. |
name |
Display name (for the settings UI). |
weight |
Relative weight in the random selection. Set to 0 to temporarily disable an agent without removing them. |
Only agents with weight > 0 participate in the random draw. The probability of selection is proportional to weight: an agent with weight 3 is three times as likely to be selected as an agent with weight 1.
Lead assignment only applies to new persons. If an existing person is found in Pipedrive, their current owner is preserved.
IPEDS Ethnicity Auto-Computation
If both a Hispanic and an Ethnicity person field mapping are present, the server automatically computes an IPEDS-compliant composite ethnicity value:
| Hispanic Answer | Ethnicity Selection | Computed Value |
|---|---|---|
| Yes | (any) | Hispanic |
| No | Single race selected | That race label |
| No | Multiple races selected | Two or more races |
| No | None selected | Unknown race and ethnicity |
The computed value is resolved against the Pipedrive “Ethnicity” enum field options and stored as the option ID.
Admin User for Geo-Blocked Leads
If ipstack geo-lookup is configured and the submitter’s IP address resolves to a country in the banned countries list, the lead is assigned to the admin user (adminUserId in the Formidable config) instead of going through normal weighted random assignment. This allows an administrator to manually review geo-blocked submissions.