Müşterilerle Çalışma

LEJANT:

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)
Bir müşterinin seçilen durumda (blokta) olup olmadığını kontrol eder. Blok numarasını düzenleyiciden alabilirsiniz.

days_from_last_message()
Müşterinin son mesajından bu yana geçen gün sayısını belirler. 24 saatlik pencere içinde olup olmadığını kontrol etmek için oluşturulmuştur.

Örnek:
d = days_from_last_message()

Müşterinin son mesajından bu yana 30 günden fazla zaman geçmişse, fonksiyon 9999 değerini döndürür.


free***_***client()
Sorumlu operatörün atamasını kaldırır.
Örnek: free_client()

assign_to_user(email, only_active)
Bir diyaloğu operatöre atar, burada:

  1. email - bir dize parametresi (isteğe bağlı). Yalnızca e-posta sağlanırsa, diyalog, operatörün mevcut durumuna bakılmaksızın belirtilen operatöre atanır.
  2. only_active - True veya False (isteğe bağlı parametre). True olarak ayarlanırsa, diyalog yalnızca operatör o anda vardiyadaysa belirtilen operatöre atanır.

Örnekler:

assign_to_user() - diyaloğu o anda vardiyada olan rastgele bir operatöre atar

assign_to_user('operatörün e-postası') - diyaloğu, durumuna bakılmaksızın operatöre atar

assign_to_user('operatörün e-postası', True) - diyaloğu yalnızca operatör o anda vardiyadaysa belirtilen operatöre atar

distribute_client()
Bir diyaloğu, otomatik dağıtım ayarlarına göre operatöre atar.
Örnek: distribute_client()

get_operator()
Sorumlu operatörün e-postasını alır

Örnek: get_operator()

Sorumlu operatöre görev atamak veya var olup olmadığını kontrol etmek için kullanılabilir. Sorumlu operatör yoksa None döndürür.

get_operator_name()
Sorumlu operatörün adını alır

Örnek: get_operator_name()

Bir müşteriye bilgi görüntülemek için kullanılabilir. Sorumlu operatör yoksa None döndürür. Operatöre bir ad atanmamışsa, e-postasını döndürür.

delete_pended_messages()
Geçerli müşteri için tüm zamanlanmış mesajları siler. Varsayılan olarak, "İptal etme" okları tarafından oluşturulan mesajları da siler. "İptal etme" oklarından gelen mesajları korumak için False parametresini iletin: delete_pended_messages(False).

set_note(comment)
Bir diyaloğa yorum ekler.

Örnek: set_note('Yeniden Yap')

add_unread(count)
Bir müşteriyle olan diyaloğu okunmamış olarak işaretler

count parametresi atlanabilir veya 1 olarak ayarlanabilir; bu durumda müşteriyle olan diyalogda +1 okunmamış mesaj göstergesi görünür.

Başka bir sayı iletilirse, "Müşteriler" bölümünde bir müşteriden gelen okunmamış mesaj sayısı olarak görüntülenir.

clear_unread()
Bir diyaloğu okunmuş olarak işaretler

unsubscribe()
Bot mesajlarından aboneliği iptal etme işlevi. Bir örnek bu makalede verilmiştir.
Aboneliği iptal edilen müşteri için bir sembol görünecektir — üzerinde çarpı işareti olan kırmızı bir mesaj.

Önemli!

Hesap Makinesi önce çalıştırılır ve ancak ondan sonra mesaj gönderilir.

Bu nedenle, "Bot aboneliğiniz iptal edildi" veya "Engellendiniz" gibi bir son mesaj göndermeniz gerekiyorsa, iki adımlı bir süreç kullanmalısınız:

  1. Önce, son mesajı içeren bir blok gönderin.
  2. Ardından, abonelik iptali/engelleme işlevini içeren boş bir blok gönderin.

Her ikisini de tek bir blokta yapmaya çalışırsanız, mesaj gönderilmez.

unsubscribe() işlevini mesajınızla aynı bloğun hesap makinesine yerleştirirseniz, mesaj gönderilmez ve sistem bir hata görüntüler.

block_client()
Bir müşterinin bota mesaj göndermesini engeller. Daha önce bot tarafından zamanlanmış mesajlar da iptal edilir. Ancak, "Müşteriler" bölümündeki diyalogdan müşteriye doğrudan mesaj göndermek yine de mümkün olacaktır.

Engellenen bir müşterinin bir işareti olacaktır — kırmızı bir kilit simgesi.

unblock_client()
Müşterinin engelini kaldırır. Müşteri, botla tekrar etkileşime girebilecek ve mesaj zincirlerinde ilerleyebilecektir.

set_client_name(name)
Müşterinin adını değiştirir. Müşterinin adını çift tırnak içinde bir dize olarak iletin. Ayrıca müşterinin adını içeren bir değişken de kullanabilirsiniz, örneğin: set_client_name("John Smith")

get_bind_clients()
Geçerli müşteriye bağlı müşteri kimliklerinden oluşan bir dizi döndüren parametresiz bir işlev.

get_current_pipline_id()
Müşterinin şu anda bulunduğu huni kimliğini döndüren parametresiz bir işlev.

Müşterinin anlaşması "işlenmemiş" aşamadaysa, None döndürür.

Görevlerle Çalışma

Görevlerle çalışan işlevler, işlem durumunu Başarı durumunda True veya görev kimliği olarak döndürür. Başarısızlık durumunda False veya None döndürürler.

MaviBot, "gg.aa.yyyy" tarih biçimini ve "SS:DD" saat biçimini kullanır.

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

create_task(email, name, date_srok, description, time_srok) – bir görev oluşturur

Parametreler:\ ! email - sorumlu kişinin e-postası\ ! name - görev adı\ ! date_srok - son teslim tarihi, tarih\ ! description - görev açıklaması
time_srok - son teslim saati, saat

update_task(task_id,email, name, date_srok, description, time_srok) - bir görevi günceller

Parametreler:\ ! task_id- görev kimliği\ ! email - sorumlu kişinin e-postası\ ! name - görev adı\ ! date_srok - son teslim tarihi, tarih\ ! description - görev açıklaması
time_srok - son teslim saati, saat

done_task(task_id)- bir görevi tamamlandı olarak işaretler

Parametreler:\ ! task_id- görev kimliği

delete_task(task_id) – bir görevi siler

Parametreler:\ ! task_id- görev kimliği

Sorumlu bir kullanıcı atama

assign_order_to_user(email, order_id) — bir anlaşmaya sorumlu bir kullanıcı atar

  • email — sorumlu olarak atanacak çalışanın e-postası. Zorunlu.
  • order_id — çalışanın atanacağı anlaşmanın kimliği. Belirtilmezse, geçerli anlaşma kullanılır. İsteğe bağlı.

Sorumlu kullanıcının e-postasını alma

get_order_operator(order_id) — bir anlaşma için sorumlu kullanıcının e-postasını alır

  • order_id — sorumlu kullanıcının alınacağı anlaşmanın kimliği. Belirtilmezse, geçerli anlaşma kullanılır. İsteğe bağlı.

Operatör için bir görev oluşturalım:

Son teslim tarihini ve açıklamayı güncelleyin.

Görevi tamamlandı olarak işaretleyin.

Görev silme

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

Anlaşmalarla Çalışma

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) |

Geçerli anlaşma kimliğini alma

get_order_id() - anlaşma durumunu döndürür.

Yeni bir anlaşma oluşturma

create_order(name, budget, description, client_name, phone, email, state_id)
Hunideki mevcut aktif anlaşma ve değişkenleri, yalnızca anlaşmayla ilgili işlevlerde ve CRM'de kullanılabilir olacaktır.

İşlev parametreleri: \ ! name - (isteğe bağlı), anlaşma adı. Sağlanmazsa, işlev müşterinin mevcut aktif anlaşmasına uygulanır.

! budget - (isteğe bağlı) anlaşma değeri. Sağlanmazsa, mevcut aktif anlaşmaya uygulanır.
budget bir sayı değilse, işlev şunu döndürür: bütçe bir sayı olmalıdır

description - (isteğe bağlı), anlaşma açıklaması.

Müşteri oluşturmak için ek parametreler:

client_name - (isteğe bağlı) dize, yeni bir müşterinin adı

phone - (isteğe bağlı) dize, yeni bir müşterinin telefon numarası.

email - (isteğe bağlı) dize, yeni bir müşterinin e-posta adresi.

Bir müşteri oluşturmak için en az telefon veya e-posta sağlanmalıdır. Telefon sağlanırsa ve projede bu telefona sahip bir müşteri yoksa, yeni bir tane oluşturulur.

E-posta telefon olmadan sağlanırsa ve bu e-postaya sahip bir müşteri yoksa, yeni bir tane oluşturulur.

Ek parametre:

state_id - sayı, oluşturma sırasında anlaşmanın başlangıç durumunu ayarlamaya izin verir

Anlaşma adını ayarlama veya güncelleme

set_order_name(name, order_id)

name - ❗zorunlu, dize; anlaşma adı

order_id - (isteğe bağlı) anlaşma kimliği. Sağlanmazsa, değişiklik müşterinin mevcut aktif anlaşmasına uygulanır.

Anlaşma bütçesini ayarlama veya güncelleme

set_order_budget(budget, order_id)

budget -❗zorunlu, sayı; anlaşma değeri

order_id - (isteğe bağlı) anlaşma kimliği. Sağlanmazsa, müşterinin mevcut aktif anlaşmasına uygulanır.

order_id'yi doğru kullanmak için:

  1. Manuel olarak belirtebilirsiniz — anlaşma kimliğini alın ve belirli bir anlaşmayı hedeflemek istiyorsanız işlev parametresi olarak iletin.

  1. get_order_id() işlevini kullanarak alın, çünkü yerleşik order_id değişkeni değeri {client_id}-{order_id} biçiminde döndürür ve bu da hatalı davranışa neden olabilir.

Anlaşma listelerini alma
((arşivlenmiş, başarılı veya başarısız anlaşmalar hariç))

get_active_orders_ids()

Başarılı anlaşma kimliklerinin listesini alma

get_success_orders_ids()

Başarısız anlaşma kimliklerinin listesini alma

get_fail_orders_ids()

Bir anlaşma değişkeninin değerini alma

get_order_var(order_id, variable)

Parametreler:

! order_id - anlaşma kimliği

! variable - değerini almak istediğiniz değişken adı

Anlaşma verilerini alma

get_order_vars(order_id, names)

Parametreler:

! order_id - anlaşma kimliği

names - alınacak değişken adlarının bir dizisi. Atlanırsa, işlev belirtilen anlaşma için tüm değişkenleri döndürür.

İşlev, order_id tarafından tanımlanan anlaşma için names dizisinde listelenen değişkenleri içeren bir sözlük döndürür. names sağlanmazsa, belirtilen anlaşmanın tüm değişkenlerini içeren bir sözlük döndürür.

Bir anlaşma değişkeni ekleme

set_order_var(order_id, variable, value)

Parametreler:

! order_id - anlaşma kimliği

! variable - bir anlaşmaya eklenecek veya güncellenecek değişkenin adı

Anlaşmanın "name" veya "description" parametrelerini değiştirmek istiyorsanız, sırasıyla "name" veya "description" değişken adlarını kullanın.

! value - değişken değeri

Birden çok anlaşma değişkeni ekleme

set_order_vars(order_id, variables_dict)

Parametreler:

! order_id - anlaşma kimliği.

! variables_dict - bir değişken sözlüğü

Bir sonraki huni durumuna geçme

move_order_to_next_state(order_id)

Parametreler:
order_id - anlaşma kimliği. Belirtilmezse, mevcut aktif anlaşma taşınır.
Anlaşma durumlarının sırası, MavibotCRM'de ayarlanan sıraya göre tanımlanır.

MavibotCRM'de huni aşamasını alma

get_state_id(client_id, order_id)
Huni durum kimliğini doğrudan "Durum ayarları" bölümünden de kopyalayabilirsiniz.

Parametreler:

order_id - müşteri anlaşma kimliği

İşlevi order_id parametresiyle veya parametresiz çağırabilirsiniz. order_id atlanırsa, işlev mevcut aktif anlaşma için huni durum kimliğini döndürür.

order_id'nin doğru kullanımı için:

  1. Belirli bir anlaşmayı hedeflemek istediğinizde, anlaşma kimliğini alarak ve işlev parametresi olarak ileterek manuel olarak belirtebilirsiniz.
  2. get_order_id() işlevini kullanarak alın, çünkü yerleşik order_id değişkeni {client_id}-{order_id} biçiminde bir değer döndürür ve bu da hatalı davranışa neden olabilir.

Bir potansiyel müşteriyi durum kimliğine göre MavibotCRM hunisinde taşıma

change_state(state_id, order_id)

Parametreler:\ ! state_id - huni durum kimliği
order_id ( isteğe bağlı) - hunide taşınacak anlaşma kimliği. Atlanırsa, mevcut aktif anlaşma taşınır.

Değişken adına ve değerine göre anlaşma kimliği alma

get_order_id_by_var_value(var_name, var_value, client_id)

Parametreler:\ ! var_name - değişken adı\ ! var_value - değişken değeri;
client_id - (isteğe bağlı) müşteri anlaşma kimliği; varsayılan olarak bottaki müşteri kimliğidir

En son anlaşmanın tarihini ve saatini alma

latest_order_datetime(client_id, dt_fmt)

Parametreler:
client_id - (isteğe bağlı) müşteri anlaşma kimliği; varsayılan olarak bottaki müşteri kimliğidir;
df_fmt - (isteğe bağlı) döndürülen tarih ve saat için biçim; varsayılan "%d.%m.%y %H:%M"

Müşteri anlaşmalarının sayısını alma

count_client_orders(client_id, state_id, get_all, active)

Parametreler:
client_id - (isteğe bağlı) anlaşma müşteri kimliği; varsayılan olarak bottaki müşteri kimliğidir;
state_id - (isteğe bağlı) hunideki anlaşma durum kimliği;
get_all - (isteğe bağlı) active parametresi için filtre bayrağı; varsayılan 1'dir (active'e göre filtreleme devre dışıdır);
active - yalnızca get_all 0 olduğunda kullanılır; aktif anlaşmaları filtreler; varsayılan 1'dir (yalnızca aktif anlaşmaları döndürür);

Belirli bir anlaşma durumundaki anlaşma sayısını alma

get_count_orders(id) - durum kimliğine göre belirli bir huni durumunda bulunan anlaşma sayısını döndürür.

İşlev tek bir parametre alır:

! id - anlaşma durum kimliği.

İşlev kullanımına örnek:

Aşama kimliği ayarlarda bulunabilir.

Ardından, işlevi hesap makinesine aşağıdaki gibi girmeniz gerekir:

Botu test ederken, botun yanıtı, işleve iletilen değer tarafından belirtilen durumdaki anlaşma sayısından oluşacaktır.

Bir anlaşmayı silme

delete_order(order_id) — MaviBotCRM'de bir anlaşmayı siler.

order_id - (isteğe bağlı) silinecek anlaşma kimliği. Atlanırsa, en son anlaşma silinir.

Tüm işlevlerin kullanımı basittir.
Örneğin, yeni bir anlaşma oluşturalım ve numarasını müşteriye gönderelim:

Müşterinin mevcut aktif anlaşma kimliğini get_order_id() işlevini kullanarak veya müşterinin tüm anlaşmalarının tam listesini get_active_orders_ids() kullanarak alabilirsiniz.

Başarılı anlaşma etiketi ayarlama

set_order_status_success()

Açıklama

set_order_status_success(order_id)

Parametreler:

order_id - anlaşma kimliği. Parametre belirtilmezse, etiket mevcut aktif anlaşma için ayarlanır.

Başarısız anlaşma etiketi ayarlama

set_order_status_fail()

Açıklama

set_order_status_fail(order_id)

Parametreler:

order_id - anlaşma kimliği. Parametre belirtilmezse, etiket mevcut aktif anlaşma için ayarlanır.

Arşivlenmiş anlaşma etiketi ayarlama

set_order_status_archive()

Açıklama

set_order_status_archive(order_id)

Parametreler:

order_id - anlaşma kimliği. Parametre belirtilmezse, etiket mevcut aktif anlaşma için ayarlanır.

Örnekler

/*Mevcut aktif anlaşmayı arşivle*/

res_arh = set_order_status_archive()