KWIGA help center Services, integrations, API, Settings General setting Using variables on the project, list of available variables

Using variables on the project, list of available variables

Articles:

This article explains how to use variables in your project—where to apply them, what data is available, and how to use them for automation and personalization. Includes a list with descriptions and examples for emails, webhooks, buttons, lessons, and more.


In this article:


General information about variables

Variables are a convenient way to insert personalized data into various elements of your project. They can be used in places like:

1. Webhooks in automations

Variables can be inserted:

  • in the webhook URL, for example:
    https://example.com/hook?user={user.email}

  • in the request body parameters

  • in the headers

This allows personal data to be automatically sent to third-party services.

2. CTA (Call to Action)

In buttons and links, variables can be used for:

  • personalizing button text

  • passing data through links, such as user ID or UTM tags

3. In parameters

Variables can be used in form parameters or other elements:

  • user email

  • subscription ID

  • unique codes and tags

  • any other variable available in the context

4. In redirect link (if not using payment transition)

Variables can be manually added to the redirect link:

https://my.site.com/thanks?email={user.email}&course={course.title}

5. In the redirect link for successful offer payment

In the redirect link after successful offer payment, variables from blocks contact.*, order.*, and payment.* are available

Example: https://my.site.com/success?order_id={order.id}&email={contact.email}&payment_price={payment.price}

5. In lesson info blocks

Variables and conditional blocks work inside infobox texts. For example:

  • Addressing by name: Hi, {user.first_name}!

  • Displaying course name, date, status, etc.

  • Contact data: {contact.name}, {contact.email}, and other fields

  • Conditional blocks @if/@endif: show different content depending on whether the contact has a tag, access to the offer, etc.

6. In emails

Using variables in emails makes communication more personalized and effective. With variables such as {name}, {date}, or {course_name}, the email appears to be personally addressed to the client. This increases trust, engagement, and the likelihood that the user will read the email to the end or take the desired action. In addition, variables simplify the automation of mass mailings without losing an individual approach.

7. In notifications

When setting up notifications in automation actions, variables allow you to dynamically insert information into notifications, such as the username, order number, or offer name. This simplifies and speeds up the notification creation process, making them more intuitive and adaptable for different scenarios.

List of available variables

List of available variables that are accessible in all places where variables can be used.

Variable Value
contact.id Contact ID
contact.user_id User ID
contact.first_name Contact name
contact.last_name Contact surname
contact.middle_name Middle name of contact
contact.name Contact full name
contact.email Contact email
contact.phone Contact phone
contact.country Contact country. For example: Ukraine
contact.timezone Contact timezone. For example: Europe/Kyiv
contact.currency Contact currency. For example: USD
contact.city Contact city
contact.utm_source List of unique contact utm_source (separator ", ")
contact.utm_medium List of unique utm_medium of the contact (delimiter ", ")
contact.utm_campaign List of unique utm_campaign of the contact (delimiter ", ")
contact.utm_term List of unique utm_term of the contact (delimiter ", ")
contact.utm_content List of unique utm_content of the contact (delimiter ", ")
contact.field_<id> Custom fields (description below)
datetime Date and time in UTC format YYYY-MM-DD HH:mm:ss
contact.visit_source Visit source
These variables are available in the redirect link for successful offer payment.

Custom fields

{contact.field_<id>}

Example {contact.field_123}

<id> - field ID, which can be obtained in the contact field settings (example https://sampleschool.kwiga.com/expert/crm/contacts?view=settings)

Custom fields example

How to change a variable’s value

You can add options after a variable to change how it looks: append text, make letters uppercase, or format the date.

General form: {variable|option:value|option}. For example: {order.id|prefix:ORDER-} or {payment.paid_at|format:DD.MM.YYYY}.

What you want to get What to write
Add text before the value {order.id|prefix:ORDER-} -> will result in ORDER-123
Add text after the value {order.id|suffix:-EU} -> will result in 123-EU
Make the number a fixed length {payment.number|pad:6} -> will result in 000001
Pad with your own character instead of zeros {payment.number|pad:6|padchar:_} -> will result in _____1
Make all letters uppercase {contact.city|upper} -> KYIV
Make all letters lowercase {contact.city|lower} -> kyiv
Capitalize only the first letter {contact.city|ucfirst} -> Kyiv
Show the date in the required format {payment.paid_at|format:DD.MM.YYYY} -> will result in 24.12.2026
If you want your own date format pattern, you can check the ready-made tokens in the public docs: for formats like DD.MM.YYYY, MMMM YYYY, dddd, the Carbon docs will help. For formats like Y-m-d and H:i:s, use the official PHP docs.
Important: if pad is used, the value is first padded to the required length, and only then are the other options applied.

Conditional blocks @if / @endif

Allow you to show or hide part of the text depending on a condition. If the condition is true, the block is displayed; if not, it is removed completely.

Syntax: @if(condition)...text...@endif

Example:
@if({contact.has|offer:123})Get access to the materials@endif

The condition inside @if() is any variable that returns true or false. Currently, {contact.has|...} is supported (contact membership check).

contact.has condition — contact check

Allows you to check whether a contact meets certain conditions. Returns true or false. Usually used together with conditional blocks @if/@endif.

Syntax: {contact.has|type:value}

Type Value Description
offer Offer ID The contact has access to the offer
order Order ID The contact has an order with this ID
product Product ID The contact has access to the product
tag Tag ID or name The contact has a tag (Cyrillic and spaces in the name are supported)
list List ID The contact is in the list
course Course ID The contact is enrolled in the course
bootcamp Course ID Alias for course (bootcamp is a subtype of course)
webinar Webinar ID The contact has access to the webinar
closed_group Closed group ID The contact has access to the closed group
You can specify multiple conditions separated by | — all of them must be met at the same time (AND logic). For example: {contact.has|offer:123|tag:VIP}

Usage examples:

{contact.has|offer:123} checks for the presence of an offer with ID 123
{contact.has|tag:VIP} checks a tag by name
{contact.has|tag:тест тег} tag with a space and Cyrillic
{contact.has|offer:123|tag:VIP} both conditions at the same time (AND)

Variables that can be additionally used in CTA

  • in parameters

  • in redirect link (if not using payment transition)

Variable Value
first_name First name from application
last_name Last name from application
middle_name Middle name from the application
name Full name from application
email Email from application
phone Phone from application
field_<id> Custom fields Phone from the application (description below)
utm_source utm_source - specifically from the visit where the application was submitted
utm_medium utm_medium - specifically from the visit where the application was submitted
utm_campaign utm_campaign - specifically from the visit where the application was submitted
utm_term utm_term - specifically from the visit where the application was submitted
utm_content utm_content - specifically from the visit where the application was submitted
widget_landing Landing page URL from which the application was sent
widget_landign_referer Referrer that was on the landing page when the application was sent

Also, in certain forms, variables described below in Variables available in automation webhooks may be accessible

By order ({order.*}) - If the Access to product (Full access/By offer) form option is selected

By product({product.*}) - If the Access to product + Full access form option is selected

By offer ({offer.*}) - If the Access to product + By offer form option is selected

Custom fields

{field_<id>}

Example {contact.field_123}

<id> - field ID, which can be obtained in the contact field settings (example https://sampleschool.kwiga.com/expert/crm/contacts?view=settings)

Custom fields example

If on the page where the CTA or Kwiga tracking script is placed, there were visits with utm tags, and the client submitted a request on the landing page without utm tags, they will be absent in these variables. But they will be available in the variables {contact.utm_...}, which are described above.

Variables available in automation webhooks (url, parameters, emails)

List of available variables

Variable Value
referrer Referrer from the first known visit of the contact (Kwiga / landing with CTA)
initial_page URL of the first known visit of the contact (Kwiga / landing with CTA)
reg_from URL of the page where registration occurred (Kwiga / landing with CTA)
tags Contact tags (delimiter ", ")
description Description of the event that triggered the automation. For example: Tag test_tag added to contact

CTA form variables

Variable Value
cta.id CTA form ID
cta.uuid CTA form UUID
cta.title CTA form name
cta_request.form_data List of user-entered data (separated by line breaks)
The list can be expanded.

Available when the following events occur:

  • Application CTA

Product variables

Variable Value
product.id Product ID
product.title Product name
product.productable_type Product type. Possible options: course, webinar, closed_group, custom_product
product.productable_id ID of the course/webinar/closed group/custom product

Available when the following events occur:

  • Product access gained
  • Product access removed
  • Registered for webinar
  • Course completed
  • Quiz passed
  • Reset quiz result
  • Quiz transitioned to status
  • Subscription access start
  • Subscription access end
  • Started watching lesson
  • Watched lesson
  • Open lesson access
  • All lesson practice completed

Order variables

Variable Value
order.id Order ID
order.price Final price. Example 10.99
order.currency_code Order currency in code format. Example: USD
order.currency_symbol Order currency in symbol format. Example: $
order.currency_short_title Order currency in abbreviated name. Example: usd
order.order_stage_id Funnel status ID
order.order_stage_title Funnel status name
order.funnel_id Funnel ID
order.funnel_title Funnel name
order.paid_status Order payment status not_paid / partial_paid / paid
order.paid_status_title Payment status in English words
order.utm_source utm_source of order
order.utm_medium utm_medium of order
order.utm_campaign utm_campaign of order
order.utm_term utm_term of order
order.utm_content utm_content of order
order.next_scheduled_payment_at Date of the next scheduled payment (for subscriptions and installment plans). Format YYYY-MM-DD HH:mm:ss
These variables are available in the redirect link for successful offer payment.
The list can be expanded.

Available when the following events occur:

  • Subscription started
  • Subscription renewed
  • Paid order
  • New order
  • Successful offer payment
  • Failed offer payment
  • Offer payment refund
  • Product access gained
  • Subscription access start
  • Subscription access end

Payment variables

Variable Value
payment.id Payment ID
payment.price Payment price
payment.currency_code Payment currency in code format. Example: USD
payment.currency_symbol Payment currency in symbol format. Example: $
payment.currency_short_title Payment currency in abbreviated name. Example: usd
payment.created_at Payment creation date. Format YYYY-MM-DD HH:mm:ss
payment.paid_at Payment date. Format YYYY-MM-DD HH:mm:ss
payment.schedule_payment_at Scheduled payment date. Format YYYY-MM-DD HH:mm:ss
payment.number Sequential payment number in the order
These variables are available in the redirect link for successful offer payment.
The list can be expanded.

Available when the following events occur:

  • Successful offer payment
  • Failed offer payment
  • Offer payment refund

Offer variables

Variable Value
offer.id Offer ID
offer.title Offer name
The list can be expanded.

Available when the following events occur:

  • Successful offer payment
  • Failed offer payment
  • Offer payment refund
  • Accepted free offer
  • Subscription started
  • Subscription renewed
  • Paid order
  • New order
  • Product access gained
  • Subscription access start
  • Subscription access end

Product subscription variables

Variable Value
subscription.id Product subscription ID
subscription.order_id Order ID linked to the product subscription
subscription.start_at Subscription start date. YYYY-MM-DD HH:mm:ss
subscription.end_at Final subscription end date. YYYY-MM-DD HH:mm:ss
subscription.order_end_at Subscription end date, considering only paid payments. YYYY-MM-DD HH:mm:ss
subscription.paid_at First subscription payment date. YYYY-MM-DD HH:mm:ss
The list can be expanded.

Available when the following events occur:

  • Product access gained
  • Subscription access start
  • Subscription access end

Quiz attempt variables

Variable Value
quiz_attempt.id Attempt ID
quiz_attempt.number_version Version number of completion
quiz_attempt.quiz_id Quiz ID
quiz_attempt.course_id Course ID
quiz_attempt.course_lesson_id Lesson ID
quiz_attempt.status_id Status ID
quiz_attempt.status Status in text form
quiz_attempt.scores Points scored
quiz_attempt.created_at Attempt start. Format YYYY-MM-DD HH:mm:ss
quiz_attempt.finished_at Attempt end. Format YYYY-MM-DD HH:mm:ss
quiz_attempt.count_questions Number of questions in the quiz
quiz_attempt.count_questions_incorrect Number of questions answered incorrectly
quiz_attempt.count_questions_correct Number of correctly answered questions
quiz.title Quiz name
The list can be expanded.

Available when the following events occur:

  • Quiz passed
  • Reset quiz result
  • Quiz transitioned to status

Lesson variables

Variable Value
lesson.id Lesson ID
lesson.title Lesson name
The list can be expanded.

Available when the following events occur:

  • Quiz passed
  • Reset quiz result
  • Quiz transitioned to status
  • Started watching lesson
  • Watched lesson
  • Open lesson access
  • All lesson practice completed