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:
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
In the row for a destination field, open the Form field picker.
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.
Optional: choose a Fallback field (see below).
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. |
Lead Distro AI |
|
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,emailandphone. If the funnel's live variants already use another spelling, such asphone_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 |
| See the funnel's destinations, current maps and the form field names in use ( |
| List campaigns, suppliers and each campaign's fields with required flags. |
| Set the campaign, supplier and full field map ( |
| Set the Lead Distro AI ids, key and field map ( |
| Replace an ActiveCampaign map with |
