---
title: CPQ quote templates will not follow your custom lookups
description: Why merge fields through a custom lookup print as literal text on a Salesforce CPQ quote, and three ways to get the value onto the document.
image: https://orbitalobjectives.com/hubfs/oo-social-share.png
---

[Skip to content](https://orbitalobjectives.com/insights/cpq-quote-templates-will-not-follow-your-custom-lookups#main)

[rbital bjectives](https://orbitalobjectives.com/)

- [Services](https://orbitalobjectives.com/services)
- [Our Work](https://orbitalobjectives.com/work)
- [About](https://orbitalobjectives.com/about)
- [Insights](https://orbitalobjectives.com/insights)

[Discuss Your Project](https://orbitalobjectives.com/contact)

1. [Insights](https://orbitalobjectives.com/insights)
2. Nov 12, 2026, 9:42:55 AM

# CPQ quote templates will not follow your custom lookups

Why merge fields through a custom lookup print as literal text on a Salesforce CPQ quote, and three ways to get the value onto the document.

By Orbital Objectives

You add a lookup from the quote to a custom object, drop a merge field into the template that reaches through it, and the PDF prints the merge field itself. Nothing is wrong with your syntax. You have found one of the edges of the CPQ template engine.

## What the engine actually resolves

There are two different contexts in a quote template, and they behave differently.

- Line columns read fields on the quote line. They do not support dot notation at all, so a column cannot reach a related record.
- HTML template content can merge from five sources only: the quote, its primary contact, its sales rep, the template record and the generated document. A record behind any other lookup, including one you created, is not on that list.

## Fix 1: flatten the value onto the quote

Create a formula field on the quote that pulls the value across the lookup, then reference that field in the template. This is the fix for names, numbers, dates and short text, and it takes minutes.

## Fix 2: long text needs a different route

Formula fields cannot reference a long text area on another object, which is exactly where disclaimers and legal wording tend to live. Two options work: a record-triggered Flow that stamps the text into a long text field on the quote, or Quote Terms with term conditions.

## Fix 3: use Quote Terms for legal text

If the content is a disclaimer that should appear only under certain conditions, Quote Terms are the feature built for it. They are versioned, conditional and editable by an admin, which is what you want for wording that a lender or a lawyer will change.

Before you promise a quote layout, list every value on it and note which object it lives on. Anything that is not on the quote or one of the five sources needs one of these three routes, and it is cheaper to know that in scoping than in UAT.

[All articles →](https://orbitalobjectives.com/insights)

Next step

## Tell me what is stuck.

A first conversation is 30 minutes with the person who would do the work. You will leave knowing whether I am the right fit and roughly what it would take.

[Discuss Your Project →](https://orbitalobjectives.com/contact)[Explore Our Work](https://orbitalobjectives.com/work)

[rbital bjectives](https://orbitalobjectives.com/)

Everything orbits your objective

Independent Salesforce, HubSpot and Odoo consulting. Massachusetts.

#### Services

- [Consulting & Development](https://orbitalobjectives.com/services#salesforce-consulting-development)
- [CPQ & Revenue Operations](https://orbitalobjectives.com/services#salesforce-cpq-revenue-operations)
- [Service Cloud & Automation](https://orbitalobjectives.com/services#service-cloud-automation)
- [Experience Cloud & Partner Portals](https://orbitalobjectives.com/services#experience-cloud-partner-portals)
- [Integrations & Data Migration](https://orbitalobjectives.com/services#salesforce-integrations-data-migration)
- [All services](https://orbitalobjectives.com/services)

#### Practice

- [Our Work](https://orbitalobjectives.com/work)
- [About](https://orbitalobjectives.com/about)
- [Insights](https://orbitalobjectives.com/insights)
- [Contact](https://orbitalobjectives.com/contact)

#### Contact

- [info@orbitalobjectives.com](mailto:info@orbitalobjectives.com)
- [Discuss Your Project](https://orbitalobjectives.com/contact)

© 2026 Orbital Objectives LLCSalesforce and Odoo are trademarks of their respective owners.

```json
{
  "@context" : "https://schema.org",
  "@type" : "BlogPosting",
  "author" : {
    "@id" : "https://orbitalobjectives.com/#organization"
  },
  "dateModified" : "2026-11-12",
  "datePublished" : "2026-11-12",
  "description" : "Why merge fields through a custom lookup print as literal text on a Salesforce CPQ quote, and three ways to get the value onto the document.",
  "headline" : "<span id=\"hs_cos_wrapper_name\" class=\"hs_cos_wrapper hs_cos_wrapper_meta_field hs_cos_wrapper_type_text\" style=\"\" data-hs-cos-general-type=\"meta_field\" data-hs-cos-type=\"text\" >CPQ quote templates will not follow your custom lookups</span>",
  "publisher" : {
    "@id" : "https://orbitalobjectives.com/#organization"
  },
  "url" : "https://orbitalobjectives.com/insights/cpq-quote-templates-will-not-follow-your-custom-lookups"
}
```

```json
{
  "@context" : "https://schema.org",
  "@type" : "BreadcrumbList",
  "itemListElement" : [ {
    "@type" : "ListItem",
    "item" : "https://orbitalobjectives.com/",
    "name" : "Home",
    "position" : 1
  }, {
    "@type" : "ListItem",
    "item" : "https://orbitalobjectives.com/insights",
    "name" : "Insights",
    "position" : 2
  }, {
    "@type" : "ListItem",
    "item" : "https://orbitalobjectives.com/insights/cpq-quote-templates-will-not-follow-your-custom-lookups",
    "name" : "<span id=\"hs_cos_wrapper_name\" class=\"hs_cos_wrapper hs_cos_wrapper_meta_field hs_cos_wrapper_type_text\" style=\"\" data-hs-cos-general-type=\"meta_field\" data-hs-cos-type=\"text\" >CPQ quote templates will not follow your custom lookups</span>",
    "position" : 3
  } ]
}
```