SETKI Config Reference ← setki.dev

Documentation

SETKI Grid — Config Reference

Every field of the SETKI Grid configuration JSON. Paste a config directly into Settings → JSON editor inside the widget.

Full schema

{
  "module": "Leads",
  "editingEnabled": true,
  "showSumsRow": true,
  "filterVisible": false,
  "addRowEnabled": true,
  "multiEditEnabled": false,
  "userSortsEnabled": true,
  "defaultPerPage": 25,
  "tableHeight": 0,
  "hiddenKeys": [],
  "pinnedKeys": [],
  "columnEditable": {},
  "columnAggregation": {},
  "columnNumeric": {},
  "columnText": {},
  "columnDate": {},
  "columnChart": {},
  "adminFilters": [],
  "adminSorts": [],
  "roleMap": {},
  "knownProfiles": []
}

Field reference

module · string

Zoho CRM API name of the module to display. Common values: Leads, Contacts, Deals, Accounts, Tasks.

"module": "Leads"

editingEnabled · boolean

Allow inline cell editing. When false the table is read-only for all users.

"editingEnabled": true

showSumsRow · boolean

Show the totals row (Σ / ~) below the table.

"showSumsRow": true

filterVisible · boolean

Show the filter input row under column headers by default.

"filterVisible": false

addRowEnabled · boolean

Allow adding new records via the inline row at the bottom of the table.

"addRowEnabled": true

multiEditEnabled · boolean

Enable row checkboxes for bulk edit / bulk delete.

"multiEditEnabled": false

userSortsEnabled · boolean

Allow users to change sorting. When false, only adminSorts apply.

"userSortsEnabled": true

defaultPerPage · number

Default number of rows per page. Allowed values: 10, 25, 50, 100, 200.

"defaultPerPage": 25

tableHeight · number

Fixed table height in pixels. 0 means auto (fills the available space).

"tableHeight": 500

hiddenKeys · string[]

API field names of columns to hide. Hidden columns are not rendered but still exist in the schema.

"hiddenKeys": ["Description", "Created_By"]

pinnedKeys · string[]

API field names of columns to pin to the left edge.

"pinnedKeys": ["Name", "Amount"]

columnEditable · object

Per-column editable override. Keys are API field names, values are booleans.

"columnEditable": {
  "Name": true,
  "Amount": true,
  "Created_Time": false
}

columnAggregation · object

Aggregation type for each column in the totals row.

ValueMeaning
"sum"Show Σ (sum)
"avg"Show ~ (average)
"none"Hide aggregation for this column
"columnAggregation": {
  "Amount": "sum",
  "Probability": "avg",
  "Lead_Score": "none"
}

columnNumeric · object

Display settings for number and stars columns.

"columnNumeric": {
  "Amount": {
    "decimalPlaces": 2,
    "suffix": "₽",
    "stockMode": false,
    "thresholdsEnabled": true,
    "thresholdLow": 0,
    "thresholdHigh": 100000,
    "thresholdLowColor": "#fbebeb",
    "thresholdHighColor": "#e8f0fe"
  },
  "Lead_Score": {
    "stars": true
  }
}
FieldTypeDescription
starsbooleanRender as star rating instead of number
stockModebooleanShow ▲/▼ arrows relative to stockThreshold
stockThresholdnumberBaseline value for stock arrows (default 0)
thresholdsEnabledbooleanEnable cell background color highlights
thresholdLownumberValue below which low-color is applied
thresholdHighnumberValue above which high-color is applied
thresholdLowColorstringHex color for low threshold background (default #fbebeb)
thresholdHighColorstringHex color for high threshold background (default #e8f0fe)
decimalPlacesnumberDecimal places to show (0–10)
suffixstringSuffix appended to the value, e.g. "₽", "$", " kg"

columnText · object

Display settings for text/lookup/owner columns.

"columnText": {
  "Owner": { "avatarEnabled": true },
  "Contact_Name": { "avatarEnabled": false }
}
FieldTypeDescription
avatarEnabledbooleanShow avatar circle with initials next to the name (default true)

columnDate · object

Display settings for date and datetime columns.

"columnDate": {
  "Closing_Date": {
    "deadlineHighlight": true,
    "deadlineColorToday": "#f5a500",
    "deadlineColorOverdue": "#e05555"
  }
}
FieldTypeDescription
deadlineHighlightbooleanHighlight overdue / today dates with color (default true)
deadlineColorTodaystringHex color for "today" highlight (default #f5a500)
deadlineColorOverduestringHex color for overdue highlight (default #e05555)

columnChart · object

Sparkline chart settings for textarea columns.

"columnChart": {
  "Revenue_Chart": {
    "sourceModule": "Deals",
    "valueField": "Amount",
    "labelField": "Closing_Date",
    "sortField": "Closing_Date",
    "sortOrder": "asc",
    "maxPoints": 12,
    "filters": [
      {
        "field": "Account_Name",
        "operator": "equals",
        "valueColumn": "Account_Name"
      }
    ]
  }
}
FieldTypeDescription
sourceModulestringZoho CRM module to fetch chart data from
valueFieldstringAPI field name for Y-axis values (must be numeric)
labelFieldstringAPI field name for X-axis labels (e.g. a date field)
sortFieldstringField used to sort fetched records
sortOrder"asc" | "desc"Sort direction (default "asc")
maxPointsnumberMaximum data points; oldest are trimmed (default 100)
filtersChartFilter[]Filters applied when fetching chart data

ChartFilter fields

FieldTypeDescription
fieldstringAPI field name in the source module to filter on
operatorstringequals, not_equal, contains, starts_with, ends_with, greater_than, less_than, greater_equal, less_equal
valueColumnstringAPI field name in the current row whose value is used as the filter value

adminFilters · FilterCondition[]

Preset filters applied to every user's view. Users cannot remove them.

"adminFilters": [
  { "field": "Lead_Status", "operator": "not_equal", "value": "Dead" },
  { "field": "Amount", "operator": "greater_than", "value": 0 }
]
FieldTypeDescription
fieldstringAPI field name
operatorstringequals, not_equal, contains, not_contains, starts_with, ends_with, greater_than, less_than, greater_equal, less_equal
valuestring | numberFilter value

adminSorts · SortConfig[]

Preset sort order applied when the table loads (before any user interaction).

"adminSorts": [
  { "field": "Amount", "direction": "desc" },
  { "field": "Closing_Date", "direction": "asc" }
]
FieldTypeDescription
fieldstringAPI field name
direction"asc" | "desc"Sort direction

roleMap · object

Maps Zoho CRM Profile names to preset IDs. When a profile has a mapping the user sees the preset view instead of the base config.

"roleMap": {
  "Sales Manager": "preset_abc123",
  "Support": "preset_xyz789"
}

knownProfiles · string[]

List of profile names that appear in the Roles tab. Auto-populated when the Roles section is opened.

"knownProfiles": ["Administrator", "Sales Manager", "Support"]

Example configs

Minimal — read-only Leads table

{
  "module": "Leads",
  "editingEnabled": false,
  "showSumsRow": false,
  "filterVisible": false,
  "addRowEnabled": false,
  "multiEditEnabled": false,
  "userSortsEnabled": true,
  "defaultPerPage": 50,
  "tableHeight": 0,
  "hiddenKeys": ["Description", "Created_By", "Modified_By"],
  "pinnedKeys": ["Name"],
  "columnEditable": {},
  "columnAggregation": {},
  "columnNumeric": {},
  "columnText": {},
  "columnDate": {},
  "columnChart": {},
  "adminFilters": [],
  "adminSorts": [{ "field": "Created_Time", "direction": "desc" }],
  "roleMap": {},
  "knownProfiles": []
}

Sales pipeline — Deals with amount highlights and deadline colors

{
  "module": "Deals",
  "editingEnabled": true,
  "showSumsRow": true,
  "filterVisible": true,
  "addRowEnabled": true,
  "multiEditEnabled": true,
  "userSortsEnabled": true,
  "defaultPerPage": 25,
  "tableHeight": 0,
  "hiddenKeys": ["Description"],
  "pinnedKeys": ["Deal_Name"],
  "columnEditable": {
    "Amount": true,
    "Stage": true,
    "Closing_Date": true
  },
  "columnAggregation": {
    "Amount": "sum",
    "Probability": "avg"
  },
  "columnNumeric": {
    "Amount": {
      "decimalPlaces": 0,
      "suffix": " ₽",
      "thresholdsEnabled": true,
      "thresholdLow": 10000,
      "thresholdHigh": 500000,
      "thresholdLowColor": "#fbebeb",
      "thresholdHighColor": "#e8f5e9"
    },
    "Probability": {
      "suffix": " %",
      "stockMode": true,
      "stockThreshold": 50
    }
  },
  "columnText": {
    "Owner": { "avatarEnabled": true }
  },
  "columnDate": {
    "Closing_Date": {
      "deadlineHighlight": true,
      "deadlineColorToday": "#f5a500",
      "deadlineColorOverdue": "#e05555"
    }
  },
  "columnChart": {},
  "adminFilters": [
    { "field": "Stage", "operator": "not_equal", "value": "Closed Lost" }
  ],
  "adminSorts": [
    { "field": "Closing_Date", "direction": "asc" }
  ],
  "roleMap": {},
  "knownProfiles": []
}

Contacts with avatars and sparklines

{
  "module": "Contacts",
  "editingEnabled": true,
  "showSumsRow": false,
  "filterVisible": false,
  "addRowEnabled": false,
  "multiEditEnabled": false,
  "userSortsEnabled": true,
  "defaultPerPage": 50,
  "tableHeight": 0,
  "hiddenKeys": [],
  "pinnedKeys": ["Full_Name"],
  "columnEditable": {
    "Phone": true,
    "Email": true
  },
  "columnAggregation": {},
  "columnNumeric": {
    "Lead_Score": { "stars": true }
  },
  "columnText": {
    "Full_Name": { "avatarEnabled": true },
    "Account_Name": { "avatarEnabled": false }
  },
  "columnDate": {},
  "columnChart": {
    "Deal_History": {
      "sourceModule": "Deals",
      "valueField": "Amount",
      "labelField": "Closing_Date",
      "sortField": "Closing_Date",
      "sortOrder": "asc",
      "maxPoints": 10,
      "filters": [
        {
          "field": "Contact_Name",
          "operator": "equals",
          "valueColumn": "Full_Name"
        }
      ]
    }
  },
  "adminFilters": [],
  "adminSorts": [{ "field": "Last_Name", "direction": "asc" }],
  "roleMap": {},
  "knownProfiles": []
}