Skip to main content

Connect HighLevel with Framer Forms

Capture leads from your Framer forms and automatically add them as contacts in HighLevel using the Forms Plugin.

Step 1 - Create a Private Integration Token

HighLevel uses a Private Integration Token (PIT) for server-to-server access. This is what lets the Forms Plugin send submissions to your sub-account.
  1. Login to your HighLevel account
  2. Navigate to Settings → Other Settings → Private Integrations
  3. Click Create new Integration
  4. Give it a name, for example Framer Forms
  5. Select these scopes:
    • View Contacts (contacts.readonly)
    • Edit Contacts (contacts.write)
  6. Create the integration and copy the token

Required Scopes

Only select the scopes above. A token with broader access than it needs is a larger risk if it is ever exposed.
Private Integration Tokens do not refresh automatically. Rotate yours roughly every 90 days, and revoke it immediately if you think it has leaked.

Step 2 - Find Your Location ID

A HighLevel Location is a sub-account. Every contact has to belong to one, so the integration needs its ID.
  1. Open the sub-account you want form submissions to land in
  2. Navigate to Settings → Business Profile
  3. Copy the Location ID

Step 3 - Insert HighLevel Component Into Your Form

Select your form in the Framer canvas and insert the HighLevel component. The component connects your form to HighLevel and automatically detects the form fields in your form layout.

Step 4 - Configure HighLevel API Settings

After inserting the HighLevel component, configure the API settings in the component properties panel.
  1. Select the HighLevel Integration component in your form
  2. Open the properties panel on the right side
  3. Paste your Private Integration Token
  4. Enter your Location ID

Required Fields

  • Token - The Private Integration Token created in Step 1.
  • Location ID - The sub-account contacts are created in.

Optional Fields

  • Source - Recorded on each contact so you can tell HighLevel leads apart by origin. Defaults to Framer Form.
  • Update Existing - When on, a submission from a known email updates that contact. When off, a duplicate submission is rejected instead.
Tags are configured under Field Mappings — see Step 6.

Step 5 - Configure Field Mapping

Map your form fields to HighLevel contact fields. The component automatically detects your form field names. You connect each one to the matching HighLevel field, and one mapping must target Email.

Example Mapping

Custom Fields

To send a value to one of your own HighLevel fields, set the mapping to Custom Field and enter the field key.
  1. In HighLevel, go to Settings → Custom Fields
  2. Open the field and copy its Key
  3. Paste it into Custom Key on the mapping

Step 6 - Add Tags (Optional)

Two tag controls sit under Field Mappings. Both are optional, and they combine.

Static Tags

Tags applied to every submission. Click + to add one per row.

Dynamic Tag Fields

Tags taken from what the visitor actually chose. Each row is a form field name plus a format. The field’s value becomes the tag, so set option values to the tag name itself rather than the display label. Static and dynamic tags are merged and de-duplicated (case-insensitively) before sending:
HighLevel replaces all of a contact’s tags whenever tags are sent — it does not append. If you manage tags inside HighLevel, leave both tag controls empty: with nothing configured no tags are sent at all, and your existing tags are left untouched.

Step 7 - Result

When a user submits the form, their details are added as a contact in your HighLevel sub-account. Verify new contacts under Contacts in your HighLevel dashboard.

Troubleshooting

Next Steps