Krayin

Sales dashboard with won and lost revenue, a monthly bar chart of leads and a donut chart of revenue sources.

Lead pipelines, contacts and PDF quotes on Laravel 12

Krayin is a sales CRM written in PHP on Laravel 12, with a Vue.js front end and an MIT license. Leads move through staged pipelines and link to people and organisations. The activity log takes calls, meetings, lunches, notes and files, and products from the catalogue go into quotes that print to PDF. Webkul, the company behind it, describes Krayin as a "CRM framework" for SMEs and enterprises alike.

Event-triggered workflows and custom fields with no migration

  • Lead age limit: each pipeline sets a number of days, 30 by default. A lead that is neither won nor lost that long after it was created is marked "rotten", and a filter lists them.
  • Custom attributes: new fields go onto leads, persons, organisations, products, quotes and warehouses from the admin panel, with no migration to write. Since 2.2.5, lead and person attributes are carried through imports and exports.
  • Workflows: creating, updating or deleting a lead, person, activity or quote fires a workflow. For a lead, the actions can update the lead or its person, email the contact or the sales owner, add a tag or a note, or call a webhook.
  • Web forms: embedded on a website, a form creates the person and, if the option is ticked, the lead too.
  • Inbound email: messages come in through SendGrid's Inbound Parse webhook, the default driver, or over IMAP, and each one can be attached to a lead or a person.
  • Two layers of permissions: roles grant rights per module and per action, and each user is set to see all records, their group's records, or only their own.
  • Code split into packages: twenty Laravel packages under packages/Webkul (Lead, Quote, Automation, WebForm and others), loaded through Concord. A package generator sits in the dev dependencies as a starting point for in-house modules.

MySQL-only, and a Docker image seven releases behind

The 2.2 documentation supports MySQL and MariaDB only. That means MySQL 8.0.32 or later, or MariaDB 11.4 LTS or later; PostgreSQL is not on the list. The same page asks for PHP 8.3, the intl and gd extensions, 3 GB of RAM and a 4 GB PHP memory_limit, which it puts down to composer install and large CSV imports.

There is no French or German locale. The repository ships the interface in ten languages: English, Arabic, Simplified Chinese, Japanese, Korean, Persian, Brazilian Portuguese, Spanish, Turkish and Vietnamese.

The add-ons the README promotes are paid. On krayincrm.com, the multi-tenant SaaS extension costs $1,799, WhatsApp $1,499 and VoIP $4,500, and the VoIP page lists compatibility with Krayin 1.3.0 only. The REST API also sits outside the core, in a separate MIT-licensed Composer package, krayin/rest-api. The core stays MIT, so the code can be modified and sold without publishing the changes; Twenty, another self-hosted CRM, is mostly AGPL-3.0.

The latest release is v2.2.7, from 16 October 2026. It is the eighth release on the 2.2 branch, which opened with v2.2.0 on 17 March. Versions 2.2.4 and 2.2.5, out in July and August, fix a SQL injection, a stored XSS in notes, an IDOR, unrestricted file uploads and unauthenticated access to the installer.

The Docker image stopped at 2.2.0. The Docker guide linked from the README points to the webkul/krayin image on Docker Hub, whose latest tag, 2.2.0, was pushed on 20 March 2026, before any of those fixes.