The E-Mail app's description is the shared library's current one, not "Host your email with KamoCRM directly."
These TypeScript enums mirror kamo-shared-library's AppType and ServiceType. The Java source's EMAIL description was reworded ('Read, send and manage your organ...
The groupware provider finds a series by its UID as its master
SP98-F-3. CalendarService.findEventByUid read "the one row with this UID" in a calendar, and an edited instance of a series is a row of its own under the series...
An inbound invitation answers with its summary, as the account that received it
SP98-F-5. **************** returned the CalendarEvent entity, whose attendees point back at their event, so writing it recursed until the stack overflowed; it n...
Address books are found, and reached only by their owner with the web's rights
SP98-F-4. CardDAV wrote resourcetype as empty text for the home, every book and every card, so no client ever found an address book; a book is now *************...
A calendar edit changes only what it sends; a new one without a zone takes the member's
The calendar create and edit bound the UserCalendar entity, whose defaults (zone UTC, visible, sort order 0) stood in for every field a body left out. KamoMobil...
The meeting bridge trusts LiveKit from k3m1's node address too
livekit-sip is hostNetwork on k3m1, and k3m1 reaches 192.168.4.22 over its eno50 cable (192.168.4.22 via 10.0.50.0 dev eno50 src 10.0.50.1), so FreePBX sees eve...
An AI workstation goes to sleep with nothing on its desktop drawing
A page still drawing when the sleep image is written made the wake take minutes. SP11 Task 30's workstation slept with Kamo's sign-in page open (a full-screen z...
An address on either platform apex signs in to the account holding its twin
The owner signed in on login.kamouniverse.com with the brand's new address and was told "User does not exist". The account's address is Sage@KamoCRM.com. Since ...
An AI in a meeting is shown as such, and the console offers only to take it out
A meeting is heard only by its participants (SP14 D9), and kamoai-service now refuses listening, talking, whispering and taking over a meeting call (409 MEETING...
An AI in a meeting is shown as such, and the console offers only to take it out
A meeting is heard only by its participants (SP14 D9), and kamoai-service now refuses listening, talking, whispering and taking over a meeting call (409 MEETING...
The demo page books the webinar type under its KamoUniverse title or its old one
The page found its webinar type by the exact title "Schedule a KamoCRM Product Demo". That row is being retitled for the brand move, and an exact match would ha...
An alias goes only to a member of the caller's own organization
POST /api/email/aliases took any memberId: an administrator could create an alias in their organization that forwards to another tenant's member, and read that ...
Only an open god-mode window bypasses a tenant right, never GD alone
Every EmailService rights check let a session with GD through ("GD passes everything"), but GD is god-mode ELIGIBILITY, permanently true for the operators who h...
The signer's theme fallback is kamouniverse.com, and its untitled page says KamoUniverse
- @kamo/theme PLATFORM_APEX, the theme host used when the page has no hostname to take an apex from (server render, a bare host), is kamouniverse.com, the p...
Settings voicemail plays a FreePBX message from its paired upload
Settings -> Phone -> Voicemails plays each row through /voicemails/{id}/audio, which asked the provider for the audio. FreePBX serves no voicemail audio over an...
A like is stamped, so it saves
media_obj_reports.date_created is NOT NULL, and the like was built without it: @ColumnDefault only shapes the DDL, so Hibernate wrote NULL and every like failed...
Spend a WebSocket one-time key with one GETDEL
spendOneTimeKey read the key and then deleted it, so two handshakes racing with the same key inside its 30 s life could both read it and both open a socket for ...
KamoUniverse is a stop word for related-article suggestions
KbArticleRelationService matches articles on their significant terms and already drops the platform's own names ("kamocrm", "kamo") because every help article s...
A signing page's logo falls back to theme.kamouniverse.com
EsignBrandingService's asset host of last resort, used for an organization with no live domain of its own, was a private "kamocrm.com" literal. It is **********...
The platform-pricing loaders find the platform org as the top-level org, not by its short title
KamoCRMMarketBackfillLoader and KamoCRMPricingLoader looked the platform org up by titleShort = "KamoCRM". That stopped matching when the brand moved to KamoUni...
The setup page opens on kamouniverse.com and no longer offers to delete a platform domain
"Change domain" on /setup/dns for the platform organization showed only "SecurityService error". The button deletes the domain in use and then asks for a new on...
The setup page opens on kamouniverse.com and no longer offers to delete a platform domain
"Change domain" on /setup/dns for the platform organization showed only "SecurityService error". The button deletes the domain in use and then asks for a new on...
The scenery sampler identifies as kamouniverse.com; the steward test follows the platform console
- FaunaClient's User-Agent to GBIF named https://kamocrm.com as the product's contact URL; it names https://kamouniverse.com, the platform's primary apex. - S...
The Enterprise refusal names KamoUniverse
"The Enterprise plan is arranged directly with KamoCRM and cannot be selected here. Contact us and we will set it up for you." is echoed verbatim to the custome...
An org's alias mail domain is internal on both platform apexes
kamouniverse.com is now the platform's primary apex (kamo-shared-library 0e8cf90f), and **************** moved with it. - ForwardedHosts.internalDomains (the e...
A post or note is edited, liked and deleted by its own id
Every item of a feed (the Clubhouse, a lead's or a pipeline record's notes) carries its stream's guid, so PostCard's edit, like and delete went to /posts/<strea...
Add Lead goes to the list when its creator may not open the new lead
A lead created with "Auto Assign / Unassigned" joins the assignment pool, owned by nobody, and the lead page refuses a member without VIEW_UNASSIGNED_LEADS on a...
A post or note is edited, liked and deleted by its own id
Every item of a feed (the Clubhouse, a lead's or a pipeline record's notes) carries its stream's guid, so PostCard's edit, like and delete went to /posts/<strea...
Add Lead goes to the list when its creator may not open the new lead
A lead created with "Auto Assign / Unassigned" joins the assignment pool, owned by nobody, and the lead page refuses a member without VIEW_UNASSIGNED_LEADS on a...
Guard ampersands for every spelling of Spanish, keyed on the resolved language
guardAmpersands compared the caller's raw targetLang with {"es"}, so "ES", "es-419" or "es_MX" reached the same en->es model without the guard and came back wit...
Phone OAuth hops return the platform's members to internal.kamouniverse.com
kamouniverse.com is the platform's primary apex (kamo-shared-library 0e8cf90f). Sign-in ranks it first for the platform organization, the one organization holdi...
The bridge dials the room Meet uses; an AI joins a future meeting at its start; an AI that heard nobody is dialled again
- The dial-in resolver (I1), KM2's roomName and M1's join.roomName name the room Meet uses (the Kamo Meet provider's own room, else the typed name cleaned the...
OAuth return URLs accept both platform consoles; webinar cancel links keep the page that exists
kamouniverse.com is now the platform's primary apex (kamo-shared-library 0e8cf90f): OrgLinkHosts falls back to it, and ROOT_PREFERENCE makes it the platform org...
Edit, like and delete one post or note by its own id, never the whole stream
A feed, the organization's (the Clubhouse) or a lead's notes, is ONE POST session and every post or note is a message in it, so every item the feed lists carrie...
Never ban k3m1 — its node network joins the fail2ban allowlist
FreePBX runs with hostNetwork on k1m1. A pod on k3m1 reaches it SNATed to k3m1's InternalIP, 10.0.50.1, which none of the [DEFAULT] ignoreip ranges covered (the...
A lone call waits five minutes for company, not thirty seconds
Jigasi hangs up a call that nobody else joins within JIGASI_JVB_TIMEOUT (the image's default 30 s): Jicofo invites a participant only once there are two. An AI ...
SPF advice recognises kamouniverse.com; the brand's aliases are reserved on both apexes
SPF: kamouniverse.com publishes the same record as spf.kamocrm.com (v=spf1 ip4:47.181.8.84 mx -all), so a customer who wrote include:kamouniverse.com has alread...
Platform fallbacks name the primary apex, not a kamocrm.com literal
Four places kept their own "kamocrm.com" literal as the platform host they fall back to, so they could never follow the brand to kamouniverse.com. Each now read...
A quote's letterhead falls back to the primary platform apex
QuoteMapper kept its own "kamocrm.com" literal as the theme host of last resort, so a quote for an organization with no live domain still named the old brand's ...
Send Careers and the LLM registration link to kamouniverse.com
kamouniverse.com is now the platform's primary apex. Two links on the legacy www.kamocrm.com site that send visitors into the platform, and carry nothing tied t...
Read JustCall voicemail with INCOMING_VOICEMAIL, and file each under its agent
JustCall answers call_type=VOICEMAIL with 400 ("call_type must be one of ... INCOMING_VOICEMAIL"), so not one of the 241 voicemails on the JustCall account ever...
Docs trusts api.kamouniverse.com as a WOPI host
A member signed in on internal.kamouniverse.com (the platform's primary apex since 2026-09-28) opens documents with **************** DocsService takes the last ...
Docs trusts api.kamouniverse.com and serves docs.kamouniverse.com
A member signed in on internal.kamouniverse.com (the platform's primary apex since 2026-09-28) opens a document with **************** because DocumentController...
Kamouniverse.com refuses unknown recipients at RCPT instead of bouncing them
kamouniverse.com, the platform's primary apex, is an alias domain of kamocrm.com: every <x>@kamouniverse.com is the <x>@kamocrm.com mailbox. It was mapped by a ...
The desktop-ws route reaches only the terminal socket, not every SecurityService path
**************** matched PathPrefix(`/desktop-ws`) on internal.* and stripped the prefix, so **************** reached ANY SecurityService path from the internet...
KamoMail binds only an address on a domain the organization holds; the provider needs its right
The cross-tenant read path parked as SP99-T1-f. A self-registered organization could point its provider at its own IceWarp or Exchange (PUT /api/email/provider ...
One organization can no longer take another's <alias>.kamocrm.com routing
Any member of an organization with no root could add the root victim.kamocrm.com (POST /api/security/domains checked no right). Listing the domains then self-he...
A lead's notes stream, addressed by its guid, keeps the lead's own read rule
Every note on a lead now sends the lead stream's guid on /topic/media/feed/<orgId> (SP99-T3), which any member of the organization may subscribe to. The guid-ad...
A caller an AI member transfers rings the person from its own channel
FreePBX sends every blind transfer to its global TRANSFER_CONTEXT, from-internal-xfer-dest, which dials the target through a Local channel. A Local channel take...
A new commit log is translated at once, not behind the sweep's backlog
The first translation of a commit log and the sweep's retries shared one three-thread executor, first come first served. With the SP99 T6 repair's 326 commit lo...
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.
