Skip to main content

Map form fields to your destinations

Match your form's inputs to the fields Lead Prosper, Lead Distro AI or ActiveCampaign expect, with fallbacks and required fields checked before you save.

Written by Ryan

Some destinations accept whatever your form sends. Others only accept the fields you map, so an input you don't map never reaches them. This article covers the field map for those destinations and the checks that stop a form field from going missing.

Which destinations need a field map

Destination

How fields are sent

Lead Prosper

Only mapped fields. Field names are case-sensitive.

Lead Distro AI

Only mapped fields. With no map at all, every input is sent under its own name.

ActiveCampaign

Only mapped fields.

GoHighLevel, Zapier, Webhook, Formspree

The form as it is, under your input names. Map fields in the receiving tool instead (send a test lead first so it can see them).

To connect a destination first, see Set up forms and lead delivery.

Open the field map

You can open the same editor from two places:

The Field mapping section with destination fields, form fields and fallback fields

  • Delivery tab: connecting or editing Lead Prosper or Lead Distro AI opens the field map. For ActiveCampaign, select Map fields on its row (it also opens right after you paste a new embed).

  • Settings tab > Field mapping: pick a destination under Destination, or choose New Lead Prosper destination… or New Lead Distro AI destination….

The editor has three columns: Destination field, Form field and Fallback field. Each destination field shows whether it's Required or Optional.

Map a field

  1. In the row for a destination field, open the Form field picker.

  2. Choose one of:

    • A form field from the list.

    • first name (from name) or last name (from name), when your form has a single name field. The name is split when the lead is sent.

    • Custom value…, to send the same value with every lead (for example source_tag = mortgage_quiz). Lead Prosper and Lead Distro AI only.

    • Do not map, to leave the field out.

  3. Optional: choose a Fallback field (see below).

  4. Repeat for the other rows, then select Save mapping (or the connect button for a new destination).

Auto-match fields fills every empty row with its best guess and keeps the rows you already set. It matches names regardless of case and separators, then common synonyms (for example phone_number, mobile or tel for a phone field, and zip or postal_code for a ZIP code field). New destinations start auto-matched.

If granvl can't detect the form's inputs, the pickers become text boxes. Type the input name, or static:value for a custom value.

The line under the map counts the mapped fields and shows Required fields mapped, or how many rows need attention. Saved maps reach published pages automatically.

Use a fallback field

A fallback field is a second input to use when the first one is empty at submit. For example, map phone with phone_number as its fallback when some variants ask the question under a different name. The first field always wins when it has a value.

  • The fallback must be a different field from the first one.

  • A row that sends a custom value, or that isn't mapped, has no fallback.

Agents set fallbacks with fallback_form_field on set_leadprosper_destination and set_leaddistro_destination, and with field_map_fallback on update_form_destination for ActiveCampaign.

Required fields by destination

You can't save a map while a required field has no source. The row shows an error such as "Lead Prosper requires FirstName. Pick a field, a constant, or split a name."

Destination

Required fields

Lead Prosper

Whatever the campaign marks as required. FirstName and LastName are required and are two separate fields; use first name (from name) and last name (from name) if the form has one name field. Names are case-sensitive. lp_campaign_id, lp_supplier_id and lp_key are filled in for you and don't appear in the map.

Lead Distro AI

first_name, last_name, phone and email. Optional: state, zip_code, date_of_birth, plus any campaign custom field you add with + Campaign custom field. Names are snake_case.

ActiveCampaign

Whatever the form embed marks as required.

Lead Prosper

The first time anyone in the workspace connects Lead Prosper, the drawer asks for a Developer API key. An owner or admin pastes it and selects Connect. The key is encrypted and only used to load your campaigns and their fields. Then pick the Campaign and the Supplier this funnel posts as. Suppliers in test mode or paused are labeled. If you map a field the campaign doesn't have, it's dropped when you save and the drawer tells you.

Lead Distro AI

Enter Campaign id (flo_campaign_id), Source id (flo_supplier_id) and x-api-key from the source's spec page in Lead Distro AI. Send as test leads delivers leads without billing or buyer routing while you check the setup. Turn it off before launch.

ActiveCampaign

ActiveCampaign's embed doesn't name its hidden fields. If some come through unnamed, paste an ActiveCampaign API key (Settings > Developer in ActiveCampaign) and select Fetch names to load their real names once. granvl doesn't store the key. ActiveCampaign doesn't take custom values.

Field names your agent must keep

granvl checks form field names every time your agent saves a variant:

  • Contact fields are always named first_name, last_name, email and phone. If the funnel's live variants already use another spelling, such as phone_number, that spelling is kept.

  • A name the funnel already uses can't be respelled on another variant. If one variant says phone_number, the others must too.

  • When the primary destination uses a field map, a variant that adds a new field the map doesn't cover is refused. Your agent should keep the funnel's existing names, or add the mapping first. If the question is genuinely new and the destination shouldn't receive it yet, the agent can pass allow_new_fields.

When you publish, any form field that the primary destination's map still doesn't cover produces a form_field_unmapped warning. Those answers won't be delivered. Rename the input or add a mapping, then publish again. Consent checkboxes and internal fields that start with _ are not flagged.

Spelling differences are matched for you

Variants drift: one says phone, the next phone_number, another CompanySize instead of company_size. When a page is published, granvl extends each destination's map with this variant's own spelling of any question the map already covers, so the answer still reaches the same destination field. A mapping you set explicitly always wins.

Spellings are matched regardless of case, separators and digits, and through synonym groups for email, phone, first, last and full name, company, number of employees, job title, website, address, city, state or province, postal code, country, message, budget, revenue, industry, date of birth, age and consent. If a real spelling isn't matched, map it directly.

Address and state fields

When Address autocomplete is on (see Validate phone numbers and email addresses), picking a suggestion fills these hidden fields, so you can map either the full address or its parts:

address_full, address_street, address_unit, address_city, address_state, address_zip, address_country

State and province dropdowns send the two-letter postal code (AL, ON) by default, while visitors still see the full name. Change this with State format on the Delivery tab: Code (AL), Name (Alabama) or As authored. It applies to dropdowns whose name or id contains state, province or region.

Phone numbers are sent in the funnel's phone format. See Set up forms and lead delivery.

Map fields with your agent

Tool

Use it to

get_form_destinations

See the funnel's destinations, current maps and the form field names in use (formFields).

list_leadprosper_campaigns

List campaigns, suppliers and each campaign's fields with required flags.

set_leadprosper_destination

Set the campaign, supplier and full field map (lp_field to form_field, or static:<value>).

set_leaddistro_destination

Set the Lead Distro AI ids, key and field map (ld_field to form_field).

update_form_destination

Replace an ActiveCampaign map with field_map and field_map_fallback.

Related articles

Did this answer your question?