KosmoKrator

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.

Inline Lua call
kosmo integrations:lua --eval 'dump(app.integrations.accelo.list_issues({limit = 1, page = 1, status = "example_status"}))' --json
Read Lua docs headlessly
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.

workflow.lua
local accelo = app.integrations.accelo
local result = accelo.list_issues({limit = 1, page = 1, status = "example_status"})

dump(result)
Run the workflow
kosmo integrations:lua workflow.lua --json
kosmo integrations:lua workflow.lua --force --json
Namespace note. 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.

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

NameTypeRequiredDescription
limitintegernoNumber of tickets per page (default: 25, max: 100)
pageintegernoPage number for pagination (1-based)
statusstringnoFilter 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

NameTypeRequiredDescription
idintegeryesThe 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

NameTypeRequiredDescription
titlestringyesTicket title or subject
bodystringyesTicket description
contract_idintegernoContract ID to associate
priorityintegernoIssue 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

NameTypeRequiredDescription
limitintegernoNumber of tasks per page (default: 25, max: 100)
pageintegernoPage number for pagination (1-based)
statusstringnoFilter 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

NameTypeRequiredDescription
idintegeryesThe 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

NameTypeRequiredDescription
limitintegernoNumber of projects per page (default: 25, max: 100)
pageintegernoPage number for pagination (1-based)
statusstringnoFilter 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.
Metadata-derived Lua example
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
ParameterTypeRequiredDescription
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
ParameterTypeRequiredDescription
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
ParameterTypeRequiredDescription
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
ParameterTypeRequiredDescription
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
ParameterTypeRequiredDescription
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
ParameterTypeRequiredDescription
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
ParameterTypeRequiredDescription
No parameters.