# Müşteriler ve CRM ile çalışma

## Müşterilerle çalışma

<mark style="color:kırmızı;">**LEJANT:**</mark>

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

<details>

<summary>Açıklama</summary>

**was\_in\_state(message\_id)**\
Bir müşterinin seçili durumda (blok) olup olmadığını kontrol eder. Blok numarasını editörden alabilirsiniz.

<figure><img src="/files/97b89d1e4562e26f09ebc44b90cbe7e10ea87060" alt=""><figcaption><p>Blok editörünün üst satırında blok numarası görüntülenir.</p></figcaption></figure>

**days\_from\_last\_message()**\
Müşterinin son mesajından bu yana geçen gün sayısını belirler. 24 saatlik zaman aralığı içinde olup olmadığını kontrol etmek için oluşturulmuştur.

Örnek: \
`d = days_from_last_message()`

{% hint style="info" %}
Müşterinin son mesajından bu yana 30 günden fazla geçmişse, işlev 9999 değerini döndürür.
{% endhint %}

\
**free*****\_*****client()**\
sorumlu operatörün atamasını kaldırır.&#x20;Örnek: free\_client()

**assign\_to\_user(email, only\_active)**\
bir diyaloğu bir operatöre atar, burada:

1. email - bir string parametre (isteğe bağlı). Yalnızca e-posta verilirse, diyalog operatörün mevcut durumundan bağımsız olarak belirtilen operatöre atanır.&#x20;
2. only\_active - True veya False (isteğe bağlı parametre). True olarak ayarlanırsa, diyalog yalnızca operatör şu anda vardiyadaysa belirtilen operatöre atanır.

Örnekler:

`assign_to_user()` - bir diyaloğu şu anda vardiyada olan rastgele bir operatöre atar&#x20;

`assign_to_user('operatörün e-postası')` - bir diyaloğu durumundan bağımsız olarak operatöre atar

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

**distribute\_client()**\
otomatik dağıtım ayarlarına göre bir diyaloğu operatöre atar. \
Örnek:  `distribute_client()`

**get\_operator**()\
sorumlu operatörün e-postasını alır

Örnek: `get_operator()`&#x20;

Sorumlu operatöre görev atamak veya onun 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()`&#x20;

Bir müşteriye bilgi göstermek için kullanılabilir. Sorumlu operatör yoksa None döndürür. Operatöre bir ad atanmadıysa 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 tarafından oluşturulan mesajları da siler **"İptal etme"** okları. Mesajları **"İptal etme"** oklarından korumak için False parametresini iletin: delete\_pended\_messages(False).

**set\_note(comment)**\
bir diyaloğa yorum ekler.

Örnek: **`set_note`**`('Redo')`

**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.

<div data-with-frame="true"><figure><img src="/files/c6c636bf4a837efe05c2ed738f76a5df8efc567b" alt="" width="563"><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/acc813277999a1bb0a48d688268ba1cba5d44b63" alt="" width="375"><figcaption></figcaption></figure></div>

Başka herhangi bir sayı verilirse, **"Müşteriler"** bölümünde müşteriden gelen okunmamış mesaj sayısı olarak gösterilir.

<div data-with-frame="true"><figure><img src="/files/4d05f3e7e8e89410daa37be4fbce77ace3286bc7" alt="" width="563"><figcaption></figcaption></figure></div>

**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.](/doc/tr/is-e-postalari/bot-aboneliginden-cikma.md)&#x20; Aboneliği iptal edilmiş müşteri için bir simge görünür — üzerinde çarpı olan kırmızı bir mesaj.

<div data-with-frame="true"><figure><img src="/files/e75bdab2c91f77f32c761c1363808eb76e5bff59" alt="" width="563"><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/ed50159b078cf87f96b0d038fc50419ac28de0a2" alt="" width="375"><figcaption></figcaption></figure></div>

{% hint style="info" %}
**Önemli!**

Düğmenin **Hesaplayıcı önce çalıştırılır**, ve ancak ondan sonra mesaj gönderilir.

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

1. **Önce bir blok gönderin** son mesajı içeren.
2. **Ardından boş bir blok gönderin** unsubscribe/block işlevini içeren.

**Bunların ikisini tek bir blokta yapmaya çalışırsanız, mesaj gönderilmeyecektir.**
{% endhint %}

<div data-with-frame="true"><figure><img src="/files/6a9214404b78f4b7318bd3ca589132b4f361f615" alt="" width="563"><figcaption></figcaption></figure></div>

Eğer `unsubscribe()` işlevini mesajınızla aynı bloğun hesaplayıcısına yerleştirirseniz, mesaj **gönderilmeyecektir**, ve sistem bir hata gösterecektir.

<div data-with-frame="true"><figure><img src="/files/fa4ccfc641db3b55ded60ebf754f7738426b138d" alt="" width="563"><figcaption></figcaption></figure></div>

**block\_client()**\
bir müşterinin bot'a mesaj göndermesini engeller. Bot tarafından daha önce planlanan mesajlar da iptal edilir. Ancak yine de","t71":"bölümündeki diyaloğun içinden müşteriye doğrudan mesaj göndermek mümkün olacaktır. **"Müşteriler"** bölüm

<div data-with-frame="true"><figure><img src="/files/0e9ad7b4c5ded919a12b34db91a2d07bccf8b985" alt="" width="563"><figcaption></figcaption></figure></div>

Engellenmiş bir müşterinin üzerinde bir işaret olacaktır — kırmızı bir kilit simgesi.

<div data-with-frame="true"><figure><img src="/files/5ef6c18884979922fda7be345fedaa0ce39177b3" alt="" width="563"><figcaption></figcaption></figure></div>

**unblock\_client()**\
müşterinin engelini kaldırır. Müşteri bot ile tekrar etkileşime girebilir 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 string 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üşteriyle bağlantılı müşteri ID'lerinin bir dizisini döndüren parametresiz bir işlevdir.

**get\_current\_pipline\_id()**\
müşterinin şu anda bulunduğu huni ID'sini döndüren parametresiz bir işlevdir.

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

</details>

## Görevlerle çalışma&#x20;

{% hint style="success" %}
Görevlerle çalışan işlevler işlem durumunu **başarı durumunda True veya görev ID'si olarak döndürür. Başarısızlık durumunda False veya None döndürürler.**
{% endhint %}

{% hint style="info" %}
MaviBot tarih biçimi olarak **"dd.mm.yyyy"** ve saat biçimi olarak **"HH:MM"**.
{% endhint %}

create\_task() | update\_task() | done\_task() | delete\_task()

<details>

<summary>Açıklama</summary>

**create\_task(email, name, date\_srok, description, time\_srok)** – bir görev oluşturur

Parametreler:\ <mark style="color:kırmızı;">**!**</mark>**&#x20;email** - sorumlu kişi e-postası\ <mark style="color:kırmızı;">**!**</mark>**&#x20;name** - görev adı\ <mark style="color:kırmızı;">**!**</mark>**&#x20;date\_srok** - son tarih, tarih\ <mark style="color:kırmızı;">**!**</mark>**&#x20;description** - görev açıklaması\
**time\_srok** - - son saat, saat

**update\_task(task\_id,email, name, date\_srok, description, time\_srok)** - bir görevi günceller

Parametreler:\ <mark style="color:kırmızı;">**!**</mark>**&#x20;task\_id**- görev ID'si\ <mark style="color:kırmızı;">**!**</mark>**&#x20;email** - sorumlu kişi e-postası\ <mark style="color:kırmızı;">**!**</mark>**&#x20;name** - görev adı\ <mark style="color:kırmızı;">**!**</mark>**&#x20;date\_srok** - son tarih, tarih\ <mark style="color:kırmızı;">**!**</mark>**&#x20;description** - görev açıklaması\
**time\_srok** - - son saat, saat

**done\_task(task\_id)**- bir görevi tamamlandı olarak işaretler

Parametreler:\ <mark style="color:kırmızı;">**!**</mark>**&#x20;task\_id**- görev ID'si

**delete\_task(task\_id)** – bir görevi siler

Parametreler:\ <mark style="color:kırmızı;">**!**</mark>**&#x20;task\_id**- görev ID'si

</details>

<details>

<summary>Örnekler</summary>

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

<div data-with-frame="true"><figure><img src="/files/b6e6b7f1e73978760c32a875309b3a8b6d234af0" alt="" width="563"><figcaption></figcaption></figure></div>

Son tarihi ve açıklamayı güncelleyin.

<div data-with-frame="true"><figure><img src="/files/385166ac372a74b27fea89e3691451fb0c0d88e4" alt="" width="563"><figcaption><p>Görev güncelleme</p></figcaption></figure></div>

Görevi tamamlandı olarak işaretleyin.

<div data-with-frame="true"><figure><img src="/files/c3ed130ab886a9eb6ca81b0c0437710054491f7f" alt="" width="563"><figcaption><p>Görevi tamamlandı olarak işaretleme</p></figcaption></figure></div>

Görev silme

<div data-with-frame="true"><figure><img src="/files/3bd3a5a7342df61a8016409a416454e8e56ee1de" alt="" width="563"><figcaption></figcaption></figure></div>

</details>

<details>

<summary>Kopyalama için kod örneği</summary>

`task_id=create_task('admin@mavibot.ai', 'Test', '22.01.2023', 'test görev', '08:00') status=delete_task(task_id)`

</details>

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

<details>

<summary>Açıklama</summary>

<mark style="color:varsayılan;background-color:blue;">**Geçerli anlaşma ID'sini alma**</mark>

**get\_order\_id()** - anlaşma durumunu döndürür.

<mark style="color:varsayılan;background-color:blue;">**Yeni bir anlaşma oluşturma**</mark>

**create\_order(name, budget, description, client\_name, phone, email, state\_id)**\
Boruhattındaki şu anda aktif olan anlaşma ve değişkenleri yalnızca anlaşma ile ilgili işlevlerde ve CRM'de kullanılabilir.\
\
**İşlev parametreleri:** \ <mark style="color:kırmızı;">**!**</mark>**&#x20;name** - (isteğe bağlı), anlaşma adı. Verilmezse, işlev müşterinin mevcut aktif anlaşmasına uygulanır.

<mark style="color:kırmızı;">**!**</mark>**&#x20; budget** - (isteğe bağlı) anlaşma değeri. Verilmezse, mevcut aktif anlaşmaya uygulanır.\
Eğer **budget** bir sayı değilse, işlev şu değeri döndürür: **budget 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ı) string, yeni bir müşterinin adı

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

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

Bir müşteri oluşturmak için en az telefon veya e-posta verilmelidir. Telefon verilmişse ve projede bu telefonla mevcut müşteri yoksa, yeni bir müşteri oluşturulur.

E-posta telefon olmadan verilirse ve bu e-posta ile mevcut 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 izin verir

<mark style="color:varsayılan;background-color:blue;">**Anlaşma adını ayarlama veya güncelleme**</mark>

**set\_order\_name(name, order\_id)**

**name** - ❗zorunlu, string; anlaşma adı

**order\_id** - (isteğe bağlı) anlaşma ID'si. Verilmezse, değişiklik müşterinin mevcut aktif anlaşmasına uygulanır.

<mark style="color:varsayılan;background-color:blue;">**Anlaşma bütçesini ayarlama veya güncelleme**</mark>

**set\_order\_budget(budget, order\_id)**

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

**order\_id** - (isteğe bağlı) anlaşma ID'si. Verilmezse, müşterinin mevcut aktif anlaşmasına uygulanır.

order\_id'yi doğru kullanmak için:

1. Bunu manuel olarak belirtebilirsiniz — anlaşma ID'sini alın ve belirli bir anlaşmayı hedeflemek istiyorsanız bunu işlev parametresi olarak iletin.

<div data-with-frame="true"><figure><img src="/files/a9ac51ab157e0ddca49ccd19241f5e001d7c561d" alt="" width="375"><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/9d179a967fb463de7867d1b6a0541bfe9dcda6e9" alt="" width="375"><figcaption></figcaption></figure></div>

1. 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.

<mark style="color:varsayılan;background-color:blue;">**Anlaşma listelerini alma**</mark> \
((arşivlenmiş, başarılı veya başarısız anlaşmalar hariç))

**get\_active\_orders\_ids()**&#x20;

<mark style="color:varsayılan;background-color:blue;">**Başarılı anlaşma ID'lerinin listesini al**</mark>

**get\_success\_orders\_ids()**&#x20;

<mark style="color:varsayılan;background-color:blue;">**Başarısız anlaşma ID'lerinin listesini al**</mark>

**get\_fail\_orders\_ids()**

<mark style="color:varsayılan;background-color:blue;">**Bir anlaşma değişkeninin değerini alma**</mark>

**get\_order\_var(order\_id, variable)**&#x20;

Parametreler:

<mark style="color:kırmızı;">**!**</mark>**&#x20;order\_id** - anlaşma ID'si&#x20;

<mark style="color:kırmızı;">**!**</mark>**&#x20;variable** - değerini almak istediğiniz değişken adı

<mark style="color:varsayılan;background-color:blue;">**Anlaşma verilerini alma**</mark>

**get\_order\_vars(order\_id, names)**&#x20;

Parametreler:

<mark style="color:kırmızı;">**!**</mark>**&#x20;order\_id** - anlaşma ID'si

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

İşlev, **names** ile tanımlanan anlaşma için dizi içinde 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.

<mark style="color:varsayılan;background-color:blue;">**Bir anlaşma değişkeni ekleme**</mark>

**set\_order\_var(order\_id, variable, value)**

Parametreler:

<mark style="color:kırmızı;">**!**</mark>**&#x20;order\_id** - anlaşma ID'si

<mark style="color:kırmızı;">**!**</mark>**&#x20;variable** - bir anlaşmaya eklemek veya güncellemek için değişkenin adı

{% hint style="warning" %}
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.
{% endhint %}

<mark style="color:kırmızı;">**!**</mark>**&#x20;value** - değişken değeri

<mark style="color:varsayılan;background-color:blue;">**Birden fazla anlaşma değişkeni ekleme**</mark>

**set\_order\_vars(order\_id, variables\_dict)**&#x20;

Parametreler:

<mark style="color:kırmızı;">**!**</mark>**&#x20;order\_id** - anlaşma ID'si.&#x20;

<mark style="color:kırmızı;">**!**</mark>**&#x20;variables\_dict** - değişkenlerden oluşan bir sözlük

<mark style="color:varsayılan;background-color:blue;">**Bir sonraki huni durumuna geçme**</mark>

**move\_order\_to\_next\_state(order\_id)**&#x20;

Parametreler:\
**order\_id** - anlaşma ID'si. 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.

<mark style="color:varsayılan;background-color:blue;">**MavibotCRM'deki huni aşamasını alma**</mark>

**get\_state\_id(client\_id, order\_id)** \
Ayrıca boruhattı durum ID'sini doğrudan **"Durum ayarları"**.

Parametreler:

**order\_id -** müşteri anlaşma ID'si

işlevini parametreyle veya parametresiz çağırabilirsiniz. order\_id atlanırsa, işlev geçerli aktif anlaşma için boruhattı durum ID'sini döndürür. **order\_id** order\_id'nin doğru kullanımı için:

Belirli bir anlaşmayı hedeflemek istediğinizde anlaşma ID'sini alıp bunu işlev parametresi olarak ileterek manuel olarak belirtebilirsiniz.

1. 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.
2. Bir lead'i durum ID'sine göre MavibotCRM hunisinde ilerletme

<mark style="color:varsayılan;background-color:blue;">**change\_state(state\_id, order\_id)**</mark>

**state\_id -**&#x20;

Parametreler:\ <mark style="color:kırmızı;">**!**</mark> **huni durum ID'si** order\_id (\
**isteğe bağlı) -  boruhattında ilerletilecek anlaşma ID'si. Atlanırsa, mevcut aktif anlaşma taşınır.** işleme

<mark style="color:varsayılan;background-color:blue;">**Değişken adı ve değere göre anlaşma ID'si alma**</mark>

get\_order\_id\_by\_var\_value(var\_name, var\_value, client\_id)

Parametreler:\ <mark style="color:kırmızı;">!</mark> var\_name - değişken adı\ <mark style="color:kırmızı;">!</mark> var\_value - değişken değeri;\
client\_id - (isteğe bağlı) müşteri anlaşma ID'si; varsayılan olarak bot içindeki müşteri ID'si kullanılır

<mark style="color:varsayılan;background-color:blue;">**En son anlaşmanın tarih ve saatini alma**</mark>

latest\_order\_datetime(client\_id, dt\_fmt)

Parametreler:\
client\_id - (isteğe bağlı) müşteri anlaşma ID'si; varsayılan olarak bot içindeki müşteri ID'si kullanılı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"

<mark style="color:varsayılan;background-color:blue;">**Müşteri anlaşmalarının sayısını alma**</mark>

count\_client\_orders(client\_id, state\_id, get\_all, active)

Parametreler:\
client\_id -  (isteğe bağlı) anlaşma müşteri ID'si; varsayılan olarak bot içindeki müşteri ID'si kullanılır;\
state\_id - (isteğe bağlı) boruhattındaki anlaşma durum ID'si;\
get\_all - (isteğe bağlı) active parametresi için filtre bayrağı; varsayılan 1'dir (active ile 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);

<mark style="color:varsayılan;background-color:blue;">**Belirli bir anlaşma durumundaki anlaşma sayısını al**</mark>

get\_count\_orders(id) - şu anda belirli bir boruhattı durumunda bulunan anlaşma sayısını durum ID'sine göre döndürür.

İşlev tek bir parametre alır:

<mark style="color:kırmızı;">**!**</mark> id - anlaşma durum ID'si.&#x20;

İşlev kullanımına örnek:

<div data-with-frame="true"><figure><img src="/files/b7a5fe7f8e958d88479bd884453cca4ecb653030" alt="" width="375"><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/7eda74bad98d30c8db12d2a3073c8ed1fc790112" alt="" width="375"><figcaption></figcaption></figure></div>

Aşama ID'si ayarlarda bulunabilir.

Ardından, işlevi hesaplayıcıya aşağıdaki şekilde girmeniz gerekir:

<div data-with-frame="true"><figure><img src="/files/323f48b8084b4ecf2328961e1689ff1b0db19da6" alt="" width="563"><figcaption></figcaption></figure></div>

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

<mark style="color:varsayılan;background-color:blue;">**Bir anlaşmayı silme**</mark>

delete\_order(order\_id) — içinde bir anlaşmayı siler **MaviBotCRM**.

order\_id - (isteğe bağlı) silinecek anlaşma ID'si. Atlanırsa, en son anlaşma silinir.&#x20;

</details>

<details>

<summary>Örnekler</summary>

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

<div data-with-frame="true"><figure><img src="/files/5d49890a6dc8f3438a9506eaeb622304b8ceb798" alt="" width="563"><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/a74abf0b682b843018b87cbfa0d4d1feeee3576a" alt="" width="563"><figcaption><p>Müşteri talebi kaydı</p></figcaption></figure></div>

get\_order\_id() işlevini kullanarak müşterinin mevcut aktif anlaşma ID'sini alabilir veya get\_active\_orders\_ids() kullanarak müşterinin tüm anlaşma listesini alabilirsiniz.

<div data-with-frame="true"><figure><img src="/files/f9bc1acdfd7c64e0045bd89bdb094d1116c7bef7" alt="" width="563"><figcaption><p>Geçerli aktif anlaşma ID'sini alma</p></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/6d266857bd5fca4f2bb3a308edda17f3058470c2" alt="" width="563"><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/ed952a88eff54ace148e3c82c853fe6ff062d85d" alt="" width="563"><figcaption><p>Aktif anlaşmalar listesini alma</p></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/183df869c786c7a252ac7246c28d14a5b4e0c3d9" alt="" width="563"><figcaption></figcaption></figure></div>

</details>

<details>

<summary>Kopyalama için kod örneği</summary>

<pre><code><strong>/* Yeni bir anlaşma oluştur */
</strong>oid = create_order()

/*Müşterinin aktif anlaşma ID'sini al*/
oid = get_order_id()

/*Aktif anlaşmalar listesini al*/
res = get_active_orders_ids()

/*Anlaşmadaki tek bir değişkeni ekle veya güncelle*/
res = set_order_var('40630', 'обновлено', '#{current_date}')

vars = {"VAR1": "V111", "VAR2": "V222"}
res2 = set_order_vars('40630', vars)

ovar = get_order_vars('40630')
</code></pre>

</details>

### <mark style="color:varsayılan;background-color:blue;">**Başarılı anlaşma etiketi ayarlama**</mark>

set\_order\_status\_success()

{% tabs %}
{% tab title="Açıklama" %}
**set\_order\_status\_success(order\_id)**&#x20;

Parametreler:

**order\_id** - anlaşma ID'si. Parametre belirtilmezse, etiket mevcut aktif anlaşma için ayarlanır.
{% endtab %}
{% endtabs %}

### <mark style="color:varsayılan;background-color:blue;">**Başarısız anlaşma etiketi ayarlama**</mark>&#x20;

set\_order\_status\_fail()

{% tabs %}
{% tab title="Açıklama" %}
**set\_order\_status\_fail(order\_id)**&#x20;

Parametreler:

**order\_id** - anlaşma ID'si. Parametre belirtilmezse, etiket mevcut aktif anlaşma için ayarlanır.
{% endtab %}
{% endtabs %}

### <mark style="color:varsayılan;background-color:blue;">**Arşivlenmiş anlaşma etiketi ayarlama**</mark> &#x20;

set\_order\_status\_archive()

{% tabs %}
{% tab title="Açıklama" %}
**set\_order\_status\_archive(order\_id)**&#x20;

Parametreler:

**order\_id** - anlaşma ID'si. Parametre belirtilmezse, etiket mevcut aktif anlaşma için ayarlanır.
{% endtab %}

{% tab title="Örnekler" %}
/\*Mevcut aktif anlaşmayı arşivle\*/

`res_arh = set_order_status_archive()`
{% endtab %}
{% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.mavibot.ai/doc/tr/chatbot/functions/hesap-makinesi/crm.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
