치환 변수 및 수식
치환 변수는 반응이 트리거될 때 메시지 텍스트, 액션 필드, 버튼 템플릿에 삽입되는 {{...}} 형태의 변수입니다. 인식되지 않는 치환 변수는 그대로 유지됩니다. 변수 외에도 계산을 위한 수식이 있습니다. 메시지 편집기의 "치환 변수" 버튼을 사용하면 변수를 쉽게 삽입할 수 있습니다.
발신자 데이터
{{first_name}},{{last_name}}— 이름과 성.{{username}}— 사용자의@username.{{user_id}}— 숫자 Telegram ID.
이벤트 및 채팅 데이터
{{text}}({{received_message}}와 동일) — 수신 메시지 텍스트.{{message_id}}({{received_message_id}}와 동일) — 수신 메시지 ID.{{chat_id}},{{chat_title}}({{chat_name}}과 동일) — 이벤트가 발생한 채팅.{{topic_id}},{{topic_url}}— 토픽(포럼용).
날짜 및 시간
{{date}}— 날짜(YYYY-MM-DD),{{time}}— 시간(HH:MM),{{datetime}}— 날짜 및 시간.- 형식 지정:
{{date:DD.MM.YYYY HH:mm}}— 토큰YYYY,YY,MM,DD,HH,mm,ss.
사용자 매개변수
{{param.key}}({{params.key}}또는{{recipient.key}}와 동일) — 구독자 매개변수 값. 매개변수는 "매개변수 변경", "메시지 저장" 액션과 대화 응답으로 채워집니다.
실행 컨텍스트 (ctx)
{{ctx.key}}({{context.key}}와 동일) — 현재 실행의 임시 값: 수신 웹훅 데이터, 액션 결과(웹 요청, 소스 쿼리, AI), 복원된 버튼 데이터(Carry), 반복 요소.- 목록 반복에서 요소는 별칭으로 접근합니다(예:
{{item.name}}).
수식
{{= 표현식}} 구조는 텍스트에서 직접 표현식을 계산합니다. 동일한 엔진이 "계산" 액션과 의사결정 테이블 조건에서도 작동합니다. 표현식에서 이름으로 매개변수와 ctx 값을 참조하고, 산술, 비교, 논리 연산, 러시아어 별칭이 있는 수십 가지 함수(ROUND, IF, CONCAT 등)를 사용할 수 있습니다.
예시: {{= ROUND(param.total * 0.9) }} — 매개변수의 금액에서 10% 할인.
전체 문법과 함수 목록은 수식 섹션을 참조하세요.
치환 변수의 HTML
메시지는 HTML 마크업으로 전송됩니다. 치환된 값이 레이아웃을 깨뜨리지 않도록(예: 사용자 이름에 <가 포함된 경우), 치환된 값은 기본적으로 이스케이프됩니다. HTML 문자는 안전한 텍스트로 변환됩니다. 반응 텍스트에 직접 작성한 태그(<b>, <a>, …)는 그대로 유지됩니다.
값 자체에 완성된 마크업이 포함되어 있고(예: <b>...</b>가 포함된 공지가 매개변수에 저장된 경우) 이를 그대로 삽입하려면, 치환 변수 앞에 &를 붙이세요.
{{& key}}—{{...}}치환 변수의 원시 삽입.{&user:key},{&recipient:key},{&global:key}— namespace 치환 변수의 원시 삽입.
& 접두사는 해당 치환 변수 하나에 대해서만 이스케이프를 비활성화합니다 — 값 출처의 신뢰성은 사용자가 보증하게 됩니다. 구독자가 제어하는 토큰({{first_name}}, …)은 이스케이프된 상태로 두는 것이 좋습니다.
다른 빌더에서 봇을 가져올 때, namespace 치환 변수 {user:…}/{recipient:…}/{global:…}는 자동으로 원시 형태 {&…}로 마이그레이션됩니다 — 이들은 일반적으로 완성된 마크업이 포함된 값을 담고 있으며, 원래 빌더에서 작동하던 방식과 일치합니다.
형식에 대한 중요 사항
{{...}} 치환 변수는 텍스트, 캡션, 요청 본문, 버튼 템플릿에서 작동합니다. 매개변수와 ctx 키 이름은 짧고 영문으로(email, total, order_id) 사용하세요 — 삽입하기 더 편리합니다.