The SI's floor tools, and the optional loan statuses on the MCP tools
An SI's scheduled floor duty, a person's lead from a capture, and the owner's call on SI loan access
The duty and its tool scope commit together. Only the org owner, in their own session, may change SI_LOAN_ACCESS.
The SI layer's tables, two rights, and the org switch for SI loan access
Sales floor M11. New tables only, applied by hand. Rights 685 and 686. SI_LOAN_ACCESS is off by default and lifts an org's own SI to loan officer level, read li...
Rebuild for the two-systems guard finding a borrower by phone and email
The two-systems guard finds a borrower by phone and email
Almost no lead carries an account, and a loan adopted from another system has no lead, so the guard follows the lead's phone and email to any borrower on a loan...
An outcome answers for its own call, even one reported late
A person's No answer or Voicemail on a dial now corrects that call and no other. A phone sync that arrives afterwards can't put the conversation back, because t...
Write to an org's owner each week a domain is unfinished
Covers ownership, web addresses, alias-domain mail and what we need to send system mail as the domain. From the platform, one letter per owner, and it stops by ...
The outreach check applies the lender's mortgage switches to stream sends
Mortgage switches for every way a stream reaches a borrower, off by default
Six new MlosAutomationAction switches in BORROWER_OUTREACH, asked by OutreachCheck on every automated send. A mortgage lead, or one tied to a mortgage loan, get...
The append-only dial ledger, call floor settings, and rights 673-674
Attempts and outcomes get a table of their own that is only ever inserted into, and the phone system's calls join the press that started them. PhoneCallLog chan...
Automated and approved loan moves answer to the linked-loan rule
One LinkedLoanRule now decides for stage moves and for loan milestones. With no person a loan linked to an external LOS does not move. A review approval moves o...
Send as an org's domain when its SPF or DKIM authenticates us
A published DKIM key now puts the org's domain on the From by itself, with the envelope left on the platform so a strict SPF record cannot sink the message. SPF...
Keep DKIM verified on a sweep, as SPF is
dkim_verified only moved when an owner reopened the DKIM card. It now decides whose name an org's mail carries, so a published record has to count by itself.
Relay for an org domain whose SPF names us
An org that set up SPF correctly was refused by the relay's sender rule, so its NoReply mail fell back to the platform address. EmailService lists those domains...
Keep a consent mapping when an intake endpoint is saved and reopened
The mapping screen offered consent fields, but the save and load conversions read the fixed field list, so a consent mapping was dropped without a word.
Let the Contact rules tab take the props its page passes
The account settings page hands every tab its tab and title, and this panel declared no props, which failed the type check and blocked every kamo-internal deplo...
Rebuild for a stream's email keeping the org's text hours
OutreachCheck lives in the shared library, and this service answers it.
Show the loan status picker on mortgage markets
A mortgage market's sales type is SERVICE; RESIDENTIAL_MORTGAGE is its sub-type.
Offer a stage's loan status on a mortgage market
The settings read the market's sale type, which the server sends as SERVICE, so the loan status picker could never show. It reads the sub-type now. The missing ...
The send queue, They replied, SI calling and the starter templates
Text, email and call steps can be set up and published on the canvas, a wait can take a "They replied" path, and each call chooses a person or the SI. /automati...
A reply leaves a run's timer alone, so a plain wait doesn't end early
A lead calling back a shared number tells the member a stream worked for
The call rings on JustCall's side, where Kamo can't move it, so the live call signal goes to the routed member.
Stream emails on the drip road, and a lead's mail reply tells their streams
/api/internal/stream-email queues one edition per run and step through DripEditions, so the campaign path keeps the opt-out check, hosts, warm-up and unsubscrib...
Streams text from the member's own number, place SI calls, and hear every reply
/internal/voip/automation sends a stream's text from the member's sole number, else the org's main line with a reply route back to the member, and places an SI ...
Human-send queue, call list, reply signal and SI call settings, and email hours for streams
A run hears a reply through automation_outbox (LEAD_REPLIED) and the run's new read-only replied_at. Human sends and call_list_entries are new tables, call_list...
The loan milestone review queue and automation settings
/settings/automation/review lists reported loan milestones that could not move by themselves, with why each one is waiting. A person approves, correcting the lo...
The loan status picker's empty choice type-checks
The Select holds a number or an empty string, and this comparison stopped the kamo-internal build.
Prove the pipeline controllers refuse a caller with no session
The ratchet could not see their guard, so it now recognizes pipelineAccess.orgId, and a new test calls all 21 handlers with no session and requires a 401 before...
Choose which loans move with a lead on the board
With several open loans the server stops the move and lists them. The board puts the card back and asks; choosing none moves only the lead. A refused move alrea...
Read the catalog and refusals as automation-service sends them
With the service deployed, its source showed the contract's prose left shapes open, and the canvas had guessed them differently. Each of these failed quietly ag...
A lead's stage and its loans follow each other, switch by switch
Both directions are off until a lender turns them on, and the map is org data on the stage. Loan to lead: a stage follows the least advanced loan, heard off th...
Streams move leads through the pipeline's system move and ask OutreachCheck
The automation contract's loan milestones, send keys and pipeline stages [skip ci]
Board mode, pipeline and dropdown settings, saved views
Cards move by drag, keyboard or menu, and a refused move goes back and says why. Cards count deals and loans rather than standing in for one. Dropdown fields fi...
The lead outbox bean and the internal actions automation-service calls
Lead changes reach the outbox on the lead's own transaction, inside a savepoint, and cost nothing for an org with no published stream. Lead writes and loan move...
Route /api/automation to automation-service and seal its internal subtree
The Contact card on a lead, and Contact rules in settings
The card shows the last attempt, last conversation and last heard from, one-click call outcomes, Stop all outreach with its history, and consent proof. Settings...
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.
