Actions & tasks
Create a task
Creates a task, assigned to the caller unless assigned_to is given. Linking a company is optional (by id or name); no project is opened automatically — use opp_id for an existing project or opp_name for a new one.
Authorization
AuthorizationheaderrequiredBearer token: API key (sk_…), OAuth access token (mcp_…) or mobile session (xk_…).
Module: TasksScope:
crm.writeBody application/json
titlestringrequiredTask title.
due_datestringoptionalDue date (YYYY-MM-DD).
due_timestringoptionalTime (HH:MM).
prioritystringoptionaldefault: NormalPriority.
Values
DüşükNormalYüksekAcildetailstringoptionalDetails.
assigned_tointegeroptionalAssignee user id.
customer_idintegeroptionalCompany id.
customerstringoptionalCompany name (if the id is unknown).
opp_idstringoptionalProject id or
__none__ (no project).opp_namestringoptionalNew project name.
Errors
| HTTP | error | Meaning |
|---|---|---|
400 | invalid | Missing or invalid field (`message` explains). |
Request
curl -X POST https://ornek.solk.app/api/v1/tasks \
-H "Authorization: Bearer $SOLK_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "Fiyat listesini gönder",
"customer_id": 31,
"due_date": "2026-10-04",
"due_time": "10:30",
"priority": "Yüksek",
"detail": "2027 listesi, €/kg"
}'const res = await fetch("https://ornek.solk.app/api/v1/tasks", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.SOLK_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"title": "Fiyat listesini gönder",
"customer_id": 31,
"due_date": "2026-10-04",
"due_time": "10:30",
"priority": "Yüksek",
"detail": "2027 listesi, €/kg"
}),
});
const data = await res.json();import os, requests
r = requests.post(
"https://ornek.solk.app/api/v1/tasks",
headers={"Authorization": f"Bearer {os.environ['SOLK_API_KEY']}"},
json={
"title": "Fiyat listesini gönder",
"customer_id": 31,
"due_date": "2026-10-04",
"due_time": "10:30",
"priority": "Yüksek",
"detail": "2027 listesi, €/kg"
},
)
print(r.json())Response
{
"action": {
"act": {
"addr": "Bursa",
"c": 31,
"mail": "emre.yildiz@kuzeyplastik.com.tr",
"n": "Kuzey Plastik Sanayi",
"tel": "+90 532 555 11 22",
"url": "/customers/31",
"wa": "905325551122",
"who": "Emre Yıldız"
},
"chain_after": [],
"chain_before": [],
"customer": "Kuzey Plastik Sanayi",
"customer_id": 31,
"date": "2026-10-04",
"detail": "2027 listesi, €/kg",
"done": false,
"done_at": null,
"editable": true,
"icon": "📋",
"id": 23,
"key": "task:23",
"kind": "task",
"label": "Fiyat listesini gönder",
"opp": "",
"opp_id": null,
"others": [
{
"customer": "",
"customer_id": null,
"date": "2026-10-05",
"icon": "⚡",
"id": 106,
"key": "visit:106",
"kind": "visit",
"label": "Teklif gönder",
"opp": "Streç film tedariki",
"opp_id": 53,
"src": "Ziyaret",
"state": "soon",
"url": "/action/visit/106"
}
],
"result": "",
"rid": "00TxuMVTniYx44l",
"src": "Görev",
"state": "soon",
"threads": [],
"threads_n": 0,
"user": {
"full_name": "Deniz Aksoy",
"id": 1,
"role": "admin",
"role_label": "Yönetici",
"username": "admin"
}
},
"ok": true,
"task": {
"assignee": {
"full_name": "Deniz Aksoy",
"id": 1,
"role": "admin",
"role_label": "Yönetici",
"username": "admin"
},
"completed_at": null,
"customer": "Kuzey Plastik Sanayi",
"customer_id": 31,
"detail": "2027 listesi, €/kg",
"due_date": "2026-10-04",
"due_time": "10:30",
"id": 23,
"opp": "",
"opp_id": null,
"priority": "Yüksek",
"result": "",
"rid": "00TxuMVTniYx44l",
"source_key": "",
"state": "soon",
"status": "Açık",
"title": "Fiyat listesini gönder"
}
}Example responses were captured from a v22 installation running sample data; lists are shortened to two items.