İleri konular

Destek Sitesi API’si

Mavi Masa API Referans Dokümanı

Bu doküman, DestekMaviMasa sisteminin sunduğu RESTful API metodlarını detaylı olarak açıklar. API, hem iç entegrasyonlar (inbound) hem de dış entegrasyonlar (outbound) için kullanılır. Kurumsal ortamlarda otomasyon, veri senkronizasyonu ve sistem entegrasyonları için kritik bir bileşendir.


📌 Genel Bilgiler

API Temel Adresi

https://[MAVIMASA]/api

🔹 [MAVIMASA]: Mavi Masa uygulamasının tam adresidir. Bulut (SaaS) ya da yerel kurulum fark etmez.
⚠️ Eğer Mavi Masa bir alt dizinde barındırılıyorsa, URL’ye /mavimasaeklemeyi unutmayın.

Örnek (SaaS Kullanıcıları İçin):

https://company.desteksitesi.com/mavimasa/api

 

🔐 Kimlik Doğrulama Yöntemleri

2. Temel Kimlik Doğrulama (Basic Authentication)

✅ Tüm API metodları, kullanıcı izinlerini kontrol eder — bu yüzden her istekte temel kimlik doğrulama gereklidir.

Nasıl Oluşturulur?

  1. Kullanıcı adı ve şifreyi kullaniciadi:sifre formatında birleştirin.
  2. Elde edilen string’i Base64 ile kodlayın.
  3. Başlık olarak şu şekilde gönderin:
    http
     
     
    Authorization: Basic YWRtaW46YWRtaW4=

curl Örneği:

bash
 
 
curl -u admin:password -v http://localhost/mavimasa/api/Ticket?id=1234

📌 Windows/AD kimlik doğrulaması kullanıyorsanız, kullanıcı adını DOMAIN\kullaniciadi formatında belirtin.

⚠️ Yanlış kimlik bilgisi 3 kez girildiğinde IP adresiniz 5 dakika boyunca bloke edilir.


3. Token Tabanlı Kimlik Doğrulama (Bearer Token)

🔑 Alternatif olarak, token tabanlı kimlik doğrulama da desteklenir.

Nasıl Alınır?

  • Mavi Masa arayüzünde /User/Token/ sayfasına gidin.
  • JSON formatında almak için: /User/Token?json=true

Kullanım:

http
 
 
Authorization: Bearer <User-Token>

🔄 Şifrenizi değiştirdiğinizde token otomatik olarak geçersizleşir.
🔒 Tüm token’ları tek seferde geçersiz kılmak isterseniz, yönetici panelinden uygulamanın “shared secret” ayarını değiştirin.


📥 Parametre Gönderme Kuralları

4. Parametre İletimi

📌 Tüm parametreler, query string veya POST verisi olarak gönderilmelidir — JSON kullanılmamalıdır.

Doğru Kullanım:

http
 
 
https://[mavimasa-url]/api/SetCustomField?ticketId=123&fieldId=321&value=blahblah

💡 Bazı metodlar JSON kabul eder — ancak bu önerilmez. Dokümantasyonu dikkatlice okuyarak standart yöntemi kullanın.


📦 GZipped Yanıt (Bandwidth Tasarrufu)

⚡ Performans ve bant genişliği için, isteklere aşağıdaki başlığı ekleyin:

http
 
 
Accept-Encoding: gzip

❗ Yanıt Kodları ve Hata Yönetimi

API metodları aşağıdaki durum kodlarını döndürür:

Kod Açıklama
200 OK İşlem başarıyla tamamlandı
404 Not Found Talep, kullanıcı veya varlık bulunamadı
400 Bad Request Eksik veya hatalı parametre var
429 Too Many Requests Hız sınırı aşıldı

🚨 Her zaman yanıt gövdesini kontrol edin — hata nedeni burada açıkça belirtilir.


🧪 Genel Test Metodu: Yetkilendirme (Authorization)

http
 
 
POST https://[mavimasa-url]/api/Authorization

✅ Kimlik doğrulamanızın doğru çalışıp çalışmadığını test eder.
📄 Mevcut kullanıcının tüm bilgilerini JSON formatında döndürür.

Örnek Yanıt:

json
 
 
{
    "UserID": 1,
    "Username": "admin",
    "Email": "admin@testmail",
    "IsAdmin": true,
    "Disabled": false,
    "LastSeen": "2020-02-28T04:48:00Z"
}

💡 Bu API yapıları, özellikle CRM entegrasyonları, otomatik talep oluşturma, dış sistemlerle senkronizasyon ve sistem yönetimi süreçlerinde kritik öneme sahiptir. Herhangi bir teknik desteğe ihtiyacınız varsa, DestekMaviMasa ekibine başvurabilirsiniz.





🎫 Talep (Ticket) Metodları


Talep (Ticket) Yönetimi API Metodları

Bu bölüm, Mavi Masa sisteminde taleplerin oluşturulması, güncellenmesi, kapatılması ve detaylarının alınması için kullanılan API metodlarını detaylı olarak açıklar. Bu metodlar, otomasyon, entegrasyon ve sistem yönetimi süreçlerinde kritik öneme sahiptir.


📄 Talep Detaylarını Getir (GET)

http
 
 
Wrap
GET https://[mavimasa-url]/api/ticket?id=123

✅ Belirtilen talebin tamamını JSON formatında döndürür — ek dosyalar, etiketler, kullanıcı bilgileri ve durum gibi tüm veriler dahildir.

Parametre:

Parametre Tip Açıklama
id int Talep ID’si

Örnek Yanıt:

json
 
 
Wrap
{
    "TicketID": 2431395,
    "Subject": "test",
    "Body": "test ticket",
    "Status": "In progress",
    "Priority": 0,
    "CategoryName": "General issues",
    "Attachments": [
        {
            "FileName": "icon.png",
            "Url": "https://support.desteksitesi.com/mavimasa/File/Get?id=1740828"
        }
    ],
    "Tags": [
        {
            "Name": "tag1"
        }
    ],
    "SubmitterUserInfo": {
        "UserID": 43499,
        "Username": "admin"
    },
    "AssigneeUserInfo": {
        "UserID": 43499,
        "Username": "admin"
    },
    "DueDate": null,
    "ResolvedDate": null,
    "TimeSpentInSeconds": 143,
    "UpdatedByPerformer": true
}

➕ Yeni Talep Oluştur (POST)

http
 
 
Wrap
POST https://[mavimasa-url]/api/ticket

✍️ Yeni bir talep oluşturur. Dosya ekleme desteği de mevcuttur.

Parametreler:

Parametre Tip Açıklama
categoryId int Kategori ID’si
subject string Talep konusu
body string Talep metni
priorityId int Öncelik seviyesi: -1 (Low), 0 (Normal), 1 (High), 2 (Critical)
userId int (Opsiyonel) Başka bir kullanıcı adına talep oluşturma (teknisyen izni gerektirir)
tags string (Opsiyonel) Virgülle ayrılmış etiketler (tag1,tag2)
origin int (Opsiyonel) Kaynak: 0 (WebApp), 1 (Email), 2 (Widget), 3 (API), 4 (Scheduler), 5 (MobileApp), 6 (Phone), 7 (LiveChat), 8 (InPerson)
assignedToUserId int (Opsiyonel) Atanacak teknisyen ID’si
customFields string (Opsiyonel) Özel alanlar (JSON formatında)
suppressConfirmation bool (Opsiyonel) Onay e-postasını engelle

📎 Dosya eklemek için multipart/form-data kullanın.

curl Örneği:

bash
 
 
Wrap
curl -F "categoryId=1" -F "subject=test" -F "body=test" -F "priorityId=0" -F "uploadFile=@file.txt" -u admin:password -v http://localhost/mavimasa/api/ticket

Örnek Yanıt:

json
 
 
Wrap
{
    "id": 12345
}

🛠️ Talebi Güncelle (POST)

http
 
 
Wrap
POST https://[mavimasa-url]/api/UpdateTicket

🔄 Mevcut bir talebin parametrelerini değiştirir.
🔐 Sadece kendi taleplerinizi güncelleyebilirsiniz — yönetici veya teknisyen iseniz tüm talepleri güncelleyebilirsiniz.

Parametreler:

Parametre Tip Açıklama
id int Talep ID’si
categoryId int (Opsiyonel) Yeni kategori
priority int (Opsiyonel) Öncelik seviyesi
dueDate DateTime (Opsiyonel) Son teslim tarihi — boş string ile kaldırılır
assignedUserId int (Opsiyonel) Teknisyen ataması (0 = kaldır)
statusId int (Opsiyonel) Durum ID’si (1=Yeni, 2=Devam Ediyor, 3=Kapalı)
tags string (Opsiyonel) Etiketler (var olanlar silinir)
subject / body string (Opsiyonel) Konu / metin

Örnek İstek:

http
 
 
Wrap
https://[mavimasa-url]/api/UpdateTicket?id=321&dueDate=2018-12-01

Örnek Yanıt:

http
 
 
Wrap
HTTP 200 OK

👥 İkincil Atama Ekle (GET)

http
 
 
Wrap
GET https://[mavimasa-url]/api/AddSecondaryAssignee?ticketId=321&userId=123

👥 Talebe ikincil bir teknisyen atar. (Ayarlar aktifse)
🔐 Sadece Mavi Masa yönetici izniyle kullanılabilir.

Parametreler:

Parametre Tip Açıklama
ticketId int Talep ID’si
userId int Kullanıcı ID’si

📌 Talebi Kapat (GET)

http
 
 
Wrap
GET https://[mavimasa-url]/api/Close?id=321&suppressNotification=true

📌 Talebi kapatarak e-posta bildirimini bastırır.

Parametreler:

Parametre Tip Açıklama
id int Talep ID’si
suppressNotification bool (Opsiyonel) Bildirim göndermeden kapat

📝 Talepe Özel Alan Değeri Ata

1. Tek Özel Alan Değeri Ata (POST)

http
 
 
Wrap
POST https://[mavimasa-url]/api/SetCustomField

📌 Bir talebe özel alan değeri atar.

Parametreler:

Parametre Tip Açıklama
ticketId int Talep ID’si
fieldId int Özel alan ID’si
value string Değer (checkbox → true/false, dropdown → option ID, date → herhangi tarih formatı)

2. Birden Fazla Özel Alan Değeri Ata (POST)

http
 
 
Wrap
POST https://[mavimasa-url]/api/SetCustomFields

📊 Bir talebe birden fazla özel alan değerini tek istekte atar.

Örnek Parametreler:

http
 
 
Wrap
ticketId=10556&cf1624=123&cf1625=asd&cf1626=zxc

📊 Sistem İstatistikleri (GET)

http
 
 
Wrap
GET https://[mavimasa-url]/api/Stats?forCurrentUser=false

📈 Sistem genel istatistiklerini döndürür — açık talep sayısı, kapalı, yeni, atanmamış vs.

Parametre:

Parametre Tip Açıklama
forCurrentUser bool (Opsiyonel) Sadece mevcut kullanıcıya ait istatistikleri göster

Örnek Yanıt:

json
 
 
Wrap
{
    "TotalTickets": 208,
    "Closed": 22,
    "NewTickets": 163,
    "Unassigned": 33,
    "HandledByMe": 153
}

💡 Bu API metodları, özellikle talep otomasyonu, CRM entegrasyonu, raporlama ve sistem yönetimi süreçlerinde kritik öneme sahiptir. Herhangi bir teknik desteğe ihtiyacınız varsa, DestekMaviMasa ekibine başvurabilirsiniz.

 

Talep Arama, Özel Alanlar ve İlişkilendirme API Metodları

Bu bölüm, Mavi Masa sisteminde talepleri aramak, özel alanları yönetmek, dosya eklemek/kaldırmak ve talepler arasında ilişkiler kurmak için kullanılan API metodlarını detaylı olarak açıklar. Bu metodlar, veri analizi, otomasyon ve sistem entegrasyonlarında kritik öneme sahiptir.


🔍 Talep Arama (Search)

http
 
 
GET https://[mavimasa-url]/api/Search?query=TEXT&dateFrom=2020-12-12&fromUserId=123

📌 Belirli bir metin ve filtrelerle talepleri arar.

Parametreler:

Parametre Tip Açıklama
query string Aranacak metin
fromUserId int (Opsiyonel) Oluşturan kullanıcı ID’si
categoryId int[] (Opsiyonel) Kategori filtresi (?categoryId=1&categoryId=2)
statusId int[] (Opsiyonel) Durum filtresi
assignedToUserId int (Opsiyonel) Atanmış teknisyen ID’si
dateFrom / dateTo datetime (Opsiyonel) Oluşturulma tarihi aralığı

📋 Talep Özel Alanları (Ticket Custom Fields)

1. Talebe Ait Tüm Özel Alanları Görüntüle (GET)

http
 
 
GET https://[mavimasa-url]/api/TicketCustomFields?id=123

📄 Belirtilen talebe ait tüm özel alanları ve değerlerini listeler.

Parametreler:

Parametre Tip Açıklama
id int Talep ID’si
returnUnset bool (Opsiyonel) Değeri atanmamış alanları da göster (varsayılan: false)

Özel Alan Türleri:

Tür Değer
Text 1
Date 2
SelectionCombo 3
Checkbox 4
MultilineText 5

📎 Dosya Yönetimi

1. Tek Dosyayı İndir (GET)

http
 
 
GET https://[mavimasa-url]/api/attachment?id=123

📥 Belirtilen dosyayı indirir.
📄 Dosya adı Content-Disposition başlığında, dosya tipi Content-Type başlığında bulunur.


2. Tüm Dosyaları Listele (GET)

http
 
 
GET https://[mavimasa-url]/api/Attachments?id=123

📁 Belirtilen talebe ait tüm dosyaları listeler.

Örnek Yanıt:

json
 
 
[
    {
        "FileName": "image.jpg",
        "FileID": 123,
        "FileSize": 576,
        "Url": "https://mavimasa.com/File/Get?id=123"
    }
]

3. Dosya Ekle (POST)

http
 
 
POST https://[mavimasa-url]/api/AttachFile

📎 Talebe yeni bir dosya ekler.

Parametreler:

Parametre Tip Açıklama
id int Talep ID’si
uploadFile binary Dosya verisi

📦 multipart/form-data kullanın.

curl Örneği:

bash
 
 
curl -F "id=1" -F "uploadFile=@myfile.txt" -u admin:password -v http://localhost/mavimasa/api/AttachFile

4. Dosya Sil (GET)

http
 
 
GET https://[mavimasa-url]/api/DeleteFile/1233

🗑️ Talepten dosya siler.
🔐 Sadece Mavi Masa yönetici izniyle kullanılabilir.


👥 Abone Yönetimi

1. Yeni Abone Ekle (POST)

http
 
 
POST https://[mavimasa-url]/api/AddSubscriber

👥 Talebe yeni bir abone ekler.

Parametreler:

Parametre Tip Açıklama
id int Talep ID’si
userId int Abone olacak kullanıcı ID’si

2. Aboneyi Kaldır (POST)

http
 
 
POST https://[mavimasa-url]/api/RemoveSubscriber

🚫 Talepten aboneyi kaldırır.


3. Abone Listesini Getir (GET)

http
 
 
GET https://[mavimasa-url]/api/Subscribers?id=123

📋 Talebe abone olan kullanıcıların listesini döndürür.


🏷️ Kategoriler ve Teknisyenler

1. Tüm Kategorileri Listele (GET)

http
 
 
GET https://[mavimasa-url]/api/categories

📂 Kullanıcının erişebileceği tüm kategorileri listeler.


2. Kategoriye Ait Teknisyenleri Getir (GET)

http
 
 
GET https://[mavimasa-url]/api/TechsForCategory?id=123

👨‍🔧 Belirli bir kategoriye atanabilecek teknisyenleri listeler.


3. Kategoriye Ait Özel Alanları Getir (GET)

http
 
 
GET https://[mavimasa-url]/api/CustomFieldsForCategory?categoryId=123

📝 Kategoriye ait özel alanları ve seçeneklerini döndürür.


4. Yeni Kategori Oluştur (POST)

http
 
 
POST https://[mavimasa-url]/api/AddCategory?name=test&sectionId=1

➕ Yeni kategori oluşturur.

Parametreler:

Parametre Tip Açıklama
name string Kategori adı
sectionId int (Opsiyonel) Bölüm ID’si

Örnek Yanıt:

json
 
 
{
    "id": 7277
}

⚖️ Öncelikler ve İlişkilendirme

1. Tüm Öncelikleri Listele (GET)

http
 
 
GET https://[mavimasa-url]/api/Priorities

⚖️ Standart ve özel öncelik seviyelerini listeler.

Örnek Yanıt:

json
 
 
[
    {
        "PriorityID": 123,
        "Name": "Custom priority"
    }
]

2. Talepleri Birleştir (POST)

http
 
 
POST https://[mavimasa-url]/api/MergeTickets

🔗 İki talebi birleştirir — orijinal talep silinir.
⚠️ Geri dönüşü yoktur!

Parametreler:

Parametre Tip Açıklama
id int Ana talep ID’si
id2 int Birleştirilecek talep ID’si

3. Talepleri İlişkilendir / İlişkiyi Kaldır

http
 
 
POST https://[mavimasa-url]/api/LinkTickets
POST https://[mavimasa-url]/api/UnlinkTickets

🔗 Talepler arasında “ilişkili” bağlantı kurar veya kaldırır.

Parametreler:

Parametre Tip Açıklama
id int İlk talep ID’si
id2 int İkinci talep ID’si

4. Alt Talep Yönetimi

➕ Alt Talep Ekle

http
 
 
POST https://[mavimasa-url]/api/AddSubTicket

📂 Bir talebi başka bir talebin alt talebi yapar.

🚫 Alt Talep Kaldır

http
 
 
POST https://[mavimasa-url]/api/RemoveSubTicket

🗑️ Alt talebi kaldırır.

📋 Alt Talepleri Listele

http
 
 
GET https://[mavimasa-url]/api/SubTickets?id=123

📂 Belirtilen talebe ait alt talepleri listeler (bir seviye derinlikte).

📄 Üst Talep Bilgisi

http
 
 
GET https://[mavimasa-url]/api/ParentTicket?id=123

📄 Üst talep ID’sini döndürür — varsa.
returnFullTicket=true ile tam talep bilgilerini alabilirsiniz.


🔄 Entegrasyon Verileri

5. Talep Entegrasyon Verilerini Getir (GET)

http
 
 
GET https://[mavimasa-url]/api/TicketIntegrationData?id=123

🔄 Jira, GitHub, GitLab gibi sistemlerle entegrasyon bağlantılarını döndürür.

Örnek Yanıt:

json
 
 
{
    "JiraIssueUrl": "https://jira/browse/JB-1",
    "GitLabIssueUrl": "https://gitlab.com/empire/deathstar/-/issues/1"
}

🏷️ Talepe Etiket Ekle (POST)

http
 
 
POST https://[mavimasa-url]/api/TagTicket

🏷️ Talepe yeni bir etiket ekler — mevcut değilse oluşturur.

Parametreler:

Parametre Tip Açıklama
name string Etiket adı
ticketId int Talep ID’si

💡 Bu API metodları, özellikle talep analizi, otomatik kategorilendirme, entegrasyon ve raporlama süreçlerinde kritik öneme sahiptir. Herhangi bir teknik desteğe ihtiyacınız varsa, DestekMaviMasa ekibine başvurabilirsiniz.

 

Talep Yorumları (Comments) API Metodları

Bu bölüm, Mavi Masa sisteminde taleplere yorum ekleme, güncelleme ve mevcut yorumları görüntüleme işlemleri için kullanılan API metodlarını detaylı olarak açıklar. Bu metodlar, otomatik yanıt sistemleri, entegrasyonlar ve kullanıcı deneyimini iyileştirme süreçlerinde kritik öneme sahiptir.


💬 Yeni Yorum Ekle (POST)

http
 
 
POST https://[mavimasa-url]/api/comment

✍️ Belirtilen talebe yeni bir yorum (yanıt) ekler.
🔐 Sadece yetkili kullanıcılar tarafından kullanılabilir — yönetici veya ilgili kategoride teknisyen olmak gerekir.

Parametreler:

Parametre Tip Açıklama
id int Talep ID’si
body string Yorum metni
forTechsOnly bool (Opsiyonel) Sadece teknisyenler için mi? (varsayılan: false)
isSystem bool (Opsiyonel) Sistem yorumu mu? (gri renkte gösterilir — varsayılan: false)
recipientIds string (Opsiyonel) Virgülle ayrılmış kullanıcı ID’leri — sadece bu kullanıcılara bildirim gönder
fromUserId int (Opsiyonel) Başka bir kullanıcı adına yorum ekle — yönetici izni gerektirir

📎 Dosya eklemek için multipart/form-data kullanın.

curl Örneği:

bash
 
 
curl -F "id=1" -F "body=test" -F "uploadFile=@file.txt" -u admin:password -v http://localhost/mavimasa/api/comment

🛠️ Mevcut Yorumu Güncelle (POST)

http
 
 
POST https://[mavimasa-url]/api/updatecomment

🔄 Mevcut bir yorumu düzenler.
🔐 Yalnızca yorumun yazarı, ilgili kategorideki teknisyen veya yönetici tarafından yapılabilir.

Parametreler:

Parametre Tip Açıklama
id int Yorum ID’si
body string Yeni yorum metni
forTechsOnly bool (Opsiyonel) Sadece teknisyenler için mi?

📋 Talebe Ait Tüm Yorumları Getir (GET)

http
 
 
GET https://[mavimasa-url]/api/comments?id=123

📄 Belirtilen talebe ait tüm yorumları listeler.

Örnek Yanıt:

json
 
 
[
    {
        "CommentID": 1828,
        "IssueID": 471,
        "UserID": 1,
        "UserName": "admin",
        "Email": "admin@testmail",
        "IsSystem": false,
        "ForTechsOnly": false,
        "Body": "Hi\r
\r
",
        "CommentDate": "2020-02-28T04:48:00Z"
    }
]

📦 Hazır Yorum Şablonları (Canned Responses)

1. Tüm Hazır Yorumları Listele (GET)

http
 
 
GET https://[mavimasa-url]/api/CommentTemplates

📝 Sistemde tanımlı tüm hazır yorum şablonlarını döndürür.

Örnek Yanıt:

json
 
 
[
    {
        "TemplateId": 1420,
        "Name": "4.0 instead of 2.0",
        "Body": "You need to set Mavimasa's application pool to run under .NET 4.0 instead of 2.0 in IIS."
    },
    {
        "TemplateId": 362,
        "Name": "Which app??",
        "Body": "Could you please tell me, what app are you talking about exactly?"
    }
]

💡 Bu API metodları, özellikle otomatik yanıt sistemleri, kullanıcı destek süreçlerinin hızlandırılması ve yorum kalitesinin standartlaştırılması açısından çok değerlidir. Herhangi bir teknik desteğe ihtiyacınız varsa, DestekMaviMasa ekibine başvurabilirsiniz.

 


👤 Kullanıcı Yönetimi


Kullanıcı Yönetimi API Metodları

Bu bölüm, Mavi Masa sisteminde kullanıcıların oluşturulması, güncellenmesi, silinmesi ve yetkilendirilmesi için kullanılan API metodlarını detaylı olarak açıklar. Tüm bu işlemler, sistem yöneticilerinin kullanıcı verilerini merkezi bir şekilde kontrol etmesine olanak tanır.


👤 Kullanıcı Oluşturma ve Güncelleme

1. Yeni Kullanıcı Oluştur (POST)

http
 
 
Wrap
POST https://[mavimasa-url]/api/CreateUser

✅ Yeni bir kullanıcı kaydı oluşturur.
🔐 Sadece Mavi Masa yönetici izniyle kullanılabilir.

Parametreler:

Parametre Tip Açıklama
email string E-posta (benzersiz olmalı)
username string (Opsiyonel) Kullanıcı adı — belirtilmezse e-posta kullanılır
password string (Opsiyonel) Şifre — belirtilmezse otomatik güçlü şifre oluşturulur
firstName / lastName string İsim / Soyisim
phone / location string Telefon / Konum
company string Şirket — yoksa otomatik oluşturulur
department string Departman — yoksa otomatik oluşturulur
sendWelcomeEmail bool Hoş geldin e-postası gönder

Örnek Yanıt:

json
 
 
Wrap
{
    "userId": 456
}

2. Kullanıcı Bilgilerini Güncelle (POST)

http
 
 
Wrap
POST https://[mavimasa-url]/api/UpdateUser?userId=123

🛠️ Mevcut bir kullanıcının bilgilerini günceller.
🔐 Sadece Mavi Masa yönetici izniyle kullanılabilir.

Parametreler:

Parametre Tip Açıklama
userId int Güncellenecek kullanıcı ID’si (zorunlu)
username string Yeni kullanıcı adı
email string E-posta
firstName / lastName string İsim / Soyisim
notes string Ek notlar
phone / location string Telefon / Konum
department string Departman adı
disabled bool Kullanıcıyı devre dışı bırak
company string Şirket adı
password string Yeni şifre
enableEmailNotifications bool E-posta bildirimlerini aç/kapat
greeting string Otomatik eklenen selamlama metni (örn. Hi #FirstName#)
signature string Otomatik eklenen imza
outOfOffice bool “Ofiste değil” durumu
isAdmin bool Yönetici yetkisi ver

Örnek Yanıt:

json
 
 
Wrap
{
    "UserID": 123,
    "Username": "johndoe",
    "Email": "john@example.com",
    "IsAdmin": false,
    "Disabled": false
}

🗑️ Kullanıcı Silme

3. Kullanıcıyı Sil (POST)

http
 
 
Wrap
POST https://[mavimasa-url]/api/DeleteUser?userId=123

❗ Kullanıcıyı kalıcı olarak siler. Geri dönüşü yoktur!
🔐 Sadece Mavi Masa yönetici izniyle kullanılabilir.

Parametre:

Parametre Tip Açıklama
userId int Silinecek kullanıcı ID’si

📄 Kullanıcı Bilgilerini Görüntüleme

4. Kullanıcı Detaylarını Getir (GET)

http
 
 
Wrap
GET https://[mavimasa-url]/api/User?userId=123

📄 Belirtilen kullanıcıya ait tüm bilgileri döndürür.

Parametre:

Parametre Tip Açıklama
userId int Kullanıcı ID’si

5. E-posta ile Kullanıcı Bilgileri (GET)

http
 
 
Wrap
GET https://[mavimasa-url]/api/UserByEmail?email=admin@testmail.com

📧 E-posta adresiyle kullanıcı bilgilerini getirir.
🔐 Yönetici veya teknisyen izniyle erişilebilir.

Örnek Yanıt:

json
 
 
Wrap
{
    "UserID": 43499,
    "Username": "Max",
    "Email": "max@test",
    "FirstName": "Max",
    "IsAdmin": true,
    "IsTech": false,
    "LastSeen": "2020-02-28T04:48:00Z",
    "Signature": "Cheers,\r
Max",
    "Greeting": "Hi #FirstName#"
}

6. Kullanıcı Adıyla Bilgi Alma (GET)

http
 
 
Wrap
GET https://[mavimasa-url]/api/UserByUsername?username=admin

📋 Kullanıcı adı ile kullanıcı bilgilerini getirir.
🔐 Yönetici veya teknisyen izniyle erişilebilir.


🔄 Kullanıcı Birleştirme

7. İki Kullanıcıyı Birleştir (POST)

http
 
 
Wrap
POST https://[mavimasa-url]/api/MergeUsers?fromUserId=123&toUserId=321

🔄 İki kullanıcıyı birleştirir — kaynak kullanıcı silinir, hedef kullanıcıya tüm veriler aktarılır.
⚠️ Geri dönüşü yoktur!
🔐 Sadece Mavi Masa yönetici izniyle kullanılabilir.

Parametreler:

Parametre Tip Açıklama
fromUserId int Birleştirilecek kaynak kullanıcı ID’si
toUserId int Hedef kullanıcı ID’si

📝 Kullanıcı Özel Alanları

8. Kullanıcıya Özel Alan Değeri Ata (POST)

http
 
 
Wrap
POST https://[mavimasa-url]/api/SetCustomFieldForUser

📌 Bir kullanıcıya özel alan değeri atar.
🔐 Sadece Mavi Masa yönetici izniyle kullanılabilir.

Parametreler:

Parametre Tip Açıklama
id int Kullanıcı ID’si
fieldId int Özel alan ID’si
value string Değer (checkbox → true/false, dropdown → option ID, date → herhangi tarih formatı)

Örnek Yanıt:

http
 
 
Wrap
HTTP 200 OK

9. Kullanıcı Özel Alanlarını Görüntüle (GET)

http
 
 
Wrap
GET https://[mavimasa-url]/api/UserCustomFields?id=123

📋 Belirtilen kullanıcıya ait tüm özel alanları listeler.
🔐 Sadece teknisyen izniyle erişilebilir.

Örnek Yanıt:

json
 
 
Wrap
[
    {
        "FieldName": "User status",
        "FieldID": 1234,
        "Type": 1,
        "Value": "Paying Customer"
    }
]

👥 Tüm Kullanıcıları Listeleme

10. Tüm Kullanıcıları Listele (GET)

http
 
 
Wrap
GET https://[mavimasa-url]/api/Users

✅ Sistemdeki tüm kullanıcıları listeler.
🔐 Sadece Mavi Masa yönetici izniyle erişilebilir.

Parametreler:

Parametre Tip Açıklama
count int Döndürülecek kayıt sayısı (varsayılan: 500)
page int Sayfalama (örn. count=50&page=2 → 51-100 arası)
listMode string Filtre: all, techs, admins, regular, disabled
departmentId int Belirli departmandan kullanıcılar
companyId int Belirli şirketten kullanıcılar

Örnek Yanıt:

json
 
 
Wrap
[
    {
        "UserID": 321,
        "Username": "123@123.com",
        "Email": "123@123.com",
        "IsAdmin": false,
        "Disabled": false
    }
]

⚙️ Kategori Bazlı Teknisyen Yetkilendirme

11. Kullanıcıya Kategori Teknisyen Yetkisi Ver (POST)

http
 
 
Wrap
POST https://[mavimasa-url]/api/AddCategoryTechPermission?userId=123&categoryId=321

👨‍🔧 Belirli bir kategoriye teknisyen yetkisi verir.
🔐 Sadece yönetici izniyle kullanılabilir.

Parametreler:

Parametre Tip Açıklama
userId int Kullanıcı ID’si
categoryId int Kategori ID’si

12. Kullanıcının Kategori Teknisyen Yetkisini Kaldır (POST)

http
 
 
Wrap
POST https://[mavimasa-url]/api/RemoveCategoryTechPermission?userId=123&categoryId=321

🚫 Kullanıcının belirli kategorideki teknisyen yetkisini kaldırır.
🔐 Sadece yönetici izniyle kullanılabilir.


💡 Bu API metodları, özellikle kullanıcı senkronizasyonu, otomatik profil oluşturma, grup bazlı yetkilendirme ve entegrasyon ihtiyaçlarınızda kritik öneme sahiptir. Herhangi bir teknik desteğe ihtiyacınız varsa, DestekMaviMasa ekibine başvurabilirsiniz.


🏢 Şirket ve Departman Yönetimi


Şirket ve Departman Yönetimi API Metodları

Bu bölüm, Mavi Masa sisteminde şirket ve departman verilerini yönetmek için kullanılan API metodlarını detaylı olarak açıklar. Tüm bu metodlar, sistemdeki verileri listelemek, oluşturmak, güncellemek ve özel alanları yönetmek amacıyla tasarlanmıştır.


🏢 Şirketler (Companies)

1. Şirket Listesi Al (GET)

http
 
GET https://[mavimasa-url]/api/Companies

✅ Tüm şirketleri listeler.
🔐 Sadece Mavi Masa yönetici izniyle erişilebilir.

Örnek Yanıt:

json
 
[
    {
        "CompanyID": 1,
        "Name": "test company",
        "EmailDomain": null,
        "Notes": null
    }
]

2. Yeni Şirket Oluştur (POST)

http
 
POST https://[mavimasa-url]/api/Company

➕ Yeni bir şirket kaydı oluşturur.
🔐 Sadece Mavi Masa yönetici izniyle kullanılabilir.

Parametreler:

Parametre Tip Açıklama
name string Şirket adı (zorunlu)
emailDomains string (Opsiyonel) E-posta domainleri. Birden fazla domain varsa ; ile ayırın. Örn: "empire.com;deathstar.com;vader.com"

Örnek Yanıt:

json
 
{
    "id": 123
}

⚠️ Aynı isimde bir şirket zaten varsa, mevcut şirketin ID’sini döndürür.


3. Şirket Bilgilerini Güncelle (POST)

http
 
POST https://[mavimasa-url]/api/UpdateCompany

🛠️ Mevcut bir şirketin bilgilerini günceller.
🔐 Sadece Mavi Masa yönetici izniyle kullanılabilir.

Parametreler:

Parametre Tip Açıklama
id int Şirket ID’si (zorunlu)
name string Yeni şirket adı
notes string Şirket notları
emailDomains string (Opsiyonel) Domain listesi (; ile ayrılmış)

Örnek Yanıt:

json
 
{
    "CompanyID": 123,
    "Name": "Updated Company Name",
    "EmailDomain": "newdomain.com",
    "Notes": "Updated notes"
}

🏢 Departmanlar (Departments)

4. Departman Listesi Al (GET)

http
 
GET https://[mavimasa-url]/api/Departments

✅ Tüm departmanları listeler.
🔐 Sadece Mavi Masa yönetici izniyle erişilebilir.

Örnek Yanıt:

json
 
[
    {
        "DepartmentID": 1,
        "Name": "test name"
    }
]

📝 Şirkete Özel Alan Atama

5. Şirkete Özel Alan Değeri Ata (POST)

http
 
POST https://[mavimasa-url]/api/SetCustomFieldForCompany

📌 Bir şirkete özel alan değeri atar.
🔐 Sadece Mavi Masa yönetici izniyle kullanılabilir.

Parametreler:

Parametre Tip Açıklama
id int Şirket ID’si
fieldId int Özel alan ID’si
value string Değer (checkbox → true/false, dropdown → option ID, date → herhangi bir tarih formatı)

Örnek Yanıt:

http
 
HTTP 200 OK

6. Şirket Özel Alanlarını Görüntüle (GET)

http
 
GET https://[mavimasa-url]/api/CompanyCustomFields?id=123

📋 Belirtilen şirkete ait tüm özel alanları listeler.
🔐 Sadece teknisyen izniyle erişilebilir.

Örnek Yanıt:

json
 
[
    {
        "FieldName": "Company city",
        "FieldID": 1234,
        "Type": 1,
        "Value": "Los Angeles"
    }
]

💡 Bu metodlar, özellikle kullanıcıların otomatik olarak şirketlere atanması, e-posta domain bazlı filtreleme veya özel alanlarla entegrasyon ihtiyaçlarınızda kritik öneme sahiptir. Herhangi bir sorunuz veya teknik desteğe ihtiyacınız varsa, DestekMaviMasa ekibine başvurabilirsiniz.


📚 Bilgi Bankası (Knowledge Base)


Bilgi Bankası ve Otomasyon Kuralları API Metodları

Bu bölüm, Mavi Masa sisteminde bilgi bankası (Knowledge Base) makalelerini yönetmek ve otomasyon kurallarını kontrol etmek için kullanılan API metodlarını detaylı olarak açıklar. Bu metodlar, içerik entegrasyonu, otomatik süreçlerin yönetimi ve sistem özelleştirmeleri için kritik öneme sahiptir.


📚 Bilgi Bankası (Knowledge Base) API Metodları


1. Tüm Makaleleri Listele (GET)

http
 
GET https://[mavimasa-url]/api/Articles

✅ Sistemdeki tüm bilgi bankası makalelerinin başlıkları, URL’leri ve kategorilerini listeler.
📄 Makale içeriği (Body) bu listede dahil değildir — sadece meta veriler döndürülür.

Parametre:

Parametre Tip Açıklama
categoryId int (Opsiyonel) Belirli bir kategoriye ait makaleleri getir

Örnek Yanıt:

json
 
{
    "Articles": [
        {
            "ArticleId": 6,
            "Subject": "Sample KB article",
            "ForTechsOnly": false,
            "CategoryID": 5,
            "Url": "http://localhost:3000//KB/View/6-sample-kb-article",
            "DateCreated": "2016-10-09T05:04:40.89"
        }
    ],
    "Categories": [
        {
            "CategoryID": 5,
            "Name": "Payment issues",
            "Section": "Sales",
            "NameWithSection": "Sales \\ Payment issues"
        }
    ],
    "Tags": []
}

2. Tek Bir Makaleyi Getir (GET)

http
 
GET https://[mavimasa-url]/api/Article/{id}

📄 Belirtilen makalenin tamamını (başlık + içerik) döndürür.

Parametre:

Parametre Tip Açıklama
id int Makale ID’si

Örnek Yanıt:

json
 
{
    "ArticleId": 7,
    "Subject": "Another sample KB article",
    "Body": "This is a sample Knowledge Base article...\r
[b]Subtitle[/b]\r
Here you can explain the knowledge base article in detail.",
    "CategoryName": "Pre-sales questions",
    "Url": "http://localhost:3000//KB/View/7",
    "DateCreated": "2016-10-09T05:04:40.893"
}

3. Yeni Makale Oluştur (POST)

http
 
POST https://[mavimasa-url]/api/article

✍️ Yeni bir bilgi bankası makalesi oluşturur.

Parametreler:

Parametre Tip Açıklama
categoryId int Kategori ID’si
subject string Makale başlığı
body string Makale içeriği
forTechsOnly string true veya false — sadece teknisyenler için mi?

curl Örneği:

bash
 
curl -F "categoryId=1" -F "subject=test" -F "body=test" -u admin:admin -v http://localhost/mavimasa/api/article

Örnek Yanıt:

json
 
{
    "id": 123
}

⚙️ Otomasyon Kuralları API Metodları


1. Belirli Bir Kuralı Al (GET)

http
 
GET https://[mavimasa-url]/api/Rule/{id}

📜 Belirli bir otomasyon kuralını XML formatında döndürür.
🔧 Kuralların koşulları (Conditions) ve eylemleri (Actions) bu yapıda tanımlanır.

Parametre:

Parametre Tip Açıklama
id int Kural ID’si

Örnek Yanıt (XML):

xml
 
<?xml version="1.0" encoding="utf-16"?>
<AutomationRule xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Conditions>...</Conditions>
  <Actions>...</Actions>
</AutomationRule>

2. Kuralı Devre Dışı Bırak (GET)

http
 
GET https://[mavimasa-url]/api/DisableRule/{id}

⛔ Belirli bir otomasyon kuralını devre dışı bırakır — artık tetiklenmez.

Parametre:

Parametre Tip Açıklama
id int Kural ID’si

3. Kuralı Etkinleştir (GET)

http
 
GET https://[mavimasa-url]/api/EnableRule/{id}

✅ Daha önce devre dışı bırakılmış bir kuralı tekrar aktif hale getirir.

Parametre:

Parametre Tip Açıklama
id int Kural ID’si

📝 Özel Alanlar (Custom Fields) API Metodları


4. Tüm Özel Alanları Listele (GET)

http
 
GET https://[mavimasa-url]/api/CustomFields?type=1

📋 Sistemdeki tüm özel alanları listeler. Hangi nesne tipi için kullanıldığını belirtmek üzere type parametresi kullanılır.

Parametre:

Parametre Tip Açıklama
type int Kullanım türü:1 → Talepler2 → Varlıklar3 → Kullanıcılar4 → Şirketler

Örnek Yanıt:

json
 
[
    {
        "FieldID": 1234,
        "FieldName": "Priority Level",
        "Type": 3,
        "UsageType": 1,
        "Mandatory": false
    }
]

💡 Bu metod, özellikle sistem özelleştirmesi, raporlama ve entegrasyon ihtiyaçlarınızda kullanışlıdır.


🔐 Bu API metodlarının çoğu, sistemdeki verilerin doğrudan erişilmesine ve değiştirilmesine olanak tanır. Güvenlik nedeniyle, yalnızca yetkili kullanıcılar tarafından kullanılmalıdır. Herhangi bir teknik desteğe ihtiyacınız varsa, DestekMaviMasa ekibine başvurabilirsiniz.


🖥️ Varlık Yönetimi (Assets)


Varlık (Asset) Yönetimi API Metodları

Bu bölüm, Mavi Masa sisteminde donanım, yazılım veya diğer varlıkların yönetilmesi için kullanılan API metodlarını detaylı olarak açıklar. Varlıklar, kullanıcılar, şirketler ve taleplerle ilişkilendirilebilir, özel alanlarla zenginleştirilebilir ve aktif/pasif durumlarına göre yönetilebilir.


🖥️ Varlık Listesi ve Detayları

1. Tüm Varlıkları Listele (GET)

http
 
GET https://[mavimasa-url]/api/Assets

✅ Sistemdeki tüm varlıkları listeler (sayfa başına 50 kayıt).
🔍 Filtreleme seçenekleri ile belirli varlıklara odaklanabilirsiniz.

Parametreler:

Parametre Tip Açıklama
page int Sayfa numarası (örn. 2 → 51-100 arası varlıklar)
assignedToUserId int Atanmış kullanıcı ID’si
assignedToCompanyId int Atanmış şirket ID’si
assignedToDepartmentId int Atanmış departman ID’si
assignedToTicketId int Talebe atanmış varlıklar
nameprefix string Varlık adının başlangıcı (en az 3 karakter)
includeDisabled bool Pasif (retired) varlıkları göster

Örnek Yanıt:

json
 
[
    {
        "ItemID": 91,
        "Manufacturer": "Apple",
        "ModelName": "Macbook",
        "Type": "Laptop",
        "SerialNumber": null,
        "Location": null,
        "Quantity": 0,
        "CompanyID": null
    }
]

2. Tek Bir Varlığı Getir (GET)

http
 
GET https://[mavimasa-url]/api/Asset?id=91

📄 Belirtilen varlığın detaylarını döndürür.

Parametre:

Parametre Tip Açıklama
id int Varlık ID’si

Örnek Yanıt:

json
 
{
    "ItemID": 91,
    "Manufacturer": "Apple",
    "ModelName": "Macbook",
    "Type": "Laptop",
    "SerialNumber": null,
    "Location": null,
    "Comments": null,
    "Quantity": 0,
    "Company": null
}

➕ Yeni Varlık Oluşturma

3. Yeni Varlık Oluştur (POST)

http
 
POST https://[mavimasa-url]/api/Asset

✅ Yeni bir varlık kaydı oluşturur.

Parametreler:

Parametre Tip Açıklama
modelName string Model adı (zorunlu)
manufacturer string Üretici (zorunlu)
type string Tür (zorunlu)
supplier string Tedarikçi (zorunlu)
serialNumber string (Opsiyonel) Seri numarası
location string (Opsiyonel) Konum
comments string (Opsiyonel) Ek notlar
quantity int (Opsiyonel) Miktar (varsayılan: 1)
companyId int (Opsiyonel) Şirkete atama

Örnek Yanıt:

json
 
{
    "id": 123
}

🛠️ Varlık Güncelleme ve Özel Alan Yönetimi

4. Varlığı Güncelle (POST)

http
 
POST https://[mavimasa-url]/api/UpdateAsset

🛠️ Mevcut bir varlığın bilgilerini günceller.

Parametreler:

Parametre Tip Açıklama
id int Varlık ID’si (zorunlu)
modelName string Yeni model adı
manufacturer string Üretici
type string Tür
supplier string Tedarikçi
serialNumber string Seri numarası
location string Konum
comments string Ek notlar
quantity int Miktar
companyId int Şirket ataması

Örnek Yanıt:

json
 
{
    "ItemID": 91,
    "ModelName": "Macbook Pro",
    "Manufacturer": "Apple",
    "Type": "Laptop",
    "Quantity": 1
}

5. Varlığa Özel Alan Değeri Ata (POST)

http
 
POST https://[mavimasa-url]/api/SetCustomFieldForAsset

📌 Bir varlığa özel alan değeri atar.

Parametreler:

Parametre Tip Açıklama
id int Varlık ID’si
fieldId int Özel alan ID’si
value string Değer (checkbox → true/false, dropdown → option ID, date → herhangi tarih formatı)

Örnek Yanıt:

http
 
HTTP 200 OK

👤 Varlık Atama ve İlişkilendirme

6. Varlığı Kullanıcıya Ata (POST)

http
 
POST https://[mavimasa-url]/api/AssignAssetToUser

🧑‍💼 Belirli bir varlığı kullanıcıya atar.

Parametreler:

Parametre Tip Açıklama
assetId int Varlık ID’si
userId int Kullanıcı ID’si

7. Varlığın Kullanıcı Atamasını Kaldır (POST)

http
 
POST https://[mavimasa-url]/api/UnAssignAssetToUser

🚫 Varlığın kullanıcı atamasını kaldırır.

Parametreler:

Parametre Tip Açıklama
assetId int Varlık ID’si
userId int Kullanıcı ID’si

8. Varlığı Talebe Ekle (POST)

http
 
POST https://[mavimasa-url]/api/AddAssetToTicket

🎯 Bir varlığı talebe “ilgili varlıklar” olarak ekler.

Parametreler:

Parametre Tip Açıklama
assetId int Varlık ID’si
ticketID int Talep ID’si

9. Varlığı Talepten Kaldır (POST)

http
 
POST https://[mavimasa-url]/api/RemoveAssetFromTicket

🗑️ Talepten ilgili varlığı kaldırır.

Parametreler:

Parametre Tip Açıklama
assetId int Varlık ID’si
ticketID int Talep ID’si

⚙️ Varlık Durum Yönetimi

10. Varlığı Etkinleştir (POST)

http
 
POST https://[mavimasa-url]/api/EnableAsset

✅ Pasif olan bir varlığı tekrar aktif hale getirir.

Parametre:

Parametre Tip Açıklama
assetId int Varlık ID’si

11. Varlığı Devre Dışı Bırak (POST)

http
 
POST https://[mavimasa-url]/api/DisableAsset

🚫 Varlığı pasif (retired) duruma getirir.

Parametre:

Parametre Tip Açıklama
assetId int Varlık ID’si

🔒 Kimlik Doğrulama ve Hız Sınırı

💡 Bu metodlar, hem bulut hem yerel kurulumlarda mevcuttur. Ayrıntılar için DestekSitesi’ne başvurun.


⏳ Hız Sınırı (Rate Limiting)

🚫 Kaynak yoğunluğu yüksek olan metodlar hız sınırına tabidir:

  • Genel metodlar: Dakikada 90 istek
  • Search / UserByEmail: Dakikada 60 istek

⚠️ Sınır aşıldığında 429 kodu veya yavaş yanıt verilir. 2-3 dakika sonra tekrar deneyin.

✅ Yerel kurulumda hız sınırını devre dışı bırakmak için:

json
 
"DisableRateLimit": "true"

appsettings.json dosyasına ekleyin.


Bu API metodları, özellikle IT varlık yönetiminde (ITAM), donanım takibi, kullanıcı atamaları ve talep entegrasyonlarında kritik öneme sahiptir. Herhangi bir teknik desteğe ihtiyacınız varsa, DestekMaviMasa ekibine başvurabilirsiniz.


Bu API referansı, DestekMaviMasa sisteminin tüm entegrasyon ihtiyaçlarınızı karşılamak üzere hazırlanmıştır. Herhangi bir teknik sorunuz veya destek ihtiyacınız varsa, DestekMaviMasa ekibine başvurabilirsiniz.

Bir yanıt yazın0