Skip to content

ITFlow

Productivity & Wikis

A comprehensive, free & open-source documentation, ticket management, and accounting platform for small managed service providers.

PHP Latest v26.05 · 1mo ago Security brief →

Features

  • Client documentation (assets, contacts, domains, docs, files, passwords)
  • Accounting/Billing features (finance dashboard, quotes, invoices, expenses)
  • Client Portal for self‑service quote/invoice/ticket management
  • Alerting for account balance, invoice due dates, domain/SSL renewals

Recent releases

View all 9 releases →
v26.05 Bug fix
Notable features
  • Bump TinyMCE from 8.4.0 to 8.5.0
  • Bump TCPDF from 6.11.2 to 6.11.3
  • DeBump stripe-php from 20.0.0 to 19.4.1
Full changelog

[26.05] Stable Release

Bug Fixes

  • Stripe Payment: Fix adding saved cards on client portal.
  • Various client and module enforments fixes.
  • Projects: Fix slow load by using an optimized query to count tickets and tasks.
  • Show correct currency for the account balance when adding payment to invoice.
  • Expire all Password reset tokens nightly with cron.
  • Shared Items via secure link: Do not delete shared items that have not been viewed before cron runs.
  • Client: Fix Client Abbreviation being converted to an int on edit.

New Features & Updates

  • Bump TinyMCE from 8.4.0 to 8.5.0.
  • Bump TCPDF from 6.11.2 to 6.11.3.
  • DeBump stripe-php from 20.0.0 to 19.4.1.
v26.04 Bug fix
⚠ Upgrade required
  • Bumped TinyMCE from 8.3.2 to 8.4.0
  • Bumped stripe-php from 19.4.1 to 20.0.0
Notable features
  • Categories: Add Description Field and DB field for order
  • Files: Allow .swb MikroTik backup files
  • Software: Added additional License Types (Perpetual, Site, etc.)
Full changelog

[26.04] Stable Release

Bug Fixes

  • Racks: Fix Device Removal.
  • Table Lists: replace class table-responsive-sm with just table-reponsive was causing ui issues with certain screen sizes.
  • Client: Fix Edit erroring on certain characters.
  • Category: Fix Add/Edit due to missing CSRF fields.
  • Category: Fix Restore function and Icon and text color.
  • Invoice: Do not apply late fee on first overdue reminder (1 day).
  • Ticket: Fix issue with contact not being added with Add contact modal v1.
  • Quote: Fix Copy was missing client.
  • API: Don't set client ID from POST - this is properly done via require_post_method instead only if it's an all-clients key.
  • API: Prevent error 500s when existing data can't be cleanly re-inserted to database.
  • API: Add more helpful errors.
  • API: Fix asset read uri_2 field.
  • API: Various other field fixes.

New Features & Updates

  • Categories: Add Description Field.
  • Categories: Add DB Field for order.
  • Categories: Move Asset Status and Network Interface Type to categories so custom ones can be created and edited.
  • Categories: Moved note type, software type, rack type to be creatable/editable Categories with common defaults and descriptions
  • Files: Allow .swb file for MikroTik Backup Files.
  • Software: Added additonal License Types including Perpetual, Site, etc.
  • API: Invoice Items: Add read endpoint.
  • Networks: Added Import.
  • Bump TinyMCE from 8.3.2 to 8.4.0.
  • Bump stripe-php from 19.4.1 to 20.0.0.
v26.3 Breaking risk

Recurring Ticket frequency field now accepts an empty placeholder value.

Full changelog

[26.03] Stable Release

Bug Fixes

  • Ticket Templates: Fix Task Sorting.
  • Ticket: Lower autoclose setting minimum value from 48 to 24 Hours.
  • Ticket: Fix Task Approval.
  • Recurring Ticket: add empty value placeholder for Ticket Frequency.
  • Documents/Files: Fix redirect after File Upload to redirect to files instead of the non existent documents.
  • Setup: Fix base url tacking on /setup when not installing via script.

New Features & Updates

  • Clients: Net Terms: Added common 45 and 15 Days, removed 14 Days not as common.
  • Clients: Bulk Action Set Net Terms Added.
  • Clients: Swapped location and contact column, add PopOver with Details such as created, abbreviation, DB ID instead of taking up space underneath client, rounded tag pills and increased padding, removed info badges and added one info badge that displays a popover with details.
  • Clients: Added New Ticket to Client Top Header Menu.
  • Clients: Client Overview: UI Sprucing.
  • Invoice: Send reminder 1 day after due date.
  • Invoices/Quotes/Recurring Invoices: Split Items tables into their own POST logic and Modal UIs and tables (quote_items, invoice_items, recurring_items).
  • Tickets: New Ticket Parsing - Anyone CC'ed onto the original email that created the ticket is added as a ticket watcher.
  • Ticket/Quotes: Quotes can now be associated with a ticket.
  • Networks: Removed Subnet Mask Field, Use CIDR instead.
  • Networks: Rearranged fields, Updated placeholders, Add/Edit/list for better flow.
  • Networks: Renamed DHCP to IP Range to allow for you use of both DHCP and or Usable IPs.
  • Assets: Rearranged fields, Updated placeholders, Add/Edit/list for better flow.
  • Assets: Added IPv6 if available under IP, Make and Model are now one line with Serial Underneath. Added OS under Type. use pill for status.
  • Calendar: Event thats are cut off can now be viewed as a tooltip on hover.
  • Calendar: Renamed System Calendars to built-in calendars and added the names and color dot for reference.
  • Calendar: You can now delete a custom calendar.
  • Report: Client Ticket Time Detail Audit: Selectable Billing Time Increment, will later be avauilable globally.
  • Roles/Permissions: Now complete and is out of beta all permission roles are strictly enforced, except for in Trips and Calendar, new enforce modules will be added for these at a later date.
  • Project Templates: Ticket Template order can now be dragged and dropped.
  • Global: Introduced new checkbox class to all Checkbox select columns to keep consistency and reduce space and enhance ui.
  • Global: CSRF Checks everywhere instead of just deletion calls.
  • Global: Renamed the rest of the unarchive post and label calls to restore.
  • Files: Allow upload of .unifi extension.
  • Bump Libraries:
    • stripe-php from 19.0.0 to 19.4.1.
    • fullcalendar from 6.1.19 to 6.1.20
    • TCPDF from 6.10.1 to 6.11.2
v26.02 Breaking risk
⚠ Upgrade required
  • PHPMailer upgraded from 7.0.1 to 7.0.2
  • Datatables upgraded from 2.3.4 to 2.3.7
  • TinyMCE upgraded from 8.2.2 to 8.3.2
Notable features
  • Task Approval System for ticket tasks with internal and client approval paths
  • Printable Invoice Packing Slips added
  • Connect to Microsoft 365 button in mail settings, stable OAUTH2 support for M365 and Google Workspaces
Full changelog

[26.02] Stable Release

Bug Fixes

  • Mail Parser - Do not automatically send new ticket notifications to noreply/donotreply addresses.
  • Ticket: removed newline \n on Parsed emails.
  • Show Trips for everyone if accounting module is enabled.
  • Fix Invoice Exporting.
  • Fix Billable Column not sorting correctly in tickets.
  • Fix Login flow where user agent and client user exists and agent has MFA but will not let them continue.
  • Fix passing missing user_id var in client portal.
  • Fix Ticket Templates not auto filling when selected.
  • Fix Invoices not being sent to all billings contacts when manaully sent.
  • Fix Documents and Files not able to be bulk deleted.
  • Fix Role Archiving, can be archived as long as no users are assigned to the role.
  • Fix showing Powered By ITFlow visibility on the login screen when Whitelabel is enabled.
  • Missing username in audit log on successful login due to missing passed user_id to logging.
  • API: Fix updating all documents instead of the intended document.
  • Documents: Fix Document created at not showing the correct creation date of the master document.
  • Ticket: Fixed Using edit ticket modal agent was not able to be set.
  • Always check if a user is archived and or disabled instead of just during login.
  • Report: Fix Collected tax report not totalling all tax categories.

New Features & Updates

  • Task Approval System for ticket tasks: Once an approval is requested, the task cannot be marked as complete until approved. Internal Approvals Any other technician, or Specific technician, Client Approvals Anyone (usually the requestor) Tech contacts Billing contacts.
  • Printable Invoice Packing Slips now available.
  • Drastic Performance Bump: Up to 50% faster queries accross the board and reduced server memory usage by 40% by switching Database Query method from mysqli_fetch_array to mysqli_fetch_assoc.
  • Added Connect to Microsoft 365 Button to mail settings.
  • OAUTH2 support for Microsoft 365 and Google Workspaces is now considered stable and working.
  • Favorites: Assets and Credentials now can be favorited singly or by Bulk action. Favorited items appear in the client overview now.
  • Files/Documents: Collapsable folders feature, collapsed by default with a button to expand all.
  • URL Keys and such are now set to a more manageable 32 Characters by default.
  • Various UI/UX Updates throughout the app, with focus oin ticket details, contact details modal etc.
  • Added Show Archived files and documents to the files section.
  • Added Bulk Archive and restore options to files and documents.
  • Rewrite of the Kanban Ticket view to match our procedural style of coding.
  • All options are available in TinyMCE now in Mobile mode.
  • Agent names appear now in Invoice History section.
  • Mail Parser: Support flowed text.
  • Assets: Keep Purchase reference when copying.
  • Assets: Add basic tracking history: Archiving, restoring, name changes, transferimg to new clients.
  • Mail Parser: NDR Parsing.
  • Allow SVG files in mail attachments.
  • Tickets: Use a more friendly time worked instead of 02:41:00 translates to 2h 41m.
  • Update wording on ticket to invoice item details.
  • Merge Tickets: Now wth a ticket merge dropdown list of tickets instead of a text field.
  • Role Permissions can now be set during role creation, update Permission UI to use radio buttons instead of select boxes.
  • Bump TinyMCE 8.2.2 to 8.3.2.
  • Bump PHPMailer from 7.0.1 to 7.0.2.
  • Bump Datatables from 2.3.4 to 2.3.7.
v25.12 Breaking risk
⚠ Upgrade required
  • New install script (post Dec 6 2025) automatically installs **php-xml**; existing installations must add it manually.
  • Removed sidebar quick‑add options – UI adjusted accordingly.
  • Bulk action function now accepts named ID arrays instead of a generic `selected_ids` array.
Breaking changes
  • Existing installs must have the **php-xml** extension installed (sudo apt install php-xml) for document creation and editing.
Notable features
  • Automatic subject‑based ticket merging/reply detection with 95 % match within 7 days.
  • `saveBase64Images()` converts base64 `<img>` tags to stored files under `/uploads/documents/$document_id`.
  • `cleanInput` and MySQLi prepared‑statement migrations for client/post and payment method handling.
Full changelog

[25.12] Stable Release

Breaking Changes

  • For Existing installs: php-xml extension needs to be installed for document creation and editing, new install script does this for you as of Dec 6th 2025. To install php-xml: sudo apt install php-xml

Major Changes

  • Consolidated "Files" and "Documents" into a single section called Files.

Bug Fixes

  • Resolved issue with updating asset notes in asset details.
  • Fixed problem with bulk ticket merging.
  • Corrected issue where decimal inputs (e.g., price, cost) weren’t displaying on iPhones in certain forms.
  • Added CSV escaping to the sample export data in areas where a sample CSV template is provided.
  • Fix a race condition where dupe tickets, invoices, recurring invoices, recurring tickets, quotes will be created using the same number if created in parallel espcecially when using the API.

New Features & Updates

  • Introduced automatic subject-based ticket merging/reply detection. Now, if an email comes from a known contact or domain and the subject matches 95% of a ticket opened in the last 7 days, it will be merged automatically.
  • Added cleanInput function to sanitize data before inserting it into the database when using MySQLi prepared statements.
  • Migrated client post functionality to use MySQLi prepared statements.
  • Updated payment method post functionality to use MySQLi prepared statements.
  • Implemented saveBase64Images() to convert base64-encoded <img> tags into actual image files stored under /uploads/<module>/<id>/ with secure filenames. Added wrapper functions, and updated document creation to use processed image paths.
  • For new documents and document templates, images are now stored in /uploads/documents/$document_id instead of being stored as base64 in the database, using the saveBase64Images() function.
  • UI/UX improvements made to the document details page.
  • Removed sidebar quick-add options.
  • Created new folders in the uploads directory: documents, document_templates, and recurring_tickets.
  • Reworked the bulk action function to pass the name arrays, instead of a generic selected_ids array. This allows multiple bulk name arrays to be passed at once, currently used for the new file-document merge.
  • Big task: Converted the remaining modals to use the new ajax-modal system, enabling more flexible flow expansion going forward.
  • Mail queue: Added a --no-mx-validation flag to bypass recipient domain MX validation.
  • Bump PHPMailer from 7.0.0 to 7.0.1.
  • Bump stripe-php from 18.1.0 to 19.0.0.
  • Bump TCPDF from 6.10.0 to 6.10.1.
  • Bump TinyMCE from 8.2.0 to 8.2.2.

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

About

Stars
940
Forks
243
Languages
PHP JavaScript CSS

Install & Platforms

Install via
shell-script
Platforms
linux

Community & Support

Alternative to

ITGlue Hudu

Beta — feedback welcome: [email protected]