Yeastar P-Series Call Flow Designer
🇹🇭 ภาษาไทย
ภาพรวม
Call Flow Designer คือเครื่องมือ visual drag-and-drop สำหรับออกแบบ call flow อัจฉริยะ บน Yeastar P-Series โดยไม่ต้องเขียนโค้ด สามารถสร้าง call flow ที่ซับซ้อนได้ด้วยการลาก component มาต่อกัน
ข้อกำหนด:
- Firmware: 37.22.0.17 หรือใหม่กว่า
- Plan: Ultimate Plan เท่านั้น
ขีดจำกัด:
- Call flow สูงสุด: 80 flows
- Components + branches ต่อ flow: สูงสุด 200
- Steps ต่อ flow: สูงสุด 50 steps
วิธีสร้าง Call Flow
| วิธี | รายละเอียด |
|---|---|
| จาก Template | ใช้ template สำเร็จรูปของ Yeastar — ครอบคลุม use case ทั่วไป |
| จาก Scratch | สร้างใหม่ทั้งหมด — ควบคุม component ทุกตัวเอง |
| จาก Existing Flow | Clone flow เดิมหรือ import JSON แล้วแก้ไข |
Components ทั้งหมด (20+ รายการ)
🔵 Initial Component (จุดเริ่มต้น)
Initial Action
- Entry point ของ call flow
- กำหนดหมายเลขโทรศัพท์ที่ trigger flow นี้
- เพิ่ม welcome prompt ได้
📞 Call Control Components
Prompt
- เล่น audio prompt หรือ TTS (Text-to-Speech) ให้ผู้โทรฟัง
- รองรับ multiple prompts ต่อกัน
- TTS ใช้ได้กับ Enterprise/Ultimate plan
Business Hours
- แยก call path ตามเวลา: เวลาทำการ / นอกเวลา / วันหยุด
- เชื่อมกับ Business Hours & Holidays ที่ตั้งไว้ใน PBX
Menu
- IVR menu — ผู้โทรกด DTMF digit เพื่อเลือก
- กำหนดปลายทางสำหรับแต่ละ key (0-9, *, #)
- กำหนด Timeout และ Invalid Input destination
User Input
- รับ DTMF digit จากผู้โทร (เช่น หมายเลขบัญชี, รหัสลูกค้า)
- เก็บค่าใน variable เพื่อใช้ใน Condition ต่อไป
Language
- เปลี่ยนภาษา system prompt สำหรับ component ถัดไปใน flow
- เหมาะกับ flow ที่ให้ผู้โทรเลือกภาษา
Record
- เริ่ม/หยุดการบันทึกสาย ณ จุดนั้นใน flow
- เพิ่ม prompt แจ้งผู้โทรว่ากำลังบันทึก
- หรือ disable recording ถ้า flow ก่อนหน้าบันทึกอยู่
Dial by Number
- ผู้โทรกดหมายเลขตรงๆ เพื่อเข้าถึงปลายทาง
- รองรับ: extension, ring group, queue, external number
Dial by Name
- ผู้โทรพิมพ์ชื่อ (3 ตัวอักษรแรก) เพื่อค้นหา extension
- PBX อ่านชื่อผู้ใช้ออกเสียงให้ยืนยัน
Transfer
- โอนสายไปยังปลายทางที่กำหนด (end component)
- ปลายทาง: Extension, Ring Group, Queue, IVR, External Number, Voicemail ฯลฯ
- เพิ่ม prompt ก่อนโอนได้
Hang Up Call
- วางสาย (end component)
- ใช้เมื่อต้องการจบ flow
🔄 Flow Control Components
Condition
- แยก flow ตาม logical expression
- Operator: ==, !=, >, <, >=, ⇐, contains, in, not in
- เชื่อมกับ variable จาก User Input หรือ Internal Data Ops
Loop
- วน components ซ้ำตามจำนวนครั้งที่กำหนด หรือจนกว่า condition จะเป็นจริง
- ใช้กับ User Input เพื่อให้กดซ้ำ (เช่น กรอก PIN ผิด 3 ครั้ง)
🗄️ Internal Data Ops Components
Component ที่ดึง/เซ็ตข้อมูลจาก PBX โดยตรง:
| Component | ทำอะไร |
|---|---|
| Get Extension Presence Status | ดูว่า extension อยู่ในสถานะอะไร (Available/Busy/DND ฯลฯ) |
| Set Extension Presence Status | เปลี่ยน presence status ของ extension |
| Get Queue Agent | ดูรายชื่อ agent ใน queue |
| Get Queue Info | ดูจำนวนคนรอ, เวลารอเฉลี่ย ฯลฯ |
| Get Agent Status | ดูสถานะ agent (available/paused/in-call) |
| Set Agent Status | เปลี่ยนสถานะ agent (pause/unpause/logout) |
| Get System Info | ดูข้อมูล PBX (model, firmware, uptime) |
| Get System Capacity | ดูความจุ extensions, concurrent calls, AI transcription |
| Get Extension Info | ดูข้อมูล extension (ชื่อ, presence, email ฯลฯ) |
| Get Company Contact Info | ค้นหาข้อมูลจาก Company Contacts |
ค่าที่ได้จะถูกเก็บใน variables เพื่อนำไปใช้ใน Condition หรือ components ต่อไป
📧 Email Sender
- ส่ง email ระหว่าง call flow
- ใช้สำหรับ notification แบบ real-time (เช่น แจ้งทีม support เมื่อลูกค้า VIP โทรเข้า)
- ใส่ variable จาก flow ใน subject/body ได้
🗃️ Database Access
- Execute SQL queries ไปยัง external database ระหว่าง call flow!
- รองรับ: SELECT, INSERT, UPDATE
- เหมาะกับ: ดึงข้อมูลลูกค้าจาก CRM database, บันทึก call log
- ตั้งค่า database connection (host, port, database name, username, password)
- ผลลัพธ์ query เก็บใน variable
ตัวอย่าง Use Case:
ผู้โทรกด User Input ใส่ Account Number
→ Database Access: SELECT customer_name, tier FROM customers WHERE account = ?
→ Condition: ถ้า tier = 'VIP' → Transfer ไป Queue VIP
ถ้า tier = 'Normal' → Transfer ไป Queue ทั่วไป
🌐 HTTP Request
- ส่ง HTTP request ไปยัง external web server ระหว่าง call flow
- Method: GET หรือ POST
- Headers: กำหนด custom headers
- Body: JSON payload
- ผลลัพธ์ (response) เก็บใน variable
ตัวอย่าง Use Case:
สายเข้าจาก Caller ID → HTTP Request: GET /api/customer?phone={caller_id}
→ ได้ customer_name, account_status
→ Condition: ถ้า account_status = 'suspended' → Prompt "บัญชีถูกระงับ" → Hang Up
ถ้า account_status = 'active' → Transfer ไป Queue
Integration ที่เป็นไปได้:
- เรียก REST API ของ CRM/ERP ระหว่างสาย
- ส่ง webhook notification ไป Slack/Teams/Line
- Trigger automation ใน n8n/Zapier/Make
Expression Language
Call Flow Designer มี expression language ของตัวเองสำหรับใช้ใน Condition และ parameter ต่างๆ
ตัวแปร (Variables) ที่มีให้ใช้:
- System variables:
caller_id,called_number,call_date,call_time - Component variables: ค่าที่ได้จาก User Input, Internal Data Ops
- Custom variables: สร้างเองระหว่าง flow
Function ที่รองรับ:
- String:
concat(),length(),substring(),upper(),lower(),contains() - Number: คำนวณทางคณิตศาสตร์
- Condition:
if(),isNull(),isEmpty() - Date/Time: ดึงค่าวัน/เวลาปัจจุบัน
Use Cases ที่นิยม
| Scenario | Components ที่ใช้ |
|---|---|
| IVR หลายภาษา | Initial Action → Menu (เลือกภาษา) → Language → Menu (เมนูหลัก) |
| VIP Routing | Caller ID → HTTP Request (ดึง tier จาก CRM) → Condition → Transfer |
| Queue Status Announcement | Get Queue Info → Prompt (แจ้งเวลารอ) → Menu (รอ/callback) |
| After-hours Voicemail | Business Hours → (นอกเวลา) Prompt → Transfer to Voicemail |
| Auto Database Logging | Transfer complete → Database Access (INSERT call log) |
| PIN-protected Conference | User Input (PIN) → Condition → Transfer to Conference |
| Agent Availability Check | Get Extension Presence → Condition → Transfer / Voicemail |
ความเชื่อมโยง
- Yeastar P-Series — parent system
- Yeastar P-Series Admin Guide — IVR และ Inbound Route ที่ Call Flow แทนที่/เสริม
- Yeastar P-Series API — HTTP Request component สามารถ call Yeastar API เองได้
- Yeastar P-Series Call Center — Queue components ใน Call Flow
- Yeastar P-Series Features — หน้าภาพรวม features
🇬🇧 English
Overview
Call Flow Designer is a visual drag-and-drop tool for building intelligent call routing without coding. Available on Yeastar P-Series with Ultimate Plan (firmware 37.22.0.17+).
Limits: 80 flows; 200 components+branches per flow; 50 steps per flow
Creation methods: From template, from scratch, or clone/import existing flow (JSON)
Components Reference
Initial Component
Initial Action — Entry point. Defines trigger phone number(s) and optional welcome prompt.
Call Control Components
| Component | Function |
|---|---|
| Prompt | Play audio prompt(s) or TTS message |
| Business Hours | Route calls by time: business hours / after-hours / holidays |
| Menu | DTMF menu (0-9, *, #) with per-key destinations |
| User Input | Collect DTMF digits → store in variable |
| Language | Change system prompt language for subsequent components |
| Record | Start/stop call recording at this point in the flow |
| Dial by Number | Caller dials a number to reach destination directly |
| Dial by Name | Caller types first 3 letters of name to find extension |
| Transfer | Route caller to destination (end component) |
| Hang Up Call | Terminate call (end component) |
Flow Control Components
| Component | Function |
|---|---|
| Condition | Branch flow based on logical expression (==, !=, >, <, contains, in…) |
| Loop | Repeat components N times or until condition is met |
Internal Data Ops Components
Query/modify live PBX data during call flow:
| Component | Data Retrieved / Modified |
|---|---|
| Get Extension Presence Status | Current presence (Available/Busy/DND/etc.) |
| Set Extension Presence Status | Change presence of an extension |
| Get Queue Agent | Agent list in a queue |
| Get Queue Info | Queue depth, average wait time |
| Get Agent Status | Agent availability/pause status |
| Set Agent Status | Pause/unpause/logout an agent |
| Get System Info | PBX model, firmware version, uptime |
| Get System Capacity | Extension count, concurrent calls, AI quota |
| Get Extension Info | Extension details (name, email, presence) |
| Get Company Contact Info | Contact record lookup |
All results stored in variables usable in downstream components.
Email Sender
Send emails mid-flow for real-time notifications. Supports variable substitution in subject/body.
Database Access
Execute SQL against an external database during a call:
- Operations: SELECT, INSERT, UPDATE
- Results stored in variables for Condition evaluation
- Use case: Look up customer tier, log call events, check account status
HTTP Request
Send HTTP GET/POST to any external API during a call:
- Custom headers and JSON body
- Response stored in variables
- Use case: CRM lookup by Caller ID, trigger webhooks (Slack/Teams/Line), call Yeastar API
Expression Language
Built-in expression engine for Condition and parameterization:
- System variables:
caller_id,called_number,call_date,call_time - String functions:
concat(),length(),substring(),contains(),upper(),lower() - Condition functions:
if(),isNull(),isEmpty() - Date/Time functions: current date/time retrieval
Common Use Cases
| Scenario | Components Used |
|---|---|
| Multi-language IVR | Initial Action → Menu (language) → Language → Menu (main) |
| VIP routing via CRM | HTTP Request (CRM lookup) → Condition (tier) → Transfer |
| Queue wait time announcement | Get Queue Info → Prompt → Menu (wait/callback) |
| After-hours voicemail | Business Hours → Prompt → Transfer to Voicemail |
| PIN-protected conference | User Input (PIN) → Condition → Transfer to Conference |
| Agent availability routing | Get Extension Presence → Condition → Transfer/Voicemail |
| Auto-log call to database | After Transfer → Database Access (INSERT) |
Related Pages
- Yeastar P-Series — Parent PBX system
- Yeastar P-Series Admin Guide — IVR and Inbound Route which Call Flow extends
- Yeastar P-Series API — HTTP Request component can call PBX API directly
- Yeastar P-Series Call Center — Queue components within Call Flow