Form configuration
Everything needed to draw the new-deal (opp) or new-ticket (ticket) form — like Quick Entry: templates (block order, st = open · chip · off, req required, cond condition, def defaults, fl visible fields) with the template's core defaults as flat keys (deal: type, stage, close_days; ticket: kind, priority, sla_hours, category, assign, source), block definitions for the user's modules (blocks[].fields[]: k key, t type, o options), default_template (user's team → default) and lists. Deal: opp_types, lead_sources, forecast_cats, currencies, first_stage, lifetime_days, users. Ticket: kinds (ticket types), categories (empty = no category asked), sources, sla_hours (priority → standard resolution time), users (with teams). Returns 403 module when the module isn't in your plan or role.
Authorization
Authorizationheaderrequiredcrm.readPath parameters
kindstringrequiredoppticketErrors
| HTTP | error | Meaning |
|---|---|---|
403 | module | The module is off in the licence or for the user. |
404 | not_found | Record not found. |
curl https://ornek.solk.app/api/v1/forms/opp/config \
-H "Authorization: Bearer $SOLK_API_KEY"const res = await fetch("https://ornek.solk.app/api/v1/forms/opp/config", {
headers: {
Authorization: `Bearer ${process.env.SOLK_API_KEY}`,
},
});
const data = await res.json();import os, requests
r = requests.get(
"https://ornek.solk.app/api/v1/forms/opp/config",
headers={"Authorization": f"Bearer {os.environ['SOLK_API_KEY']}"},
)
print(r.json()){
"base_currency": "EUR",
"blocks": [
{
"fields": [
{
"k": "product",
"l": "Ürün",
"ph": "Ürün adı (yeni ise eklenir)",
"t": "product"
}
],
"icon": "box",
"k": "urun",
"label": "Ürün ve miktar",
"obj": "Fırsat"
},
{
"fields": [
{
"k": "offer_price",
"l": "Birim fiyat",
"ph": "1,85",
"t": "money",
"u": "€ / kg"
}
],
"icon": "file-earmark-text",
"k": "teklif",
"label": "Fiyat ve vade",
"obj": "Teklif"
}
],
"conds": [
[
""
],
[
"has_opp"
]
],
"currencies": [
"EUR",
"USD"
],
"default_template": 1,
"first_stage": "Qualify",
"forecast_cats": [
"Pipeline",
"Best Case"
],
"kind": "opp",
"lead_sources": [
"Web formu",
"Fuar"
],
"lifetime_days": 180,
"ok": true,
"opp_types": [
"Yeni Müşteri",
"Mevcut Müşteri — Ek Satış"
],
"priorities": [
"Düşük",
"Normal"
],
"stage_rules": true,
"templates": [
{
"blocks": [
{
"cond": "",
"def": {},
"fl": null,
"k": "urun",
"label": "",
"req": false,
"st": "open"
}
],
"close_days": 120,
"icon": "briefcase",
"id": 1,
"is_default": true,
"kind": "opp",
"name": "Yeni iş",
"stage": "",
"team": "",
"type": "Yeni Müşteri"
},
{
"blocks": [
{
"cond": "",
"def": {},
"fl": null,
"k": "urun",
"label": "",
"req": false,
"st": "open"
}
],
"close_days": 60,
"icon": "graph-up-arrow",
"id": 2,
"is_default": false,
"kind": "opp",
"name": "Ek satış",
"stage": "",
"team": "",
"type": "Mevcut Müşteri — Ek Satış"
}
],
"unit": "kg",
"users": [
{
"id": 1,
"name": "Deniz Aksoy"
}
]
}Example responses were captured from a v45d installation running sample data; lists are shortened to two items.