Create or update contacts in a HighLevel sub-account, with custom fields and tags. Connect your native Framer forms to GoHighLevel in 30 seconds with zero client-side API key leaks.
FramerSend creates or updates a contact in your HighLevel sub-account (location) for every Framer form submission, using HighLevel's Upsert Contact API. Standard fields such as name, email, phone and company go to the matching contact fields, every other answer goes to a custom field with the same key, and the tags you choose are added to the contact.
What gets created: A HighLevel contact in the location you choose, created or updated with POST /contacts/upsert (HighLevel matches existing contacts by email or phone according to the location's duplicate-contact setting). Tags are then added with the Add Tags endpoint, so the contact's existing tags are kept.
| Framer form field | GoHighLevel |
|---|---|
| email (Email, E-mail…) | emailRequired, unless the form has a phone number instead. |
| name, first_name / firstName, last_name / lastName | name, firstName, lastNameA full name is also split into first and last name. |
| phone | phoneUse a +country code. If HighLevel rejects the number, the contact is saved without it. |
| company / companyName | companyName |
| address1, city, state, postalCode, website | Same contact fields |
| country | countryOnly a 2-letter code such as US is sent; a typed country name is left out. |
| tags | Contact tagsComma-separated, added to the tags set on the connection. |
| Any other field, e.g. budget | Custom field with key budgetUse the custom field's key from Settings → Custom Fields (without contact.). If HighLevel rejects the custom fields, the contact is saved without them. |
Create a Private Integration
In the sub-account, open Settings → Private Integrations → Create new integration. Give it the View Contacts and Edit Contacts scopes and copy the token (it is shown once).
Copy the Location ID
In the same sub-account, open Settings → Business Profile and copy the Location ID. It is also the ID after /location/ in the address bar.
Connect and test
In FramerSend, open Connections, add this connector, paste the values and click Test. Save it, then attach it to your form. The Test button runs a read-only contact search in the location, so it checks the token, its contacts scope and the Location ID without creating anything.
Map fields
In Dashboard → Forms, map Framer field names to HighLevel fields (firstName, companyName, postalCode…) or type a custom field key.
Send from Framer
In Framer, select the form, open Form → Send to → Add… → Webhook, paste your FramerSend webhook URL, and publish the site.
GoHighLevel: Email is required (or a phone number) to create a contact.
Add an email (or phone) input to the Framer form.
GoHighLevel (HTTP 401): …
Cause: The Private Integration token was deleted, rotated or mistyped.
Fix: Create a new token in Settings → Private Integrations and paste it into the connection.
GoHighLevel (HTTP 403): …
Cause: The token has no contacts scope, or belongs to another sub-account.
Fix: Add the View Contacts and Edit Contacts scopes and check the Location ID.
GoHighLevel: contact saved, but adding tags failed
The contact is in HighLevel; check the error that follows and the token's contacts scope, then retry from Logs.
Zero code or third-party plugins required
Authenticate GoHighLevel credentials in the FramerSend dashboard. We encrypt and store them securely.
Map your Framer form fields to GoHighLevel properties using our visual dropdown UI.
Paste your webhook URL into your Framer form under Send to → Webhook and publish. Submissions flow automatically.
Every plan includes GoHighLevel and 100+ other connectors. Pay monthly, yearly, or once. Try it free for 14 days, no card needed.
For one Framer site
For freelancers and small studios
For agencies with many client sites
14-day free trial, no card needed. Unlimited submissions while you test.
Start freeEncrypted API vault, real-time delivery, and unlimited submissions
Automatically capture and route leads from your Framer forms.
Trigger automated workflows when form submissions arrive.
Keep all your form data in one place, synced in real-time.
No. FramerSend uses HighLevel's upsert, which updates the existing contact found by email or phone, following your location's Allow Duplicate Contact setting.
No. Tags are added with HighLevel's Add Tags endpoint, which keeps the contact's other tags.
Use a Private Integration token from the sub-account. The old v1 API keys are not supported.
Workflows with a Contact Created or Contact Tag trigger run as they would for any new contact or tag in HighLevel.
Sign up for a FramerSend account (or log in). Go to Connections → Add Connection → GoHighLevel and add your credentials. They are stored server-side and never exposed in your Framer site, which only gets a public form URL.
Yes, all API credentials are encrypted at rest. The client-side code in Framer only exposes a public Form ID, keeping your private keys entirely secure.
No. FramerSend provides unlimited form submissions across all license tiers so your live website forms never get blocked during high-traffic spikes.