Everything you need to get your team up and running — from your first ticket to a full API integration.
Create your workspace, invite your team, and log your first ticket.
1. Sign up and create a workspace name.
2. Invite teammates by email or a shared link.
3. Create your first board — Tickets, Assets, or Dev.
4. Log a test ticket to see routing and SLAs in action.
Configure teams, categories, and SLA rules before rolling out to the whole company.
Go to Settings → Workspace to define ticket categories (e.g. Hardware, Access, Software) and assign default owners and SLA targets for each.
Moving off Jira, ServiceNow, Zendesk, Freshdesk, Trello, or a spreadsheet? The guided migration wizard maps fields for you, runs as a background job, and shows a completed/skipped/error count when it's done — no API key needed, it runs from inside your workspace.
Open Admin → Integrations → Data migration to pick a source and run a one-time import. For ongoing bulk uploads and updates to assets already in Trakolo, see Bulk upload & update assets below.
Every ticket has a category, priority, and SLA clock that starts the moment it's logged. Escalation rules can reassign or notify a manager automatically if a ticket is close to breaching.
Assets can be linked directly to tickets — so when someone reports a laptop issue, its full history, warranty status, and current owner are visible in the same view.
Dev teams can convert any ticket into a sprint item, estimate it, and track it on a kanban or sprint board — while IT still sees its SLA status in the original ticket view.
Install the Trakolo app to create tickets with /trakolo new and get status updates posted directly to a channel.
Connect a GitHub or GitLab repo to link commits and pull requests to tickets automatically when a branch name includes the ticket ID.
The REST API is included on the Team plan and above (not available on Free). One workspace can issue multiple keys — for example, one per integration you build.
1. Sign in as a workspace admin.
2. Go to Settings → Integrations → API keys → Generate key.
3. Name the key (e.g. "Reporting export") and choose its scope — read-only or read-write.
4. Copy the key immediately — the full value is only shown once.
Every request needs the key in the Authorization header, and is rejected with 401 Unauthorized without it:
GET /v1/tickets?status=open Authorization: Bearer YOUR_API_KEY
| Plan | API access | Rate limit |
|---|---|---|
| Free | Not available | — |
| Team | Included | 300 req/min per workspace |
| Business | Included | 600 req/min per workspace |
| Enterprise | Included | Custom, negotiated |
Requests over the limit get a 429 Too Many Requests with a Retry-After header. Keys can be revoked instantly from the same settings page — revoked keys fail closed within seconds.
Full REST API for tickets, assets, boards, and reporting, plus the bulk endpoints documented below. All endpoints are relative to https://api.trakolo.com and return JSON.
| Method & path | Description |
|---|---|
GET /v1/tickets | List tickets, filterable by status, priority, category |
POST /v1/tickets | Create a ticket |
GET /v1/assets | List assets, filterable by type, owner, status |
POST /v1/assets/bulk | Bulk create/update assets — see below |
GET /v1/assets/bulk/:job_id | Check the status of a bulk job |
GET /v1/boards/:id/cards | List cards on a sprint or kanban board |
POST /v1/webhooks | Register a webhook for ticket, asset, or board events |
Once you're past the initial migration, day-to-day fleet changes (a new laptop batch, a mass license renewal, a re-org that moves owners) go through the same bulk endpoint — either from the UI or the API. Both use the exact same file format, so a template built for one works for the other.
From the UI: SAM → Asset inventory → Bulk upload — download the CSV template, fill it in, and drag it back in. You get a preview of what will be created vs. updated before anything is saved.
From the API:
POST /v1/assets/bulk Authorization: Bearer YOUR_API_KEY Content-Type: text/csv asset_tag,name,type,category,owner_email,purchase_date,license_expiry,cost_center AST-2041,MacBook Pro 14" M4,hardware,laptop,jane@company.com,2026-06-01,,ENG-100 AST-1187,Figma Team License,software,saas,design-team@company.com,,2027-03-01,DES-200
The response is 202 Accepted with a job id — bulk jobs run async, the same way the migration wizard does:
{ "job_id": "blk_8f21ac", "status": "processing", "rows_received": 2 }
GET /v1/assets/bulk/blk_8f21ac
{ "status": "completed", "created": 1, "updated": 1, "skipped": 0, "errors": [] }
How the system decides create vs. update, and what it requires:
asset_tag — the upsert key. A matching existing tag updates that asset; no match creates a new one. This is the only column the system uses to decide create-vs-update.name, type — type must be one of hardware, software, saascategory, owner_email, purchase_date, license_expiry (ISO YYYY-MM-DD), cost_center — blank on an update leaves the existing value untouched, it does not clear itLimits: 10,000 rows or 15MB per file, whichever comes first — split larger exports into multiple calls. owner_email must match a user already in the workspace or the row is rejected (shown in the job's errors array with a row number and reason), not silently dropped.
The Standalone edition runs entirely inside your environment — your servers, your cloud tenant, or an air-gapped network. Nothing leaves your infrastructure, including license validation.
System requirements:
| Component | Minimum | Recommended (500+ users) |
|---|---|---|
| CPU / RAM | 4 vCPU / 8 GB | 8 vCPU / 16 GB |
| Storage | 50 GB SSD | 200 GB SSD, snapshot-capable |
| OS | Ubuntu 22.04+, RHEL 9+, or any Docker host | Same, with a container runtime |
| Database | Bundled PostgreSQL | External PostgreSQL 15+ you manage |
Install with Docker Compose (the supported path — a native installer exists for air-gapped RHEL):
# 1. Download the bundle from your customer portal (or via USB for air-gapped) curl -O https://downloads.trakolo.com/standalone/trakolo-2026.7.2.tar.gz tar -xzf trakolo-2026.7.2.tar.gz && cd trakolo # 2. Set your hostname and admin email cp .env.example .env && edit .env # 3. Start — first boot runs migrations and prompts for the license file docker compose up -d # 4. Open https://your-host and upload your .trklic license file
First login creates the initial admin account. From there, setup is identical to cloud: Settings → Workspace, invite users, enable modules.
Admin → Settings → License. On-premise has no billing page — your license is a signed .trklic file, validated locally. No phone-home, works air-gapped.The license file encodes four things: who it's licensed to, the named-user seat count, the modules enabled (ITSM, SAM, Dev boards, Reporting, AI features), and the support & upgrades expiry date.
How the file is generated: you never generate this yourself — it's issued by Trakolo. Whenever you buy seats, add a module, or renew support, your account team (or you, via a self-serve request on the customer portal) triggers an issuance on our side: a platform operator opens your workspace record, sets the new seat count / module list / expiry date, and generates a fresh .trklic — a JSON payload signed with Trakolo's private key. Only our public key, bundled with your installation, can verify that signature; nobody outside Trakolo can mint a valid file. The new file is emailed to your license contact and also available for download from the customer portal, replacing the old one.
How to handle it once you have the file:
.trklic, upload it under License → Upload new license file. Applies instantly, no restart.License → Offline activation generates a request code; exchange it on the customer portal from any machine and paste the response back.License → Download current license re-downloads it any time, and it's included automatically in the nightly backup archive below.If the license expires or seats are exceeded, admins get a banner and a 30-day grace period — users are never locked out mid-incident.
Upgrades are manual and under your control — download the new bundle, then:
docker compose pull && docker compose up -d # migrations run automatically
Always take a database snapshot first. The bundled PostgreSQL can be dumped with ./bin/trakolo-backup, which writes a single restorable archive (database + uploaded attachments + your license file). Point it at a network share or object storage on a nightly cron.
Version support policy: each release gets security fixes for 18 months. You can skip versions — migrations chain automatically — but upgrading requires an active support & upgrades plan. See what's new in each version on the release notes → page before you upgrade.