Personalization

Understand variables

Distinguish all variable families, fixed paths, dynamic identifiers, ownership, previews, and missing values.

Documentation

Variables let one template produce different Pages for different prospects. A tag such as {{linkedin.first_name}} is replaced with the prospect’s first name when Landit renders the Page.

Choose a variable by its source. Prospect information, your company information, saved personal values, and generated text have different owners and update behavior.

Choose the right source

Source Example Supplies
Prospect profile {{linkedin.first_name}} Information about the person receiving the Page.
Your profile {{user.profile.full_name}} Information about the person whose account created the Page.
Your company {{user.company.name}} Saved company information shared within that workspace.
Saved user variable {{user.booking_url}} A reusable value saved in the Page owner’s account.
Image asset {{user_asset.product_image}} The URL of an uploaded or imported image available to the Page owner.
Prompt variable {{prompt.personal_introduction}} Generated text saved specifically for that Page.
Template input {{campaign_note}} A value supplied with this prospect when creating the Page.
CRM data {{hubspot.job_title}} or {{outreach.title}} A property or configured mapping supplied by the relevant integration.

Names such as booking_url, product_image, personal_introduction, and campaign_note are examples. Copy the exact tag from your account or use the exact input required by your selected template.

linkedin.company_name describes the prospect’s company. user.company.name describes your company. They are different values even when the page design places them next to each other.

Prospect fields

These are the nine canonical prospect fields available to AI template authoring:

Path Value
linkedin.first_name Prospect’s first name.
linkedin.last_name Prospect’s last name.
linkedin.full_name Prospect’s full name.
linkedin.headline LinkedIn headline.
linkedin.job_title Current job title.
linkedin.company_name Current company name.
linkedin.location Prospect location.
linkedin.profile_picture Profile image URL.
linkedin.company_logo Current company logo URL.

Text can be absent when the profile does not contain it. The two image fields use a placeholder when the relevant attachment is unavailable, with the placeholder appearing wherever that image field is used.

Manually authored Pages can also receive richer profile data, such as linkedin.experiences and linkedin.education. Availability depends on the captured profile. These nested fields are not interchangeable with the nine canonical fields and are not automatically available to AI authoring. Check a template’s actual input contract before relying on extended data.

Your profile and company

The five built-in seller-profile paths are:

Path Value
user.profile.first_name Page owner’s saved first name.
user.profile.last_name Page owner’s saved last name.
user.profile.full_name Page owner’s saved full name.
user.profile.job_title Page owner’s saved job title.
user.profile.profile_picture Page owner’s saved profile image URL.

Complete Your profile in Setup to provide these values.

The six company paths come from your workspace’s saved company profile:

Path Value
user.company.name Your company name.
user.company.website Your company website.
user.company.description Your company description.
user.company.industry Your company industry.
user.company.logo Saved company logo URL.
user.company.linkedin_url Your company’s LinkedIn URL.

Saved company-profile values are used when rendering Pages. Missing company fields stay absent; Landit does not invent a company logo. AI authoring receives the company fields that were populated when that authoring request’s context was assembled.

The user.profile and user.company names are reserved. Creating a custom user variable with a similar name does not replace these built-in values.

Create a reusable user value

Open User variables, select Create user variable, and enter its name and value. After saving, copy the exact tag displayed in the Variable column.

For example, a saved booking link might produce {{user.booking_url}}. Its value belongs to your account and can be reused by your Pages. Editing a saved value keeps its existing variable identifier; use the displayed tag rather than deriving an identifier from the current label.

<p>Your contact is {{user.profile.full_name | escape}}.</p>
<a href="{{user.booking_url | escape}}">Book a conversation</a>

Use a complete, reviewed HTTPS URL as the booking value. HTML escaping protects the attribute’s characters; it does not establish whether a destination URL is trustworthy.

Use image assets

An asset tag resolves to an image URL, not an entire image element:

<img src="{{user_asset.product_image | escape}}" alt="Product overview">

Copy the asset’s actual variable tag from Landit. A private asset must be available to the Page owner. Shared templates cannot rely on private assets that teammates cannot use.

Asset names are account-specific; there is no universal user_asset.logo or user_asset.product_image that exists in every workspace. Use user.company.logo for the saved company-profile logo when that is what you intend to display.

Generate text with a prompt variable

A prompt variable defines instructions for text that Landit generates separately for each new Page.

  1. Open Prompt variables and create a definition.
  2. Give it a stable name. The name and generated identifier cannot be renamed after creation.
  3. Write the instructions and choose which LinkedIn data the prompt may use.
  4. Save the definition and copy its exact tag into your template.

For an introduction, you might write:

Write a short introduction addressed to this person. Refer to their current
role using the supplied LinkedIn information. Use a clear, professional tone.
Do not invent company initiatives or claim a relationship we do not have.
Return only the introduction as plain text.

The available data selections are Full profile, Headline, Job title, Company, Experience, and Education. Full profile includes all sections. Choose the information needed by the instructions.

Variable tags inside the prompt instructions are plain text; do not assume that typing {{user.company.name}} there substitutes your company name. Describe the task using the selected profile data and the information you actually provide.

Saving the definition does not run it. Its Preview → Run preview action is a separate generation step using the specified LinkedIn profile. A template’s visual preview is different: it leaves prompt-variable values blank and does not run those prompts.

When creating a Page, Landit runs the prompt variables referenced by the template after obtaining usable LinkedIn input. Page completion waits for the required prompts. A missing definition, unusable required input, or failed required prompt can fail Page creation.

Results are saved for that Page. Editing the instructions does not regenerate old Pages. Generated text is escaped before insertion into the Page and is not evaluated again as Liquid:

<p>{{prompt.personal_introduction}}</p>

Do not add another escape filter to that output; it is already escaped. Use escape_once if a shared formatting pattern requires an escaping filter.

Supply a value for one campaign or prospect

An unprefixed input such as {{campaign_note}} is a template variable. With CSV enrichment, map a column to that input. With MCP, the value is supplied directly on that prospect after reading the selected template’s requirements.

A campaign_note input and a user.campaign_note saved value are separate variables. Landit does not automatically convert firstname to first_name or company to company_name.

Use CRM values

hubspot and outreach are integration namespaces. Their available properties depend on the source record and your configured variable mappings. A mapping can expose a CRM property under a Landit variable identifier.

Connecting a CRM does not make every property available to every Page. The Page needs the relevant integration data. CRM paths are supported by manual rendering but are not part of the AI system-variable catalog reviewed for this guide.

Shared templates and ownership

On a live Page, user.*, accessible assets, and prompt.* resolve for the Page owner. Selecting a teammate’s template does not borrow that teammate’s personal values or prompt definitions.

Before sharing a template, check that teammates have its required saved values, prompt definitions with matching identifiers, and access to referenced assets. Company values come from their shared workspace profile.

Preview, creation, and later views

Value Template preview New Page Later Page view
Prospect fields Sample or explicitly supplied preview data. Contact’s enriched profile. Saved profile data used by the Page.
Seller/company values Values for the acting preview user. Values for the Page owner and workspace. Current saved values for that owner and workspace.
Prompt variables Blank; no prompt execution. Generated and saved for the Page. Saved successful results; viewing never reruns the prompt.
Template input Available sample or preview input, otherwise blank. Submitted prospect value. Saved Page input.

Live Pages use the template’s current content. Adding a new prompt reference to an existing template does not backfill results on old Pages, so it can display blank on those Pages.

Handle missing values

Most missing output values render as blank. Provide a deliberate fallback for optional text:

Hello {{linkedin.first_name | default: "there" | escape}}.

Use a conditional to omit an optional block. Do not treat a fallback as a substitute for a required prompt definition or usable input during Page creation.

Next step

Use the Liquid syntax reference to add safe formatting and conditions, or create a first Page to check your values with a real contact.

Try a simple variable

This local example illustrates substitution. It does not generate a Page.

Hello {{ linkedin.first_name }}Hello Jordan

Search guides and MCP references in one place.