Şablonla kaydet
Tek istekte fırsat ya da destek talebi + açık bloklar. Fırsat: firma (yoksa aday olarak açılır; benzer ad → 409 similar, mevcut kaydı seçin ya da confirm_new: true), ad, tür, sorumlu, değer, kapanış; bloklar ürün ve miktar, teklif (teklif geçmişine yazılır), öngörü, kaynak, karar vericiler (contact_ids), deneme, ilk görevler (tasks), ek bilgiler (cf), özel nesne bağları (co). Şablonda aşama kuralı yoksa şablonun başlangıç aşaması kullanılır. Talep: firma kayıtlı olmayabilir (firma adıyla açılır), kişi (contact_id ya da contact_name + email + phone), konu, açıklama, tip (kind, boşsa şablonun tipi), öncelik (standart çözüm süresi; şablonun önceliğiyle aynıysa şablonun süresi), görevli (assigned_to yoksa şablonun atama kuralı: ekipte en az açık talebi olan, firma sorumlusu, açan kişi ya da belirli kullanıcı), kategori; bloklar ürün / lot, sipariş, proje, kanal, saha ziyareti (görevliye görev), ek bilgiler. blocks gönderilmezse şablonun açık blokları ve varsayılanları uygulanır. Zorunlu blok boşsa 400 invalid.
Yetkilendirme
Authorizationheaderzorunlucrm.writeYol parametreleri
kindstringzorunluoppticketGövde application/json
template_idintegeristeğe bağlı/forms/{kind}/config → templates[].id); boşsa kullanıcının varsayılanı.customer_id / customerinteger / stringisteğe bağlıblocksarray<string>isteğe bağlıurun, teklif, gorev, co:uretim_hatti); alanları gövdede blocks[].fields[].k anahtarlarıyla (product, potential_kg, offer_price …).name / type / user_id / value / currency / close_datestringisteğe bağlısubject / detail / kind / priority / category / assigned_tostringisteğe bağlıDüşük, Normal, Yüksek, Acil), kategori, görevli.contact_idsarray<integer>isteğe bağlıtasksarrayisteğe bağlı"Numune gönder | 5 | Görev" (başlık | gün | tür) ya da {title, days, kind}.cfobjectisteğe bağlı{alan anahtarı: değer} (Ayarlar › Özel alanlar).coobjectisteğe bağlı{nesne anahtarı: kayıt kimliği}.confirm_newbooleanisteğe bağlıHatalar
| HTTP | error | Anlamı |
|---|---|---|
400 | invalid | Eksik ya da geçersiz alan (`message` ayrıntıyı verir). |
409 | similar | Benzer adlı firmalar var (`similar`); `confirm_new: true` ile yine açılır. |
403 | module | Modül lisansta ya da kullanıcının izinlerinde kapalı. |
404 | not_found | Kayıt bulunamadı. |
curl -X POST https://ornek.solk.app/api/v1/forms/opp \
-H "Authorization: Bearer $SOLK_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"template_id": 1,
"customer_id": 1,
"name": "Hat 3 şişirme projesi",
"currency": "EUR",
"close_date": "2027-01-04",
"blocks": [
"urun",
"teklif",
"gorev",
"co:uretim_hatti"
],
"product": "PU-SL 200 Solventsiz Laminasyon Yapıştırıcısı",
"potential_kg": "15000",
"offer_price": "1,85",
"payment_days": "60",
"tasks": [
"Numune gönder | 5 | Görev",
"Teklifi ara | 10 | Arama"
],
"co": {
"uretim_hatti": 1
}
}'const res = await fetch("https://ornek.solk.app/api/v1/forms/opp", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.SOLK_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"template_id": 1,
"customer_id": 1,
"name": "Hat 3 şişirme projesi",
"currency": "EUR",
"close_date": "2027-01-04",
"blocks": [
"urun",
"teklif",
"gorev",
"co:uretim_hatti"
],
"product": "PU-SL 200 Solventsiz Laminasyon Yapıştırıcısı",
"potential_kg": "15000",
"offer_price": "1,85",
"payment_days": "60",
"tasks": [
"Numune gönder | 5 | Görev",
"Teklifi ara | 10 | Arama"
],
"co": {
"uretim_hatti": 1
}
}),
});
const data = await res.json();import os, requests
r = requests.post(
"https://ornek.solk.app/api/v1/forms/opp",
headers={"Authorization": f"Bearer {os.environ['SOLK_API_KEY']}"},
json={
"template_id": 1,
"customer_id": 1,
"name": "Hat 3 şişirme projesi",
"currency": "EUR",
"close_date": "2027-01-04",
"blocks": [
"urun",
"teklif",
"gorev",
"co:uretim_hatti"
],
"product": "PU-SL 200 Solventsiz Laminasyon Yapıştırıcısı",
"potential_kg": "15000",
"offer_price": "1,85",
"payment_days": "60",
"tasks": [
"Numune gönder | 5 | Görev",
"Teklifi ara | 10 | Arama"
],
"co": {
"uretim_hatti": 1
}
},
)
print(r.json()){
"customer_created": false,
"message": "Fırsat açıldı: #55 Hat 3 şişirme projesi · Alize Paketleme San. ve Tic. A.Ş.",
"ok": true,
"opp": {
"bant": 0,
"base_currency": "EUR",
"close_date": "2027-01-04",
"cur_sym": "€",
"currency": "EUR",
"customer": "Alize Paketleme San. ve Tic. A.Ş.",
"customer_city": "İstanbul",
"customer_id": 1,
"days_in_stage": 0,
"detail_status": "",
"fc": "Pipeline",
"health": {
"grade": "success",
"label": "sağlıklı",
"score": 100
},
"health_color": "g",
"health_manual": false,
"health_note": "",
"id": 55,
"initials": "AP",
"is_account": false,
"is_open": true,
"last_update": "2026-10-06",
"lifetime_left": 180,
"line": "",
"name": "Hat 3 şişirme projesi",
"next_step": "Karar verici / yetkili kişiyi belirle (Authority)",
"offer_price": 1.85,
"owner": {
"full_name": "Deniz Aksoy",
"id": 1,
"role": "admin",
"role_label": "Yönetici",
"username": "admin"
},
"payment_days": 60,
"potential_kg": 15000.0,
"prob": 0.1,
"probability": null,
"product": "PU-SL 200 Solventsiz Laminasyon Yapıştırıcısı",
"product_id": 1,
"pu": "€/kg",
"rid": "006ib7dvC23Bvtw",
"sla_days": 30,
"sla_left": 30,
"source": "Bayi / distribütör",
"stage": "Qualify",
"stage_label": "Qualify",
"start_date": "2026-10-06",
"trend": "",
"trend_label": "Otomatik",
"type": "Yeni Müşteri",
"unit": "kg",
"unit_code": "kg",
"value": 333000.0,
"value_base": 333000.0,
"value_short": "333K"
},
"parts": [
"fırsat #55",
"teklif kaydı"
],
"tasks": 2,
"template_id": 1
}Örnek yanıt örnek veriyle çalışan bir v45d kurulumundan alındı; listeler en çok iki öğeyle kısaltıldı.