Every SI speaks by its personality, and the tables for background sound, voice consent and caller phrase memory
PhoneStyle compiles an SI's traits into spoken phone rules (contractions and address forms, warmth, humor, energy, hedging, empathy, curiosity, register, region...
SIs play Texas Hold'em with members, and every member's Cheddar works again
SITP TPGAMES (owner 2026-10-26). Cheddar wallet: - The wallet's only door (universe-gateway -> universe-persistence) has had no endpoints since the KamoUnive...
Mail_send takes an HTML body's plain-text version and one text file written by the caller (TPRECAPS)
The SI's meeting recap now carries the meeting's full transcript; past the body's limit it goes as a .txt attachment. textBody (with bodyFormat HTML) becomes th...
A message's sender facts for SI identity checks; SI_AUTH_REQUEST belongs to no app
The provenance answer now also says what the message itself claims about its sender: From, Reply-To, the server that handed it to ours, and the SPF/DKIM/DMARC r...
SI_AUTH_REQUEST notification kind and the SI authentication log entities
Owner 2026-10-26: direct orders reaching an SI over a channel that proves nobody's identity are confirmed by the member in Kamo first. Appends **************** ...
Choose who can invite an SI to meetings, on its Call options
Kamo Meet "Invite an SI" (owner order 2026-10-26): Only the people who supervise it (default) / Its supervisors and teammates / Anyone in your organization, wit...
Invite an SI from inside the meeting; who may invite an SI is the SI's own option
Kamo Meet "Invite an SI" (owner order 2026-10-26): - GET **************** for a signed-in person IN the meeting (creator, recorded participant, or handed this...
Who may invite this SI to meetings, on its Call options
Kamo Meet "Invite an SI" (owner order 2026-10-26): meetingInvitePolicy (SUPERVISORS default | TEAM | ORGANIZATION) read and changed beside the SI's other call a...
MeetingInvitePolicy — who may invite an SI into a meeting; declare ai_member_call_options
Kamo Meet "Invite an SI" (owner order 2026-10-26). An SI's supervisors (its reporting line over manager and SI-supervisor edges, the org owner) may always invit...
Games_* - an SI plays chess with members
SITP TPGAMES. Eleven tools over MediaService's chess endpoints, gated as a member's board is (Chess app + PLAY_CHESS, again downstream): games_list, games_get_s...
A plain-text version beside the HTML, and an SI's recap letter for a supervisor when the SI has no mailbox (TPRECAPS)
/api/email/send takes an optional textBody: the body is then multipart/alternative (text, then the HTML), inside mixed when there are attachments. POST ********...
Declare ai_call_recap and ai_member_recap_options for the SI call recap email (TPRECAPS)
One row per SI phone call that had a conversation, so its recap reaches the supervisor once; and an SI's two recap options, both on by default. Hand-applied DDL...
Every SI has a clock: time_now, time_convert, time_calc
Owner report 2026-10-26: asked the time on a call, an SI said it had no clock. The clock and calendar every person has: the time now in the SI's zone or any oth...
A teammate's proven email to an SI is their request and their order
Owner report 2026-10-26: the owner emailed their SI to call them; the email was never an order ([ORDER] no order) and every later check-in read it as outside ma...
A Reply-To elsewhere is a spoof sign: such mail is never a teammate's proven email
An SI plays a member's game with the member's PLAY_CHESS too (No Insubordination)
A game with a member is always at that member's request (they invited the SI, or told it to invite them), and a team member's direct order runs with the SI's ri...
An SI member plays chess with members, its moves chosen by Kamo's engine
SITP TPGAMES (owner 2026-10-26: an SI asked to play chess did not know how). - ChessSiPlayer: event-driven (ChessTurnEvent after each committed change). A me...
Prove a teammate sent an SI's email, so an emailed request can count as their order
An internal endpoint answers whether a message in a member's own mailbox was sent by a teammate: its From reaches a member of the same org, and that member's ow...
Pipeline shows when each deal and loan opened, and sorts by it
Deals and loans show "Opened <date, time>" in the member's zone. For loans imported from Arive that is Arive's creation time — before, every imported deal sorte...
Pipeline loans opened in Arive carry Arive's creation time, not the import's
Loan summaries carry when an MLOS loan really opened (openedAt)
Never push a stage to the external MLOS that the sync itself wrote
The Arive import walks a loan through Kamo's pipeline one step at a time; the 20s sync tick saw each half-walked status as a Kamo change and sent it to Arive, r...
Never send exception text (SQL included) to the browser
BaseLosController.error() put e.getMessage() in every 500 body; the pipeline page showed a full JDBC statement. The exception now goes to the log under a short ...
Prospects — pre-application deals leave the open pipeline
A deal whose loans are all at intake, qualification or pre-approval (no application taken yet) shows under its own Prospects view and count. Open, its KPIs and ...
Pipeline reads retry on a Yugabyte read restart instead of failing the page
"We couldn't load the pipeline (JDBC … Restart read required)" appeared at random while the Arive import was writing loans. The deal and loan list reads are pur...
Retry the pipeline board read on a Yugabyte read restart; ignore impossible Arive dates
The board loads every loan over several statements; a concurrent write (the Arive import) made Yugabyte fail a later one with 40001, shown to the user as a raw ...
Pipeline shows pre-application stages, every outcome, and archived loans
- statuses: Application Intake, Qualification, Pre-Approved; Approved Not Accepted, Closed for Incompleteness, Rescinded, Pre-Approval Denied / Not Accepted...
Kamo holds every Arive loan, at the status Arive really has it
- import and inbound events adopt every loan — open, funded, adverse or archived — instead of only "active" ones - no per-loan Get Loan or crmReferenceId stam...
Pre-application statuses, every HMDA outcome, archive, and Arive's real dates
Arive loans were mapped from stage names alone: every pre-application stage became Application Taken, every archived loan Withdrawn (funded ones too), every adv...
Use the org's own mortgage market, whatever it is titled
ensureMortgageMarket matched only the title "Residential Mortgage Loans", so an org that had renamed its market ("Loans", "KamoMLOS") got a second, empty mortga...
Retry the import's progress write on a Yugabyte read restart
The first live import stalled at RUNNING after page 1: saving the connection loads the org's domains, Yugabyte answered 40001, and the failure write hit the sam...
Keep Harmony's Arive Zapier zaps as reusable templates
Sanitized Zap definitions (current loan-level set and the retired lead-level set), the sanitizer, and how to rebuild them for another Arive client.
External MLOS lives on the mortgage market and on each loan
- Settings → POS markets → mortgage market: new "External MLOS" tab (Arive via Zapier, MeridianLink) with connection, stage map, transaction window and the ...
MeridianLink poll applies to loan applications, not leads
Changed loans are matched through MLOS_LOAN_LOS_LINKS and sent to securityservice by connection; unknown loans are adopted only where the LO unit maps to a sing...
Mirror every loan application to the market's external MLOS, both ways
Arive and MeridianLink connect to the MORTGAGE (MLOS) market instead of a lead market, and sync loan applications instead of leads. - LoanLosSyncService: queue...
Sync external MLOS (Arive, MeridianLink) at the loan, not the lead
The lead-level LOS link is replaced by a loan-level one: every loan application is mirrored to the market's external MLOS and back, linked one-to-one by MLOS_LO...
Billing write service starts again — the constructor keeps its @Autowired
The terminology commit inserted the code-checker field between @Autowired and the constructor, so the annotation moved onto the field and Spring found three una...
Coded terminology — RxNorm, ICD-10-CM, CVX and HCPCS loaded from their publishers; pickers, real code checks, and the ONC high-priority interaction screen
Loaders (ehr.terminology): RxNorm Current Prescribable Content (NLM, MD5 verified against NLM's page; **************** drug->ingredient resolved through compone...
Message patients from the chart, consent first; reminders, confirmations and video visits on the schedule
- Messages tab: contact consent card (texts, e-mail, do not contact — when and how, history), a composer that asks the server before sending (consent, and a m...
A medical practice's video visit room, created server to server
POST /api/internal/meet/telehealth (X-Internal-Auth = internal.auth.secret, MeetInternalAuth) creates a meeting on the organization's own provider and live doma...
A practice's patient chart hears a patient's replies, STOP/START and delivery receipts
PatientSmsRelay posts (X-Internal-Auth, off the carrier's thread, bounded queue, never throws) to SecurityService **************** - every inbound text after de...
E-prescribing — e-Prescribe dialog, e-Prescriptions worklist, setup and pharmacies
- Chart medications: e-Prescribe opens our prerequisite + safety check, then the network's page in a large frame; closing it imports what was sent. Each presc...
Patients can be texted and e-mailed from the chart — consent first, reminders, video visits, recall messages
- One consent-gated door **************** for chart messages, reminders, video links, recall messages and confirmation replies: the patient's own consent per ...
Electronic prescribing through Weno Exchange EZ Integration
- ErxTransport vendor seam (UnconfiguredErxTransport default, WenoErxTransport first network) - Practice eRx account (MANAGE_EHR_SETTINGS): network, TEST/LIVE w...
E-prescribing schema — network account, enrollments, pharmacy directory, transmissions
Five new clinical tables (ehr_erx_settings, ehr_erx_enrollment, ehr_erx_pharmacy, ehr_erx_pharmacy_import, ehr_erx_transmission), structured preferred/alternate...
Patient outreach entities — contact consent, sent messages, reminder ledger, reminder settings, video visits
- PatientContactConsent (ehr_patient_contact_consent): append-only SMS / EMAIL / do-not-contact ledger - PatientMessage (ehr_patient_message): texts and e-mails...
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.
