Blank values and raw tokens
The prompt looks right in the editor. Then, in a test call or chat, the AI says nothing where the value should be, or reads the token out with its curly braces.
Both have the same root. A merge field pulls the saved value at the moment the content is generated. If there's no value, or no record for it to come from, the result is blank even when the tag is spelled perfectly.
Custom fields or custom values?
HighLevel splits stored data in two. Custom fields hold information about one record, such as a contact's service interest or renewal month. Custom values hold reusable information that's the same for everyone, such as your office hours or your booking link.
For a prompt, the split decides what can go wrong. Business facts belong in custom values, because they read the same on every conversation. Facts about the person belong in custom fields, and those fill in only when the AI is working with that contact and the field has a value.
Business facts in custom values. Person facts in custom fields. A plan for blanks in both.
Insert and test a tag in a Voice AI prompt
Conversation AI fields that support merge fields take tags the same way. These steps use Voice AI because it has both the Custom Value menu and a test panel in the builder.
- Open the contact you'll test with and confirm the field actually holds a value.
- Go to AI Agents, then Voice AI, select the agent and open Build.
- Put the cursor in a field that accepts merge fields and choose the tag from the Custom Value menu, so the editor inserts a token it recognizes.
- Add a line telling the agent what to do if the value is missing, for example to ask the caller for it.
- Save the agent.
- Open Test Audio with a contact who has the value and again with one who doesn't, and listen to both.
How we write the tags
In our builds every contact tag is written as {{ contact.field_key }}, lowercase with underscores, and the custom field's key matches it character for character. Our own checks flag camelCase keys, a contact.custom prefix and square-bracket placeholders before a prompt goes live.
That's a house rule, not a HighLevel rule. The platform's reference is the picker: whatever token the Custom Value menu inserts is the one to keep, even where it differs from our format.
Custom values are also not Custom Actions. A custom value drops information already stored in HighLevel into the prompt. A Custom Action is how a Voice AI agent connects to another system. If the information lives outside HighLevel, no tag will fetch it.
Rather have it set up for you?
We'll set up your custom fields and values, write the prompt tags, and test them on full and empty records. It begins with a 30-minute 1:1 with Rob.
Why a tag that works elsewhere comes up blank
A tag that fills in perfectly in an email can still fail in a prompt. HighLevel notes that a token supported in one place may not be available in the editor you're using, so trust the menu in front of you over a tag copied from somewhere else.
- Typing a tag by hand instead of choosing it from the menu
- Testing only with a contact whose fields are all filled
- Keeping business facts in contact fields, where every new lead has them blank
- Expecting a tag to pull data from another system, which is a Custom Action's job
- Leaving out the instruction for missing values, so the AI improvises
