Artykuły:
- Kontrola dostępu
- Jak wyłączyć logowanie przez media społecznościowe
- Jak ustawić logo (podgląd) swojego projektu dla komunikatorów
- Zmiana nazwy projektu (kabinetu) i innych ustawień publicznych
- Dodawanie swojej oferty na platformie Kwiga
- Jak połączyć dodatkowy projekt
- Jak ustawić określony język dla strony na Kwiga
- Powiadomienia otrzymywane przez uczniów
- Zmiana hasła i ustawienia logowania
- Zmiana danych osobowych
- Ustawienia nadawcy i adres odpowiedzi
- Ważne ustawienia
- Jak usunąć konto użytkownika
- Strona Prezentacyjna Projektu (Szkoły)
- Jak podłączyć własną domenę/subdomenę
- Używanie zmiennych w projekcie, lista dostępnych zmiennych
- Podłączenie własnej domeny (subdomeny) do wysyłki wiadomości e-mail
- Jak dodać publiczne informacje o projekcie i kanały kontaktu
- Ustawienia profilu ucznia
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)
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 |
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.
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
@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 |
| — 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 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)
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
Nie znalazłeś odpowiedzi? Skontaktuj się z usługą wsparcia za pośrednictwem czat online or Telegram