mothermachine

Browse / Support and bookkeeping

ITFlow

Ticketing, client documentation, quotes, invoices, and expenses for small MSPs, with a keyed REST API.

AdaptableOperable Business appWeb app Deterministic PHPJavaScript API License: GPL-3.0

ITFlow is a GPL PHP app that puts an MSP's tickets, client assets, credentials, domains, quotes, invoices, payments, and expenses in one place, with a client portal and Stripe payments. It spans both halves of this vertical. The Builder documents an API at /api/v1/{module}/{function}.php authenticated by API key, with read access across the modules, create for tickets and locations, and create plus update for clients, contacts, assets, documents, and credentials.

Use it when
  • we are a small MSP and want tickets, client docs, and invoicing in one free system our agent can read and create tickets in
  • we want our agent to pull unpaid invoices and open tickets per client for a weekly account review without a paid PSA
Gotchas
  • API is read-only for billing modules; invoices, quotes, expenses, and payments cannot be created by an agent
  • API key is passed as a query parameter, so it lands in web server logs
  • Managed hosting is marked coming soon; self-host on Ubuntu/Debian is the supported path
  • GPL-3.0; stable release only since Jan 2025 per README security note

Last activity Sep 2, 2026. Fit: adaptable 2, operable 2.

Editions

Free (self-hosted) · Free open source

  • Clonegit clone https://github.com/itflow-org/itflow
  • Installwget -O itflow_install.sh https://github.com/itflow-org/itflow-install-script/raw/main/itflow_install.sh && bash itflow_install.sh

Managed hosting · Free closed source

For agents: JSON · Markdown

Adaptable: what is yours to change

Make it yours

Config only1 thing to edit

The installer writes config.php (gitignored) with database credentials, the encryption key, and base URL; everything else an MSP changes is in the Settings UI: company details, invoice numbering and templates, tax rates, ticket statuses, email (IMAP/SMTP), and API keys per client or all-client. There are no env vars or prompt files. Code changes are only needed for new modules; PRs from the community are currently paused.

Env vars
none
Config files
config.php
Prompt files
none
Accounts you need
Stripe (optional, for online payments)SMTP/IMAP mailbox for ticket email

Source

Operable: what an agent can drive

Interface

OfficialAPIpublished by the builderlocal

How an agent can drive an Operable Listing, in five levels: native (built for the agent as the primary interface), official (the Builder ships an agent interface), wrapped (a third party wraps the software's API), config (an agent can only drive it by editing files), gui (screen control only). An interface is official only when it is published by the same organization that ships the software. GUI-level Listings are allowed and sorted last.

Docs
docs.itflow.org/api

Reach

Partial coverage. 5 of 10 jobs reachable through the stated interface.

JobThrough the interfaceEvidence
Create and read ticketsReachabledocs.itflow.org/api: Tickets is Read + Create; api/v1/tickets and ticket_replies directories in repo
Manage clients and contactsReachabledocs.itflow.org/api: Clients and Contacts support read, create, and update; archive/unarchive not listed on the docs page
Document client assets, networks, domains, certificatesReachableAssets, Certificates, Locations, Documents are Read + Create; Domains, Networks read-only
Store and retrieve client credentialsReachableCredentials Read + Create; every call needs api_key_decrypt_password
Read invoices, quotes, payments, and expensesReachableInvoices, Quotes, Payments, Expenses are read-only modules
Create and send quotes and invoicesNot reachableInvoices and Quotes endpoints are read-only per the API docs
Record expenses and paymentsNot reachableExpenses and Payments are read-only
Take online payments with StripeNot reachableStripe runs through the client portal, no API endpoint
Alert on domain and SSL expiryNot reachablecron-driven; API only reads Domains and Certificates
Client portal self-serviceNot reachableportal is a separate login UI, not covered by the API

Code stack

Languages
PHPJavaScript
Frameworks
none
Package manager
–
Database
MariaDBMySQL
Hosting target
self-host (Ubuntu/Debian install script)
Built
Human-written (recorded, never ranked)

Evidence and confidence

FieldWhere it was seenConfidence
formFactorREADME: install script on Ubuntu/Debian, PHP app95%
executionModelno model dependencies; feature list is documentation, ticketing, billing90%
operabilitydocs.itflow.org/api: 'API Key via query parameter ?api_key=YOUR_KEY' (JSON body for POST), keys created under Admin Settings > API Keys, scoped to all clients or one client; no browser session needed. URL pattern /api/v1/{module}/{function}.php.95%
effort.gitignore lists config.php; no other config or env files in the tree80%
editionsREADME: free and open source; services.itflow.org hosting coming soon80%
activegh api: pushed 2026-09-02, 994 stars–
reach85%

Open questions

  • Managed hosting price when it launches
  • Whether ticket_replies API supports creating replies (directory exists; docs page did not list it)

Sources