Centrum pomocy Kwiga Usługi, integracje, API, Ustawienia Ustawienia ogólne Używanie zmiennych w projekcie, lista dostępnych zmiennych

Używanie zmiennych w projekcie, lista dostępnych zmiennych

Artykuły:

W tym artykule wyjaśniamy, jak używać zmiennych w swoim projekcie — gdzie je stosować, jakie dane są dostępne i jak wykorzystywać je do automatyzacji i personalizacji. Zawiera listę z opisami i przykładami dla e-maili, webhooków, przycisków, lekcji i innych elementów.


W tym artykule:


Ogólne informacje o zmiennych

Zmienne to wygodny sposób na wstawianie spersonalizowanych danych do różnych elementów twojego projektu. Mogą być używane w takich miejscach:

1. Webhooki w automatyzacjach

Zmienne można wstawiać:

  • w URL webhook, na przykład:
    https://example.com/hook?user={user.email}

  • w parametrach ciała żądania

  • w nagłówkach

To pozwala na automatyczne przekazywanie danych osobowych do zewnętrznych serwisów.

2. CTA (Call to Action)

W przyciskach i linkach zmienne można używać do:

  • personalizacji tekstu przycisku

  • przekazywania danych przez linki, na przykład ID użytkownika lub tagi UTM

3. W parametrach

Zmienne można używać w parametrach formularzy lub innych elementów:

  • email użytkownika

  • ID subskrypcji

  • unikalne kody i tagi

  • dowolna inna zmienna dostępna w kontekście

4. W linku przekierowania (jeśli nie jest używane przejście do płatności)

Można dodać zmienne ręcznie w linku przekierowania:

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

5. W linku przekierowania po pomyślnej płatności oferty

W linku przekierowania po pomyślnej płatności oferty dostępne są zmienne z bloków contact.*, order.* i payment.*

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

5. W infoblokach lekcji

Zmienne i bloki warunkowe działają wewnątrz tekstów infobloków. Na przykład:

  • Zwracanie się po imieniu: Cześć, {user.first_name}!

  • Wyświetlanie nazwy kursu, daty, statusu itp.

  • Dane kontaktu: {contact.name}, {contact.email} i inne pola

  • Dane bieżącej lekcji: {lesson.title}, {lesson.slug} i inne pola lekcji

  • Bloki warunkowe @if/@endif: wyświetlanie różnej treści w zależności od tego, czy kontakt ma tag, dostęp do oferty itd.

6. W wiadomościach

Użycie zmiennych w wiadomościach e-mail pozwala uczynić komunikację bardziej spersonalizowaną i skuteczną. Za pomocą zmiennych, takich jak {имя}, {дата} lub {название курса}, wiadomość wygląda na osobiście zaadresowaną do klienta. Zwiększa to zaufanie, zaangażowanie i prawdopodobieństwo, że użytkownik przeczyta wiadomość do końca lub wykona pożądane działanie. Ponadto zmienne ułatwiają automatyzację masowych wysyłek bez utraty indywidualnego podejścia.

7. W powiadomieniach

Podczas konfigurowania powiadomień w działaniach automatyzacji, zmienne pozwalają dynamicznie wstawiać informacje do powiadomień, na przykład imię użytkownika, numer zamówienia lub nazwę oferty. To upraszcza i przyspiesza proces tworzenia powiadomień, czyniąc je bardziej intuicyjnymi i elastycznymi dla różnych scenariuszy.

Lista dostępnych zmiennych

Lista dostępnych zmiennych, które są dostępne we wszystkich miejscach, gdzie można używać zmiennych.

Zmienna Wartość
contact.id ID kontaktu
contact.user_id ID użytkownika
contact.first_name Imię kontaktu
contact.last_name Nazwisko kontaktu
contact.middle_name Drugie imię kontaktu
contact.name Pełne imię kontaktu
contact.email Email kontaktu
contact.phone Telefon kontaktu
contact.country Kraj kontaktu. Na przykład: Ukraina
contact.timezone Strefa czasowa kontaktu. Na przykład: Europe/Kyiv
contact.currency Waluta kontaktu. Na przykład: USD
contact.city Miasto kontaktu
contact.utm_source Lista unikalnych utm_source kontaktu (separator ", ")
contact.utm_medium Lista unikalnych utm_medium kontaktu (separator ", ")
contact.utm_campaign Lista unikalnych utm_campaign kontaktu (separator ", ")
contact.utm_term Lista unikalnych utm_term kontaktu (separator ", ")
contact.utm_content Lista unikalnych utm_content kontaktu (separator ", ")
contact.field_<id> Pola niestandardowe (opis poniżej)
datetime Data i czas w UTC w formacie YYYY-MM-DD HH:mm:ss
contact.visit_source Źródło wizyty
Te zmienne są dostępne w linku przekierowania po pomyślnej płatności oferty.

Pola niestandardowe

{contact.field_<id>}

Przykład {contact.field_123}

<id> - id pola, które można uzyskać w ustawieniach pól kontaktu (przykład https://sampleschool.kwiga.com/expert/crm/contacts?view=settings)

Custom fields example

Jak zmienić wartość zmiennej

Po zmiennej można dodać opcje, aby zmienić jej wygląd: dopisać tekst, zamienić litery na wielkie lub sformatować datę.

Ogólny zapis: {variable|option:value|option}. Na przykład: {order.id|prefix:ORDER-} lub {payment.paid_at|format:DD.MM.YYYY}.

Co chcesz uzyskać Co wpisać
Dodać tekst przed wartością {order.id|prefix:ORDER-} -> wynik: ORDER-123
Dodać tekst po wartości {order.id|suffix:-EU} -> wynik: 123-EU
Nadać numerowi stałą długość {payment.number|pad:6} -> wynik: 000001
Uzupełniać nie zerami, lecz własnym znakiem {payment.number|pad:6|padchar:_} -> wynik: _____1
Zamienić wszystkie litery na wielkie {contact.city|upper} -> KYIV
Zamienić wszystkie litery na małe {contact.city|lower} -> kyiv
Napisać wielką literą tylko pierwszą literę {contact.city|ucfirst} -> Kyiv
Wyświetlić datę w odpowiednim formacie {payment.paid_at|format:DD.MM.YYYY} -> wynik: 24.12.2026
Jeśli chcesz użyć własnego formatu daty, gotowe oznaczenia możesz sprawdzić w otwartej dokumentacji: dla wariantów takich jak DD.MM.YYYY, MMMM YYYY, dddd odpowiednia będzie dokumentacja Carbon. Dla wariantów takich jak Y-m-d i H:i:s odpowiednia będzie oficjalna dokumentacja PHP.
Ważne: jeśli używane jest pad, najpierw wartość jest uzupełniana do wymaganej długości, a dopiero potem stosowane są pozostałe opcje.

Bloki warunkowe @if / @endif

Pozwalają pokazywać lub ukrywać część tekstu w zależności od warunku. Jeśli warunek jest prawdziwy, blok jest wyświetlany; jeśli nie — jest całkowicie usuwany.

Składnia: @if(warunek)...tekst...@endif

Przykład:
@if({contact.has|offer:123})Uzyskaj dostęp do materiałów@endif

Warunek wewnątrz @if() to dowolna zmienna, która zwraca true lub false. Obecnie obsługiwane jest {contact.has|...} (sprawdzanie przynależności kontaktu).

Warunek contact.has — sprawdzanie kontaktu

Pozwala sprawdzić, czy kontakt spełnia określone warunki. Zwraca true lub false. Zwykle używane razem z blokami warunkowymi @if/@endif.

Składnia: {contact.has|typ:wartość}

Typ Wartość Opis
offer ID oferty Kontakt ma dostęp do oferty
order ID zamówienia Kontakt ma zamówienie o takim ID
product ID produktu Kontakt ma dostęp do produktu
tag ID lub nazwa tagu Kontakt ma tag (obsługiwana jest cyrylica i spacje w nazwie)
list ID listy Kontakt należy do listy
course ID kursu Kontakt jest zapisany na kurs
marathon ID kursu Alias dla course (maraton — podtyp kursu)
webinar ID webinaru Kontakt ma dostęp do webinaru
closed_group ID grupy zamkniętej Kontakt ma dostęp do grupy zamkniętej
Można podać kilka warunków przez | — wszystkie muszą być spełnione jednocześnie (logika AND). Na przykład: {contact.has|offer:123|tag:VIP}

Przykłady użycia:

{contact.has|offer:123} sprawdza obecność oferty o ID 123
{contact.has|tag:VIP} sprawdza tag po nazwie
{contact.has|tag:тест тег} tag ze spacją i cyrylicą
{contact.has|offer:123|tag:VIP} oba warunki jednocześnie (AND)

Zmienne, które można dodatkowo używać w CTA

  • w parametrach

  • w linku przekierowania (jeśli nie jest używane przejście do płatności)

Zmienna Wartość
first_name Imię z wniosku
last_name Nazwisko z wniosku
middle_name Drugie imię z wniosku
name Pełne imię z wniosku
email Email z wniosku
phone Telefon z wniosku
field_<id> Pola niestandardowe Telefon z wniosku (opis poniżej)
utm_source utm_source - konkretnej wizyty, z której został złożony wniosek
utm_medium utm_medium - konkretnej wizyty, z której został złożony wniosek
utm_campaign utm_campaign - konkretnej wizyty, z której został złożony wniosek
utm_term utm_term - konkretnej wizyty, z której został złożony wniosek
utm_content utm_content - konkretnej wizyty, z której został złożony wniosek
widget_landing Url landing page, z której wysłano wniosek
widget_landign_referer Referer, który był na landing page, kiedy wysłano wniosek

Również w określonych formularzach mogą być dostępne zmienne opisane poniżej w Zmiennych dostępnych w webhookach automatyzacji

Na zamówienie ({order.*}) - Jeśli wybrano opcję formularza Dostęp do produktu (Pełny dostęp/Na ofertę)

Na produkt({product.*}) - Jeśli wybrano opcję formularza Dostęp do produktu + Pełny dostęp

Na ofertę ({offer.*}) - Jeśli wybrano opcję formularza Dostęp do produktu + Na ofertę

Pola niestandardowe

{field_<id>}

Przykład {contact.field_123}

<id> - id pola, które można uzyskać w ustawieniach pól kontaktu (przykład https://sampleschool.kwiga.com/expert/crm/contacts?view=settings)

Custom fields example

Jeśli na stronie, gdzie umieszczono CTA lub skrypt Kwiga do śledzenia odwiedzin, były odwiedziny z metkami utm, a klient złożył zamówienie na landing page'u już bez metek utm, to w tych zmiennych będą one nieobecne. Ale będą dostępne w zmiennych {contact.utm_...}, które opisano powyżej.

Zmienne dostępne w webhookach automatyzacji (url, parametry, e-maile)

Lista dostępnych zmiennych

Zmienna Wartość
referrer Referrer z pierwszej znanej wizyty kontaktu (Kwiga / landing z CTA)
initial_page Url pierwszej znanej wizyty kontaktu (Kwiga / landing z CTA)
reg_from Url strony, z której nastąpiła rejestracja (Kwiga / landing z CTA)
tags Tagi kontaktu (separator ", ")
description Opis zdarzenia, które uruchomiło automatyzację. Na przykład: Kontaktowi dodano tag test_tag

Zmienne CTA formularza

Zmienna Wartość
cta.id ID CTA formularza
cta.uuid UUID CTA formularza
cta.title Nazwa CTA formularza
cta_request.form_data Lista danych wprowadzonych przez użytkownika (oddzielone nowymi liniami)
Lista może być uzupełniana.

Dostępne przy wystąpieniu następujących zdarzeń:

  • Zgłoszenie CTA

Zmienne produktu

Zmienna Wartość
product.id ID produktu
product.title Nazwa produktu
product.productable_type Typ produktu. Mogą być takie opcje: course, webinar, closed_group, custom_product
product.productable_id ID kursu/webinaru/zamkniętej grupy/produktu niestandardowego

Dostępne przy wystąpieniu następujących zdarzeń:

  • Dostęp do produktu uzyskany
  • Dostęp do produktu zamknięty
  • Zarejestrował się na webinar
  • Kurs zakończony
  • Zakończono quiz
  • Zresetowano wynik quizu
  • Quiz rozpoczął status
  • Początek dostępu przez subskrypcję
  • Koniec dostępu przez subskrypcję
  • Rozpoczął oglądanie lekcji
  • Obejrzał lekcję
  • Otwarty dostęp do lekcji
  • Zakończono praktykę na lekcji

Zmienne zamówienia

Zmienna Wartość
order.id ID zamówienia
order.price Cena końcowa. Przykład 10.99
order.currency_code Waluta zamówienia w formacie kodu. Przykład: USD
order.currency_symbol Waluta zamówienia w formacie symbolu. Przykład: $
order.currency_short_title Waluta zamówienia w skróconej nazwie. Przykład: usd
order.order_stage_id ID statusu lejka
order.order_stage_title Nazwa statusu lejka
order.funnel_id ID lejka
order.funnel_title Nazwa lejka
order.paid_status Status płatności zamówienia not_paid / partial_paid / paid
order.paid_status_title Status płatności słowami po angielsku
order.utm_source utm_source zamówienia
order.utm_medium utm_medium zamówienia
order.utm_campaign utm_campaign zamówienia
order.utm_term utm_term zamówienia
order.utm_content utm_content zamówienia
order.next_scheduled_payment_at Data następnej zaplanowanej płatności (dla subskrypcji i płatności ratalnych). Format YYYY-MM-DD HH:mm:ss
Te zmienne są dostępne w linku przekierowania po pomyślnej płatności oferty.
Lista może być uzupełniana.

Dostępne przy wystąpieniu następujących zdarzeń:

  • Rozpoczęto subskrypcję
  • Odnawiana subskrypcja
  • Opłacone zamówienie (zgłoszenie)
  • Nowe zamówienie
  • Pomyślna płatność za ofertę
  • Nieudana płatność za ofertę
  • Zwrot płatności za ofertę
  • Dostęp do produktu uzyskany
  • Początek dostępu przez subskrypcję
  • Koniec dostępu przez subskrypcję

Zmienne płatności

Zmienna Wartość
payment.id ID płatności
payment.price Cena płatności
payment.currency_code Waluta płatności w formacie kodu. Przykład: USD
payment.currency_symbol Waluta płatności w formacie symbolu. Przykład: $
payment.currency_short_title Waluta płatności w skróconej nazwie. Przykład: usd
payment.created_at Data utworzenia płatności. Format YYYY-MM-DD HH:mm:ss
payment.paid_at Data płatności. Format YYYY-MM-DD HH:mm:ss
payment.schedule_payment_at Planowana data płatności. Format YYYY-MM-DD HH:mm:ss
payment.number Numer porządkowy płatności w zamówieniu
Te zmienne są dostępne w linku przekierowania po pomyślnej płatności oferty.
Lista może być uzupełniana.

Dostępne przy wystąpieniu następujących zdarzeń:

  • Pomyślna płatność za ofertę
  • Nieudana płatność za ofertę
  • Zwrot płatności za ofertę

Zmienne oferty

Zmienna Wartość
offer.id ID oferty
offer.title Nazwa oferty
Lista może być uzupełniana.

Dostępne przy wystąpieniu następujących zdarzeń:

  • Pomyślna płatność za ofertę
  • Nieudana płatność za ofertę
  • Zwrot płatności za ofertę
  • Zaakceptowano darmową ofertę
  • Rozpoczęto subskrypcję
  • Odnawiana subskrypcja
  • Opłacone zamówienie (zgłoszenie)
  • Nowe zamówienie
  • Dostęp do produktu uzyskany
  • Początek dostępu przez subskrypcję
  • Koniec dostępu przez subskrypcję

Zmienne subskrypcji produktu

Zmienna Wartość
subscription.id ID subskrypcji produktu
subscription.order_id ID zamówienia, do którego przypisana jest subskrypcja produktu
subscription.start_at Data rozpoczęcia subskrypcji. YYYY-MM-DD HH:mm:ss
subscription.end_at Ostateczna data zakończenia subskrypcji. YYYY-MM-DD HH:mm:ss
subscription.order_end_at Data zakończenia subskrypcji, uwzględniając tylko opłacone płatności. YYYY-MM-DD HH:mm:ss
subscription.paid_at Data pierwszej płatności za subskrypcję. YYYY-MM-DD HH:mm:ss
Lista może być uzupełniana.

Dostępne przy wystąpieniu następujących zdarzeń:

  • Dostęp do produktu uzyskany
  • Początek dostępu przez subskrypcję
  • Koniec dostępu przez subskrypcję

Zmienne próby przejścia quizu

Zmienna Wartość
quiz_attempt.id ID próby
quiz_attempt.number_version Numer wersji przejścia
quiz_attempt.quiz_id ID quizu
quiz_attempt.course_id ID kursu
quiz_attempt.course_lesson_id ID lekcji
quiz_attempt.status_id ID statusu
quiz_attempt.status Status w formie tekstowej
quiz_attempt.scores Zdobyte punkty
quiz_attempt.created_at Początek próby. Format YYYY-MM-DD HH:mm:ss
quiz_attempt.finished_at Koniec próby. Format YYYY-MM-DD HH:mm:ss
quiz_attempt.count_questions Liczba pytań w quizie
quiz_attempt.count_questions_incorrect Liczba pytań, na które udzielono błędnych odpowiedzi
quiz_attempt.count_questions_correct Liczba poprawnie udzielonych odpowiedzi
quiz.title Nazwa quizu
Lista może być uzupełniana.

Dostępne przy wystąpieniu następujących zdarzeń:

  • Zakończono quiz
  • Zresetowano wynik quizu
  • Quiz rozpoczął status

Zmienne lekcji

Zmienna Wartość
lesson.id ID lekcji
lesson.title Nazwa lekcji
lesson.slug Część URL lekcji
Lista może być uzupełniana.

Dostępne przy wystąpieniu następujących zdarzeń:

  • Zakończono quiz
  • Zresetowano wynik quizu
  • Quiz rozpoczął status
  • Rozpoczął oglądanie lekcji
  • Obejrzał lekcję
  • Otwarty dostęp do lekcji
  • Zakończono praktykę na lekcji