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 FlowClone 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 ที่นิยม

ScenarioComponents ที่ใช้
IVR หลายภาษาInitial Action → Menu (เลือกภาษา) → Language → Menu (เมนูหลัก)
VIP RoutingCaller ID → HTTP Request (ดึง tier จาก CRM) → Condition → Transfer
Queue Status AnnouncementGet Queue Info → Prompt (แจ้งเวลารอ) → Menu (รอ/callback)
After-hours VoicemailBusiness Hours → (นอกเวลา) Prompt → Transfer to Voicemail
Auto Database LoggingTransfer complete → Database Access (INSERT call log)
PIN-protected ConferenceUser Input (PIN) → Condition → Transfer to Conference
Agent Availability CheckGet Extension Presence → Condition → Transfer / Voicemail

ความเชื่อมโยง


🇬🇧 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

ComponentFunction
PromptPlay audio prompt(s) or TTS message
Business HoursRoute calls by time: business hours / after-hours / holidays
MenuDTMF menu (0-9, *, #) with per-key destinations
User InputCollect DTMF digits → store in variable
LanguageChange system prompt language for subsequent components
RecordStart/stop call recording at this point in the flow
Dial by NumberCaller dials a number to reach destination directly
Dial by NameCaller types first 3 letters of name to find extension
TransferRoute caller to destination (end component)
Hang Up CallTerminate call (end component)

Flow Control Components

ComponentFunction
ConditionBranch flow based on logical expression (==, !=, >, <, contains, in…)
LoopRepeat components N times or until condition is met

Internal Data Ops Components

Query/modify live PBX data during call flow:

ComponentData Retrieved / Modified
Get Extension Presence StatusCurrent presence (Available/Busy/DND/etc.)
Set Extension Presence StatusChange presence of an extension
Get Queue AgentAgent list in a queue
Get Queue InfoQueue depth, average wait time
Get Agent StatusAgent availability/pause status
Set Agent StatusPause/unpause/logout an agent
Get System InfoPBX model, firmware version, uptime
Get System CapacityExtension count, concurrent calls, AI quota
Get Extension InfoExtension details (name, email, presence)
Get Company Contact InfoContact 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

ScenarioComponents Used
Multi-language IVRInitial Action → Menu (language) → Language → Menu (main)
VIP routing via CRMHTTP Request (CRM lookup) → Condition (tier) → Transfer
Queue wait time announcementGet Queue Info → Prompt → Menu (wait/callback)
After-hours voicemailBusiness Hours → Prompt → Transfer to Voicemail
PIN-protected conferenceUser Input (PIN) → Condition → Transfer to Conference
Agent availability routingGet Extension Presence → Condition → Transfer/Voicemail
Auto-log call to databaseAfter Transfer → Database Access (INSERT)