Müşteriler ve CRM ile çalışma
Müşterilerle çalışma
AÇIKLAMA:
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()
Açıklama
was_in_state(message_id) bir müşterinin seçilen durumda (blokta) olup olmadığını kontrol eder. Blok numarasını editörden 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 geçmişse, işlev 9999 değerini döndürür.
serbest_client() sorumlu operatörü atamadan çıkarır. Örnek: free_client()
assign_to_user(email, only_active) bir diyaloğu bir operatöre atar, burada:
email - bir dize parametresi (isteğe bağlı). Yalnızca e-posta sağlanırsa, bir diyalog operatörün mevcut durumundan bağımsız olarak belirtilen operatöre atanır.
only_active - True veya False (isteğe bağlı parametre). True olarak ayarlanırsa, bir diyalog yalnızca operatör şu anda görevdeyse belirtilen operatöre atanır.
Örnekler:
assign_to_user() - şu anda görevde olan rastgele bir operatöre bir diyalog atar
assign_to_user('operatörün e-postası') - diyalogu operatörün durumundan bağımsız olarak atar
assign_to_user('operatörün e-postası', True) - diyalogu yalnızca şu anda görevde olmaları halinde belirtilen operatöre atar
distribute_client()
otomatik dağıtım ayarlarına göre diyaloğu operatöre atar.
Örnek: distribute_client()
get_operator() sorumlu operatörün e-postasını alır
Örnek: get_operator()
Görevleri sorumlu operatöre atamak veya onun mevcut 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östermek için kullanılabilir. Sorumlu operatör yoksa None döndürür. Operatörün atanmış bir adı yoksa, e-postasını döndürür.
delete_pended_messages() geçerli müşteri için planlanmış tüm mesajları siler. Varsayılan olarak ayrıca "İptal etme" okları tarafından oluşturulan mesajları da siler. Mesajları "İptal etme" oklardan 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 diyalog +1 okunmamış mesaj göstergesi gösterir.


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

clear_unread() bir diyaloğu okundu olarak işaretler
unsubscribe() Bot mesajlarından aboneliği iptal etmek için işlev. Bir örnek bu makalede verilmiştir. bu makalede. Aboneliği iptal edilen müşteri için bir simge görünür — çarpı işaretli kırmızı bir mesaj.


Önemli!
Calculator ilk olarak çalıştırılır, ve ancak ondan sonra mesaj gönderilir.
Bu nedenle, aşağıdaki gibi bir son mesaj göndermeniz gerekiyorsa "Bot aboneliğiniz iptal edildi" veya "Engellendiniz", iki adımlı bir süreç kullanmalısınız:
Önce, son mesajı içeren bir blok gönderin. Ardından, boş bir blok gönderin
abonelikten çıkma/bloklama işlevini içeren. İkisini tek bir blokta yapmaya çalışırsanız, mesaj gönderilmez.
Eğer

işlevini mesajınızla aynı bloğun Calculator'ına yerleştirirseniz, mesaj unsubscribe() gönderilmeyecek , ve sistem bir hata görüntüleyecektir.gönderilmeyecek

block_client() müşterinin bota mesaj göndermesini engeller. Bot tarafından daha önce planlanan mesajlar da iptal edilir. Ancak yine de bölümdeki diyalog üzerinden müşteriye doğrudan mesaj göndermek mümkün olacaktır "Müşteriler" bölümünde

Engellenen müşteride bir işaret olur — kırmızı bir kilit simgesi.

unblock_client() müşterinin engelini kaldırır. Müşteri botla yeniden etkileşime geçebilir ve mesaj zincirlerinde ilerleyebilir.
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şlevdir.
get_current_pipline_id() müşterinin şu anda içinde bulunduğu huni kimliğini döndüren parametresiz bir işlevdir.
Müşterinin anlaşması "işlenmemiş" aşamasındaysa, None döndürür.
Görevlerle çalışma
Görevlerle çalışan işlevler, başarı durumunda işlem durumunu True veya görev kimliğini döndürür. Başarısızlık durumunda False veya None döndürürler. MaviBot tarih formatı olarak
MaviBot tarih formatı olarak "dd.mm.yyyy" ve saat formatı olarak "HH:MM".
create_task() | update_task() | done_task() | delete_task()
Açıklama
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 - vade tarihi, tarih ! description - görev açıklaması time_srok - vade 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 - vade tarihi, tarih ! description - görev açıklaması time_srok - vade saati, saat
done_task(task_id)- 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 kullanıcı atama
assign_order_to_user(email, order_id) — bir anlaşmaya sorumlu 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ı al
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ısı alınacak anlaşmanın kimliği. Belirtilmezse geçerli anlaşma kullanılır. İsteğe bağlı.
Örnekler
Operatör için bir görev oluşturalım:

Vade tarihini ve açıklamayı güncelleyin.

Görevi tamamlandı olarak işaretleyin.

Görev silme

Kopyalamak için kod örneği
task_id=create_task('admin@mavibot.ai', 'Test', '22.01.2023', 'test görev', '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) |
Açıklama
Geçerli anlaşma kimliğini alma
get_order_id() - anlaşmanın durumunu döndürür.
Yeni bir anlaşma oluşturma
create_order(name, budget, description, client_name, phone, email, state_id) Huni içindeki şu anda etkin olan anlaşma ve değişkenleri yalnızca anlaşma ile ilgili işlevlerde ve CRM'de kullanılabilir. İşlev parametreleri: ! name - (isteğe bağlı), anlaşma adı. Sağlanmazsa işlev müşterinin geçerli etkin anlaşmasına uygulanır.
! bütçe - (isteğe bağlı) anlaşma değeri. Sağlanmazsa geçerli etkin anlaşmaya uygulanır. Eğer bütçe 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şturma 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ır ve projede bu telefona sahip bir müşteri yoksa, yeni bir müşteri oluşturulur.
Telefon olmadan e-posta sağlanır ve bu e-postaya sahip bir müşteri yoksa, yeni bir müşteri oluşturulur.
Ek parametre:
state_id - sayı, oluşturma sırasında anlaşmanın başlangıç durumunu ayarlamaya olanak tanır
Anlaşma adını ayarla veya güncelle
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 geçerli etkin anlaşmasına uygulanır.
Anlaşma bütçesini ayarla veya güncelle
set_order_budget(budget, order_id)
bütçe -❗zorunlu, sayı; anlaşma değeri
order_id - (isteğe bağlı) anlaşma kimliği. Sağlanmazsa müşterinin geçerli etkin anlaşmasına uygulanır.
order_id'yi doğru kullanmak için:
Bunu manuel olarak belirtebilirsiniz — belirli bir anlaşmayı hedeflemek istiyorsanız anlaşma kimliğini alın ve işlev parametresi olarak iletin.


Bunu 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 yanlış 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 alın
get_success_orders_ids()
Başarısız anlaşma kimliklerinin listesini alın
get_fail_orders_ids()
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ından oluşan bir dizi. Atlanırsa işlev belirtilen anlaşmanın tüm değişkenlerini döndürür
İşlev, names dizide listelenen değişkenleri içeren bir sözlük döndürür order_id. Eğer 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şmada 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 fazla anlaşma değişkeni ekleme
set_order_vars(order_id, variables_dict)
Parametreler:
! order_id - anlaşma kimliği.
! variables_dict - değişkenlerden oluşan bir sözlük
Bir sonraki huni durumuna geçme
move_order_to_next_state(order_id)
Parametreler: order_id - anlaşma kimliği. Belirtilmezse geçerli etkin anlaşma taşınır. Anlaşma durumlarının sırası MavibotCRM'de ayarlanan sıraya göre belirlenir.
MavibotCRM'de huni aşamasını alma
get_state_id(client_id, order_id) Huni durum kimliğini doğrudan şuradan da kopyalayabilirsiniz "Durum ayarları".
Parametreler:
order_id - müşteri anlaşma kimliği
İşlevi parametreyle veya parametresiz çağırabilirsiniz. order_id atlanırsa, işlev geçerli etkin anlaşma için huni durum kimliğini döndürür. order_id işlevi parametreyle veya parametresiz çağırabilirsiniz. order_id atlanırsa, işlev geçerli etkin anlaşma için huni durum kimliğini döndürür.
order_id'nin doğru kullanımı için:
Belirli bir anlaşmayı hedeflemek istediğinizde, anlaşma kimliğini alıp işlev parametresi olarak ileterek bunu manuel olarak belirtebilirsiniz.
Bunu 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 yanlış davranışa neden olabilir.
Bir potansiyel müşteriyi durum kimliğine göre MavibotCRM hunisinde ilerletme
change_state(state_id, order_id)
Parametreler: ! state_id - huni durum kimliği order_id ( isteğe bağlı) - huni boyunca taşınacak anlaşma kimliği. Atlanırsa geçerli etkin anlaşma taşınır.
Değişken adı ve değere göre anlaşma kimliğini 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ğini kullanır
En son anlaşmanın tarih 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ğini kullanır; 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şmanın müşteri kimliği; varsayılan olarak bottaki müşteri kimliğini kullanır; state_id - (isteğe bağlı) hunideki anlaşma durum kimliği; get_all - (isteğe bağlı) etkin parametre için filtre bayrağı; varsayılan 1'dir (etkinliğe göre filtreleme devre dışıdır); active - yalnızca get_all 0 olduğunda kullanılır; etkin anlaşmaları filtreler; varsayılan 1'dir (yalnızca etkin anlaşmaları döndürür);
Belirli bir anlaşma durumundaki anlaşma sayısını alın
get_count_orders(id) - şu anda belirli bir huni durumunda bulunan anlaşma sayısını durum kimliğine göre döndürür.
İşlev tek bir parametre alır:
! id - anlaşma durum kimliği.
İşlev kullanım örneği:


Aşama kimliği ayarlarda bulunabilir.
Ardından, işlevi Calculator'a şu şekilde girmeniz gerekir:

Botu test ederken, botun yanıtı işleve geçirilen değerin belirttiği durumdaki anlaşma sayısından oluşacaktır.
Bir anlaşmayı silme
delete_order(order_id) — içinde bir anlaşmayı siler MaviBotCRM.
order_id - (isteğe bağlı) silinecek anlaşma kimliği. Atlanırsa en son anlaşma silinir.
Örnekler
Tüm işlevler kullanımı kolaydır. Örneğin, yeni bir anlaşma oluşturalım ve numarasını müşteriye gönderelim:


get_order_id() işlevini kullanarak müşterinin geçerli etkin anlaşma kimliğini alabilir veya get_active_orders_ids() kullanarak müşterinin anlaşmalarının tam listesini alabilirsiniz.




Başarılı anlaşma etiketi ayarlama
set_order_status_success()
set_order_status_success(order_id)
Parametreler:
order_id - anlaşma kimliği. Parametre belirtilmezse etiket geçerli etkin anlaşma için ayarlanır.
Başarısız anlaşma etiketi ayarlama
set_order_status_fail()
set_order_status_fail(order_id)
Parametreler:
order_id - anlaşma kimliği. Parametre belirtilmezse etiket geçerli etkin anlaşma için ayarlanır.
Arşivlenmiş anlaşma etiketi ayarlama
set_order_status_archive()
set_order_status_archive(order_id)
Parametreler:
order_id - anlaşma kimliği. Parametre belirtilmezse etiket geçerli etkin anlaşma için ayarlanır.
/*Geçerli etkin anlaşmayı arşivle*/
res_arh = set_order_status_archive()
Son güncelleme