Fuarlar ve leadler
Toplu işlem
Seçili leadler (en çok 200): convert — varsayılan eşlemeyle CRM'e aktarır (aktarılmışlar skipped), assign — sorumluyu değiştirir (yetkisizler skipped). Yanıt done, skipped, errors, msg.
Yetkilendirme
AuthorizationheaderzorunluBearer belirteci: API anahtarı (sk_…), OAuth erişim belirteci (mcp_…) ya da mobil oturum (xk_…).
Modül: Fuar leadleriKapsam:
crm.writeYol parametreleri
idintegerzorunluFuar kimliği.
Gövde application/json
actstringzorunluİşlem.
Değerler
convertassignidsarray<integer>zorunluLead kimlikleri.
make_projectbooleanisteğe bağlıvarsayılan: Trueconvert: satış projesi aç.
make_visitbooleanisteğe bağlıvarsayılan: Trueconvert: fuar ziyareti.
owner_idintegeristeğe bağlıassign: yeni sorumlu.
Hatalar
| HTTP | error | Anlamı |
|---|---|---|
400 | invalid | Eksik ya da geçersiz alan (`message` ayrıntıyı verir). |
404 | not_found | Kayıt bulunamadı. |
403 | module | Modül lisansta ya da kullanıcının izinlerinde kapalı. |
İstek
curl -X POST https://ornek.solk.app/api/v1/fairs/1/leads/bulk \
-H "Authorization: Bearer $SOLK_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"act": "assign",
"ids": [
2,
3
],
"owner_id": 1
}'const res = await fetch("https://ornek.solk.app/api/v1/fairs/1/leads/bulk", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.SOLK_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"act": "assign",
"ids": [
2,
3
],
"owner_id": 1
}),
});
const data = await res.json();import os, requests
r = requests.post(
"https://ornek.solk.app/api/v1/fairs/1/leads/bulk",
headers={"Authorization": f"Bearer {os.environ['SOLK_API_KEY']}"},
json={
"act": "assign",
"ids": [
2,
3
],
"owner_id": 1
},
)
print(r.json())Yanıt
{
"done": [
2,
3
],
"msg": "2 leadin sorumlusu: Deniz Aksoy.",
"ok": true,
"skipped": []
}Örnek yanıt örnek veriyle çalışan bir v54 kurulumundan alındı; listeler en çok iki öğeyle kısaltıldı.