การสมัครผ่าน Google จะเร็วกว่าเพราะไม่ต้องยืนยันอีเมล
Flexkub Documentation v3.0
คู่มือการใช้งาน Flexkub — แพลตฟอร์มสร้าง LINE Flex Message ด้วย Visual Editor และ Data Pipeline แบบ Drag & Drop
Visual Editor
สร้าง Flex Message ด้วย Drag & Drop โดยไม่ต้องเขียน JSON
Data Pipeline
เชื่อมต่อข้อมูลจาก API, Excel แล้วสร้างข้อความอัตโนมัติ
LINE Integration
ส่ง Flex Message ถึง Followers ของ LINE Official Account โดยตรง
สร้างบัญชี
Flexkub รองรับการสมัครสมาชิก 2 วิธี: อีเมล + รหัสผ่าน หรือ Google Account (Single Sign-On)
เข้าหน้า Register
ไปที่ /register หรือคลิก "สมัครสมาชิก" จากหน้า Login
กรอกข้อมูล
ใส่อีเมล, รหัสผ่าน (อย่างน้อย 6 ตัวอักษร) และยืนยันรหัสผ่าน
หรือกดปุ่ม Google เพื่อสมัครผ่าน Google Account ทันที
ยืนยันอีเมล
เช็คอีเมลของคุณและคลิกลิงก์ยืนยัน (เฉพาะสมัครด้วยอีเมล)
สร้างโปรเจกต์แรก
โปรเจกต์คือที่รวม Flex Messages และ Pipelines ทั้งหมดของคุณ เหมาะสำหรับแยกตาม LINE OA แต่ละบัญชี หรือแยกตามแคมเปญ
เข้า Dashboard
หลังล็อกอินจะเข้า Dashboard อัตโนมัติ หรือไปที่ /dashboard
กดปุ่ม "สร้างโปรเจกต์"
กดปุ่ม + สร้างโปรเจกต์ใหม่ จะมี dialog ให้ใส่ชื่อและคำอธิบาย
เริ่มสร้าง Flex Message
คลิกเข้าโปรเจกต์ แล้วกด + สร้าง Flex Message เลือกประเภท Bubble หรือ Carousel
Quick Start Guide
สร้าง Flex Message แรกของคุณภายใน 2 นาที:
ใช้ Template สำเร็จรูป
กด Templates → เลือก template ที่ชอบ → แก้ไขข้อความ/รูป → บันทึก
ใช้ AI สร้างให้
กด AI สร้าง → เลือกหมวดหมู่และสไตล์ → AI สร้าง Flex Message ให้ทันที
Interactive Tutorial Guide
ผู้ใช้ใหม่จะเห็น Interactive Guide แนะนำการใช้งานระบบแบบ Step-by-Step ไกด์จะ Highlight ส่วนต่าง ๆ ของหน้าจอพร้อมคำอธิบาย ครอบคลุม 14 ขั้นตอน ตั้งแต่ Dashboard ไปจนถึง Pipeline Editor
- Dashboard — รู้จักปุ่มสร้างโปรเจกต์, การ์ด, สถิติ
- Flex Editor — เรียนรู้ Palette, Canvas, Properties, Tree View
- Pipeline — รู้จัก Node Palette, Graph, Config Panel
สามารถเปิด Interactive Guide อีกครั้งได้จากเมนูบนหน้าจอ
แดชบอร์ด — ภาพรวมโปรเจกต์
Dashboard แสดงโปรเจกต์ทั้งหมดของคุณเป็น Card พร้อมสถิติจำนวน Flex Messages และ Pipelines ในแต่ละโปรเจกต์
จัดการโปรเจกต์
สร้างโปรเจกต์ใหม่ CREATE
กดปุ่ม + สร้างโปรเจกต์ใหม่ ที่มุมขวาบน จะมี Dialog ให้กรอก:
- ชื่อโปรเจกต์ — ตั้งชื่อที่จำง่าย เช่น "ร้านกาแฟ Line OA"
- คำอธิบาย (ไม่บังคับ) — รายละเอียดโปรเจกต์
แก้ไข / เปลี่ยนชื่อ / ลบโปรเจกต์ UPDATE / DELETE
ที่การ์ดโปรเจกต์ จะมีเมนู ⋮ สำหรับ:
- เปลี่ยนชื่อ (Rename) — เปลี่ยนชื่อโปรเจกต์ได้ทันทีบนการ์ด (Inline Rename) กด Enter เพื่อบันทึก หรือ Escape เพื่อยกเลิก
- แก้ไข — เปลี่ยนชื่อหรือคำอธิบายผ่าน Dialog
- ลบ — ลบโปรเจกต์พร้อม Flex Messages และ Pipelines ทั้งหมด (ยืนยันก่อนลบ)
การ์ด Project, Flex Message และ Pipeline ทุกตัวรองรับ Inline Rename — กดเมนู ⋮ → Rename → พิมพ์ชื่อใหม่ → Enter
การลบโปรเจกต์จะลบ Flex Messages และ Pipelines ทั้งหมดในโปรเจกต์ด้วย ไม่สามารถกู้คืนได้
จัดการ Flex Messages ในโปรเจกต์ FLEX
ในหน้าโปรเจกต์จะเห็น Flex Messages ทั้งหมด พร้อมฟีเจอร์:
- สร้างใหม่ — เลือก Bubble (ข้อความเดี่ยว) หรือ Carousel (หลายข้อความเลื่อนได้)
- Duplicate — คัดลอก Flex Message ที่มีอยู่
- เปลี่ยนชื่อ — Inline Rename บนการ์ด
- ลบ — ลบ Flex Message (ยืนยันก่อนลบ)
- Pipeline Badge — ดู Pipelines ที่เชื่อมต่อกับ Flex Message นี้
จัดการ Pipelines ในโปรเจกต์ PIPELINE
การ์ด Pipeline ในหน้าโปรเจกต์มีฟีเจอร์เพิ่มเติม:
- รัน Pipeline — รัน Pipeline ได้โดยตรงจากการ์ด ไม่ต้องเข้า Editor (ต้องมี Output/Preview Node)
- ดูผลลัพธ์ — หลังรันสำเร็จ กดดูผลลัพธ์ได้ทันที (Preview, JSON, Code)
- เปลี่ยนชื่อ — Inline Rename บนการ์ด
- ลบ — ลบ Pipeline (ยืนยันก่อนลบ)
Flex Message Editor — ภาพรวม
Flex Message Editor เป็นเครื่องมือ Visual แบบ Drag & Drop สำหรับสร้าง LINE Flex Message โดยไม่ต้องเขียน JSON ด้วยมือ
Editor ประกอบด้วย 4 ส่วนหลัก:
Component Palette (ซ้าย)
รายการ Components ทั้งหมดที่ลากวางได้ แบ่งเป็น Layout, Content, Action
Canvas (กลาง)
พื้นที่ Preview แบบ Real-time เห็นหน้าตาเหมือนจริงบน LINE
Properties Panel (ขวา)
แก้ไข Properties ของ Component ที่เลือก เช่น สี ขนาด ข้อความ
Tree View (ล่าง)
แสดงโครงสร้าง Component เป็นต้นไม้ ลากเพื่อจัดลำดับ
Component Palette
Components ที่ลากวางได้มี 3 หมวดหมู่:
Layout 2 components
| Component | รายละเอียด |
|---|---|
| Box | Container สำหรับจัดกลุ่ม Components — รองรับ vertical, horizontal, baseline layout |
| Filler | ช่องว่างยืดหยุ่น สำหรับดัน Components ให้ห่างกัน |
Content 5 components
| Component | รายละเอียด |
|---|---|
| Text | แสดงข้อความ — ปรับสี ขนาด น้ำหนัก จัดตำแหน่ง ตัดบรรทัด |
| Image | แสดงรูปภาพ — ปรับ Aspect Ratio, Size, Mode (cover/fit) |
| Video | แสดงวิดีโอพร้อม Preview Image และ Play Button |
| Icon | ไอคอนขนาดเล็ก ใช้ประกอบข้อความ เช่น ดาว, หัวใจ |
| Separator | เส้นแบ่ง แนวนอนหรือแนวตั้ง |
Action 1 component
| Component | รายละเอียด |
|---|---|
| Button | ปุ่มกดได้ — ตั้ง Action เช่น เปิด URL, ส่งข้อความ, Postback |
ลาก Component จาก Palette ไปวางบน Canvas หรือ Tree View ได้เลย หรือคลิกขวาที่ Box ใน Tree View แล้วเลือก "Add Child"
Canvas Controls
Canvas มีเครื่องมือช่วยจัดวางและนำทาง:
Zoom — ซูมเข้า/ออก 50% – 300%
- กดปุ่ม + / - บน Toolbar เพื่อซูมทีละ 10%
- Alt + Scroll เพื่อซูมด้วย Mouse Wheel
- กดตัวเลข % เพื่อ Reset เป็น 100%
Pan — เลื่อนดู Canvas
- กดค้าง Space + ลาก Mouse เพื่อเลื่อน
- กด H เพื่อสลับเป็น Hand Tool ถาวร
- ใช้ 2 นิ้วบน Trackpad เพื่อ Pan
Grid — ตารางช่วยจัดวาง
- กดปุ่ม Grid (ไอคอนตาราง) เพื่อเปิด/ปิด Grid
- เลือกขนาดกริด: 10, 20, 50, 100 px
- เลือกสีกริด: แดง, น้ำเงิน, เขียว, ขาว, ดำ
- เปิด Ruler เพื่อแสดงไม้บรรทัดด้านบนและซ้าย
- เปิด Crosshair เพื่อแสดงพิกัดเมาส์
Properties Panel
คลิก Component ใดก็ได้บน Canvas หรือ Tree View เพื่อแก้ไข Properties ที่ Panel ด้านขวา Properties ที่แสดงจะต่างกันตาม Component ที่เลือก
Text Properties 15+ options
| Property | รายละเอียด |
|---|---|
| Text | ข้อความที่แสดง — รองรับ Variable {{name}} |
| Color | สีข้อความ — เลือกจาก Color Picker |
| Size | xxs, xs, sm, md, lg, xl, xxl, 3xl, 4xl, 5xl |
| Weight | Regular หรือ Bold |
| Align | Start, Center, End |
| Wrap | เปิดให้ตัดบรรทัดอัตโนมัติ |
| Max Lines | จำกัดจำนวนบรรทัดสูงสุด |
| Action | ตั้ง Action เมื่อกดข้อความ |
Image Properties 10+ options
| Property | รายละเอียด |
|---|---|
| URL | URL ของรูปภาพ — เปิด Image Picker เพื่อเลือกจาก Gallery |
| Aspect Ratio | 1:1, 1.51:1, 1.91:1, 4:3, 16:9 และอื่นๆ |
| Aspect Mode | Cover (เต็มพื้นที่) หรือ Fit (เห็นทั้งรูป) |
| Size | xxs ถึง 5xl หรือ Full |
| Background Color | สีพื้นหลังเมื่อรูปไม่เต็ม |
Box Properties 20+ options
| Property | รายละเอียด |
|---|---|
| Layout | Vertical, Horizontal, Baseline |
| Spacing | ระยะห่างระหว่าง Children |
| Padding | All, Top, Bottom, Left, Right, Start, End |
| Background | สีพื้นหลัง หรือ Background Image URL |
| Border | Width, Color, Corner Radius |
| Position | Relative หรือ Absolute พร้อม Offset |
| Justify / Align | จัดตำแหน่ง Children ใน Box |
Action Configuration 5 types
ตั้ง Action ได้กับ Button, Text, Image, Box ทุกประเภท:
| Action | รายละเอียด |
|---|---|
| URI | เปิด URL ในเบราว์เซอร์ |
| Message | ส่งข้อความกลับในแชท |
| Postback | ส่งข้อมูลกลับเซิร์ฟเวอร์ (ซ่อนจากผู้ใช้) |
| Datetime Picker | เปิดปฏิทินเลือกวันที่/เวลา |
| Clipboard | คัดลอกข้อความไปยัง Clipboard |
Tree View
Tree View แสดงโครงสร้าง Component เป็น Hierarchy ด้านล่างของ Sidebar คลิก Component ใน Tree เพื่อเลือก ลากเพื่อจัดลำดับภายใน Parent เดียวกัน
- คลิก เพื่อเลือก Component
- ลาก เพื่อจัดลำดับ ย้ายตำแหน่งภายใน Parent
- คลิกขวา ที่ Box เพื่อเพิ่ม Child Component (Box, Text, Image, Video, Button, Icon, Separator)
- กดลูกศร ▶ เพื่อ Expand/Collapse
Templates Library
เลือก Template สำเร็จรูปจาก 7 หมวดหมู่ เพื่อเริ่มต้นอย่างรวดเร็ว:
Product
สินค้าพร้อมรูป ราคา ปุ่มซื้อ
Receipt
ใบเสร็จรายการซื้อ
Ticket
ตั๋วอีเว้นท์ / บัตรเข้างาน
Coupon
คูปองส่วนลด
Booking
การจองนัดหมาย
Profile
โปรไฟล์บุคคล
Carousel
หลายข้อความเลื่อนได้
หลังเลือก Template สามารถแก้ไขทุกส่วนได้เลย ไม่ต้อง stuck กับ design เดิม
AI Generator
ให้ AI สร้าง Flex Message ให้อัตโนมัติจากคำอธิบาย:
กดปุ่ม "AI สร้าง"
ที่ Toolbar ด้านบน จะเปิด Dialog ให้เลือก Template และ Style
เลือก Template Preset
มี 20 หมวด แบ่ง 5 กลุ่ม:
- Commerce — Product, Receipt, Menu, Cart
- Events & Booking — Ticket, Booking, Appointment, Itinerary
- Promotions — Coupon, Flash Sale, Loyalty, Newsletter
- Information — Profile, Order Status, Notification, Survey, Location
- Multi-card — Carousel, Step Carousel, Custom
เลือก Style Preset
มี 21 สไตล์ + Custom แบ่ง 6 กลุ่ม:
- Clean — Modern Minimal Corporate
- Dark — Dark Neon, Midnight
- Colorful — Colorful Pastel, Candy
- Effects — Gradient, Glass, Aurora
- Bold — Bold, Retro, Sport
- Themed — Nature, Ocean, Sakura, Christmas, Luxury
เลือก Custom เพื่อพิมพ์สไตล์เองได้อิสระ
กด Generate
AI จะ Stream สร้าง Flex Message แบบ Real-time เห็นผลทันทีบน Canvas
AI Component Editor
แก้ไข Component ด้วย AI — เลือก Component แล้วกดปุ่ม ✨ ที่ Properties Panel จะมีช่องพิมพ์คำสั่งและ Quick Action Chips
Quick Action Chips แบ่ง 3 หมวด: Text Style Layout
| Component | Quick Action Chips |
|---|---|
| Text | เปลี่ยนข้อความ, สี, Bold, ขนาด, Align, Wrap, Link, Highlight, Badge |
| Image | URL, Aspect Ratio, Size, Fit/Cover, สีพื้นหลัง, Link, Full Width |
| Button | Label, สี, Style, ความสูง, URI Action, Message Action, Primary, Link Style |
| Box | Layout, สีพื้นหลัง, Spacing, Padding, Border, Corner, Gradient, Flex Row, Center, Card Style |
| Separator | เปลี่ยนสี, Margin, Subtle Style |
AI จะเสนอการปรับเพิ่มเติมเอง เช่น เปลี่ยนสีพร้อมเพิ่ม gradient, ปรับ padding ให้ balance — ไม่ได้ทำแค่สิ่งที่สั่งอย่างเดียว
Import / Export JSON
Import JSON
กดปุ่ม นำเข้า ที่ Toolbar → วาง JSON ลงใน textarea → กด Import
ระบบจะตรวจสอบ syntax ก่อน — ถ้า JSON ไม่ถูกต้องจะแสดง error
Export JSON
กดปุ่ม ส่งออก ที่ Toolbar เลือก:
- Copy JSON — คัดลอก JSON ไปยัง Clipboard
- Download JSON — ดาวน์โหลดเป็นไฟล์
.json
Variable System
ใช้ตัวแปรในข้อความเพื่อเชื่อมกับข้อมูลจาก Pipeline:
templateสวัสดีคุณ {{customerName}} 🎉
สินค้า: {{productName}}
ราคา: {{price}} บาท
- ใช้ syntax
{{variableName}}ในช่อง Text หรือ URL - Variables จะ highlight สีเขียวในช่อง input
- กด dropdown ที่ช่อง input เพื่อเลือก Variable จากรายการ
- ดู Preview ที่ Variable Preview Panel เพื่อเห็นผลลัพธ์จริง
Pipeline Editor — ภาพรวม
Pipeline Editor คือเครื่องมือสร้าง Data Flow แบบ Visual ด้วย Node Graph เชื่อมต่อแหล่งข้อมูล → แปลงข้อมูล → ใส่ลงใน Flex Template → ส่งออก
ประเภท Node
Pipeline มี 5 หมวด Node ทั้งหมด 16 ประเภท:
Data Source — แหล่งข้อมูล
| Node | รายละเอียด |
|---|---|
| REST API | ดึงข้อมูลจาก HTTP API — ตั้ง URL, Method, Headers, Auth |
| Excel/CSV | อัปโหลดไฟล์ Excel หรือ CSV — ระบบอ่าน Schema อัตโนมัติ |
| Google Sheets | ดึงข้อมูลจาก Google Sheets — ใส่ URL + API Key สำหรับ Public Sheets |
| Static JSON | พิมพ์ JSON ด้วยมือ — เหมาะสำหรับทดสอบ |
Transform — แปลงข้อมูล
| Node | รายละเอียด |
|---|---|
| Filter | กรองข้อมูลด้วยเงื่อนไข เช่น price > 100 |
| Map/Rename | เปลี่ยนชื่อ Field หรือ แปลงค่า |
| Sort | เรียงลำดับข้อมูลตาม Field ที่เลือก |
| Calculate | คำนวณค่าใหม่ เช่น total = price × quantity |
| Custom Code | เขียน JavaScript เอง — มีปุ่ม Run ทดสอบผลทันที |
Logic — ตรรกะ
| Node | รายละเอียด |
|---|---|
| Condition | แยก Flow ตามเงื่อนไข — True / False |
| Loop | วนลูปข้อมูลใน Array |
Template — แม่แบบ
| Node | รายละเอียด |
|---|---|
| Flex Template | เชื่อมข้อมูลกับ Flex Message — Double-click เพื่อเข้า Binding Mode |
Output — ส่งออก
| Node | รายละเอียด |
|---|---|
| LINE Push | ส่ง Flex Message ไปยัง LINE Followers |
| LINE Preview | ทดสอบส่งข้อความไป LINE ของตัวเอง |
| Preview | ดู Preview ผลลัพธ์บนหน้าจอ |
| JSON Export | ดาวน์โหลดผลลัพธ์เป็น JSON |
การเชื่อมต่อ Node
เชื่อมต่อ Node ด้วยการลาก Handle (จุดกลม) จาก Output ของ Node หนึ่งไปยัง Input ของอีก Node:
ลาก Output Handle
คลิกค้างที่จุดกลมด้านขวาของ Source Node
ลากไปยัง Input Handle
ลากเส้นไปวางที่จุดกลมด้านซ้ายของ Target Node
ข้อมูลจะไหลตามเส้น
เมื่อรัน Pipeline ข้อมูลจะไหลจาก Source → Transform → Template → Output ตามลำดับ
ตั้งค่า Node
คลิกที่ Node เพื่อเปิด Config Panel ด้านขวา แต่ละ Node มี Config ต่างกัน:
Data Source — ตั้งค่าแหล่งข้อมูล
REST API — ดึงข้อมูลจาก HTTP API SOURCE
| ฟิลด์ | รายละเอียด |
|---|---|
| URL | URL ของ API endpoint (จำเป็น) |
| Method | GET, POST หรือ PUT |
| Headers | Custom HTTP Headers แบบ key-value (เพิ่ม/ลบได้) |
| Body | Request Body สำหรับ POST/PUT |
| Auth Type | None, Bearer Token, Basic Auth หรือ API Key |
| Response Path | Dot-path เพื่อดึงข้อมูลจาก Response เช่น data.items |
| Timeout | เวลาหมดอายุ Request (มิลลิวินาที) |
ตัวอย่าง — ดึงรายการสินค้าจาก API
| ฟิลด์ | ค่า |
|---|---|
| URL | https://api.example.com/v1/products |
| Method | GET |
| Auth Type | Bearer Token |
| Response Path | data.products |
ถ้า API ส่ง Response เป็น {"data":{"products":[...]}} — ระบบจะดึงเฉพาะ Array products ออกมาใช้
กดปุ่มทดสอบเพื่อตรวจสอบ API และดู Schema ที่ระบบตรวจพบอัตโนมัติ — ระบบจะแสดงข้อมูลตัวอย่างและ Field ที่ตรวจพบ
API ที่ไม่รองรับ CORS จะต้องใช้ผ่าน Proxy ของระบบ — กดเปิด "Use Proxy" ใน Config
Excel/CSV — อัปโหลดไฟล์ SOURCE
| ฟิลด์ | รายละเอียด |
|---|---|
| File Upload | ลากไฟล์วาง หรือคลิกเลือก — รองรับ .csv, .tsv, .xlsx, .xls |
| Sheet Name | สำหรับไฟล์ Excel ที่มีหลาย Sheet (dropdown อัตโนมัติ) |
| Has Headers | แถวแรกเป็น Header หรือไม่ (ค่าเริ่มต้น เปิด) |
| Delimiter | สำหรับ CSV — ระบบตรวจจับอัตโนมัติ (comma หรือ tab) |
| Skip Rows | ข้ามแถวแรกจำนวนกี่แถว |
| Max Rows | จำกัดจำนวนแถวสูงสุดที่อ่าน |
หลังอัปโหลดไฟล์ ระบบจะตรวจ Schema อัตโนมัติ — แสดงชื่อ Column, ประเภทข้อมูล (string, number, date) และข้อมูลตัวอย่าง
รองรับไฟล์สูงสุด 10MB — สำหรับไฟล์ใหญ่กว่านี้ แนะนำใช้ Google Sheets หรือ REST API แทน
Google Sheets — ดึงข้อมูลจาก Google Sheets SOURCE
เชื่อมต่อ Google Sheets สำหรับ Sheets ที่ตั้งเป็น Public (Anyone with the link):
| ฟิลด์ | รายละเอียด |
|---|---|
| Spreadsheet URL | วาง URL จาก Google Sheets (ระบบดึง ID อัตโนมัติ) |
| API Key | Google Cloud API Key (สร้างจาก Google Cloud Console) |
| Sheet Name | ชื่อ Sheet Tab (ค่าเริ่มต้น "Sheet1") |
| Range | ระบุ Range เช่น "A1:Z1000" (ไม่ระบุ = ดึงทั้งหมด) |
| Has Headers | แถวแรกเป็น Header หรือไม่ |
กดเพื่อทดสอบดึงข้อมูลและดู Schema ที่ตรวจพบ
Static JSON — พิมพ์ข้อมูลเอง SOURCE
| ฟิลด์ | รายละเอียด |
|---|---|
| JSON Data | พิมพ์หรือวาง JSON Array เช่น [{"name":"A"},{"name":"B"}] |
ตัวอย่าง
JSON[
{ "name": "สมชาย", "email": "somchai@mail.com", "age": 28 },
{ "name": "สมหญิง", "email": "somying@mail.com", "age": 25 }
]
ระบบตรวจสอบ Syntax แบบ Real-time — ถ้า JSON ไม่ถูกต้องจะแสดง Error ทันที
ใช้ Static JSON เพื่อทดสอบ Pipeline ก่อนเชื่อมต่อ API จริง — ข้อมูลจะถูกบันทึกไว้ใน Node ไม่ต้องอัปโหลดซ้ำ
Transform — ตั้งค่าแปลงข้อมูล
Filter — กรองข้อมูล TRANSFORM
| ฟิลด์ | รายละเอียด |
|---|---|
| Conditions | เงื่อนไขกรอง — เลือก Field, Operator และ Value |
| Logic | AND (ทุกเงื่อนไขต้องเป็นจริง) หรือ OR (เงื่อนไขใดเงื่อนไขหนึ่ง) |
Operators ที่รองรับ: = ≠ > ≥ < ≤ contains not_contains starts_with ends_with is_null is_not_null
ตัวอย่าง — กรองสินค้าราคาเกิน 100 บาท
| Field | Operator | Value |
|---|---|---|
price | > | 100 |
ผลลัพธ์: เหลือเฉพาะ record ที่ price > 100
กดปุ่ม + เพื่อเพิ่มเงื่อนไข — ใช้ AND เมื่อต้องการให้ตรงทุกเงื่อนไข, ใช้ OR เมื่อต้องการให้ตรงเงื่อนไขใดเงื่อนไขหนึ่ง
Map/Rename — เปลี่ยนชื่อ Field TRANSFORM
| ฟิลด์ | รายละเอียด |
|---|---|
| Source Field | Field เดิม (เลือกจาก Dropdown) |
| Target Field | ชื่อ Field ใหม่ |
ตัวอย่าง — เปลี่ยนชื่อ Field เป็นภาษาไทย
| Source | → | Target |
|---|---|---|
product_name | → | ชื่อสินค้า |
unit_price | → | ราคา |
กดปุ่ม Auto-Populate เพื่อสร้าง 1:1 mapping จาก Schema อัตโนมัติ — จากนั้นแก้เฉพาะ Field ที่ต้องการเปลี่ยนชื่อ
Sort — เรียงลำดับข้อมูล TRANSFORM
| ฟิลด์ | รายละเอียด |
|---|---|
| Field | เลือก Field ที่ต้องการเรียง |
| Direction | Ascending (น้อยไปมาก) หรือ Descending (มากไปน้อย) |
ตัวอย่าง
เรียงสินค้าตามราคาจากมากไปน้อย: Field = price, Direction = Descending
ข้อมูลที่เป็น null หรือ undefined จะถูกเรียงไว้ท้ายสุดเสมอ
Calculate — คำนวณค่าใหม่ TRANSFORM
| ฟิลด์ | รายละเอียด |
|---|---|
| Output Field | ชื่อ Field ผลลัพธ์ใหม่ |
| Expression | สูตรคำนวณ เช่น price * quantity หรือ Math.round(total * 1.07) |
ตัวอย่างสูตร
| Output Field | Expression | คำอธิบาย |
|---|---|---|
total | price * quantity | ราคารวม |
totalWithVat | Math.round(total * 1.07) | ราคารวม VAT 7% |
discount | price * 0.1 | ส่วนลด 10% |
คลิกชื่อ Field ที่แสดงเป็น Chip เพื่อแทรกลงในสูตร — รองรับ + - * / % และฟังก์ชัน Math.round, Math.floor, Math.ceil, Math.abs
Format — จัดรูปแบบข้อมูล TRANSFORM
| ฟิลด์ | รายละเอียด |
|---|---|
| Field | เลือก Field ที่ต้องการจัดรูปแบบ |
| Format Type | Number, Date, Currency หรือ Percentage |
| Pattern | รูปแบบ เช่น #,##0.00, ฿#,##0, DD/MM/YYYY |
| Locale | รหัสภาษา เช่น th-TH (ไม่บังคับ) |
ตัวอย่างรูปแบบ
| ข้อมูลเดิม | Format Type | ผลลัพธ์ |
|---|---|---|
1500.5 | Currency (฿#,##0) | ฿1,501 |
0.15 | Percentage | 15% |
2025-02-21 | Date (DD/MM/YYYY) | 21/02/2025 |
จัดรูปแบบราคาเป็นสกุลเงินก่อนส่งให้ Template — ข้อความใน Flex Message จะแสดงผลสวยงาม
Custom Code — เขียน JavaScript เอง TRANSFORM
| ฟิลด์ | รายละเอียด |
|---|---|
| Code | เขียน JavaScript function — รับ data (array) เป็น input, return array ที่แปลงแล้ว |
ตัวอย่าง — รวม field firstName + lastName
JavaScript// เพิ่ม field fullName จาก firstName + lastName
return data.map(item => ({
...item,
fullName: item.firstName + ' ' + item.lastName
}))
ตัวอย่าง — กรองและคำนวณ
JavaScript// กรองสินค้าราคา > 100 แล้วเพิ่ม field discountPrice
return data
.filter(item => item.price > 100)
.map(item => ({
...item,
discountPrice: Math.round(item.price * 0.9)
}))
Code ต้อง return Array เสมอ — ห้ามใช้ fetch, import, หรือ async function เนื่องจากรันใน Sandbox
ใช้ console.log(data) เพื่อดู input data ก่อนเขียน logic — ดูผลลัพธ์ได้ที่ Browser DevTools
Node ประเภท Transform ทุกตัว (Filter, Sort, Calculate, Map, Custom Code) มีปุ่ม ▶ Run ให้ทดสอบผลลัพธ์ทันทีโดยไม่ต้องรัน Pipeline ทั้งหมด
Logic — ตั้งค่าตรรกะ
Condition — แยก Flow ตามเงื่อนไข LOGIC
| ฟิลด์ | รายละเอียด |
|---|---|
| Conditions | เงื่อนไขตัดสินใจ — เลือก Field, Operator, Value |
| Logic | AND หรือ OR สำหรับรวมหลายเงื่อนไข |
Operators: = ≠ > ≥ < ≤ contains not_contains is_empty is_not_empty
ตัวอย่าง — แยกสินค้าตามสถานะ
| Field | Operator | Value |
|---|---|---|
status | = | active |
Node มี 2 Output:
- เส้น True (สีเขียว) → ส่งเฉพาะ record ที่
status = active - เส้น False (สีแดง) → ส่ง record ที่ไม่ตรงเงื่อนไข
ลากเส้น True ไป Template A และเส้น False ไป Template B — สร้าง Flex Message ต่างกันตามเงื่อนไข
Loop — วนลูป Array LOGIC
| ฟิลด์ | รายละเอียด |
|---|---|
| Array Field | เลือก Field ที่เป็น Array (dropdown อัตโนมัติ) |
| Item Variable | ตั้งชื่อตัวแปรสำหรับแต่ละ item เช่น item |
| Max Items | จำกัดจำนวนรอบ (1–1000, ไม่บังคับ) |
ดูรายละเอียดเพิ่มเติมที่ Loop / Repeat
ต่อ Loop → Flex Template (Carousel mode) เพื่อสร้าง Bubble จากแต่ละ item ใน array โดยอัตโนมัติ
Template — ตั้งค่า Template
Flex Template — เชื่อมข้อมูลกับ Flex Message TEMPLATE
| ฟิลด์ | รายละเอียด |
|---|---|
| Flex Message | เลือก Flex Message จากโปรเจกต์ (dropdown) |
| Generation Mode | Single — สร้าง Bubble เดียว / Carousel — สร้างหลาย Bubble จาก Array |
| Max Bubbles | จำนวน Bubble สูงสุดใน Carousel (1–12, LINE limit) |
Double-click ที่ Node เพื่อเข้า Binding Mode — ผูกข้อมูลกับ Component, ตั้ง Visibility, Repeat, Conditional Props
คลิก Field จากฟิลด์ข้อมูล แล้วคลิก Component ที่ต้องการผูก — ระบบจะใส่ {{'{{variableName}}'}} ให้อัตโนมัติ
Output — ตั้งค่าส่งออก
Preview — ดูตัวอย่างผลลัพธ์ OUTPUT
แสดง Preview ของ Flex Message ที่ Pipeline สร้างได้ — ดูผลลัพธ์บนหน้าจอทันทีโดยไม่ต้องส่งไป LINE
วิธีใช้งาน
- ลาก Preview node ไปวางบน Canvas
- ลากเส้นจาก Flex Template → Preview
- กดปุ่ม ▶ Run Pipeline
- ดูผลลัพธ์ Flex Message ใน Preview Panel ที่แสดงขึ้น
แนะนำให้ต่อ Preview ไว้ตลอดระหว่างสร้าง Pipeline เพื่อดูผลลัพธ์ได้เร็วโดยไม่ต้องรอส่ง LINE
JSON Export — ดาวน์โหลด JSON OUTPUT
ส่งออกผลลัพธ์เป็น Flex Message JSON ที่พร้อมใช้งาน — Copy หรือ Download ไฟล์ .json
รูปแบบ Output
- Single Bubble — JSON object เดียว (type: bubble)
- Carousel — JSON object ที่มี contents เป็น array ของ bubbles (type: carousel)
JSON ที่ได้สามารถนำไปใช้กับ POST /v2/bot/message/push ได้โดยตรง — วางใน flexMessage.contents
Code Export — สร้าง Code สำเร็จรูป OUTPUT
สร้าง Code Snippet พร้อมใช้งานใน 3 ภาษา สำหรับส่ง Flex Message ผ่าน LINE Messaging API
| ภาษา | รายละเอียด |
|---|---|
| Node.js | ใช้ axios — พร้อม headers, body, error handling |
| Python | ใช้ requests — พร้อม headers, json payload |
| cURL | Command line — พร้อม Copy ไปรันได้เลย |
Code ที่ได้จะมี placeholder YOUR_CHANNEL_ACCESS_TOKEN — ต้องเปลี่ยนเป็น Token จริงก่อนใช้งาน
LINE Preview — ส่งทดสอบไป LINE ตัวเอง OUTPUT
| ฟิลด์ | รายละเอียด |
|---|---|
| LINE Profile | เชื่อมต่อ LINE ผ่าน OAuth — กด Connect LINE เพื่อ Login |
หลังเชื่อมต่อแล้ว เมื่อรัน Pipeline ระบบจะส่ง Flex Message ไปยัง LINE ของคุณเพื่อทดสอบ
LINE Push — ส่ง Flex Message ถึง Followers OUTPUT
| ฟิลด์ | รายละเอียด |
|---|---|
| Output Type | Push (Multicast) — เลือกส่งเฉพาะบาง Followers / Broadcast — ส่งถึงทุกคน |
| Followers | เลือก Followers ที่ต้องการส่ง (checkbox) — มีปุ่ม Select All / Deselect All |
ต้องเชื่อมต่อ LINE Official Account ในหน้า Project Settings ก่อนจึงจะส่งข้อความได้
Template Binding Mode
Binding Mode คือโหมดเต็มจอสำหรับเชื่อม Data Fields กับ Components ใน Flex Template เปิดโดย Double-click ที่ Flex Template Node
มี 3 ระบบหลัก:
Variable Binding
ผูก Data Field กับ Component เช่น ผูก name กับ Text
Visibility Rules
ซ่อน/แสดง Component ตามเงื่อนไข เช่น แสดงราคาลดเฉพาะเมื่อมี discount
Repeat Rules
วนซ้ำ Component ตาม Array เช่น แสดงรายการสินค้าหลายชิ้น
Loop / Repeat — วนซ้ำข้อมูล
ระบบรองรับการวนซ้ำ (Loop) ใน 2 ระดับ — Pipeline Level (Loop Node) และ Template Level (Repeat Rule) ใช้สำหรับสร้าง Component ซ้ำตามจำนวนข้อมูลใน Array
Level 1 — Loop Node (Pipeline Graph)
Loop Node อยู่ในหมวด Logic — ใช้สำหรับวนลูปข้อมูลใน Array ที่ระดับ Pipeline ก่อนส่งต่อให้ Node ถัดไป
ตั้งค่า Loop Node CONFIG
| ฟิลด์ | รายละเอียด |
|---|---|
| Array Field | เลือก Field ที่เป็น Array จากข้อมูลขาเข้า เช่น items, products |
| Item Variable | ตั้งชื่อตัวแปรสำหรับ item แต่ละตัว เช่น item → ใช้อ้างอิงได้ เช่น item.name |
| Max Items | จำกัดจำนวนรอบสูงสุด (1–1000) เช่น LINE Carousel รองรับสูงสุด 12 bubbles |
Loop Node ทำงานที่ระดับ Pipeline (วน Array แล้วส่งข้อมูลทีละ item ไปยัง Node ถัดไป) ส่วน Repeat Rule ทำงานที่ระดับ Template (วนสร้าง Component ซ้ำภายใน Flex Message)
Level 2 — Repeat Rule (Template Binding)
Repeat Rule ใช้ภายใน Binding Mode — กำหนดให้ Box component วนซ้ำตาม Array เช่น แสดงรายการสินค้าหลายชิ้นจากข้อมูลที่ส่งมา
ตั้งค่า Repeat Rule BINDING
| ฟิลด์ | รายละเอียด |
|---|---|
| Array Field | Path ไปยัง Array ในข้อมูล เช่น items, order.products |
| Item Alias | ชื่อตัวแปรสำหรับ item แต่ละตัว เช่น item |
| Max Items | จำกัดจำนวนซ้ำสูงสุด (ไม่บังคับ) — เช่น LINE Flex รองรับ child สูงสุดไม่เกิน 50 |
| Per-Item Bindings | ผูกตัวแปรกับ field ของ item เช่น itemName ← item.name |
Repeat Rule ใช้ได้กับ component ประเภท Box เท่านั้น เพราะ Box เป็น container ที่จะถูก clone ซ้ำพร้อม children ทั้งหมด
ตัวอย่าง — แสดงรายการสินค้า
สมมติมีข้อมูล:
JSON{
"items": [
{ "name": "กาแฟลาเต้", "price": 75 },
{ "name": "ชาเขียวมัทฉะ", "price": 85 },
{ "name": "โกโก้เย็น", "price": 65 }
]
}
ตั้งค่า Repeat Rule:
| ฟิลด์ | ค่า |
|---|---|
| Array Field | items |
| Item Alias | item |
| Binding 1 | itemName ← item.name |
| Binding 2 | itemPrice ← item.price |
ผลลัพธ์: Box จะถูกสร้างซ้ำ 3 ครั้ง โดยแต่ละรอบ {{itemName}} และ {{itemPrice}} จะถูกแทนที่ด้วยข้อมูลของ item นั้นๆ
เลือก Box ที่ต้องการวนซ้ำ
ใน Binding Mode — คลิก Box component ที่เป็น "แถว" ของรายการ
เปิด Repeat Rule
ใน Component Rules Panel — กดเปิด Repeat จากนั้นเลือก Array Field และตั้ง Item Alias
เพิ่ม Per-Item Bindings
กด + Add Binding เพื่อผูกตัวแปรกับ field ของ item แต่ละตัว
ใช้ตัวแปรใน Text Component
ใน Text ลูกของ Box ให้ใช้ {{itemName}} หรือ {{itemPrice}} — เมื่อรัน Pipeline ระบบจะแทนค่าอัตโนมัติ
LINE Flex Message มีข้อจำกัดเรื่องจำนวน Component — Carousel รองรับ Bubble สูงสุด 12 ตัว และ Box มี children ได้สูงสุด 50 ตัว กรุณาตั้ง Max Items ให้เหมาะสม
รัน Pipeline
มี 2 วิธีในการรัน Pipeline:
วิธีที่ 1: รันจาก Pipeline Editor
กดปุ่ม Run
กดปุ่ม ▶ Run ที่ Toolbar — Pipeline จะรันทีละ Node ตามลำดับ
ดูผลลัพธ์
เมื่อรันเสร็จ กดปุ่ม Result เพื่อดู 4 แบบ:
- Result — Preview Flex Message ที่สร้างได้
- JSON — JSON ผลลัพธ์ (Copy/Download ได้)
- Code — Code สำเร็จรูป (Node.js, Python, cURL)
- LINE — ส่งไปยัง LINE Followers โดยตรง
วิธีที่ 2: รันจากการ์ด Pipeline
ในหน้าโปรเจกต์ สามารถรัน Pipeline ได้โดยตรงจากเมนู ⋮ บนการ์ด Pipeline โดยไม่ต้องเข้า Editor — ระบบจะรันและแสดงผลลัพธ์ทันที (Preview, JSON, Code)
Pipeline จะรันได้ต่อเมื่อมี Output Node หรือ Preview Node อย่างน้อย 1 ตัว มิเช่นนั้นปุ่ม Run จะถูกปิดใช้งาน
เชื่อมต่อ LINE Official Account
เชื่อม LINE OA เพื่อส่ง Flex Message ถึง Followers โดยตรง:
ไปที่ Project Settings
เปิดโปรเจกต์ → กด ตั้งค่า (ไอคอนเฟือง)
ใส่ Channel Access Token
คัดลอก Channel Access Token (long-lived) จาก LINE Developers Console
ใส่ Channel Secret
คัดลอก Channel Secret จาก LINE Developers Console
กด Verify and Save
ระบบจะตรวจสอบ Token แล้วแสดงข้อมูล Bot (ชื่อ, รูป, Basic ID)
ตั้งค่า Webhook
หลังเชื่อมต่อสำเร็จ ระบบจะสร้าง Webhook URL ให้อัตโนมัติ:
urlhttps://your-domain.com/api/webhook/{projectId}
คัดลอก URL นี้ไปใส่ใน LINE Developers Console → Messaging API → Webhook URL
เปิด "Use webhook" ใน LINE Developers Console ด้วย เพื่อให้ระบบติดตาม Followers ได้
ส่งข้อความถึง Followers
หลังเชื่อมต่อ LINE OA และมี Followers แล้ว สามารถส่ง Flex Message ได้ 2 ทาง:
- จาก Pipeline — ใช้ LINE Push Node เลือก Followers แล้ว Run Pipeline
- จาก Execution Result — รัน Pipeline เสร็จ กดแท็บ LINE แล้วเลือกคนรับ
Keyboard Shortcuts
Flex Message Editor
| Shortcut | Action |
|---|---|
| ⌘S | บันทึก |
| ⌘Z | Undo — ย้อนกลับ |
| ⌘⇧Z | Redo — ทำซ้ำ |
| ⌘D | Duplicate — คัดลอก Component |
| Delete | ลบ Component ที่เลือก |
| Space + Drag | Pan — เลื่อนดู Canvas |
| H | Toggle Hand Tool |
| Alt + Scroll | Zoom เข้า/ออก |
Pipeline Editor
| Shortcut | Action |
|---|---|
| ⌘S | บันทึก Pipeline |
| ⌘Z | Undo |
| ⌘⇧Z | Redo |
| Delete | ลบ Node หรือ Edge ที่เลือก |
แทนที่ ⌘ ด้วย Ctrl สำหรับ Windows และ Linux