Send GoHighLevel leads to Juiced
This guide connects a HighLevel form or survey to a Juiced source. The route is Direct: a workflow posts each submission to Juiced with the Custom Webhook action, a raw JSON body and an Authorization header.
Route: Direct. A HighLevel workflow with a Form Submitted or Survey Submitted trigger runs the Custom Webhook action, which posts a JSON body you write to https://usejuiced.com/api/v1/leads.
You need workflow access in the sub-account with Workflow Premium Features turned on (Custom Webhook is a premium action), plus a Juiced source and its bearer token.
Use Custom Webhook, not the plain Webhook action. In our support tickets the plain action sent custom fields nested under customData, and Juiced only reads top-level keys.
Before you start
- In HighLevel: a form or survey built in the CRM, permission to edit workflows in the sub-account, and the premium workflow features enabled. HighLevel lists Custom Webhook as a premium action. The agency turns it on under Agency View > Settings > Company > Workflow - Premium Features; sub-accounts then run it pay-per-execution (with free executions to start) or under a Workflow Pro plan (Free, Starter, Growth or Scale). See how to enable premium features for workflows.
- In Juiced: a source, a bearer token from its Authentication tab, and the field names from View API Spec.
Step by step
-
Create a Juiced source and copy a bearer token
In Juiced, go to Ingest > Sources > New source, turn on Test mode and click Create source. On the Authentication tab click New bearer token > Create token and copy it (it is shown once). Then open Overview > More actions (⋯) > View API Spec for the endpoint and exact field names. Details: setting up a source.
-
Create a workflow with a Form Submitted trigger
In Automation > Workflows, create a workflow and click Add New Trigger. Choose Form Submitted and set the filter Form Is to your form. For surveys, choose Survey Submitted and set Survey is instead. See HighLevel's Form Submitted and Survey Submitted trigger docs.
-
Add the Custom Webhook action
Click + Add action and choose Send Data > Custom Webhook. Name it, for example "Send lead to Juiced". Set Event to CUSTOM, which shows Method, Content-Type and the Raw Body editor. Set Method to POST, URL to
https://usejuiced.com/api/v1/leadsand Content-Type to application/json. Do not use the POST event: it gives a key and value form, not a raw body. Labels are from HighLevel's Custom Webhook article. -
Set the Authorization header
Under Authorization, choose Bearer Token and paste the token, or choose no auth and add a header with key
Authorizationand valueBearerplus one space plus the token. AddAccept: application/jsonunder Headers. Check that no space or line break came along with the pasted token. -
Write the JSON body with merge tags
In Raw Body, write one top-level key per Juiced field and insert values with the tag icon, which opens the variable picker. Standard fields use tags like
{{contact.first_name}}and{{contact.postal_code}}. For custom fields, pick them from the picker so the tag uses the field's key exactly; merge tags are case-sensitive. The left side of each pair must be the Juiced field title, not the HighLevel field name. See the mapping table below. -
Test with a test zip code and check Incoming logs
Save the action and publish the workflow, then submit the form with zip
00001(expect accepted) or00003(expect rejected). Check the action's status in the workflow's Execution Logs, then in Juiced open Entries > Incoming logs, filter Test only, open the log and click Post to see the payload, response and any validation errors. Turn off test mode on the source before going live.
Field mapping
Merge tags below are from HighLevel's list of merge fields. Insert custom field tags from the picker rather than typing them.
| HighLevel merge tag | Juiced key |
|---|---|
{{contact.first_name}} | first_name |
{{contact.last_name}} | last_name |
{{contact.email}} | email |
{{contact.phone}} | phone |
{{contact.address1}}, {{contact.city}}, {{contact.state}} | address_1, city, state |
{{contact.postal_code}} | zip (always required) |
| A custom field (from the picker) | The matching field title you added in Juiced, such as property_type |
| Custom field holding the TrustedForm URL | trusted_form_cert_url (add this field in Juiced first) |
For a List of Values field in Juiced, the HighLevel answer must match one of the listed values exactly.
Example request
Headers the action sends:
Authorization: Bearer <your token>
Content-Type: application/json
Accept: application/json
Raw Body:
{
"first_name": "{{contact.first_name}}",
"last_name": "{{contact.last_name}}",
"email": "{{contact.email}}",
"phone": "{{contact.phone}}",
"zip": "{{contact.postal_code}}",
"property_type": "{{contact.property_type}}"
}
The last line is an example custom field; use the tag the picker inserts for yours.
TrustedForm and Jornaya
HighLevel documents a TrustedForm setup for its forms and surveys: you create a custom short text field named xxTrustedFormCertUrl, add the ActiveProspect script in an HTML field, and the script writes the certificate URL into that field (HighLevel's guide). Add a field such as trusted_form_cert_url to your Juiced lead category or source and map the custom field's merge tag to it. HighLevel's docs do not cover Jornaya. See passing TrustedForm and Jornaya to Juiced.
Troubleshooting
- Custom fields arrive empty or are not saved. The plain Webhook action nests custom data (we have seen it under
customData), so Juiced cannot read it. Switch to Custom Webhook with Event CUSTOM and a raw body. - A field shows in the post inspector but not on the lead. The JSON key must match the Juiced field title exactly, including underscores and case. Rename the key in the Raw Body, or add the field in Juiced under Ingest > Lead Categories or the source's Fields tab.
- A value went blank after you edited a custom field. If a HighLevel custom field or its key is renamed, the old merge tag no longer resolves. Reinsert it from the picker.
- 401 Unauthorized. Usually a trailing space or line break copied with the token, a missing "Bearer " prefix in a manual header, or a token replaced more than 24 hours ago. Paste a fresh token and retest.
- 422 with errors. Read
error.codeand the fielderrors. A required field such aszipis missing or empty for this contact. Make the form field required in HighLevel. - 201 but data.status rejected. Juiced received the lead but did not sell it. Open the log in Incoming logs to see why.
More fixes in webhook troubleshooting.
Frequently asked
Does GoHighLevel have a webhook?
Yes. HighLevel workflows have a Webhook action and a Custom Webhook action. Use Custom Webhook to send leads to Juiced, because it lets you write a raw JSON body with top-level keys and set an Authorization header.
Why not use the standard Webhook action?
The standard Webhook action sends HighLevel’s own payload, and in our support tickets custom fields arrived nested under customData. Juiced only reads top-level keys, so those values were not saved. Custom Webhook lets you write the exact JSON Juiced expects.
Which GoHighLevel plan do I need for Custom Webhook?
HighLevel lists Custom Webhook as a premium workflow action. The agency enables Workflow Premium Features, and sub-accounts either pay per execution after their free executions or use a Workflow Pro plan such as Starter, Growth or Scale. Check the current terms in your agency settings.
Can GoHighLevel send leads to a lead distribution platform?
Yes. A workflow can post each form or survey submission to a lead distribution platform such as Juiced with the Custom Webhook action, which then routes the lead to buyers.
How do I pass a TrustedForm certificate from GoHighLevel?
Set up HighLevel’s ActiveProspect script so the certificate URL lands in a custom field, add a field such as trusted_form_cert_url to your Juiced source or lead category, and map the custom field’s merge tag to that key in the Raw Body.
Route every HighLevel lead to the right buyer
Juiced routes each incoming lead to buyers by their bids, caps and criteria, and sends leads that miss their first route to your marketplace.
Scale your lead business, without limits
Juiced puts you in full control of your leads, routing, and revenue, so you can automate, optimize, and grow without chaos.
