KamoCRM

Live Change Log

Every feature, fix and improvement, posted as it ships. Nothing is held back for a launch.

18,392
Total Changes
6,527
Features
5,537
Fixes
30
Projects
Filter by project
All Projects18,392AIService276APIService177BillingService161ConversionService117DaemonService146DocsService240ESigService93EmailService619InitializerService344KBService162KlusterServices769MCPGatewayService277MediaService620RAGService79SecurityService1,995TranslateService62VOIPService265VectorService11kamo-apps26kamo-asterisk-support28kamo-capcha17kamo-capcha-widget4kamo-internal8,692kamo-login342kamo-marketing642kamo-nowww20kamo-register213kamo-shared-library1,824kamo-signer-monorepo57kamolos114
Filter by type
All TypesBuild23CI525Chore794Docs3,286Feature6,527Fix5,537Other1,001Performance174Refactor281Revert23Style45Test175Upgrade1
April 29, 2026
FeatureInitializerService

Add CDR caller-ID columns to recordings table (order 40)

Adds caller_id_num, caller_id_name, call_direction, and call_result columns to the recordings table so the softphone history tab can display who called without ...

Kamo·6mo ago
April 27, 2026
FeatureInitializerService

Add member language + default_currency columns

Adds two NOT NULL columns to the members table backing the new Member.language (VARCHAR DEFAULT 'ENGLISH') and Member.defaultCurrency (VARCHAR(10) DEFAULT 'USD'...

Kamo·6mo ago
FeatureInitializerService

Migration runner for Recording provider-lookup columns + VM archive columns

Adds RECORDINGS.provider_instance_id (UUID) and provider_external_id (VARCHAR(64)) plus the composite idx_recordings_provider_lookup index used by the softphone...

Kamo·6mo ago
April 26, 2026
FeatureInitializerService

Add include_company and company_name columns

LeadCompanyColumnRunner (Order 40) idempotently adds: - lead_markets.include_company (BOOLEAN, nullable) — tracks whether a market requires company name on le...

Kamo·6mo ago
FeatureInitializerService

Backfill is_available = TRUE for existing members

Kamo·6mo ago
April 24, 2026
FixInitializerService

Use CockroachDB-compatible DROP INDEX CASCADE syntax

CockroachDB rejects ALTER TABLE ... DROP CONSTRAINT for UNIQUE constraints with: unimplemented: cannot drop UNIQUE constraint "uk_org_oauth_provider" using ...

Kamo·6mo ago
FeatureInitializerService

Multi-instance phone/SMS provider migration

Runs after Hibernate ddl-auto:update creates new tables (VOIP_PROVIDER_INSTANCE, BULK_TEXT_PROVIDER_INSTANCE, PHONE_EXTENSION, PHONE_END_USER, PHONE_DEVICE, PHO...

Kamo·6mo ago
RefactorInitializerService

Drop teamMemberPayFeesSetting from DataLoader

Master-model provisioner no longer passes the removed tri-state pay-fees setting when creating the master security model — the field is gone from ChildOrgSecuri...

Kamo·6mo ago
April 23, 2026
FixInitializerService

TeamMember is-a Member; drop bogus tm.getMember() calls

TeamMember uses JOINED inheritance — it IS a Member, no nested member field. The backfill was calling tm.getMember() which doesn't exist. Also switches the JPQL...

Kamo·6mo ago
April 21, 2026
ChoreInitializerService

Persist org after parent attach via saveOrganization

Kamo·6mo ago
ChoreInitializerService

Provision master model with MEMBER_SELECT ATF policies

Kamo·6mo ago
April 20, 2026
FixInitializerService

Drop stale CHECK constraints on default-role-rights enum columns

Hibernate auto-generates CHECK (column IN ('VAL1', 'VAL2', ...)) constraints on CREATE TABLE for @Enumerated(EnumType.STRING) columns, freezing the enum's value...

Kamo·6mo ago
FixInitializerService

Add missing unique constraints for role-right upserts

**************** + syncSecurityModelRoleRights use `ON CONFLICT (role_id, right_type) DO NOTHING` and `ON CONFLICT (default_role_id, right_type) DO NOTHING`, wh...

Kamo·6mo ago
FeatureInitializerService

Seed Organization.isTopLevel for kamocrm and OWNER_UNLIMITED self-comp plan

- DataLoader: drop OrganizationType arg from createOrg, set isTopLevel=true on kamocrm - KamoCRMAgeReqUpdateRunner + test: match on IS_TOP_LEVEL = TRUE instead ...

Kamo·6mo ago
FeatureInitializerService

Add migration runner for logo_full_ext column on orgs

Kamo·6mo ago
April 19, 2026
FeatureInitializerService

Master model applies to all three member types on init

provisionMaxedOutMasterModel now sets appliesToMembers, appliesToTeamMembers, and appliesToOwners all true so every member type sees the master model's branch t...

Kamo·6mo ago
FeatureInitializerService

Administrator default role template starts with all rights GRANTED

provisionMaxedOutMasterModel now populates the Administrator template with every RoleRightType set to GRANTED. The other three templates (Team Member, Member, D...

Kamo·6mo ago
FeatureInitializerService

Provision a maxed-out master security model for KamoCRM on init

DataLoader now creates and assigns a master ChildOrgSecurityModel to KamoCRM immediately after the org is created, with every setting maxed out to the most perm...

Kamo·6mo ago
FeatureInitializerService

Add FEATURE_REQUESTS to Support category and all plan-feature mappings

Free: Community vote, Starter: Vote & request, Business: Priority requests, Enterprise: Custom dev included

Kamo·6mo ago
FixInitializerService

UPSERT SYSTEM email template rows on every run

Previously the seed runner only inserted rows that didn't exist, so canonical HTML changes never propagated to the DB. Now existing SYSTEM rows have their bodyH...

Kamo·6mo ago
April 18, 2026
FixInitializerService

Add dao.repositories to EnableJpaRepositories scan

EmailTemplateRepository lives under dao.repositories.email, not dao.repos, so it was not picked up as a Spring bean.

Kamo·6mo ago
FeatureInitializerService

SP5 migrate KamoCRM agereq to ALL_WORK_ELIGIBLE

Add KamoCRMAgeReqUpdateRunner (order 10) — conditional idempotent UPDATE on startup; WHERE clause checks old value so re-runs are no-ops. Errors are swallowed s...

Kamo·6mo ago
FeatureInitializerService

Add EmailTemplateSeedRunner for SYSTEM + per-org seeding

Runs at @Order(20) on KamoInitializerService startup. Loads canonical templates from kamo-shared-library resources; upserts SYSTEM rows (no clobber); backfills ...

Kamo·6mo ago
FeatureInitializerService

Add partial unique indexes + CHECK constraints for email_templates

Hibernate ddl-auto can't generate partial unique indexes or computed-CHECK constraints. This commit adds them via the existing idempotent DDL runner pattern aft...

Kamo·6mo ago
FeatureInitializerService

Seed KamoCRM with ALL_WORK_ELIGIBLE on fresh installs

The createOrg() helper applies this single argument to both ageReqTypeMember and ageReqTypeTeamMember; consistent with platform convention. Pairs with KamoCRMAg...

Kamo·6mo ago
RefactorInitializerService

Tighten KamoCRMAgeReqUpdateRunner per review

- Restore Javadoc paragraph explaining @Order(10) rationale. - Test now references the UPDATE_SQL constant directly instead of duplicating the SQL string, so ...

Kamo·6mo ago
FeatureInitializerService

Add one-time runner to migrate KamoCRM agereq to ALL_WORK_ELIGIBLE

Conditional idempotent UPDATE runs on service startup; WHERE clause checks the expected old value so re-runs are no-ops. Errors are logged and swallowed — start...

Kamo·6mo ago
April 17, 2026
FeatureInitializerService

Add ssl_confirmed and ssl_confirmed_at columns to org_domains

Adds idempotent ALTER TABLE statements to provision the two new columns needed for DNS setup SSL confirmation tracking.

Kamo·6mo ago
FixInitializerService

Update kamo-shared-library version from 1.0.0 to 1.1.0

Needed to resolve the new billing entities in the commerce.billing package added to shared library 1.1.0.

Kamo·6mo ago
FeatureInitializerService

Add billing config initialization to KamoCRMPricingLoader

Seeds a default BillingConfig (ORG_PAYS_ALL, SOFT_LOCK, 7-day grace) for the KamoCRM organization during pricing loader startup. Supports the new Stripe billing...

Kamo·6mo ago
April 16, 2026
FixInitializerService

Email as paid add-ons, not included free

- KamoMail Hosting: $5/user/mo add-on on all plans - 3rd Party Email Integration: $2/user/mo add-on on all plans - Email hosting feature reverted to "Add-on" in...

Kamo·6mo ago
FixInitializerService

Use 18DOFF promo code with April 30 2026 expiry

Kamo·6mo ago
FeatureInitializerService

Update KamoCRM pricing to production go-to-market rates

- Starter: $34/mo ($28 annual), Business: $72/mo ($59 annual), Enterprise: from $109/mo ($99 annual) - Business plan expanded from 50 to 100 users - Added eSign...

Kamo·6mo ago
April 11, 2026
FixInitializerService

Set 18DOFF promotion end date to 2026-04-26

Kamo·7mo ago
FixInitializerService

Extend 18DOFF promotion end date to 2026-12-31

The April 14 end date was causing the offer page to show as expired.

Kamo·7mo ago
RefactorInitializerService

Use List<String> instead of manual JSON strings for promotion plan/cycle IDs

Update KamoCRMPricingLoader to use List.of() for applicablePlanIds and applicableBillingCycles, matching the shared library's migration from JSON strings to ent...

Kamo·7mo ago
FeatureInitializerService

Use createOrganizationOwner for admin members, rename INTERNAL to TEAM_MEMBER

Update owner creation to use new createOrganizationOwner method which handles admin role assignment and PRIVILEGED access level automatically. Replace all Image...

Kamo·7mo ago
April 9, 2026
April 4, 2026
FeatureInitializerService

Add webinar type and lead market seed data for KamoCRM demo

Adds seed data initialization for the webinar scheduling system: - "KamoCRM Software Introduction Demo" webinar type (45min, PRIORITY strategy) - Reminder inter...

Kamo·7mo ago
April 3, 2026
FixInitializerService

Drop UUID-typed customer_id/customer_group_id columns for INT8 recreation

After RetailCustomer (UUID PK) → Account (Long PK) refactor, the commerce_carts, commerce_draft_orders, and commerce_price_lists tables had customer columns wit...

Kamo·7mo ago
FixInitializerService

Clean up CockroachDB orphan brand_id/tax_class_id defaults on commerce_offerings

CockroachDB applies unique_rowid() as default to nullable FK columns, creating orphan UUIDs that break FK constraint creation. Nullify orphans and reset default...

Kamo·7mo ago
April 2, 2026
FixInitializerService

Remove 14-day trial from Starter and Business plans

Free plan serves as the trial experience — no need for separate trial periods on paid plans.

Kamo·7mo ago
April 1, 2026
FixInitializerService

Remove mock subscription data from DataLoader

Remove loadMockSubscriptionData (BASIC/PRO/ENTERPRISE fake plans) from loadMockPOSData. All subscription data for KamoCRM is now exclusively managed by KamoCRMP...

Kamo·7mo ago

Like what you see shipping?

All of it arrives in your workspace on its own. Start on the free plan and read this page again in a month.

Start Free ForeverView Pricing