การทำงานกับลูกค้า

คำอธิบายสัญลักษณ์:

was_in_state() | days_from_last_message() | free_client() | assign_to_user() | distribute_client()| get_operator() | get_operator_name() | delete_pended_messages() | set_note() | add_unread() | clear_unread() | unsubscribe()|block_client() | unblock_client() | set_client_name() | get_bind_clients() | get_current_pipline_id()

was_in_state(message_id)
ตรวจสอบว่าลูกค้าอยู่ในสถานะ (บล็อก) ที่เลือกหรือไม่ คุณสามารถรับหมายเลขบล็อกได้จากโปรแกรมแก้ไข

days_from_last_message()
กำหนดจำนวนวันนับตั้งแต่ข้อความล่าสุดของลูกค้า สร้างขึ้นเพื่อตรวจสอบว่าอยู่ในกรอบเวลา 24 ชั่วโมงหรือไม่

ตัวอย่าง:
d = days_from_last_message()

หากผ่านไปมากกว่า 30 วันนับตั้งแต่ข้อความล่าสุดของลูกค้า ฟังก์ชันจะคืนค่า 9999


free***_***client()
ยกเลิกการกำหนดผู้ปฏิบัติงานที่รับผิดชอบ

ตัวอย่าง: free_client()

assign_to_user(email, only_active)
กำหนดบทสนทนาให้กับผู้ปฏิบัติงาน โดยที่:

  1. email - พารามิเตอร์สตริง (ไม่บังคับ) หากระบุเฉพาะอีเมล บทสนทนาจะถูกกำหนดให้กับผู้ปฏิบัติงานที่ระบุ โดยไม่คำนึงถึงสถานะปัจจุบันของเขา
  2. only_active - True หรือ False (พารามิเตอร์ไม่บังคับ) หากตั้งค่าเป็น True บทสนทนาจะถูกกำหนดให้กับผู้ปฏิบัติงานที่ระบุเฉพาะเมื่อเขากำลังอยู่ในกะเท่านั้น

ตัวอย่าง:

assign_to_user() - กำหนดบทสนทนาให้กับผู้ปฏิบัติงานสุ่มที่กำลังอยู่ในกะ

assign_to_user('อีเมลของผู้ปฏิบัติงาน') - กำหนดบทสนทนาให้กับผู้ปฏิบัติงานโดยไม่คำนึงถึงสถานะของเขา

assign_to_user('อีเมลของผู้ปฏิบัติงาน', True) - กำหนดบทสนทนาให้กับผู้ปฏิบัติงานที่ระบุเฉพาะเมื่อเขากำลังอยู่ในกะเท่านั้น

distribute_client()
กำหนดบทสนทนาให้กับผู้ปฏิบัติงานตามการตั้งค่าการกระจายอัตโนมัติ
ตัวอย่าง: distribute_client()

get_operator()
ดึงข้อมูลอีเมลของผู้ปฏิบัติงานที่รับผิดชอบ

ตัวอย่าง: get_operator()

สามารถใช้เพื่อกำหนดงานให้กับผู้ปฏิบัติงานที่รับผิดชอบหรือตรวจสอบว่ามีเขาอยู่หรือไม่ หากไม่มีผู้ปฏิบัติงานที่รับผิดชอบ จะคืนค่า None

get_operator_name()
ดึงชื่อของผู้ปฏิบัติงานที่รับผิดชอบ

ตัวอย่าง: get_operator_name()

สามารถใช้เพื่อแสดงข้อมูลให้ลูกค้าทราบ หากไม่มีผู้ปฏิบัติงานที่รับผิดชอบ จะคืนค่า None หากผู้ปฏิบัติงานไม่มีชื่อที่กำหนดไว้ จะคืนค่าอีเมลของเขา

delete_pended_messages()
ลบข้อความที่กำหนดเวลาทั้งหมดสำหรับลูกค้าปัจจุบัน โดยค่าเริ่มต้น จะลบข้อความที่สร้างโดยลูกศร "Do not cancel" ด้วย หากต้องการเก็บข้อความจากลูกศร "Do not cancel" ให้ส่งพารามิเตอร์ False: delete_pended_messages(False)

set_note(comment)
เพิ่มความคิดเห็นในบทสนทนา

ตัวอย่าง: set_note('Redo')

add_unread(count)
ทำเครื่องหมายบทสนทนากับลูกค้าว่ายังไม่ได้อ่าน

พารามิเตอร์ count สามารถละเว้นหรือตั้งค่าเป็น 1; ในกรณีนี้ บทสนทนากับลูกค้าจะแสดงตัวบ่งชี้ข้อความที่ยังไม่ได้อ่าน +1

หากส่งตัวเลขอื่นใด ตัวเลขนั้นจะแสดงในส่วน "Clients" เป็นจำนวนข้อความที่ยังไม่ได้อ่านจากลูกค้า

clear_unread()
ทำเครื่องหมายบทสนทนาว่าอ่านแล้ว

unsubscribe()
ฟังก์ชันสำหรับยกเลิกการสมัครรับข้อความจากบอท ตัวอย่างมีให้ ในบทความนี้
สำหรับลูกค้าที่ยกเลิกการสมัครแล้ว สัญลักษณ์จะปรากฏขึ้น — ข้อความสีแดงที่มีกากบาท

สำคัญ!

เครื่องคิดเลขจะถูกดำเนินการก่อน จากนั้นจึงส่งข้อความ

ดังนั้น หากคุณต้องการส่งข้อความสุดท้ายเช่น "คุณได้ยกเลิกการสมัครรับข้อความจากบอทแล้ว" หรือ "คุณถูกบล็อกแล้ว" คุณต้องใช้กระบวนการสองขั้นตอน:

  1. ขั้นแรก ส่งบล็อก ที่มีข้อความสุดท้าย
  2. จากนั้น ส่งบล็อกว่าง ที่มีฟังก์ชันยกเลิกการสมัคร/บล็อก

หากคุณพยายามทำทั้งสองอย่างในบล็อกเดียว ข้อความจะไม่ถูกส่ง

หากคุณวางฟังก์ชัน unsubscribe() ในเครื่องคิดเลขของบล็อกเดียวกับข้อความของคุณ ข้อความจะ ไม่ถูกส่ง และระบบจะแสดงข้อผิดพลาด

block_client()
บล็อกลูกค้าจากการส่งข้อความถึงบอท ข้อความที่กำหนดเวลาไว้ก่อนหน้านี้จากบอทจะถูกยกเลิกด้วย อย่างไรก็ตาม จะยังคงสามารถส่งข้อความถึงลูกค้าโดยตรงจากบทสนทนาในส่วน "Clients" ได้

ลูกค้าที่ถูกบล็อกจะมีเครื่องหมาย — ไอคอนล็อคสีแดง

unblock_client()
ปลดบล็อกลูกค้า ลูกค้าจะสามารถโต้ตอบกับบอทอีกครั้งและดำเนินการตามลำดับข้อความต่อไปได้

set_client_name(name)
เปลี่ยนชื่อลูกค้า ส่งชื่อลูกค้าเป็นสตริงในเครื่องหมายคำพูดคู่ คุณยังสามารถใช้ตัวแปรที่มีชื่อลูกค้าได้ เช่น: set_client_name("John Smith")

get_bind_clients()
ฟังก์ชันที่ไม่มีพารามิเตอร์ซึ่งคืนค่าอาร์เรย์ของ ID ลูกค้าที่เชื่อมโยงกับลูกค้าปัจจุบัน

get_current_pipline_id()
ฟังก์ชันที่ไม่มีพารามิเตอร์ซึ่งคืนค่า ID ช่องทางที่ลูกค้าอยู่ในปัจจุบัน

หากดีลของลูกค้าอยู่ในขั้นตอน "unprocessed" จะคืนค่า None

การทำงานกับงาน

ฟังก์ชันที่ทำงานกับงานจะคืนค่าสถานะการดำเนินการเป็น True หรือ ID งานเมื่อสำเร็จ ในกรณีที่ล้มเหลว จะคืนค่า False หรือ None

MaviBot ใช้รูปแบบวันที่ "dd.mm.yyyy" และรูปแบบเวลา "HH:MM"

create_task() | update_task() | done_task() | delete_task()

create_task(email, name, date_srok, description, time_srok) – สร้างงาน

พารามิเตอร์:\ ! email - อีเมลผู้รับผิดชอบ\ ! name - ชื่องาน\ ! date_srok - วันที่ครบกำหนด, วันที่\ ! description - คำอธิบายงาน
time_srok - เวลาครบกำหนด, เวลา

update_task(task_id,email, name, date_srok, description, time_srok) - อัปเดตงาน

พารามิเตอร์:\ ! task_id- ID งาน\ ! email - อีเมลผู้รับผิดชอบ\ ! name - ชื่องาน\ ! date_srok - วันที่ครบกำหนด, วันที่\ ! description - คำอธิบายงาน
time_srok - เวลาครบกำหนด, เวลา

done_task(task_id)- ทำเครื่องหมายงานว่าเสร็จสมบูรณ์

พารามิเตอร์:\ ! task_id- ID งาน

delete_task(task_id) – ลบงาน

พารามิเตอร์:\ ! task_id- ID งาน

กำหนดผู้ใช้ที่รับผิดชอบ

assign_order_to_user(email, order_id) — กำหนดผู้ใช้ที่รับผิดชอบให้กับดีล

  • email — อีเมลของพนักงานที่จะถูกกำหนดเป็นผู้รับผิดชอบ จำเป็น
  • order_id — ID ของดีลที่จะกำหนดพนักงานให้ หากไม่ระบุ จะใช้ดีลปัจจุบัน ไม่บังคับ

รับอีเมลของผู้ใช้ที่รับผิดชอบ

get_order_operator(order_id) — รับอีเมลของผู้ใช้ที่รับผิดชอบสำหรับดีล

  • order_id — ID ของดีลที่จะดึงข้อมูลผู้ใช้ที่รับผิดชอบ หากไม่ระบุ จะใช้ดีลปัจจุบัน ไม่บังคับ

มาสร้างงานสำหรับผู้ปฏิบัติงานกัน:

อัปเดตวันที่ครบกำหนดและคำอธิบาย

ทำเครื่องหมายงานว่าเสร็จสมบูรณ์

การลบงาน

task_id=create_task('[email protected]', 'Test', '22.01.2023', 'test task', '08:00') status=delete_task(task_id)

การทำงานกับดีล

get_order_id() | create_order() | set_order_name() | set_order_budget() | get_active_orders_ids() | get_success_orders_ids() | get_fail_orders_ids() | get_order_var() | get_order_vars() | set_order_var() | set_order_vars() | move_order_to_next_state() | set_order_status_success() | set_order_status_fail(order_id)| get_state_id() | change_state() | get_order_id_by_var_value() | latest_order_datetime() | count_client_orders(), get_count_orders() | delete_order(order_id) |

การดึง ID ดีลปัจจุบัน

get_order_id() - คืนค่าสถานะดีล

การสร้างดีลใหม่

create_order(name, budget, description, client_name, phone, email, state_id)
ดีลที่ใช้งานอยู่ในปัจจุบันในไปป์ไลน์ พร้อมด้วยตัวแปร จะพร้อมใช้งานเฉพาะในฟังก์ชันที่เกี่ยวข้องกับดีลและใน CRM เท่านั้น

พารามิเตอร์ฟังก์ชัน: \ ! name - (ไม่บังคับ) ชื่อดีล หากไม่ระบุ ฟังก์ชันจะใช้กับดีลที่ใช้งานอยู่ปัจจุบันของลูกค้า

! budget - (ไม่บังคับ) มูลค่าดีล หากไม่ระบุ จะใช้กับดีลที่ใช้งานอยู่ปัจจุบัน
หาก budget ไม่ใช่ตัวเลข ฟังก์ชันจะคืนค่า: budget must be a number

description - (ไม่บังคับ) คำอธิบายดีล

พารามิเตอร์เพิ่มเติมสำหรับการสร้างลูกค้า:

client_name - (ไม่บังคับ) สตริง ชื่อของลูกค้าใหม่

phone - (ไม่บังคับ) สตริง หมายเลขโทรศัพท์ของลูกค้าใหม่

email - (ไม่บังคับ) สตริง ที่อยู่อีเมลของลูกค้าใหม่

ในการสร้างลูกค้า ต้องระบุอย่างน้อยโทรศัพท์หรืออีเมล หากระบุโทรศัพท์และไม่มีลูกค้าที่มีโทรศัพท์นี้อยู่ในโปรเจกต์ จะสร้างลูกค้าใหม่

หากระบุอีเมลโดยไม่มีโทรศัพท์และไม่มีลูกค้าที่มีอีเมลนี้อยู่ จะสร้างลูกค้าใหม่

พารามิเตอร์เพิ่มเติม:

state_id - ตัวเลข อนุญาตให้ตั้งค่าสถานะเริ่มต้นของดีลเมื่อสร้าง

ตั้งค่าหรืออัปเดตชื่อดีล

set_order_name(name, order_id)

name - ❗จำเป็น, สตริง; ชื่อดีล

order_id - (ไม่บังคับ) ID ดีล หากไม่ระบุ การเปลี่ยนแปลงจะใช้กับดีลที่ใช้งานอยู่ปัจจุบันของลูกค้า

ตั้งค่าหรืออัปเดตงบประมาณดีล

set_order_budget(budget, order_id)

budget -❗จำเป็น, ตัวเลข; มูลค่าดีล

order_id - (ไม่บังคับ) ID ดีล หากไม่ระบุ จะใช้กับดีลที่ใช้งานอยู่ปัจจุบันของลูกค้า

หากต้องการใช้ order_id อย่างถูกต้อง:

  1. คุณสามารถระบุด้วยตนเอง — รับ ID ดีลและส่งเป็นพารามิเตอร์ฟังก์ชันหากคุณต้องการกำหนดเป้าหมายดีลเฉพาะ

  1. ดึงข้อมูลโดยใช้ฟังก์ชัน get_order_id() เนื่องจากตัวแปร order_id ในตัวจะคืนค่าในรูปแบบ {client_id}-{order_id} ซึ่งอาจทำให้เกิดพฤติกรรมที่ไม่ถูกต้อง

การดึงรายการดีล
((ไม่รวมดีลที่เก็บถาวร สำเร็จ หรือล้มเหลว))

get_active_orders_ids()

รับรายการ ID ดีลที่สำเร็จ

get_success_orders_ids()

รับรายการ ID ดีลที่ล้มเหลว

get_fail_orders_ids()

การดึงค่าของตัวแปรดีล

get_order_var(order_id, variable)

พารามิเตอร์:

! order_id - ID ดีล

! variable - ชื่อตัวแปรที่คุณต้องการดึงค่า

การดึงข้อมูลดีล

get_order_vars(order_id, names)

พารามิเตอร์:

! order_id - ID ดีล

names - อาร์เรย์ของชื่อตัวแปรที่จะดึง หากละเว้น ฟังก์ชันจะคืนค่าตัวแปรทั้งหมดสำหรับดีลที่ระบุ

ฟังก์ชันคืนค่าพจนานุกรมที่มีตัวแปรที่ระบุในอาร์เรย์ names สำหรับดีลที่ระบุโดย order_id หากไม่ระบุ names จะคืนค่าพจนานุกรมที่มีตัวแปรทั้งหมดของดีลที่ระบุ

การเพิ่มตัวแปรดีล

set_order_var(order_id, variable, value)

พารามิเตอร์:

! order_id - ID ดีล

! variable - ชื่อของตัวแปรที่จะเพิ่มหรืออัปเดตในดีล

หากคุณต้องการเปลี่ยนพารามิเตอร์ดีล "name" หรือ "description" ให้ใช้ชื่อตัวแปร "name" หรือ "description" ตามลำดับ

! value - ค่าตัวแปร

การเพิ่มตัวแปรดีลหลายตัว

set_order_vars(order_id, variables_dict)

พารามิเตอร์:

! order_id - ID ดีล

! variables_dict - พจนานุกรมของตัวแปร

การย้ายไปยังสถานะไปป์ไลน์ถัดไป

move_order_to_next_state(order_id)

พารามิเตอร์:
order_id - ID ดีล หากไม่ระบุ ดีลที่ใช้งานอยู่ปัจจุบันจะถูกย้าย
ลำดับของสถานะดีลถูกกำหนดตามลำดับที่ตั้งค่าใน MavibotCRM

การดึงขั้นตอนช่องทางใน MavibotCRM

get_state_id(client_id, order_id)
คุณยังสามารถคัดลอก ID สถานะไปป์ไลน์ได้โดยตรงจาก "State settings"

พารามิเตอร์:

order_id - ID ดีลของลูกค้า

คุณสามารถเรียกใช้ฟังก์ชันโดยมีหรือไม่มีพารามิเตอร์ order_id หากละเว้น order_id ฟังก์ชันจะคืนค่า ID สถานะไปป์ไลน์สำหรับดีลที่ใช้งานอยู่ปัจจุบัน

สำหรับการใช้งาน order_id อย่างถูกต้อง:

  1. คุณสามารถระบุด้วยตนเองโดยรับ ID ดีลและส่งเป็นพารามิเตอร์ฟังก์ชันเมื่อคุณต้องการกำหนดเป้าหมายดีลเฉพาะ
  2. ดึงข้อมูลโดยใช้ฟังก์ชัน get_order_id() เนื่องจากตัวแปร order_id ในตัวจะคืนค่าในรูปแบบ {client_id}-{order_id} ซึ่งอาจทำให้เกิดพฤติกรรมที่ไม่ถูกต้อง

การย้ายลีดผ่านช่องทาง MavibotCRM ตาม ID สถานะ

change_state(state_id, order_id)

พารามิเตอร์:\ ! state_id - ID สถานะช่องทาง
order_id ( ไม่บังคับ) - ID ดีลที่จะย้ายผ่านไปป์ไลน์ หากละเว้น ดีลที่ใช้งานอยู่ปัจจุบันจะถูกย้าย

การรับ ID ดีลตามชื่อตัวแปรและค่า

get_order_id_by_var_value(var_name, var_value, client_id)

พารามิเตอร์:\ ! var_name - ชื่อตัวแปร\ ! var_value - ค่าตัวแปร;
client_id - (ไม่บังคับ) ID ดีลของลูกค้า; ค่าเริ่มต้นคือ ID ลูกค้าในบอท

การรับวันที่และเวลาของดีลล่าสุด

latest_order_datetime(client_id, dt_fmt)

พารามิเตอร์:
client_id - (ไม่บังคับ) ID ดีลของลูกค้า; ค่าเริ่มต้นคือ ID ลูกค้าในบอท;
df_fmt - (ไม่บังคับ) รูปแบบสำหรับวันที่และเวลาที่ส่งคืน; ค่าเริ่มต้นคือ "%d.%m.%y %H:%M"

การรับจำนวนดีลของลูกค้า

count_client_orders(client_id, state_id, get_all, active)

พารามิเตอร์:
client_id - (ไม่บังคับ) ID ลูกค้าของดีล; ค่าเริ่มต้นคือ ID ลูกค้าในบอท;
state_id - (ไม่บังคับ) ID สถานะดีลในไปป์ไลน์;
get_all - (ไม่บังคับ) แฟล็กตัวกรองสำหรับพารามิเตอร์ active; ค่าเริ่มต้นคือ 1 (ปิดการกรองตาม active);
active - ใช้เมื่อ get_all เป็น 0 เท่านั้น; กรองดีลที่ใช้งานอยู่; ค่าเริ่มต้นคือ 1 (คืนค่าเฉพาะดีลที่ใช้งานอยู่);

รับจำนวนดีลในสถานะดีลเฉพาะ

get_count_orders(id) - คืนค่าจำนวนดีลที่อยู่ในสถานะไปป์ไลน์เฉพาะตาม ID สถานะ

ฟังก์ชันรับพารามิเตอร์เดียว:

! id - ID สถานะดีล

ตัวอย่างการใช้งานฟังก์ชัน:

สามารถค้นหา ID ขั้นตอนได้ในการตั้งค่า

ถัดไป คุณต้องป้อนฟังก์ชันในเครื่องคิดเลขดังนี้:

เมื่อทดสอบบอท การตอบสนองของบอทจะประกอบด้วยจำนวนดีลในสถานะที่ระบุโดยค่าที่ส่งไปยังฟังก์ชัน

การลบดีล

delete_order(order_id) — ลบดีลใน MaviBotCRM

order_id - (ไม่บังคับ) ID ดีลที่จะลบ หากละเว้น ดีลล่าสุดจะถูกลบ

ฟังก์ชันทั้งหมดใช้งานง่าย

ตัวอย่างเช่น มาสร้างดีลใหม่และส่งหมายเลขให้ลูกค้ากัน:

คุณสามารถรับ ID ดีลที่ใช้งานอยู่ปัจจุบันของลูกค้าได้โดยใช้ฟังก์ชัน get_order_id() หรือดึงรายการดีลทั้งหมดของลูกค้าโดยใช้ get_active_orders_ids()

การตั้งค่าแท็กดีลที่สำเร็จ

set_order_status_success()

คำอธิบาย

set_order_status_success(order_id)

พารามิเตอร์:

order_id - ID ดีล หากไม่ระบุพารามิเตอร์ แท็กจะถูกตั้งค่าสำหรับดีลที่ใช้งานอยู่ปัจจุบัน

การตั้งค่าแท็กดีลที่ล้มเหลว

set_order_status_fail()

คำอธิบาย

set_order_status_fail(order_id)

พารามิเตอร์:

order_id - ID ดีล หากไม่ระบุพารามิเตอร์ แท็กจะถูกตั้งค่าสำหรับดีลที่ใช้งานอยู่ปัจจุบัน

การตั้งค่าแท็กดีลที่เก็บถาวร

set_order_status_archive()

คำอธิบาย

set_order_status_archive(order_id)

พารามิเตอร์:

order_id - ID ดีล หากไม่ระบุพารามิเตอร์ แท็กจะถูกตั้งค่าสำหรับดีลที่ใช้งานอยู่ปัจจุบัน

ตัวอย่าง

/*Archive the current active deal*/

res_arh = set_order_status_archive()