# API oluşturucu

Bazı API istek işlevleri Hesaplayıcı’da çalıştırılabilir.

İstekler şu yöntem aracılığıyla gönderilir: **POST** veya **GET** yöntemiyle, aşağıdaki biçimdeki bir URL’ye:

**<https://chatter.mavibot.ai/api/{api\\_key}/{action}>**

Burada:

**api\_key** — proje ayarlarında oluşturulan API erişim anahtarı.

<figure><img src="/files/77ba9ce098694c3f20be1cd1c87d612da6437432" alt=""><figcaption></figcaption></figure>

{% hint style="success" %}
Token’ı bir URL isteğinde kullanmak için önce bir API anahtarı oluşturmanız gerekir.

Bunu nasıl yapacağınıza dair talimatlar "API Anahtarı Oluşturma" bölümünde verilmiştir. <mark style="color:kırmızı;">**bağlantı**</mark>
{% endhint %}

{% hint style="danger" %}
Bu sayfadan bir URL kopyalanırken bir boşluk görünebilir ve kaldırılması gerekir.

Yanlış bağlantı örneği:&#x20;<https://chatter.mavibot.pro> /api/callback

.pro’dan sonraki boşluk kalırsa istek çalışmaz.
{% endhint %}

{% hint style="warning" %}
GET isteği gönderirken yasaklı karakterleri kullanmayın.

GET istekleri için doğru biçimi anladığınızdan emin olun.
{% endhint %}

## **API anahtarı nasıl oluşturulur**

{% hint style="success" %}
Eski API anahtarı oluşturma özelliği hâlâ eskisi gibi çalışır, ancak yeni projeler için kullanılamaz.

Projenizde bu bölümde açıklanan erişim ayarları olmadan oluşturulmuş API anahtarları zaten varsa, bu mevcut API anahtarları normal şekilde çalışmaya devam edecektir.

Yeni anahtarlar oluşturmanız gerekiyorsa güncellenmiş ayarları kullanın.
{% endhint %}

Bir API anahtarı oluşturmak için proje ayarlarına gidin:

<figure><img src="/files/8411b5efbd669184ea645c6264650949ca98a71d" alt="" width="301"><figcaption></figcaption></figure>

Ardından "Entegrasyonlar" bölümüne gidin:

<figure><img src="/files/009773693c57ee39aaec316e735be17b0ab5540d" alt="" width="563"><figcaption></figcaption></figure>

"Entegrasyonlar" bölümünde "API anahtarı ekle" düğmesini bulacaksınız:

<figure><img src="/files/92f640e82bff2a909755c8a933bc1da02413e2f9" alt=""><figcaption></figcaption></figure>

Düğmeye tıkladıktan sonra, erişim ayarları ve API anahtarı oluşturma seçenekleri içeren bir açılır pencere açılacaktır:

<figure><img src="/files/df9560c0c52322650bd859adc2ccc925fefecd2a" alt=""><figcaption></figcaption></figure>

Ardından, API anahtarı için erişim izinlerini seçmeniz gerekir:

<figure><img src="/files/52dd6bb38ad79b3eb0fecd95d3b426a2a5c8ebe7" alt=""><figcaption></figcaption></figure>

API işlevi, seçtiğiniz erişim izinlerine göre çalışacaktır.

{% hint style="warning" %}
Lütfen dikkat edin!

API işlevi, belirlediğiniz erişim izinlerine bağlıdır: yalnızca müşteri bilgilerini okuma erişimine sahip bir API anahtarı oluşturup bunu bir müşteriye mesaj göndermek veya değişkenlerini değiştirmek için kullanırsanız, API isteği başarısız olur.\
Her API isteği için gerekli izin, API isteği kartında belirtilmiştir:

<img src="/files/95c695984e70e29644b9f05e8155ce2f1d61046e" alt="" data-size="original">
{% endhint %}

Ardından, API anahtarı için bir ad girin:

<figure><img src="/files/03bb0ff8d02e9f38b91d31732be86d1be3d09d3a" alt=""><figcaption></figcaption></figure>

"Oluştur" düğmesine tıklayarak API anahtarını oluşturun:

<figure><img src="/files/2fbcbe624b9c34f1fb220037c1027baee3f3a01b" alt=""><figcaption></figcaption></figure>

Sonrasında "Bitti"ye tıklayın ve api anahtarı bölüme eklenecektir:

<figure><img src="/files/3d9a9ba4e771cba60e19a691d151b333efc0572a" alt=""><figcaption></figcaption></figure>

İhtiyacınız kadar API anahtarı ekleyebilir, her birine farklı erişim izinleri atayabilirsiniz.

<figure><img src="/files/f5bc7d7cd397ffd7161bcb2595fe34a32da6c521" alt=""><figcaption></figcaption></figure>

Ardından, birincil proje anahtarı ayarlamanız gerekir. Bu, anahtarı #{api\_key} yer tutucusuyla bir istek URL’sinde kullanmanıza olanak tanır.

Bunu yapmak için, istenen API anahtarının sağındaki "{+}" düğmesine tıklayın:

<figure><img src="/files/411d13460c94484fa2d9f48176fc1e025fe7070f" alt=""><figcaption></figcaption></figure>

Bundan sonra, anahtarın yanında bunun birincil proje anahtarı olduğunu gösteren bir etiket görünecektir.

<figure><img src="/files/127f6223aef6d4a6d0019ff71b7f08d9ccd48e06" alt=""><figcaption></figcaption></figure>

Birincil proje anahtarına api\_key üzerinden erişebilirsiniz: gerekli anahtarı oluşturun, izinlerini ayarlayın ve onu birincil proje anahtarı olarak atayın. Ardından, Hesaplayıcı’da #{api\_key} yer tutucusunu içeren istek URL’sini kullanın; bu yer tutucu birincil proje anahtarının değerini içerecektir.

<figure><img src="/files/13a22937ff886b55b4bbcd3c2ae51f4d77827bea" alt=""><figcaption><p>İstek URL’si</p></figcaption></figure>

<figure><img src="/files/150d6bf135daf5128300546c4338f0782a6f6b50" alt=""><figcaption></figcaption></figure>

Erişim ayarları olan diğer oluşturulmuş tüm anahtarlar ikincil anahtar olarak kabul edilir. İstek URL’sinde, #{api\_key} yerine onların değerini kullanabilirsiniz. Bunun için ikincil anahtarın değerini kopyalayın:

<figure><img src="/files/478e4f76380ef06b996bf1a0f3c5b24ef7d6bf7a" alt=""><figcaption></figcaption></figure>

ve #{api\_key} yerine istek URL’sine yapıştırın:

<figure><img src="/files/08d7dfa005170b9745a410866407be153cd588a7" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Eski yöntemle oluşturulan bir API anahtarı varsayılan olarak birincil proje anahtarı olarak ayarlanır ve tam izinlere sahiptir.
{% endhint %}

{% hint style="danger" %}
Not!&#x20;

Birincil proje anahtarı olarak ayarlanan anahtarı silerseniz, yeni bir anahtarı manuel olarak birincil olarak atamanız gerekir.
{% endhint %}

{% hint style="success" %}
Lütfen dikkat edin!&#x20;

Eski yöntemle oluşturulmuş API anahtarlarınız varsa, bunlar normal şekilde çalışmaya devam edecektir. Eski türde yeni API anahtarları oluşturmak mümkün değildir.
{% endhint %}

## Proje ayarlarında belirtilen Webhook URL’sinde mesajlar nasıl alınır

![Şuraya gidin](/files/1f73f615aa3bd381912fef190d7280fa9769b8e7)

Gelen veya giden her mesaj aşağıdaki JSON POST isteği olarak gönderilecektir:

```
{
    "id": "sistem içindeki mesaj kimliği",
    "client": {
        "id": "sistem içindeki müşteri kimliği",
        "recepient": "mesajlaşma uygulamasındaki müşteri kimliği",
        "client_type": "mesajlaşma uygulaması türü",
        "name": "müşterinin adı",
        "avatar": "müşterinin avatarı",
        "created_at": "müşteri oluşturulma tarihi",
        "tag": "abonelik anahtarı",
        "group": "müşterinin bağlı olduğu bot"
    },
    "message": "mesaj metni",
    "attachments": "dosya bağlantıları veya dosya bağlantıları sözlükleri içeren dizi",
    "message_id": "mesajın gönderildiği bloğun kimliği",
    "project_id": "proje kimliği",
    "is_input": "mesaj müşteriden geldiyse 1, bottan geldiyse 0",
    "delivered": "mesaj başarıyla gönderildiyse 1, hata varsa 0",
    "error_message": "mesaj teslim hatasının metni"
}
```

Bir istek hata döndürürse yeniden denenmez. Sunucu hata döndürse bile bildirimler gönderilmeye devam edecektir.

### Bir JSON isteği nasıl oluşturulur

Verilerin tabloda kaydedileceği bloğun ayarlarına gidin.&#x20;

<figure><img src="/files/259a0cbf3d800336b7b5e737671806ab6228c1f8" alt=""><figcaption></figcaption></figure>

1. Bir API İsteği bölümü ekleyin.
2. İstek türü olarak POST-JSON’u seçin.
3. Ardından istek alanlarını doldurmaya başlayın:

<figure><img src="/files/eceba752b107ea182d35c7f5db5726e91b8844c8" alt=""><figcaption></figcaption></figure>

**İstek URL’si** — çağrılacak fonksiyonun yolu. Belgelerde bu her zaman istek türünün yanındaki ilk satırda gösterilir:

<figure><img src="/files/c509d7ca6505bf7cc8c7775c47b64e1593a04f99" alt=""><figcaption></figcaption></figure>

**Kaydedilen değerler** — sonuçların kaydedileceği değişken adlarıyla birlikte yanıt parametreleri listesi, aşağıdaki biçimde:

> **request\_parameter -> your\_variable**
>
> Yanıt karmaşık yapıya sahip parametreler içeriyorsa, bunları aşağıdaki şekilde ayrıştırın:
>
> * > "cell\_number":{"row":4,"col":2}\
>   > \
>   > \
>   > cell\_number|row ->String; \
>   > cell\_number|col -> Column<br>

**İstek başlıkları** — gerekiyorsa doldurun. Bu genellikle veri biçimini ve/veya erişim token’ını içerir.

**JSON parametreleri** — veri parametrelerini JSON biçiminde belirttiğiniz istek gövdesi. Örnek:

**{"client\_id": "#{recipient\_id\_in\_builder}", "message":"Hello!"}**

Yanıtın yapısını anlamak için, değişken değerini çıkarmak üzere Mesaj alanına #{custom\_answer} yazın.<br>

<figure><img src="/files/609c265d6521efb85951ed6a8cce62592ce90bfc" alt=""><figcaption><p>Bir API isteğinin sonucunu mesaj olarak alma</p></figcaption></figure>

Ardından belgelerde "Body" bölümündeki izin verilen parametreler listelenir:&#x20;

<figure><img src="/files/a6355e3c328a78b8bba18cc74d0c5bfaa851cf20" alt="" width="551"><figcaption></figcaption></figure>

## Evrensel bir webhook nasıl kullanılır

Listelenen yöntemler artık POST veya GET isteği olarak yürütülebilir.

* [callback](#zapusk-bota)
* [whatsapp\_callback](#zapusk-bota)
* [message](#otpravka-soobshenii)
* [whatsapp\_message](#otpravka-soobshenii)

Daha önce yöntemlerimizin sabit parametreleri vardı (örneğin **client\_id** ve **fb\_id**), abonelik sahibi eylemlerini tetiklemek için; bu da üçüncü taraf hizmetlerle entegrasyonda belirli sınırlamalar getiriyordu.

Artık SaleBot’un kullanıcı kimliğini bulmak için hangi istek parametresini kullanacağını belirtebilirsiniz. Şu önekli bir parametre kullanın: **value\_ öneki**, örneğin, **value\_user\_id** veya **value\_group\_id**.

Ayrıca, callback gönderme yöntemi artık müşterinin e-postası (**client\_email**) veya telefon numarası (**client\_phone**).

{% hint style="success" %}
Düğmenin **callback**, **fb\_callback**ve **whatsapp\_callback** yöntemleri belirli parametre adlarına bağlı değildir. Müşterinin telefon numarasını, e-postasını veya kimliğini içeren parametreyi belirtebilirsiniz.
{% endhint %}

Bu, bir web sitesinden webhook alımı kurarken faydalıdır.

**Hangi değişkenin client\_id içerdiğini belirtmek için**value\_client\_id parametresini kullanın ve bu değeri tutan parametrenin adını belirtin.

**Hangi değişkenin telefon numarasını içerdiğini belirtmek için**value\_phone kullanın.

**Hangi değişkenin e-postayı içerdiğini belirtmek için,** value\_email kullanın.

**Hangi değişkenin user\_id içerdiğini belirtmek için**value\_user\_id kullanın.

**Hangi değişkenin group\_id içerdiğini belirtmek için**value\_group\_id kullanın.

**Webhook içindeki mesajın kendisini içeren değişkeni belirtmek için**value\_message kullanın (diğer parametrelerle aynı şekilde aktarılır).

Örnek:

Adreste value\_client\_id = my\_client olarak belirtin.

`https://chatter.mavibot.ai/api/d3f31dabef80ddeb73d43938b4ef8bb0/callback?value_client_id=my_client`\
`{"my_client":49177759, "message":"Hello world"}`

İstek aşağıdakine eşdeğer olacaktır:

`https://chatter.mavibot.pro/api/d3f31dabef80ddeb73d43938b4ef8bb0/callback`\
`{"client_id":49177759, "message":"Hello world"}`

Gördüğünüz gibi, değeri içeren parametre adı şu önekle başlar: **value\_**.

{% hint style="warning" %}
Lütfen dikkat edin!&#x20;

Bazı olaylar proje içinde sistem bildirimleri oluşturur.

Örneğin, mesaj alanı boş olmayan ancak müşteri metni içermeyen sistem bildirimleri vardır.

Aynı zamanda, proje "message: new\_chat\_member" gibi belirli içeriklere sahip mesaj kancaları da oluşturabilir.

Bu nedenle, içeriği kontrol etmek önemlidir: ya bir sistem bildirimi ya da belirli bir olay için bir kanca olacaktır.
{% endhint %}

## Bot nasıl başlatılır

### Botu başlat

<details>

<summary><mark style="color:yeşil;">POST</mark> https://chatter.mavibot.ai/api/#{api_key}/callback</summary>

İstek URL’si: <https://chatter.mavibot.ai/api/#{api\\_key}/callback><br>

Bu yöntem, bir müşteri için bir huniyi tetiklemek veya harici bir kaynaktaki bir işlemi onaylamak için kullanılabilir. Müşteri bu mesajı görmez.<br>

**Lütfen dikkat: ayrıca ilettiğiniz tüm parametreler değişkende kaydedilecektir**

Callback yöntemi artık müşterinin e-postası (client\_email) veya telefon numarası (client\_phone) kullanılarak da tetiklenebilir.

Anahtar oluşturulurken erişim izni: **"Müşteri bilgilerini değiştirme/silme izni"**.

<img src="/files/6632dc6b17430ad0d70f74133d0c1f7966a6c096" alt="" data-size="original">

Yol

api key\* - erişim token’ı

Gövde

client\_phone - müşteriyi bulmak için kullanılan telefon numarası

client\_email - müşteriyi bulmak için kullanılan e-posta

client\_id - oluşturucudaki müşteri kimliği

message - mesaj metni

resume\_bot - True (isteğe bağlı parametre). Bot duraklatılmışsa, bunu duraklatmayı kaldırmak için kullanın.&#x20;

Örnek: resume\_bot = True

time\_shift - sayı. Belirtilirse, mesaj geçerli zamandan itibaren verilen saniye sayısı sonra gönderilecektir.

send\_time - "%Y-%m-%d %H:%M:%S" biçiminde tarih ve saat (ör. "2024-10-16 13:15:59"). Bu, mesajın gönderileceği tarih ve saati ayarlar. Hem time\_shift hem de send\_time belirtilirse, time\_shift öncelikli olacaktır.

```
import requests
import json

params = {"message": "some_text", "client_id": "25554"}
token = 'b551e18c8b8e86bea6f14f38de3f5cc3c31ba1edb4d8'
url = f'https://chatter.salebot.pro/api/{token}/callback'
requests.post(url, json=params)
```

</details>

### WhatsApp numarası kullanarak botu başlatma

<details>

<summary><mark style="color:yeşil;">POST</mark> https://chatter.mavibot.ai/api/&#x3C;api_key>/whatsapp_callback</summary>

İstek URL’si: <https://chatter.mavibot.ai/api/\\>\<api\_key>/whatsapp\_callback

Bu yöntem, bir müşteri web sitesine kaydolduktan veya telefon numarasıyla bir talep gönderdikten sonra WhatsApp botunu tetikleyebilir.

**Lütfen dikkat: ayrıca ilettiğiniz tüm parametreler değişkende kaydedilecektir**

Anahtar oluşturulurken erişim izni: **"Müşteri bilgilerini değiştirme veya silme izni"**.

<img src="/files/6632dc6b17430ad0d70f74133d0c1f7966a6c096" alt="" data-size="original">

Yol

api key\* - erişim token’ı

Gövde

name - müşteri adı\
message - mesaj metni\
phone - müşterinin telefon numarası\
bot\_id - bot kimliği\
resume\_bot - True (isteğe bağlı parametre). Bot duraklatılmışsa, bunu devam ettirmek için kullanın. Örnek: resume\_bot = True

time\_shift - sayı. Belirtilirse, mesaj geçerli zamandan itibaren verilen saniye sayısı sonra gönderilecektir.

send\_time - "%Y-%m-%d %H:%M:%S" biçiminde tarih ve saat (ör. "2024-10-16 13:15:59"). Bu, mesajın gönderileceği tarih ve saati ayarlar. Hem time\_shift hem de send\_time belirtilirse, time\_shift öncelikli olacaktır.

</details>

### Telegram ID kullanarak botu başlatma

<details>

<summary><mark style="color:yeşil;">POST</mark> https://chatter.mavibot.pro/api/#{api_key}/tg_callback</summary>

İstek URL’si: <https://chatter.mavibot.pro/api/#{api\\_key}/tg\\_callback>

Bu yöntem, bir müşteri için bir huniyi tetiklemek veya harici bir web sitesindeki bir işlemi onaylamak için kullanılabilir. Müşteri bu mesajı görmez.

**Lütfen dikkat: ayrıca ilettiğiniz tüm parametreler değişkenlerde kaydedilecektir.**

Anahtar oluşturulurken erişim izni: **"Müşteri bilgilerini değiştirme veya silme izni"**.

<img src="/files/6632dc6b17430ad0d70f74133d0c1f7966a6c096" alt="" data-size="original">

Yol

api key\* - erişim token’ı

Gövde

message - mesaj metni\
user\_id - Telegram kullanıcı kimliği\
group\_id - bot adı (sonu bot ile biter)\
resume\_bot - True (isteğe bağlı parametre). Bot duraklatılmışsa, bunu devam ettirmek için kullanın. Örnek: resume\_bot = True

time\_shift - sayı. Belirtilirse, mesaj geçerli zamandan itibaren verilen saniye sayısı sonra gönderilecektir.

send\_time - "%Y-%m-%d %H:%M:%S" biçiminde tarih ve saat (ör. "2024-10-16 13:15:59"). Bu, mesajın gönderileceği tarih ve saati ayarlar. Hem time\_shift hem de send\_time belirtilirse, time\_shift öncelikli olacaktır.

</details>

### platform\_id’ye göre bir müşteri listesine callback mesajları gönderme

<details>

<summary><mark style="color:yeşil;">POST</mark>  https://chatter.mavibot.ai/api/#{api_key}/send_callback_by_platform_id</summary>

İstek URL’si: <https://chatter.mavibot.ai/api/#{api\\_key}/send\\_callback\\_by\\_platform\\_id>

Listedeki platform\_id’ye sahip müşteriler projede bulunduğunda, callback callback\_text alanındaki metinle gönderilecektir.\
\ <mark style="color:kırmızı;">**Sınır: 1 istek = en fazla 300 gönderim**</mark>&#x20;

İstek parametreleri örneği:\
{"platform\_ids":\[407184121, "79609879898", "2rwewefw"], "callback\_text": "test\_callback"}

Anahtar oluşturulurken erişim izni: **"Müşteri bilgilerini değiştirme veya silme izni"**.

<img src="/files/6632dc6b17430ad0d70f74133d0c1f7966a6c096" alt="" data-size="original">

Yol

api key\* - erişim token’ı

Gövde

platform\_ids - mesajlaşma uygulamasındaki müşteri kimlikleri listesi\
callback\_text - callback metni\
group\_id - bot kimliği

time\_shift - sayı. Belirtilirse, mesaj geçerli zamandan itibaren verilen saniye sayısı sonra gönderilecektir.

send\_time - "%Y-%m-%d %H:%M:%S" biçiminde tarih ve saat (ör. "2024-10-16 13:15:59"). Bu, mesajın gönderileceği tarih ve saati ayarlar. Hem time\_shift hem de send\_time belirtilirse, time\_shift öncelikli olacaktır.

</details>

### E-posta ile bir müşteriye callback mesajı gönderme

<details>

<summary><mark style="color:yeşil;">POST</mark> https://chatter.mavibot.ai/api/#{api_key}/email_callback</summary>

İstek URL’si: <https://chatter.mavibot.ai/api/#{api\\_key}/email\\_callback>

Bu yöntem, bir müşteri web sitesine kaydolduktan veya e-postasıyla bir talep gönderdikten sonra e-posta botunu tetikleyebilir. Yöntem, müşterinin e-postasını bulacak veya yoksa oluşturacaktır.

Anahtar oluşturulurken erişim izni: **"Müşteri bilgilerini değiştirme veya silme izni"**.

<img src="/files/6632dc6b17430ad0d70f74133d0c1f7966a6c096" alt="" data-size="original">

**Lütfen dikkat: ayrıca ilettiğiniz tüm parametreler değişkende kaydedilecektir**

Yol

api key\* - erişim token’ı

Gövde

name - müşteri adı\
message - mesaj metni\
email - e-posta adresi\
email\_id\_bot - bot e-posta adresi\
resume\_bot - True (isteğe bağlı parametre).&#x20;

Bot duraklatılmışsa, bunu devam ettirmek için kullanın. Örnek: resume\_bot = True

time\_shift - sayı. Belirtilirse, mesaj geçerli zamandan itibaren verilen saniye sayısı sonra gönderilecektir.

send\_time - "%Y-%m-%d %H:%M:%S" biçiminde tarih ve saat (ör. "2024-10-16 13:15:59"). Bu, mesajın gönderileceği tarih ve saati ayarlar. Hem time\_shift hem de send\_time belirtilirse, time\_shift öncelikli olacaktır.

</details>

## Mesajlarla nasıl çalışılır

### Mesaj gönderme parametreleri

**attachment\_type** — şu olabilir: **resim, video, bağlantı, dosya veya ses**.\
Bir ek gönderirken message parametresi isteğe bağlıdır.

**buttons** — mesaja eklenecek butonları tanımlar. Buton biçimi gelişmiş buton ayarlarıyla aynıdır.

Butonlar iki şekilde gönderilebilir: butonları desteklemeyen mesajlaşma uygulamaları için bir ipucuyla veya ipucu olmadan.

Buton parametresi örneği:

```
"buttons": {
  "hint": "Bu metin WhatsApp’ta görüntülenecektir",
  "buttons": [
    {
      "type": "reply",
      "text": "Bana hizmetler hakkında bilgi ver",
      "line": 0,
      "index_in_line": 0
    },
    {
      "type": "reply",
      "text": "Hizmet fiyatları",
      "line": 0,
      "index_in_line": 1
    },
    {
      "type": "reply",
      "text": "İletişim",
      "line": 1,
      "index_in_line": 0
    },
    {
      "type": "reply",
      "text": "Talep gönder",
      "line": 1,
      "index_in_line": 1
    }
  ]
}
```

### Bir müşteriye mesaj gönderme

<details>

<summary><mark style="color:yeşil;">POST</mark>  https://chatter.mavibot.ai/api/#{api_key}/message</summary>

İstek URL’si: <https://chatter.mavibot.ai/api/#{api\\_key}/message>

Bu yöntem bildirim mesajları göndermek için kullanılabilir. Bir dosya göndermiyorsanız message parametresi zorunludur. Dosya gönderiyorsanız metin isteğe bağlıdır.

Anahtar oluşturulurken erişim izni: **"Müşteri bilgilerini değiştirme veya silme izni"**.

<img src="/files/6632dc6b17430ad0d70f74133d0c1f7966a6c096" alt="" data-size="original">

Yol

api key\* - erişim token’ı

Gövde

message\_id - gönderim için blok numarası\
message - mesaj metni\
client\_id - oluşturucudaki müşteri kimliği\
attachment\_type - dosya gösterim türü. attachment\_url sağlanmışsa zorunludur.\
attachment\_url - dosya URL’si\
buttons - butonlar

time\_shift - sayı. Belirtilirse, mesaj geçerli zamandan itibaren verilen saniye sayısı sonra gönderilecektir.

send\_time - "%Y-%m-%d %H:%M:%S" biçiminde tarih ve saat (ör. "2024-10-16 13:15:59"). Bu, mesajın gönderileceği tarih ve saati ayarlar. Hem time\_shift hem de send\_time belirtilirse, time\_shift öncelikli olacaktır.

```
import requests
import json

# Bir metin mesajı gönderme
params = {"message": "some_text", "client_id": "25554"}
token = 'b551e18c8b8e86bea6f14f38de3f5cc3c31ba1edb4d8'
url = f'https://chatter.mavibot.ai/api/{token}/message'
requests.post(url, json=params)

# Bir ek gönderme
params = {
    "message": "some message",
    "client_id": "1234565",
    "attachment_type": "video/image/file",
    "attachment_url": "https://qwreqw"
}
token = 'b551e18c8b8e86bea6f14f38de3f5cc3c31ba1edb4d8'
url = f'https://chatter.mavibot.ai/api/{token}/message'
requests.post(url, json=params)

# 'attachment_type' içinde 'video', 'image' veya 'file' belirtin
# ek türüne bağlı olarak: video, resim veya belge.
```

</details>

### WhatsApp’ta mesaj gönderme

<details>

<summary><mark style="color:yeşil;">POST</mark> https://chatter.salebot.pro/api/&#x3C;api_key>/whatsapp_message</summary>

İstek URL’si: <https://chatter.mavibot.pro/api/\\>\<api\_key>/whatsapp\_message

Bağlı bot adına belirtilen numaraya mesaj göndermenizi sağlar. whatsapp\_bot\_id, "Messenger’lar ve sohbetler" bölümünden alınmalıdır. Bağlı her WhatsApp hesabına oluşturucu tarafından benzersiz bir kimlik atanır.

Anahtar oluşturulurken erişim izni: **"Müşteri bilgilerini değiştirme veya silme izni"**.

<img src="/files/6632dc6b17430ad0d70f74133d0c1f7966a6c096" alt="" data-size="original">

Yol

api key\* - erişim token’ı

Gövde

message\_id - gönderim için blok numarası\
whatsapp\_bot\_id - mesajın gönderileceği WhatsApp bot kimliği\
attachment\_url - dosya URL’si\
attachment\_type - dosya gösterim türü. attachment\_url sağlanmışsa zorunludur.\
message - mesaj metni\
phone - alıcı telefon numarası

time\_shift - sayı. Belirtilirse, mesaj geçerli zamandan itibaren verilen saniye sayısı sonra gönderilecektir.

send\_time - "%Y-%m-%d %H:%M:%S" biçiminde tarih ve saat (ör. "2024-10-16 13:15:59"). Bu, mesajın gönderileceği tarih ve saati ayarlar. Hem time\_shift hem de send\_time belirtilirse, time\_shift öncelikli olacaktır.

```
import requests
import json

params = {"message": "some_text", "phone": "79875146788"}
token = 'b551e18c8b8e86bea6f14f38de3f5cc3c31ba1edb4d8'
url = f'https://chatter.mavibot.ai/api/{token}/whatsapp_message'
requests.post(url, json=params)
```

</details>

### Toplu mesaj gönderimi

<details>

<summary><mark style="color:yeşil;">POST</mark> https://chatter.mavibot.ai/api/#{api_key}/broadcast</summary>

İstek URL’si: <https://chatter.mavibot.ai/api/#{api\\_key}/broadcast>

Bu yöntem bir toplu gönderim başlatmanıza olanak tanır.

Şunlardan birini kullanabilirsiniz <mark style="color:kırmızı;">**birbirini dışlayan aşağıdaki seçeneklerden biri**</mark>:

1. list parametresi — toplu gönderim belirtilen müşteri listesine gönderilecektir.
2. clients parametresi — toplu gönderim, müşteri kimliklerinden oluşan bir diziye gönderilecektir.
3. platform\_ids ve group\_id parametreleri — toplu gönderim, belirtilen bot (group\_id) için platform\_id’lerden (mesajlaşma kimlikleri) oluşan bir diziye gönderilecektir.
4. Yukarıdaki parametrelerden hiçbiri sağlanmazsa, toplu gönderim gönderilmeyecektir.

Gerekli parametreler: message (ve/veya attachment\_type ve attachment\_url) veya message\_id.

Anahtar oluşturulurken erişim izni: **"Müşteri bilgilerini değiştirme veya silme izni"**.

<img src="/files/6632dc6b17430ad0d70f74133d0c1f7966a6c096" alt="" data-size="original">

**Yol**

api key\* - erişim token’ı

**Gövde**

**list** - toplu gönderimin gönderileceği liste numarası

clients - oluşturucudaki müşteri kimlikleri

message - mesaj metni

platform\_ids - mesajlaşma uygulamasındaki alıcı kimlikleri. Gerekli group\_id parametresiyle birlikte kullanılmalıdır

group\_id - yalnızca platform\_ids kullanılırken gereklidir. Diğer seçeneklerde yok sayılır. Verilen platform\_ids’ye gönderecek botu belirtir

attachment\_url - dosya URL’si

attachment\_type - dosya gösterim türü. attachment\_url sağlanmışsa zorunludur.

buttons - butonlar

message\_id - gönderim için blok numarası

shift — mesajlar arasındaki saniye sayısı. Varsayılan 0.2’dir.

time\_shift - sayı. Belirtilirse, mesaj geçerli zamandan itibaren verilen saniye sayısı sonra gönderilecektir.

send\_time - "%Y-%m-%d %H:%M:%S" biçiminde tarih ve saat (ör. "2024-10-16 13:15:59"). Bu, mesajın gönderileceği tarih ve saati ayarlar. Hem time\_shift hem de send\_time belirtilirse, time\_shift öncelikli olacaktır.

```
import requests
import json

params = {"message": "some_text", "clients": ["5", "58", "110"]}
token = 'b551e18c8b8e86bea6f14f38de3f5cc3c31ba1edb4d8'
url = f'https://chatter.mavibot.ai/api/{token}/broadcast'
requests.post(url, json=params)
```

</details>

### Mesaj geçmişini alma

<details>

<summary><mark style="color:mavi;">GET</mark> https://chatter.mavibot.ai/api/#{api_key}/get_history?client_id=</summary>

İstek URL’si: <https://chatter.mavibot.ai/api/#{api\\_key}/get\\_history?client\\_id=>

client\_id parametresi buradan alınabilir. <mark style="color:kırmızı;">**bağlantı**</mark>

Anahtar oluşturulurken erişim izni: **"Müşteri bilgilerini okuma izni"**.

<img src="/files/ccb7d905f49ccae7d0f7c351beee581ed82ffa3d" alt="" data-size="original">

**Yol**

api key\* - erişim token’ı

**Gövde**

client\_id - müşteri kimliği

limit - yanıttaki öğe sayısı. Varsayılan: 2000, maksimum: 2000

start\_date - seçim döneminin başlangıç tarihi (stop\_date belirtilmişse zorunlu), biçim: gg.aa.yyyy&#x20;

stop\_date - seçim döneminin bitiş tarihi (start\_date belirtilmişse zorunlu), biçim: gg.aa.yyyy

```
{
  "status": "success",
  "result": [
    {
      "id": 104500,
      "answered": true,
      "client_replica": false,
      "message_id": 390,
      "message_from_outside": 0,
      "created_at": 1587895014,
      "text": "Miyav miyav",
      "attachments": {
        
      },
      "delivered": true,
      "error_message": "true",
      "manager_id": 12486,
      "manager_email": "example@mail.com"
    },
  ]
}
```

</details>

### Mesaj geçmişini temizle

<details>

<summary><mark style="color:mavi;">GET</mark> https://chatter.mavibot.ai/api/#{api_key}/clear_history?client_id=</summary>

İstek URL’si: <https://chatter.mavibot.ai/api/#{api\\_key}/clear\\_history?client\\_id=>

Sohbet geçmişini siler&#x20;

Anahtar oluşturulurken erişim izni: **"Müşteri bilgilerini değiştirme/silme izni"**.

<img src="/files/6632dc6b17430ad0d70f74133d0c1f7966a6c096" alt="" data-size="original">

**Yol**

api key\* - erişim token’ı

**Gövde**

client\_id - müşteri kimliği

```
import requests
import json


token = 'b551e18c8b8e86bea6f14f38de3f5cc3c31ba1edb4d8'
url = f'https://chatter.mavibot.ai/api/{token}/clear_history?client_id=85856'
requests.get(url)
```

</details>

## Müşteriler nasıl atanır

### Bir müşteriyi bir çalışana atama

<details>

<summary><mark style="color:yeşil;">POST</mark>  https://chatter.mavibot.ai/api/#{api_key}/assign_to_user</summary>

İstek URL’si: <https://chatter.mavibot.ai/api/#{api\\_key}/assign\\_to\\_user>

Bu yöntem, bir müşteriyi bir çalışana atamanıza olanak tanır. Email parametresi isteğe bağlıdır. E-posta verilmezse, sistem müşteriyi kendi algoritmasına göre atayacaktır.

Anahtar oluşturulurken erişim izni: **"Müşteri bilgilerini değiştirme/silme izni"**.

<img src="/files/6632dc6b17430ad0d70f74133d0c1f7966a6c096" alt="" data-size="original">

**Yol**

api key\* - erişim token’ı

**Gövde**

client\_id - müşteri kimliği\
email - çalışan e-postası (isteğe bağlı)

```
import requests
import json

params = {"client_id":"#{client_id}","email":"xxxxx@mail.ru"}
token = 'b551e18c8b8e86bea6f14f38de3f5cc3c31ba1edb4d8'
url = f'https://chatter.mavibot.ai/api/{token}/broadcast'
requests.post(url, json=params)
```

</details>

### Müşterileri sisteme içe aktarma

<details>

<summary><mark style="color:yeşil;">POST</mark> https://chatter.mavibot.ai/api/#{api_key}/load_clients</summary>

İstek URL’si: <https://chatter.mavibot.pro/api/#{api\\_key}/load\\_clients>

Bu yöntem müşterileri sisteme içe aktarmanıza olanak tanır. WhatsApp müşterileri yüklerken numarayı @s.whatsapp.net son ekiyle birlikte veya olmadan herhangi bir biçimde verebilirsiniz.

Grup kimliği (group\_id) BURADAN /api/\<api\_key>/connected\_channels üzerinden alınabilir. (Eğer client\_type = 13 (telefon), group\_id boş bir dizedir: ""). <mark style="color:kırmızı;">**bağlantı**</mark>

Müşterinin geldiği mesajlaşma türü (client\_type) BURADAN bulunabilir. <mark style="color:kırmızı;">**bağlantı**</mark>

Örnek: \[{"platform\_id":"79875555555","group\_id":34810,"client\_type":6}]

Anahtar oluşturulurken erişim izni: **"Müşteri bilgilerini değiştirme veya silme izni"**.

<img src="/files/6632dc6b17430ad0d70f74133d0c1f7966a6c096" alt="" data-size="original">

**Yol**

api key\* - erişim token’ı

**Gövde**

platform\_id - telefon numarası\
group\_id - grup kimliği\
client\_type - müşterinin geldiği mesajlaşma türü

```
import requests
import json
token = 'b551e18c8b8e86bea6f14f38de3f5cc3c31ba1edb4d8'
url = f'https://chatter.mavibot.ai/api/{token}/load_clients'
params = [{ "platform_id": 274827917, "group_id": 169166236, "client_type":0},
{"platform_id":"79538550785@s.whatsapp.net", "group_id": "1hwF7lwEjv4SKYIGFhQnBw==", "client_type": 6}]
requests.post(url, json=params)
# başarılı olursa, işlev her öğe için bir kimlik ve ekleme durumu döndürecektir
# yanıt örneği
# {"status":"success","items":[{"platform_id":"700000000@s.whatsapp.net","group_id":"5kqchxwyvdvFZOsp80q2qw==","client_type":6,"status":"success","id":1469409}]}
```

</details>

### Müşterileri bir listeye ekle

<details>

<summary><mark style="color:yeşil;">POST</mark> https://chatter.mavibot.ai/api/&#x3C;api_key>/add_to_list</summary>

İstek URL’si: <https://chatter.mavibot.ai/api/\\>\<api\_key>/add\_to\_list

Müşterileri bir listeye ekler

Anahtar oluşturulurken erişim izni: **"Müşteri bilgilerini değiştirme veya silme izni"**.

<img src="/files/6632dc6b17430ad0d70f74133d0c1f7966a6c096" alt="" data-size="original">

**Yol**

api key\* - erişim token’ı

**Gövde**

list\_id - liste numarası\
clients - müşteri kimliği dizisi

Örnek:\
JSON parametreleri\
{"list\_id":1170282, "clients":\[411262772, 646410963]}

</details>

### Müşterileri bir listeden kaldır

<details>

<summary><mark style="color:yeşil;">POST</mark> https://chatter.mavibot.ai/api/#{api_key}/remove_from_list</summary>

İstek URL’si: <https://chatter.mavibot.ai/api/#{api\\_key}/remove\\_from\\_list>

Müşterileri bir listeden kaldırır

Anahtar oluşturulurken erişim izni: **"Müşteri bilgilerini değiştirme veya silme izni"**.

<img src="/files/6632dc6b17430ad0d70f74133d0c1f7966a6c096" alt="" data-size="original">

**Yol**

api key\* - erişim token’ı

**Gövde**

list\_id - liste numarası\
clients - Mavibot oluşturucudaki müşteri numaraları dizisi (client\_id değerleri)

</details>

### Müşteri listesini al

<details>

<summary><mark style="color:mavi;">GET</mark> https://chatter.mavibot.ai/api/&#x3C;api_key>/get_clients</summary>

**İstek URL’si:** <https://chatter.mavibot.a/aipi/\\>\<api\_key>/get\_clients

Anahtar oluşturulurken erişim izni: **"Müşteri bilgilerini değiştirme veya silme izni"**.

<img src="/files/ccb7d905f49ccae7d0f7c351beee581ed82ffa3d" alt="" data-size="original">

**Yol**

api key\* - erişim token’ı

**Gövde**

offset – İlk öğeden itibaren uzaklık

limit – Yanıttaki öğe sayısı / Varsayılan: 500, Maksimum: 500

list – Liste numarası

reverse – Ters sıralamayı gösterir (en eski kayıttan en yeniye). Bu parametre yalnızca liste belirtilmemişse çalışır.

Durumu ve öğe dizisini döndürür.

```
{
"status":"success",
"clients":[{
    "id":44483,
    "platform_id":"146467928",
    "client_type":0,
    "name":null,
    "avatar":null,
    "message_id":null,
    "project_id":1,
    "created_at":1588248599,
    "updated_at":1588248599,
    "custom_answer":null,
    "tag":null,
    "group":"143414131",
    "operator_start_dialog":null
    }
]
}
```

</details>

### Herhangi bir mesajlaşma uygulamasında bot abonelerinin listesini al

<details>

<summary><mark style="color:mavi;">GET</mark> https://chatter.mavibot.ai/api/#{api_key}/subscribers</summary>

İstek URL’si: <https://chatter.mavibot.ai/api/#{api\\_key}/subscribers>

Seçilen bir mesajlaşma uygulamasından müşteri bilgilerini alır.

*<mark style="color:kırmızı;">Not!</mark>* Bu yöntem değişkenleri döndürmez.

Anahtar oluşturulurken erişim izni: **"Müşteri bilgilerini değiştirme veya silme izni"**.

<img src="/files/ccb7d905f49ccae7d0f7c351beee581ed82ffa3d" alt="" data-size="original">

**Yol**

api key\* - erişim token’ı

**Gövde**

page\
tag – abonelik sayfasında belirtilen etiket\
group – abonenin bağlı olduğu VK grup kimliği\
date\_from – Bu tarihten sonra abone olanlar (timestamp)\
date\_to – Bu tarihten önce abone olanlar (timestamp)\
client\_type – Abone listesinin alınacağı Messenger kimliği. Belirtilmezse tüm müşteriler döndürülür

```
[  
  {
    "id": 44886,
    "tag": null,
    "created_at": 1609867984,
    "name": "John Smith",
    "vk_id": "146467928",
    "group": "155824294",
    "variables": null
  },
  {
    "id": 44889,
    "tag": null,
    "created_at": 1609867984,
    "name": "Anna Smith",
    "vk_id": "1609867984",
    "group": "155824294",
    "variables": {
      "utm_source": "some_value"
    }
  }
]
```

</details>

## Değişkenlerle nasıl çalışılır

### Değişken atama

<details>

<summary><mark style="color:yeşil;">POST</mark> https://chatter.mavibot.ai/api/#{api_key}/save_variables</summary>

İstek URL’si: <https://chatter.mavibot.ai/api/#{api\\_key}/save\\_variables>

&#x20;<mark style="color:yeşil;">**!**</mark>**&#x20;**<mark style="color:$success;">**Bu isteğe herhangi bir sınır uygulanmaz.**</mark>&#x20;

Değişkenleri hem lead’e hem de müşteriye kaydetmenizi sağlar.&#x20;Varsayılan olarak, değişken atama isteği bunları anlaşma değişkenlerine ekler.&#x20;Müşteri profilindeki değişkenleri güncellemek için client. önekini kullanın. Örneğin, bir telefon için: client.phone.

Anahtar oluşturulurken erişim izni: **"Müşteri bilgilerini değiştirme veya silme izni"**.

<img src="/files/ccb7d905f49ccae7d0f7c351beee581ed82ffa3d" alt="" data-size="original">

**Güncelle**: clients parametresi değişkenleri toplu olarak atamanıza olanak tanır.\
Örnek: {"client\_id":49177759, "variables":{"client.phone":"88888888888"}}

**Yol**

api key\* - erişim token’ı

**Gövde**

clients – Değişken ataması için müşteri kimlikleri dizisi

client\_id – Müşteri kimliği

variables – Değişkenler sözlüğü (anahtar-değer çiftleri)

```
import requests
import json

params = {"client_id": "25554", "variables": {"var_name": "var_value"}}
token = 'b551e18c8b8e86bea6f14f38de3f5cc3c31ba1edb4d8'
url = f'https://chatter.mavibot.ai/api/{token}/save_variables'
requests.post(url, json=params)
```

</details>

### Değişkenleri al

<details>

<summary><mark style="color:mavi;">GET</mark> https://chatter.mavibot.ai/api/#{api_key}/get_variables?client_id=</summary>

İstek URL’si: <https://chatter.mavibot.ai/api/#{api\\_key}/get\\_variables?client\\_id=>

Anahtar oluşturulurken erişim izni: **"Müşteri bilgilerini değiştirme veya silme izni"**.

<img src="/files/ccb7d905f49ccae7d0f7c351beee581ed82ffa3d" alt="" data-size="original">

Örnek: <https://chatter.mavibot.ai/api/d3f31dabef80ddeb73d43938b4ef8bb0/get\\_variables?client\\_id=49177759>

**Yol**

api key\* - erişim token’ı

**Gövde**

client\_id - müşteri kimliği

```
import requests
import json


token = 'b551e18c8b8e86bea6f14f38de3f5cc3c31ba1edb4d8'
url = f'https://chatter.mavibot.ai/api/{token}/get_variables?client_id=85856'
requests.get(url)
```

</details>

## Müşteri kimliği (client\_id) nasıl alınır

### platform\_id değeri kullanılarak client\_id’yi alın

<details>

<summary><mark style="color:yeşil;">POST</mark> https://chatter.mavibot.ai/api/#{api_key}/find_client_id_by_platform_id</summary>

**İstek URL’si:** <https://chatter.mavibot.ai/api/#{api\\_key}/find\\_client\\_id\\_by\\_platform\\_id>

Anahtar oluşturulurken erişim izni: **"Müşteri bilgilerini değiştirme veya silme izni"**.

<img src="/files/ccb7d905f49ccae7d0f7c351beee581ed82ffa3d" alt="" data-size="original">

**Yol**

api key\* - erişim token’ı

**Gövde**

platform\_ids - bir mesajlaşma uygulamasındaki ID dizisi\
group\_id - bot kimliği

```
[{
"id":15099119,
"tag":null,
"created_at":1618815253,
"name":"ОЛЬГА БЕЛИК",
"avatar":"https:\\/\\/files.mavibot.ai\\/uploads\\/avatars\\/256865200.jpg",
"platform_id":"2568652",
"group":"Mavibotai_bot",
"variables":{"tg_username":"@belik"}},

{"id":21087377,
"tag":null,
"created_at":1626275893,
"name":"John Smith",
"avatar":"https:\\/\\/files.mavibot.ai\\/uploads\\/avatars\\/571830542.jpg",
"platform_id":"571830542",
"group":"Mavibotai_bot",
"variables":{"tg_username":"@jsmith61"}
}]
```

</details>

### Çevrimiçi sohbetten client\_id’yi al

<details>

<summary><mark style="color:mavi;">GET</mark> https://chatter.mavibot.ai/api/#{api_key}/online_chat_client_id?recipient=</summary>

İstek URL’si: <https://chatter.mavibot.ai/api/#{api\\_key}/online\\_chat\\_client\\_id?recipient=>

Bu yöntem, bir web sitesini bir sohbet botuyla entegre etmenizi sağlar. Örneğin, bir kullanıcı bir promosyon sayfasını ziyaret ederse, kişiselleştirilmiş bir teklif ile sohbet içinde hemen bir mesaj gönderebilirsiniz.

Anahtar oluşturulurken erişim izni: "Müşteri bilgilerini değiştirme veya silme izni".

<img src="/files/6632dc6b17430ad0d70f74133d0c1f7966a6c096" alt="" data-size="original">

**Yol**

api key\* - erişim tiken

**Gövde**

tag - etiket (müşteri etiketi)\
name - müşteri adı\
recipient - bir web sitesindeki diyalog kimliği

#### Nereden alınır **recipient?**&#x20;

Bunu Mavibot.ai çevrimiçi sohbeti olan web sitesinde alabilirsiniz, özelliği almak için JS kullanın **MavibotAi.recipient\_id**.

<img src="/files/7ee5c60a28b721469823940673027b0e56900ff1" alt="" data-size="original">

```
{ "client_id": 36553 }
```

</details>

### WhatsApp numarasıyla client\_id’yi al

<details>

<summary><mark style="color:mavi;">GET</mark> https://chatter.mavibot.ai/api/#{api_key}/whatsapp_client_id?phone=</summary>

İstek URL’si: <https://chatter.mavibot.ai/api/#{api\\_key}/whatsapp\\_client\\_id?phone=>

Bu yöntem, müşterinin WhatsApp telefon numarasını biliyorsanız API istekleri yapmak için client ID’yi döndürür.\
Bu numaraya sahip bir müşteri yoksa, yöntem 404 hatası döndürür.

Anahtar oluşturulurken erişim izni: "Müşteri bilgilerini değiştirme veya silme izni".

<img src="/files/ccb7d905f49ccae7d0f7c351beee581ed82ffa3d" alt="" data-size="original">

**Yol**

api key\* - erişim token’ı

**Gövde**

phone - telefon numarası\
group\_id - bot kimliği

</details>

### Telefon numarasıyla client\_id’yi al

<details>

<summary><mark style="color:mavi;">GET</mark> https://chatter.mavibot.ai/api/&#x3C;api_key>/find_client_id_by_phone?phone= </summary>

İstek URL’si: <https://chatter.mavibot.ai/api/\\>\<api\_key>/find\_client\_id\_by\_phone?phone=&#x20;

Bu yöntem, API istekleri yapmak için client ID’yi döndürür.

Arama hem WhatsApp müşterileri arasında hem de değişkenler üzerinden yapılır.

Anahtar oluşturulurken erişim izni: "Müşteri bilgilerini değiştirme veya silme izni".

<img src="/files/ccb7d905f49ccae7d0f7c351beee581ed82ffa3d" alt="" data-size="original">

**Yol**

api key\* - erişim token’ı

**Gövde**

phone - telefon numarası

</details>

### email ile client\_id’yi al

<details>

<summary><mark style="color:mavi;">GET</mark> https://chatter.mavibot.ai/api/#{api_key}/find_client_id_by_email?email= </summary>

URL isteği: <https://chatter.mavibot.ai/api/#{api\\_key}/find\\_client\\_id\\_by\\_email?email=&#x20>;

Bu yöntem, API istekleri yapmak için müşteri ID’sini döndürür.\
Arama değişkenler kullanılarak yapılır.

Anahtar oluşturulurken erişim izni: "Müşteri bilgilerini değiştirme veya silme izni".

<img src="/files/ccb7d905f49ccae7d0f7c351beee581ed82ffa3d" alt="" data-size="original">

**Yol**

api key\* - erişim token’ı

**Gövde**

email - arama için e-posta

</details>

### Değişken değerine göre client\_id’yi al

<details>

<summary><mark style="color:mavi;">GET</mark> https://chatter.mavibot.ai/api/#{api_key}/find_client_id_by_var?var=&#x26;val=</summary>

İstek URL’si: <https://chatter.mavibot.ai/api/#{api\\_key}/find\\_client\\_id\\_by\\_var?var=\\&val=>

Bu yöntem, API istekleri yapmak için client ID’yi döndürür.

Anahtar oluşturulurken erişim izni: "Müşteri bilgilerini okuma izni"

<img src="/files/ccb7d905f49ccae7d0f7c351beee581ed82ffa3d" alt="" data-size="original">

**Yol**

api key\* - erişim token’ı

**Gövde**

**var -** arama yapılacak değişken adı\
**val -** değişken değerini\
**group\_id -** grup ID’si\
**search\_in -** deal değişkenlerinde arama yapmak için 'order' değerini verin; proje müşterileri için en fazla üç değişkende arama yapar ve belirtilen tüm değişkenlere sahip müşterilerin bir listesini döndürür.

</details>

### Değişken değerine göre en son oluşturulan müşterinin ID’sini al

<details>

<summary><mark style="color:mavi;">GET</mark> https://chatter.mavibot.ai/api/#{api_key}/find_latest_client_id_by_var?var=&#x26;val=</summary>

URL isteği: <https://chatter.mavibot.ai/api/#{api\\_key}/find\\_latest\\_client\\_id\\_by\\_var> ?var=\&val=

Bu yöntem, API istekleri yapmak için en son oluşturulan müşterinin ID’sini döndürür. Hem müşteri hem de deal değişkenlerinde arama yapar.

Anahtar oluşturulurken erişim izni: "Müşteri bilgilerini okuma izni"

<img src="/files/ccb7d905f49ccae7d0f7c351beee581ed82ffa3d" alt="" data-size="original">

**Yol**

api key\* - erişim token’ı

**Gövde**

**var -** arama yapılacak değişken adı\
**val -** değişken değerini

</details>

### Değişken değerine göre client\_id değerlerinin listesini al

<details>

<summary><mark style="color:mavi;">GET</mark> https://chatter.mavibot.ai/api/#{api_key}/find_all_client_id_by_var?var=&#x26;val=</summary>

URL isteği: <https://chatter.mavibot.ai/api/#{api\\_key}/find\\_all\\_client\\_id\\_by\\_var?var=\\&val=>

Bu yöntem, belirtilen değere sahip belirtilen değişkeni içeren müşteri ID’lerinin bir listesini döndürür.

Anahtar oluşturulurken erişim izni: "Müşteri bilgilerini okuma izni"

<img src="/files/ccb7d905f49ccae7d0f7c351beee581ed82ffa3d" alt="" data-size="original">

**Yol**

api key\* - erişim token’ı

**Gövde**

**var -** arama yapılacak değişken adı\
**val -** değişken değerini

```
{
    // Yanıt
}
```

</details>

### Birden fazla değişken değerine göre client\_id değerlerinin listesini al

<details>

<summary><mark style="color:mavi;">GET</mark> https://chatter.mavibot.ai/api/#{api_key}/find_all_client_id_by_several_vars?var=val</summary>

URL isteği: <https://chatter.mavibot.ai/api/#{api\\_key}/find\\_all\\_client\\_id\\_by\\_several\\_vars?var=val>

Anahtar oluşturulurken erişim izni: "Müşteri bilgilerini okuma izni".

<img src="/files/ccb7d905f49ccae7d0f7c351beee581ed82ffa3d" alt="" data-size="original">

**Yol**

api key\* - erişim belirteci

**Gövde**

variable1 - Değer1

variable2 - Değer2

variable3 - Değer3

```
{
 "status":"success","client_ids":[93891114]
}
```

</details>

### Değişkenlere göre ara

<details>

<summary><mark style="color:yeşil;">POST</mark> https://chatter.mavibot.ai/api/#{api_key}/find_clients</summary>

URL isteği: <https://chatter.mavibot.ai/api/#{api\\_key}/find\\_clients>

Bu yöntem değişkenlere göre arama yapar ve sorgu koşullarını karşılayan müşteri ID’lerinin bir listesini döndürür.

Varsayılan olarak arama müşteri değişkenlerinde yapılır (önerilir): {"q": {"result": "ok", "var": "home", "var": "60"}} – müşteri belirtilen tüm değişkenlere sahip olmalıdır

Deal değişkenlerinde arama yapın; belirtilen değişkenlerden en az biri mevcut olmalıdır: {"q": {"result": "ok", "var": "home", "var": "60"}, "search\_in": "order", "include\_all": False}

Müşteri değişkeni adı liste değerlerinden birine eşittir: {"q": {"name": {"\_in": \["Joe", "Jane", "Donald"]}}}

Müşteri değişkeni adı liste değerlerinden herhangi birine eşit DEĞİLDİR: {"q": {"name": {"\_not\_in": \["Joe", "Jane", "Donald"]}}}

Müşteri değişkeni adı "Joe"'ya eşit değildir: {"q": {"name": {"\_not": "Joe"}}}

**Not: Sayı karşılaştırması yalnızca tüm müşteriler aranan değişkende sayısal değerlere sahipse çalışır. Tek bir müşteride bile string varsa istek başarısız olur.**

Anahtar oluşturulurken erişim izni: "Müşteri bilgilerini okuma izni"

<img src="/files/ccb7d905f49ccae7d0f7c351beee581ed82ffa3d" alt="" data-size="original">

Parametreler

**Yol**

api key\* - erişim token’ı

**Gövde**

q – zorunlu parametre, değişkenleri aramak için sorgu koşullarını içerir

search\_in – hangi varlığın değişkenlerinin aranacağını belirtir; belirtilmezse arama müşteri değişkenlerinde yapılır. order değerini alabilir.

include\_all – q içindeki tüm koşulların karşılanıp karşılanmayacağı;

False – en az bir koşul eşleşirse varlık seçilir

```
Başarılı
{"status":"success","client_ids":[41203, 5622354, 785212]} 
{"status":"success","client_ids":[]} 
{"status": "fail", "message": "Parameter "q" required"} {"status": "fail", "message": "Error in parameter format"}
Hata
{"status":"fail","message":"Bir şeyler ters gitti"}
```

</details>

## Deals ile nasıl çalışılır

### Geçerli deal ID’sini al

<details>

<summary><mark style="color:mavi;">GET</mark> https://chatter.mavibot.ai/api/#{api_key}/get_current_order_id</summary>

**İstek URL’si:** <https://chatter.mavibot.ai/api/#{api\\_key}/get\\_current\\_order\\_id>

Anahtar oluşturulurken erişim izni: "CRM bilgilerini okuma izni".

<img src="/files/fc88587ed74c079fe8610f7f139a92e2e0711248" alt="" data-size="original">

**Yol**

api key\* - erişim token’ı

**Gövde**

client\_id - müşteri kimliği

```
Başarılı yanıt: {"status":"success","order_id":40632}, burada
order_id - mevcut deal ID’si
Hata yanıtı: {"status":"client_not_found"}
```

</details>

### Deal listesini al

<details>

<summary><mark style="color:mavi;">GET</mark> https://chatter.mavibot.ai/api/#{api_key}/get_orders</summary>

**İstek URL’si:** <https://chatter.mavibot.ai/api/#{api\\_key}/get\\_orders>

Anahtar oluşturulurken erişim izni: "CRM bilgilerini okuma izni"

<img src="/files/fc88587ed74c079fe8610f7f139a92e2e0711248" alt="" data-size="original">

**Yol**

api key\* - erişim token’ı

**Gövde**

client\_id - müşteri kimliği

**order\_status** - deal aşaması: \
0 - aktif deals\
1 - başarılı deals\
2 - başarısız deals

```
Başarılı yanıt: {"status":"success","order_id":[40338,40340,40341]} 
Hata yanıtı: {"status":"client_not_found"}
```

</details>

### Bir deal’i Mavibot funnel’ında bir sonraki aşamaya taşı

<details>

<summary><mark style="color:yeşil;">POST</mark> https://chatter.mavibot.ai/api/#{api_key}/move_order_to_next_state</summary>

**İstek URL’si:** <https://chatter.mavibot.ai/api/#{api\\_key}/move\\_order\\_to\\_next\\_state>

Anahtar oluşturulurken erişim izni: "CRM bilgilerini değiştirme/silme izni"

<img src="/files/9426133a95e16f6589b08362b9803ca761f5e170" alt="" data-size="original">

**Yol**

api key\* - erişim token’ı

**Gövde**

client\_id - müşteri kimliği

**order\_id** - deal ID’si

```
Başarılı yanıt: 
{"status":"success","state_id":37}, burada 
state_id - MavibotCRM’deki aşama ID’si 
Hata yanıtı: 
{"status":"client_not_found"}
```

</details>

### Deal verilerini al

<details>

<summary><mark style="color:yeşil;">POST</mark> https://chatter.mavibot.ai/api/#{api_key}/get_order_vars</summary>

**İstek URL’si:** <https://chatter.mavibot.ai/api/#{api\\_key}/get\\_order\\_vars>

Anahtar oluşturulurken erişim izni: "CRM bilgilerini okuma izni"

<img src="/files/fc88587ed74c079fe8610f7f139a92e2e0711248" alt="" data-size="original">

**Yol**

api key\* - erişim token’ı

**Gövde**

client\_id - müşteri kimliği

**order\_id** - deal ID’si

variables - değişken dizisi\
(format:\["var\_name1", "var\_name2"])

```
Başarılı yanıt: 
{"status":"success","result":{"var_name1":"111","var_name2":"13.04.2023"}} 

Hata örneği: 
{"status":"client_not_found"}
```

</details>

### Deal değişkenleri ekle

<details>

<summary><mark style="color:yeşil;">POST</mark> https://chatter.mavibot.ai/api/#{api_key}/set_order_vars</summary>

**İstek URL’si:** <https://chatter.mavibot.ai/api/#{api\\_key}/set\\_order\\_vars>

Anahtar oluşturulurken erişim izni: "CRM bilgilerini değiştirme/silme izni"

<img src="/files/9426133a95e16f6589b08362b9803ca761f5e170" alt="" data-size="original">

**Yol**

api key\* - erişim token’ı

**Gövde**

client\_id - müşteri kimliği

**order\_id** - deal ID’si

variables - değişkenlerin bir sözlüğü (anahtar değişken adı, değer ise o değişkende saklanması gereken değerdir)\
(format:{"var\_name": "var\_velue"})

```
Başarılı yanıt: {"status":"success"} 
Hata yanıtı: {"status":"order 12345 not found"}
```

</details>

### Bir deal oluştur

<details>

<summary><mark style="color:yeşil;">POST</mark> https://chatter.mavibot.ai/api/#{api_key}/create_order</summary>

**İstek URL’si:** <https://chatter.mavibot.ai/api/#{api\\_key}/create\\_order>

Anahtar oluşturulurken erişim izni: "CRM bilgilerini değiştirme/silme izni"

<img src="/files/9426133a95e16f6589b08362b9803ca761f5e170" alt="" data-size="original">

**Yol**

api key\* - erişim token’ı

**Gövde**

client\_id - müşteri kimliği

name - deal adı

description - deal açıklaması

budget - deal tutarı

İstekte aşağıdaki parametrelerden birini belirtmelisiniz: client\_id, email veya phone.\
Birden fazla parametre sağlanırsa yalnızca biri kullanılacaktır. Öncelik sırası: client\_id > phone > email.\
phone veya email sağlanırsa ve bu telefon numarası ya da e-posta ile mevcut bir müşteri yoksa, yeni bir müşteri oluşturulacaktır.

```
Başarılı yanıt: {"status":"success","order_id":40654}, 
burada order_id yeni aktif deal’in ID’sidir.
Hata yanıtı: {"status":"client_not_found"}
```

</details>

### Bir deal’i MavibotCRM’de bir aşamaya taşı

<details>

<summary><mark style="color:yeşil;">POST</mark> https://chatter.mavibot.ai/api/#{api_key}/set_order_state</summary>

**İstek URL’si:** <https://chatter.mavibot.ai/api/#{api\\_key}/set\\_order\\_state>

Anahtar oluşturulurken erişim izni: "CRM bilgilerini değiştirme/silme izni"

<img src="/files/9426133a95e16f6589b08362b9803ca761f5e170" alt="" data-size="original">

**Yol**

api key\* - erişim token’ı

**Gövde**

client\_id - müşteri kimliği

state\_id - müşterinin deal’inin taşınması gereken aşama numarası

</details>

### Mavibot CRM’de funnel aşaması ID’sini al

<details>

<summary><mark style="color:mavi;">GET</mark> https://chatter.mavibot.ai/api/#{api_key}/get_order_state</summary>

**İstek URL’si:** <https://chatter.mavibot.ai/api/#{api\\_key}/get\\_order\\_state>

Anahtar oluşturulurken erişim izni: "CRM bilgilerini okuma izni"

<img src="/files/fc88587ed74c079fe8610f7f139a92e2e0711248" alt="" data-size="original">

**Yol**

api key\* - erişim token’ı

**Gövde**

client\_id - müşteri kimliği

state\_id - deal ID’si (belirtilmezse, yöntem mevcut deal’in aşama ID’sini döndürür)

```
Başarılı bir yanıt örneği:
{'status': 'success', 'state_id': 123456}

Başarısız bir yanıt örneği:
{'status': 'order not found'}
```

</details>

## Başka hangi özellikler mevcut?

### Bir telefon numarasının WhatsApp’ı olup olmadığını kontrol et

<details>

<summary><mark style="color:mavi;">GET</mark> https://chatter.mavibot.ai/api/#{api_key}/check_whatsapp</summary>

**İstek URL’si:** <https://chatter.mavibot.ai/api/#{api\\_key}/check\\_whatsapp>

**Bu yöntemi kullanmak için WhatsApp’ın Mavibot’a bağlı olması gerekir.**

Anahtar oluşturulurken erişim izni: "Müşteri bilgilerini değiştirme veya silme izni".

<img src="/files/ccb7d905f49ccae7d0f7c351beee581ed82ffa3d" alt="" data-size="original">

GET veya POST kullanılarak çağrılabilir.\
Telefon numarası herhangi bir formatta sağlanabilir.

**Yol**

api key\* - erişim token’ı

**Gövde**

phone - kontrol edilecek telefon numarası

</details>

### Projeye bağlı mesajlaşma uygulamalarının listesini al

<details>

<summary><mark style="color:mavi;">GET</mark> https://chatter.mavibot.ai/api/&#x3C;api_key>/connected_channels</summary>

URL isteği: <https://chatter.mavibot.ai/api/\\>\<api\_key>/connected\_channels

Anahtar oluşturulurken erişim izni: "Müşteri bilgilerini değiştirme veya silme izni".

<img src="/files/ccb7d905f49ccae7d0f7c351beee581ed82ffa3d" alt="" data-size="original">

Fonksiyon, müşterileri içe aktarırken kullanılması gereken her mesajlaşma uygulaması için group\_id parametresini döndürür.

WhatsApp için ayrıca bir **status** alanını da döndürür; bu alan aşağıdaki değerleri alabilir:<br>

**NOT\_STARTED = 0**\
**STARTED = 1**\
**ASLEEP = 2**\
**STOPPED = 3**

**Yol**

api key\* - erişim token’ı

```
{'project_id': 1, 
'viber': [{
        'id': 14, 
        'uri': 'mavibotstage', 
        'name': 'mavibotstage', 
        'enabled': true,
        'group_id': 11}], 
'facebook': [], 
'telegram': [{
        'id': 23, 
        'short_name': 'bulls_vs_bears_bot', 
        'name': 'bulls_vs_bears_bot', 
        'enabled': true,
        'group_id': 'bulls_vs_bears_bot'}], 
'whatsapp': [], 
'avito': [], 
'ok': [], 
'vkontakte': [{
        'id': 33, 
        'group': '143414131',
        'group_id': '143414131'}]
}
```

</details>

### Bot akışındaki blokların listesini al

<details>

<summary><mark style="color:mavi;">GET</mark> https://chatter.mavibot.ai/api/&#x3C;api_key>/get_messages</summary>

**İstek URL’si:** <https://chatter.mavibot.ai/api/\\>\<api\_key>/get\_messages

Anahtar oluşturulurken erişim izni: "Müşteri bilgilerini değiştirme veya silme izni".

<img src="/files/ccb7d905f49ccae7d0f7c351beee581ed82ffa3d" alt="" data-size="original">

**Yol**

api key\* - erişim token’ı

</details>

### İç içe müşteri verilerini al

<details>

<summary>delimiter</summary>

İç içe sözlüklerden (ilk seviyede değil) client\_id ve/veya müşterinin telefon numarasını almak için delimiter parametresini kullanın.

İstek URL’nize şunu ekleyin:

?delimiter=1\&delimiter\_value\_client\_id={key1}1{key2}\&delimiter\_value\_phone={key1}1{key2}&#x20;

burada:

?delimiter=1 – anahtarları ayıran ayırıcı değeri {key1}1{key2}1{key3}

delimiter\_value\_client\_id={key1}1{key2} – müşteri ID’sini almak için

delimiter\_value\_phone={key1}1{key2} – müşterinin telefon numarasını almak için

{key1}, {key2}, … – değerleri içeren anahtarlar (ayırıcı hariç herhangi bir karakter içerebilir). Sınırsız sayıda anahtar olabilir:\
?delimiter=1\&delimiter\_value\_client\_id={key1}1{key2}1{key3}1{key4}1{key5}1{key6}. \
**Anahtarlar süslü parantezler olmadan iletilir.**

Anahtarlar arasında ayırıcıyı kullanın. Örneğin, delimiter=2 ise {key1}2{key2}2{key3}; delimiter=5 ise {key1}5{key2}5{key3}. Anahtarın ayırıcı karakteri içermediğinden emin olun.

Örnek:

<https://chatter.mavibot.a/aipi/\\>\<api\_key>/callback<mark style="color:sarı;">**?delimiter=1\&delimiter\_value\_client\_id={key1}1{key2}\&delimiter\_value\_phone={key1}1{key2}**</mark>&#x20;

Yalnızca ID’yi veya yalnızca telefon numarasını da alabilirsiniz:&#x20;

<https://chatter.salebot.pro/api/\\>\<api\_key>/callback<mark style="color:yeşil;">**?delimiter=1\&delimiter\_value\_client\_id={key1}1{key2} -**</mark> yalnızca müşteri ID’si;

<https://chatter.salebot.pro/api/\\>\<api\_key>/callback<mark style="color:yeşil;">**?delimiter=1delimiter\_value\_phone={key1}1{key2}**</mark> - yalnızca telefon numarası;

API yöntemleri:

1. Botu başlat: <https://chatter.mavibotbot.ai/api/\\>\<api\_key>/callback
2. Botu WhatsApp numarasıyla başlat: <https://chatter.mavibotbot.ai/api/\\>\<api\_key>/whatsapp\_callback
3. Botu Telegram ID’siyle başlat: <https://chatter.mavibotbot.ai/api/\\>\<api\_key>/tg\_callback
4. E-posta müşterisine callback mesajı gönder: <https://chatter.mavibotbot.ai/api/\\>\<api\_key>/email\_callback
5. Müşteriye mesaj gönder: <https://chatter.mavibotbot.ai/api/\\>\<api\_key>/message
6. WhatsApp mesajı gönder: <https://chatter.mavibotbot.ai/api/\\>\<api\_key>/whatsapp\_message
7. Toplu mesajlaşma: <https://chatter.mavibotbot.ai/api/\\>\<api\_key>/broadcast
8. Değişkenleri ata: <https://chatter.mavibotbot.ai/api/\\>\<api\_key>/save\_variables   \\

</details>

{% hint style="success" %}
Ek yöntemlere ihtiyacınız varsa, lütfen destekle iletişime geçin.
{% endhint %}


---

# 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/api-ile-calisma/api-olusturucu.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.
