การใช้เทมเพลต Liquid
เทมเพลต Liquid ขยายขีดความสามารถในการปรับแต่งเนื้อหาของ Pushwoosh อย่างมีนัยสำคัญโดยการใช้ตรรกะที่ซับซ้อนนอกเหนือจากการใช้เนื้อหาแบบไดนามิกตามปกติ
การปรับแต่งข้อความใน Pushwoosh ขึ้นอยู่กับ Tags (ข้อมูลผู้ใช้) Pushwoosh มี Tags เริ่มต้นและ Tags ที่กำหนดเองที่หลากหลาย การใช้ Tags เหล่านี้คุณสามารถระบุชื่อ, เมือง, ประวัติการซื้อของผู้ใช้ ฯลฯ เพื่อส่งข้อความที่เป็นส่วนตัวมากขึ้น ตัวอย่างเช่น: สวัสดี {First_name} ขอบคุณที่สั่งซื้อ {item}
เทมเพลต Liquid เพิ่มตรรกะให้กับเนื้อหาแบบไดนามิกมากขึ้น ตัวอย่างเช่น หาก Tag การสมัครสมาชิกของผู้ใช้มีคำว่า “free” คุณสามารถส่งข้อความถึงพวกเขาว่า: “รับส่วนลด 10% ของคุณ”
การปรับเปลี่ยนเนื้อหาข้อความตาม ID, พฤติกรรม และความชอบของผู้ใช้เป็นวิธีที่มีประสิทธิภาพที่สุดในการเพิ่มความเกี่ยวข้องและได้รับผลลัพธ์ที่น่าประทับใจยิ่งขึ้นจากแคมเปญการตลาดของคุณ
ไวยากรณ์
Anchor link toเทมเพลตเนื้อหาที่ใช้ Liquid by Shopify ใช้การผสมผสานระหว่าง tags, objects และ filters เพื่อโหลดเนื้อหาแบบไดนามิก เทมเพลตเนื้อหาช่วยให้คุณสามารถเข้าถึงตัวแปรบางอย่างจากภายในเทมเพลตและแสดงผลข้อมูลของตัวแปรเหล่านั้นโดยไม่จำเป็นต้องรู้อะไรเกี่ยวกับข้อมูลนั้นเลย
Objects
Anchor link toobjects กำหนดเนื้อหาที่จะแสดงให้ผู้ใช้เห็น objects ควรอยู่ในวงเล็บปีกกาคู่: {{ }}
ตัวอย่างเช่น เมื่อปรับแต่งข้อความ ให้ส่ง {{Name}} ในเนื้อหาของข้อความเพื่อเพิ่มชื่อผู้ใช้ลงในเนื้อหาของข้อความ ชื่อของผู้ใช้ (ค่าของ Name tag) จะแทนที่ object ของ Liquid ในข้อความที่ผู้ใช้จะเห็น
สวัสดี {{Name}}! เราดีใจที่คุณกลับมา!สวัสดี Anna! เราดีใจที่คุณกลับมา!
Tags
Anchor link totags สร้างตรรกะและควบคุมการทำงานของเทมเพลต ตัวคั่นวงเล็บปีกกาและเครื่องหมายเปอร์เซ็นต์ {% และ %} และข้อความที่อยู่ภายในจะไม่สร้างผลลัพธ์ที่มองเห็นได้เมื่อเทมเพลตถูกแสดงผล ซึ่งช่วยให้คุณสามารถกำหนดตัวแปรและสร้างเงื่อนไขหรือลูปได้โดยไม่ต้องแสดงตรรกะของ Liquid ให้ผู้ใช้เห็น
ตัวอย่างเช่น การใช้ if tag คุณสามารถเปลี่ยนภาษาของข้อความตามภาษาที่ตั้งค่าไว้ในอุปกรณ์ของผู้ใช้:
{% if Language == 'fr' %}Salut!{% else %}Hello!{% endif %}Salut!
Hello!
ตัวดำเนินการของ Tags
Anchor link to| ตัวดำเนินการ | คำอธิบาย |
|---|---|
== | เท่ากับ |
!= | ไม่เท่ากับ |
> | มากกว่า |
< | น้อยกว่า |
>= | มากกว่าหรือเท่ากับ |
<= | น้อยกว่าหรือเท่ากับ |
or | or แบบตรรกะ |
and | and แบบตรรกะ |
contains | ตรวจสอบการมีอยู่ของสตริงย่อยภายในสตริงหรืออาร์เรย์ของสตริง |
Filters
Anchor link tofilters แก้ไขผลลัพธ์ของ Liquid object หรือตัวแปร โดยจะใช้ภายในวงเล็บปีกกาคู่ {{ }} และการกำหนดค่าตัวแปร และจะถูกคั่นด้วยเครื่องหมายไปป์ | สามารถใช้ filter หลายตัวกับผลลัพธ์เดียวได้ และจะถูกนำไปใช้จากซ้ายไปขวา
{{ Name | capitalize | prepend:"Hello " }}Hello Anna
การใช้เทมเพลต Liquid ในข้อความที่ส่งผ่าน API
Anchor link toใช้ไวยากรณ์ Liquid ในคำขอ createMessage ของคุณเพื่อใช้เทมเพลต Liquid เทมเพลตสามารถใช้ได้กับพารามิเตอร์ “content” ของคำขอ createMessage รวมถึงพารามิเตอร์อื่นๆ ที่รองรับ Dynamic Content โดยเฉพาะพารามิเตอร์เฉพาะแพลตฟอร์ม “title”, “subtitle” และ “image”
โดยการใช้เทมเพลตเนื้อหา คุณสามารถระบุข้อมูลในคำขอ API ของคุณ (โดยการส่งพารามิเตอร์ “template_bindings”) หรือรับข้อมูลจากค่า Tag ที่เก็บไว้ในอุปกรณ์ของผู้ใช้ (โดยไม่ใช้พารามิเตอร์ “template_bindings”) ด้วยวิธีนี้ คุณสามารถสร้างแคมเปญพุชที่อิงตามผู้ใช้ซึ่งมีเนื้อหาที่เกี่ยวข้องอย่างยิ่ง
เพื่อกำหนดตรรกะของเทมเพลตโดยใช้ Tags ที่มีช่องว่างในชื่อ ให้ใช้เทคนิคต่อไปนี้:
ตัวอย่าง
{% capture my_tag %}{{My Tag}}{% endcapture %}{% if my_tag == 'value' %}เนื้อหาที่จะส่งในกรณีนี้{% else %}เนื้อหาที่จะส่งในกรณีอื่น{% endif %}กรณีการใช้งานเทมเพลต Liquid
Anchor link toที่นี่คุณจะพบกรณีการใช้งานหลายกรณีที่เทมเพลต Liquid มีประโยชน์
พุชหลายภาษา
Anchor link toเทมเพลต Liquid ทำให้สามารถระบุได้อย่างชัดเจนว่าผู้ใช้ควรได้รับข้อความพุชของคุณในภาษาใด ดูตัวอย่างง่ายๆ ของคำขอ API และข้อความที่ได้รับขึ้นอยู่กับ template bindings ที่ใช้ในคำขอ
{% if Language == 'es' %}¡Hola!{% else %}Hello!{% endif %}{ "request": { "application": "XXXXX-XXXXX", // รหัสแอป Pushwoosh "auth": "yxoPUlw.....IyEX4H", // โทเค็นการเข้าถึง API จาก Pushwoosh Control Panel "notifications" : [ // พารามิเตอร์ข้อความพุช { "content": "{% raw %}{% if language == 'es' %}¡Hola!{% else %}hello!{% endif %}{% endraw %}", "template_bindings": { // ไม่บังคับ เมื่อไม่มี template_bindings ส่งมาในคำขอ จะใช้ค่า Tag จากอุปกรณ์ "language" : "es" } } ] }}ภาษาคือ ‘es’: ¡Hola!
ภาษาคือ ‘en’: Hello!
การแจ้งเตือนให้อัปเกรดการสมัครสมาชิก
Anchor link toกระตุ้นให้ลูกค้าของคุณอัปเกรดการสมัครสมาชิกตามแผนปัจจุบันของพวกเขา
{% if Subscription == 'Basic' %} อัปเกรดเป็น Silver เพื่อรับฟีเจอร์ผลิตภัณฑ์เพิ่มเติมและการสนับสนุน 24/7{% elsif Subscription == 'Silver' %} อัปเกรดเป็น Gold เพื่อรับการสนับสนุนระดับพรีเมียมและฟีเจอร์ขั้นสูง{% else %} โปรดติดต่อผู้จัดการของคุณเพื่อต่ออายุการสมัครสมาชิก{% endif %}{ "request": { "application": "XXXXX-XXXXX", // รหัสแอป Pushwoosh "auth": "yxoPUlw.....IyEX4H", // โทเค็นการเข้าถึง API จาก Pushwoosh Control Panel "notifications" : [ // พารามิเตอร์ข้อความพุช { "content": "{% raw %}{% if Subscription == 'Basic' %}Upgrade to Silver for getting more product features and 24/7 support.{% elsif Subscription == 'Silver' %}Upgrade to Gold for priority support and advanced features.{% else %}Please contact your manager to renew your subscription. {% endif %}{% endraw %}", "template_bindings": { // ไม่บังคับ เมื่อไม่มี template_bindings ส่งมาในคำขอ จะใช้ค่า Tag จากอุปกรณ์ "language" : "es" } } ] }}สำหรับผู้ใช้ที่มีแผนการสมัครสมาชิก Basic: อัปเกรดเป็น Silver เพื่อรับฟีเจอร์ผลิตภัณฑ์เพิ่มเติมและการสนับสนุน 24/7
สำหรับผู้ใช้ที่มีแผนการสมัครสมาชิก Silver: อัปเกรดเป็น Gold เพื่อรับการสนับสนุนระดับพรีเมียมและฟีเจอร์ขั้นสูง
สำหรับผู้ใช้ที่มีแผนอื่นๆ: โปรดติดต่อผู้จัดการของคุณเพื่อต่ออายุการสมัครสมาชิก
List tags
Anchor link toเทมเพลตเนื้อหาค่อนข้างมีประโยชน์ในการจัดการ Tags ประเภท List
ขนาดตัวแปร
Anchor link toหนึ่งในกรณีการใช้งานที่เป็นไปได้คือการส่งเนื้อหาที่แตกต่างกันขึ้นอยู่กับจำนวนค่าที่ Tag มีอยู่ ตัวอย่างเช่น คุณสามารถให้ส่วนลดที่แตกต่างกันแก่ลูกค้าที่มีพฤติกรรมต่างกัน สมมติว่าลูกค้ามีสินค้าบางอย่างใน WishList ของพวกเขา—กระตุ้นให้พวกเขาซื้อด้วยส่วนลดที่เหมาะสมที่สุดตามจำนวนสินค้าที่พวกเขากำลังจะซื้อ!
{% if WishList.size >= 3 %}รับส่วนลด 20% สำหรับการซื้อครั้งต่อไปของคุณ!{% elsif WishList.size == 2 %}รับส่วนลด 10% สำหรับการซื้อครั้งต่อไปของคุณ!{% else %}เฮ้ ลองดูเสื้อผ้าใหม่ๆ สิ!{% endif %}{ "request": { "application": "XXXXX-XXXXX", // รหัสแอป Pushwoosh "auth": "yxoPUlw.....IyEX4H", // โทเค็นการเข้าถึง API จาก Pushwoosh Control Panel "notifications" : [ // พารามิเตอร์ข้อความพุช { "content": "{% raw %}{% if WishList.size >= 3 %}Get 20% off your next purchase!{% elsif WishList.size == 2 %}Get a 10% discount on your next purchase!{% else %}Hey, take a look at new outwears!{% endif %}{% endraw %}", "template_bindings": { "WishList" : ["Skinny Low Ankle Jeans", "Linen Trenchcoat", "High Waisted Denim Skirt", "Strappy Tiered Maxi Dress"] } } ] }}

ตัวแปรมีค่า
Anchor link toอีกกรณีหนึ่งที่คุณอาจต้องจัดการคือการจัดการกับค่าของ List Tags และส่งเนื้อหาที่เกี่ยวข้องที่สุดตามค่าที่ Tag มีอยู่
{% if WishList contains 'Skinny Low Ankle Jeans' %}รับส่วนลด 20% สำหรับสินค้าใน Wishlist ของคุณ!{% else %}เฮ้ ลองดู Skinny Low Ankle Jeans ใหม่ล่าสุดสิ!{% endif %}{ "request": { "application": "C90C0-0E786", "auth": "yxoPUlw.....IyEX4H", // โทเค็นการเข้าถึง API จาก Pushwoosh Control Panel "notifications" : [ // พารามิเตอร์ข้อความพุช { "content": "{% raw %}{% if WishList contains 'Skinny Low Ankle Jeans' %}Get 20% off your next purchase!{% else %}Hey, take a look at the brand new Skinny Low Ankle Jeans!{% endif %}{% endraw %}", "template_bindings": { "WishList" : ["Skinny Low Ankle Jeans", "Linen Trenchcoat", "High Waisted Denim Skirt", "Strappy Tiered Maxi Dress"] } } ] }}

พหูพจน์
Anchor link toโดยการใช้เทมเพลตเนื้อหา คุณสามารถปรับเนื้อหาข้อความตามพฤติกรรมของผู้ใช้ได้ ตัวอย่างเช่น คุณสามารถแก้ไขข้อความให้มีคำในรูปพหูพจน์ในกรณีที่ List Tag มีค่ามากกว่าหนึ่งค่า
รับส่วนลด 20% สำหรับสินค้า{% if WishList.size > 1 %} ใน WishList ของคุณ!{% else %} ใน Wishlist ของคุณ!{% endif %}{ "request": { "application": "C90C0-0E786", "auth": "yxoPUlw.....IyEX4H", // โทเค็นการเข้าถึง API จาก Pushwoosh Control Panel "notifications" : [ // พารามิเตอร์ข้อความพุช { "content": "Get 20% off item{% raw %}{% if WishList.size > 1 %}s in your WishList!{% else %} in your Wishlist!{% endif %}{% endraw %}", "template_bindings": { // ไม่บังคับ เมื่อไม่มี template_bindings ส่งมาในคำขอ จะใช้ค่า Tag จากอุปกรณ์ "WishList" : ["Skinny Low Ankle Jeans", "Linen Trenchcoat", "High Waisted Denim Skirt", "Strappy Tiered Maxi Dress"] } } ] }}

เขตเวลา
Anchor link toเทมเพลตสำหรับเขตเวลาจะแปลงวันที่และเวลาตามเขตเวลาที่ระบุ
{{ MyDate | timezone: MyTimezone | date: \"%Y-%m-%d %H:%M\" }}{ "request" : { "auth" : "3H9bk8w3.....Acge2RbupTB", // โทเค็นการเข้าถึง API จาก Pushwoosh Control Panel "application" : "XXXXX-XXXXX", // รหัสแอป Pushwoosh "notifications" : [ // พารามิเตอร์ข้อความพุช { "content": "Current Date: {{ MyDate | timezone: MyTimezone | date: \"%Y-%m-%d %H:%M\" }}", "template_bindings": { // ไม่บังคับ เมื่อไม่มี template_bindings ส่งมาในคำขอ จะใช้ค่า Tag จากอุปกรณ์ "MyDate" : "2019-07-23 15:00", "MyTimezone" : "Asia/Dubai" } } ] }}
เนื้อหาที่เชื่อมต่อ (Connected content)
Anchor link toConnected content เป็นฟีเจอร์ในเทมเพลต Liquid ที่ช่วยให้คุณสามารถดึงและใช้ข้อมูลจากแหล่งภายนอก เช่น บริการเว็บ ได้โดยตรงภายในข้อความอีเมลหรือการแจ้งเตือนพุชของคุณ ฟีเจอร์นี้ช่วยให้สามารถปรับแต่งเนื้อหาแบบเรียลไทม์โดยการดึงข้อมูล JSON จาก URL ที่ระบุและบันทึกลงในตัวแปรที่สามารถนำไปใช้ในเนื้อหาของคุณได้
กรณีการใช้งานหลัก
Anchor link to-
คำแนะนำผลิตภัณฑ์: แสดงรายการผลิตภัณฑ์ที่ปรับให้เหมาะกับผู้ใช้แต่ละคน
-
รหัสโปรโมชั่น: แทรกโค้ดโปรโมชั่นที่ไม่ซ้ำกันซึ่งสร้างโดยบริการแบ็กเอนด์
ข้อกำหนดเบื้องต้น
Anchor link to- ในการใช้ Connected Content คุณต้องมีบริการแบ็กเอนด์ของคุณเองที่สร้างและให้ข้อมูลที่จำเป็น (เช่น รหัสโปรโมชั่น, คำแนะนำผลิตภัณฑ์) โดยอิงจาก User ID, HWID หรือ custom tags จากนั้น Pushwoosh จะดึงข้อมูลนี้ก่อนที่จะส่งข้อความ
คู่มือการใช้งานทีละขั้นตอน
Anchor link toขั้นตอนที่ 1. ตั้งค่าบริการแบ็กเอนด์
Anchor link toบริการแบ็กเอนด์ควร:
- ยอมรับคำขอที่มีพารามิเตอร์เฉพาะผู้ใช้ (เช่น
userId) Connected Content รองรับUserID,HWIDหรือ custom tags ใดๆ ที่คุณตั้งค่าไว้ในโปรเจกต์ของคุณ - ส่งคืนการตอบสนองเป็น JSON พร้อมข้อมูลที่ต้องการ จากนั้นเนื้อหานี้สามารถแทรกเข้าไปในข้อความแบบไดนามิกได้
ขั้นตอนที่ 2. สร้าง Preset ด้วย Connected content ใน Pushwoosh
Anchor link to- ใน Push หรือ Email content editor ให้แทรกไวยากรณ์ Connected Content ลงในช่องข้อความ
ตัวอย่าง
{% connected_content http://your-backend-url.com?userId={{ ${userid} }} :save result %}การแยกส่วนไวยากรณ์
connected_content | ดึงข้อมูล JSON จาก URL แบ็กเอนด์ที่ระบุ |
http://your-backend-url.com | เอนด์พอยต์แบ็กเอนด์ที่ส่งคืนข้อมูลที่ต้องการในรูปแบบ JSON |
userId={{ ${userid} }} | พารามิเตอร์เคียวรีแบบไดนามิกที่ส่ง User ID ไปยังแบ็กเอนด์ |
:save result | จัดเก็บการตอบสนอง JSON ที่ดึงมาในตัวแปร result เพื่อใช้ในเทมเพลต Liquid |

การรับรองความถูกต้อง (ไม่บังคับ)
หากบริการแบ็กเอนด์ของคุณต้องการการรับรองความถูกต้อง คุณสามารถรวม API key หรือ token ในคำขอ Connected Content เพื่อให้แน่ใจว่าการเข้าถึงมีความปลอดภัย
{% connected_content http://your-backend-url.com?userId={{ ${userid} }}&auth=YOUR_API_KEY :save result %}คุณยังสามารถส่งข้อมูลการรับรองความถูกต้อง (หรือข้อมูลอื่นๆ) เป็น HTTP headers โดยใช้พารามิเตอร์ :headers ที่เป็นทางเลือก — ซึ่งเป็นอ็อบเจกต์ JSON ของชื่อและค่าของ header
{% connected_content http://your-backend-url.com?userId={{ ${userid} }} :headers {"Authorization": "Bearer YOUR_TOKEN", "X-Api-Key": "YOUR_API_KEY"} :save result %}:headers {...} | อ็อบเจกต์ JSON ของ HTTP headers ที่ส่งไปพร้อมกับคำขอ เช่น Authorization: Bearer <token> |
การใช้ tags ใน Connected content
หากต้องการรวม custom tags ให้แทรกเป็นพารามิเตอร์เคียวรีในคำขอ Connected Content ({{ tag_name }})
{% connected_content http://your-backend-url.com?userId={{ ${userid} }}{{ Language }} :save result %}- ถัดไป เพิ่มข้อความที่รวม ข้อมูลที่ดึงมา ดังนี้:
เฮ้ {{userid}} รับรหัสโปรโมชั่นส่วนตัวของคุณ - {{result.code}}
- หลังจากสรุปเนื้อหาข้อความและกำหนดค่าการตั้งค่า preset แล้ว ให้บันทึกเพื่อนำกลับมาใช้ใหม่ในแคมเปญ
ขั้นตอนที่ 3. ส่งข้อความโดยใช้ preset ที่กำหนดค่าไว้
Anchor link toส่งข้อความด้วย preset นี้โดยใช้ one-time push หรือ email form หรือ customer journey