productivity
Accelo Lua API for KosmoKrator Agents
Agent-facing Lua documentation and function reference for the Accelo KosmoKrator integration.Lua Namespace
Agents call this integration through app.integrations.accelo.*.
Use lua_read_doc("integrations.accelo") inside KosmoKrator to discover the same reference at runtime.
Call Lua from the Headless CLI
Use kosmo integrations:lua when a shell script, CI job, cron job, or another coding CLI should run a deterministic
Accelo workflow without starting an interactive agent session.
kosmo integrations:lua --eval 'dump(app.integrations.accelo.list_issues({limit = 1, page = 1, status = "example_status"}))' --json kosmo integrations:lua --eval 'print(docs.read("accelo"))' --json
kosmo integrations:lua --eval 'print(docs.read("accelo.list_issues"))' --json Workflow file
Put repeatable logic in a Lua file, then execute it with JSON output for the calling process.
local accelo = app.integrations.accelo
local result = accelo.list_issues({limit = 1, page = 1, status = "example_status"})
dump(result) kosmo integrations:lua workflow.lua --json
kosmo integrations:lua workflow.lua --force --json integrations:lua exposes app.integrations.accelo, app.mcp.*, docs.*, json.*, and regex.*. Use app.integrations.accelo.default.* or app.integrations.accelo.work.* when you configured named credential accounts.
MCP-only Lua
If the script only needs configured MCP servers and does not need Accelo, use the narrower mcp:lua command.
# Use mcp:lua for MCP-only scripts; use integrations:lua for this integration namespace.
kosmo mcp:lua --eval 'dump(mcp.servers())' --json Agent-Facing Lua Docs
This is the rendered version of the full Lua documentation exposed to agents when they inspect the integration namespace.
Accelo — Lua API Reference
list_tickets
List support issues, also known as tickets, in Accelo. Accelo’s API resource for these records is /api/v0/issues.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
limit | integer | no | Number of tickets per page (default: 25, max: 100) |
page | integer | no | Page number for pagination (1-based) |
status | string | no | Filter by standing (e.g. “open”, “closed”, “resolved”) |
Examples
-- List open tickets
local result = app.integrations.accelo.list_tickets({
status = "open",
limit = 10
})
for _, ticket in ipairs(result) do
print(ticket.id .. ": " .. ticket.title)
end
-- Paginate through all tickets
local page1 = app.integrations.accelo.list_tickets({ limit = 50, page = 1 })
local page2 = app.integrations.accelo.list_tickets({ limit = 50, page = 2 })
get_ticket
Get details of a specific support issue, also known as a ticket.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
id | integer | yes | The Accelo ticket ID |
Examples
local ticket = app.integrations.accelo.get_ticket({ id = 12345 })
print(ticket.title)
print(ticket.body)
print("Status: " .. ticket.status)
create_ticket
Create a new support issue, also known as a ticket.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
title | string | yes | Ticket title or subject |
body | string | yes | Ticket description |
contract_id | integer | no | Contract ID to associate |
priority | integer | no | Issue priority ID |
Examples
-- Create a basic ticket
local ticket = app.integrations.accelo.create_ticket({
title = "Login issue",
body = "User cannot log in to the portal after password reset."
})
print("Created ticket #" .. ticket.id)
-- Create a ticket with contract and priority
local ticket = app.integrations.accelo.create_ticket({
title = "Feature request",
body = "Customer requests SSO integration.",
contract_id = 100,
priority = 2
})
list_tasks
List tasks in Accelo.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
limit | integer | no | Number of tasks per page (default: 25, max: 100) |
page | integer | no | Page number for pagination (1-based) |
status | string | no | Filter by standing (e.g. “active”, “inactive”, “completed”) |
Examples
-- List in-progress tasks
local tasks = app.integrations.accelo.list_tasks({
status = "in_progress",
limit = 20
})
for _, task in ipairs(tasks) do
print(task.id .. ": " .. task.title .. " [" .. task.status .. "]")
end
get_task
Get details of a specific task.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
id | integer | yes | The Accelo task ID |
Examples
local task = app.integrations.accelo.get_task({ id = 67890 })
print(task.title)
print("Status: " .. task.status)
print("Assignee: " .. (task.assignee or "unassigned"))
list_projects
List projects in Accelo. Accelo’s API resource for these records is /api/v0/jobs.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
limit | integer | no | Number of projects per page (default: 25, max: 100) |
page | integer | no | Page number for pagination (1-based) |
status | string | no | Filter by standing (e.g. “active”, “inactive”, “completed”) |
Examples
-- List all open projects
local projects = app.integrations.accelo.list_projects({
status = "open"
})
for _, project in ipairs(projects) do
print(project.id .. ": " .. project.title)
end
get_current_user
Get token information for the current Accelo access token.
Parameters
None.
Examples
local user = app.integrations.accelo.get_current_user({})
print("Logged in as: " .. user.firstname .. " " .. user.surname)
print("Email: " .. user.email)
Multi-Account Usage
If you have multiple Accelo deployments configured, use account-specific namespaces:
-- Default account (always works)
app.integrations.accelo.list_tickets({})
-- Explicit default (portable across setups)
app.integrations.accelo.default.list_tickets({})
-- Named accounts
app.integrations.accelo.production.list_tickets({})
app.integrations.accelo.staging.list_tickets({})
All functions are identical across accounts — only the credentials differ.
Raw agent markdown
# Accelo — Lua API Reference
## list_tickets
List support issues, also known as tickets, in Accelo. Accelo's API resource for these records is `/api/v0/issues`.
### Parameters
| Name | Type | Required | Description |
|------|------|----------|-------------|
| `limit` | integer | no | Number of tickets per page (default: 25, max: 100) |
| `page` | integer | no | Page number for pagination (1-based) |
| `status` | string | no | Filter by standing (e.g. "open", "closed", "resolved") |
### Examples
```lua
-- List open tickets
local result = app.integrations.accelo.list_tickets({
status = "open",
limit = 10
})
for _, ticket in ipairs(result) do
print(ticket.id .. ": " .. ticket.title)
end
```
```lua
-- Paginate through all tickets
local page1 = app.integrations.accelo.list_tickets({ limit = 50, page = 1 })
local page2 = app.integrations.accelo.list_tickets({ limit = 50, page = 2 })
```
---
## get_ticket
Get details of a specific support issue, also known as a ticket.
### Parameters
| Name | Type | Required | Description |
|------|------|----------|-------------|
| `id` | integer | yes | The Accelo ticket ID |
### Examples
```lua
local ticket = app.integrations.accelo.get_ticket({ id = 12345 })
print(ticket.title)
print(ticket.body)
print("Status: " .. ticket.status)
```
---
## create_ticket
Create a new support issue, also known as a ticket.
### Parameters
| Name | Type | Required | Description |
|------|------|----------|-------------|
| `title` | string | yes | Ticket title or subject |
| `body` | string | yes | Ticket description |
| `contract_id` | integer | no | Contract ID to associate |
| `priority` | integer | no | Issue priority ID |
### Examples
```lua
-- Create a basic ticket
local ticket = app.integrations.accelo.create_ticket({
title = "Login issue",
body = "User cannot log in to the portal after password reset."
})
print("Created ticket #" .. ticket.id)
```
```lua
-- Create a ticket with contract and priority
local ticket = app.integrations.accelo.create_ticket({
title = "Feature request",
body = "Customer requests SSO integration.",
contract_id = 100,
priority = 2
})
```
---
## list_tasks
List tasks in Accelo.
### Parameters
| Name | Type | Required | Description |
|------|------|----------|-------------|
| `limit` | integer | no | Number of tasks per page (default: 25, max: 100) |
| `page` | integer | no | Page number for pagination (1-based) |
| `status` | string | no | Filter by standing (e.g. "active", "inactive", "completed") |
### Examples
```lua
-- List in-progress tasks
local tasks = app.integrations.accelo.list_tasks({
status = "in_progress",
limit = 20
})
for _, task in ipairs(tasks) do
print(task.id .. ": " .. task.title .. " [" .. task.status .. "]")
end
```
---
## get_task
Get details of a specific task.
### Parameters
| Name | Type | Required | Description |
|------|------|----------|-------------|
| `id` | integer | yes | The Accelo task ID |
### Examples
```lua
local task = app.integrations.accelo.get_task({ id = 67890 })
print(task.title)
print("Status: " .. task.status)
print("Assignee: " .. (task.assignee or "unassigned"))
```
---
## list_projects
List projects in Accelo. Accelo's API resource for these records is `/api/v0/jobs`.
### Parameters
| Name | Type | Required | Description |
|------|------|----------|-------------|
| `limit` | integer | no | Number of projects per page (default: 25, max: 100) |
| `page` | integer | no | Page number for pagination (1-based) |
| `status` | string | no | Filter by standing (e.g. "active", "inactive", "completed") |
### Examples
```lua
-- List all open projects
local projects = app.integrations.accelo.list_projects({
status = "open"
})
for _, project in ipairs(projects) do
print(project.id .. ": " .. project.title)
end
```
---
## get_current_user
Get token information for the current Accelo access token.
### Parameters
None.
### Examples
```lua
local user = app.integrations.accelo.get_current_user({})
print("Logged in as: " .. user.firstname .. " " .. user.surname)
print("Email: " .. user.email)
```
---
## Multi-Account Usage
If you have multiple Accelo deployments configured, use account-specific namespaces:
```lua
-- Default account (always works)
app.integrations.accelo.list_tickets({})
-- Explicit default (portable across setups)
app.integrations.accelo.default.list_tickets({})
-- Named accounts
app.integrations.accelo.production.list_tickets({})
app.integrations.accelo.staging.list_tickets({})
```
All functions are identical across accounts — only the credentials differ. local result = app.integrations.accelo.list_issues({limit = 1, page = 1, status = "example_status"})
print(result) Functions
list_issues Read
List support issues, also known as tickets, in Accelo. Returns a paginated list optionally filtered by standing.
- Lua path
app.integrations.accelo.list_issues- Full name
accelo.accelo_list_tickets
| Parameter | Type | Required | Description |
|---|---|---|---|
limit | integer | no | Number of tickets to return per page (default: 25, max: 100). |
page | integer | no | Page number for pagination (1-based). |
status | string | no | Filter issues by standing (e.g. "open", "closed", "resolved"). |
get_issue Read
Get details of a specific support issue, also known as a ticket, in Accelo by its ID.
- Lua path
app.integrations.accelo.get_issue- Full name
accelo.accelo_get_ticket
| Parameter | Type | Required | Description |
|---|---|---|---|
id | integer | yes | The Accelo ticket ID. |
create_issue Write
Create a new support issue, also known as a ticket, in Accelo. Requires a title and body. Optionally associate with a contract and set priority.
- Lua path
app.integrations.accelo.create_issue- Full name
accelo.accelo_create_ticket
| Parameter | Type | Required | Description |
|---|---|---|---|
title | string | yes | The ticket title or subject. |
body | string | yes | The ticket description or body content. |
contract_id | integer | no | Optional contract ID to associate with the ticket. |
priority | integer | no | Issue priority ID. |
list_tasks Read
List tasks in Accelo. Returns a paginated list of tasks, optionally filtered by standing.
- Lua path
app.integrations.accelo.list_tasks- Full name
accelo.accelo_list_tasks
| Parameter | Type | Required | Description |
|---|---|---|---|
limit | integer | no | Number of tasks to return per page (default: 25, max: 100). |
page | integer | no | Page number for pagination (1-based). |
status | string | no | Filter tasks by standing (e.g. "active", "inactive", "completed"). |
get_task Read
Get details of a specific task in Accelo by its ID.
- Lua path
app.integrations.accelo.get_task- Full name
accelo.accelo_get_task
| Parameter | Type | Required | Description |
|---|---|---|---|
id | integer | yes | The Accelo task ID. |
list_jobs Read
List projects in Accelo. Accelo exposes these records through the jobs API resource.
- Lua path
app.integrations.accelo.list_jobs- Full name
accelo.accelo_list_projects
| Parameter | Type | Required | Description |
|---|---|---|---|
limit | integer | no | Number of projects to return per page (default: 25, max: 100). |
page | integer | no | Page number for pagination (1-based). |
status | string | no | Filter jobs by standing (e.g. "active", "inactive", "completed"). |
get_token_info Read
Get token information for the current Accelo access token, including user email and expiry details.
- Lua path
app.integrations.accelo.get_token_info- Full name
accelo.accelo_get_current_user
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||