E-posta
Yazışmayı kayda bağla
opp projeyi değiştirir (opp_id), link bir kayda bağlar (kind, obj_id), unlink bağı kaldırır, dismiss öneriyi yok sayar. Yalnız yazışmanın sahibi, firmanın sorumlusu ya da yönetici değiştirebilir.
Yetkilendirme
AuthorizationheaderzorunluBearer belirteci: API anahtarı (sk_…), OAuth erişim belirteci (mcp_…) ya da mobil oturum (xk_…).
Kapsam:
crm.writeYol parametreleri
idintegerzorunluYazışma kimliği.
actionstringzorunluEylem.
Değerler
opplinkunlinkdismissGövde application/json
opp_idintegeristeğe bağlıProje (
opp).kindstringisteğe bağlıKayıt türü (
link/unlink).obj_idintegeristeğe bağlıKayıt kimliği.
Hatalar
| HTTP | error | Anlamı |
|---|---|---|
400 | invalid | Eksik ya da geçersiz alan (`message` ayrıntıyı verir). |
403 | forbidden | Kaydı görme / düzenleme yetkiniz yok. |
404 | not_found | Kayıt bulunamadı. |
İstek
curl -X POST https://ornek.solk.app/api/v1/threads/1/opp \
-H "Authorization: Bearer $SOLK_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"opp_id": 31
}'const res = await fetch("https://ornek.solk.app/api/v1/threads/1/opp", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.SOLK_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"opp_id": 31
}),
});
const data = await res.json();import os, requests
r = requests.post(
"https://ornek.solk.app/api/v1/threads/1/opp",
headers={"Authorization": f"Bearer {os.environ['SOLK_API_KEY']}"},
json={
"opp_id": 31
},
)
print(r.json())Yanıt
{
"msg": "Yazışma projesi: Mevcut Müşteri — Yenileme · 2026.",
"ok": true,
"thread": {
"companies": [
{
"contacts": [
{
"email": "selin.dogan@alizepaketleme.example",
"id": 1,
"name": "Selin Doğan"
}
],
"id": 1,
"name": "Alize Paketleme San. ve Tic. A.Ş.",
"role": "main"
}
],
"customer": "Alize Paketleme San. ve Tic. A.Ş.",
"customer_id": 1,
"id": 1,
"last_at": "2026-10-01T15:06:59",
"last_dir": "out",
"linkables": [
{
"items": [
{
"id": 74,
"label": "30.09.2026 · Call · Tanışma"
}
],
"kind": "visit",
"klabel": "Ziyaret / görüşme"
}
],
"links": [],
"may_edit": true,
"messages": [
{
"at": "2026-09-30T17:06:59",
"body": "Merhaba Deniz Bey,\n\nNumuneler bize ulaştı, hat denemesini perşembe yapacağız. Aylık 12 ton için güncel fiyatınızı paylaşabilir misiniz?\n\nİyi çalışmalar",
"cc": "",
"dir": "in",
"from_addr": "selin.dogan@alizepaketleme.example",
"from_name": "Selin Doğan",
"hidden": false,
"id": 1,
"subject": "Numune ve fiyat teklifi",
"to": "deniz@ornekkimya.com.tr"
}
],
"n": 2,
"opp": "Mevcut Müşteri — Yenileme · 2026",
"opp_how": "manual",
"opp_id": 31,
"opp_note": "elle seçildi",
"opps": [
{
"id": 44,
"name": "Müşteri Takibi",
"open": true,
"stage_label": "Müşteri Takibi"
}
],
"peer": "selin.dogan@alizepaketleme.example",
"reply": {
"contact_id": 1,
"customer_id": 1,
"in_reply_to": "<a2@mail.ornek>",
"opp_id": 31,
"subject": "Re: Numune ve fiyat teklifi",
"to": "selin.dogan@alizepaketleme.example"
},
"subject": "Numune ve fiyat teklifi",
"suggested": false,
"suggestions": [
{
"date": "2026-09-30",
"how": "",
"id": 74,
"kind": "visit",
"klabel": "Ziyaret / görüşme",
"label": "Call 30.09.2026",
"nav": {
"id": 74,
"kind": "visit",
"screen": "action"
},
"url": "/action/visit/74",
"why": "yazışmayla aynı günlerde görüşme"
}
],
"waiting": false
}
}Örnek yanıt örnek veriyle çalışan bir v22 kurulumundan alındı; listeler en çok iki öğeyle kısaltıldı.