---
title: "KaiCalls Product Updates - October 02, 2026"
date: "2026-10-02"
author: "KaiCalls Team"
category: "Product Updates"
description: "What's new in KaiCalls: features, improvements, and bug fixes from the past week"
---

# KaiCalls Product Updates

**Week of October 02, 2026**

## ✨ New Features

- **Stop one account's outbound calls from getting the shared carrier account flagged as spam**
- **No-card refusal for calls and texts should carry a checkout link**
- **Outbound calls back on for accounts with a card on file (daily cap), safe to flip the kill switch**
- **security: require payment before carrier activation**
- **"Show a friend" mode: arm a live demo window, text the friend after Kai answers (admin_show_a_friend)**
- **Referral by phone: "call my buddy Mike and tell him about you" (admin_refer_friend)**
- **Homepage: bring the Kai Wireless launch design to kaicalls.com (call-flow scene, vertical launch film, voicemail stat and chart)**
- **One change log for everything we've done (agent edits, merges, prod infra/DB changes)**
- **Call tracking: attribute calls to Google LSA as a channel**
- **Phone menus (IVR) builder in the dashboard**
- **Customer SMS: let Kai book the visit by text**
- **Missed-call text-back: send instantly and enable it for every phone setup**
- **Admin line: add a teammate's phone to the ring group by calling Kai**
- **Jobber: create a request/job from the call and dedupe clients by phone**
- **Pipedrive: create deals for qualified callers**
- **HubSpot: log calls on the contact timeline and auto-sync qualified callers**
- **GoHighLevel: create opportunities and move pipeline stages on booked calls**
- **Gate public directory listings on a readiness check before opening them up**
- **feat(help): customer help center by journey and integration**
- **feat(marketing): add Ask AI links to public footer**
- **Porting: stop telling owners to keep fax separate, and persist the fax answer**
- **Collect the owner's mobile before provisioning a number on every signup surface**
- **Normalize businesses.country to ISO country_code (prereq for any non-US support)**
- **feat(growth): embed customer referral loop into live post-call summary emails**
- **Phone system: roster callers dialing their own line go straight to extension 700**

## 📈 Improvements

- feat(admin): add KaiCalls sales playbook
- Watch KaiCalls' new Telnyx owner-texts campaign
- Revert: don't file a new Telnyx texting campaign from the app
- File KaiCalls' own Telnyx texting campaign from the app
- Split Telnyx texting: KaiCalls' registration covers only its own texts
- Quiet-caller check-in answers only the last exchange
- Name the sender in STOP and START text replies
- Signup: ring the owner first after payment, and stop promising "$0 today"
- fix(types): clear typecheck:strict errors on main
- fix(ci): turn main's four red cheap checks green
- Signup: check the verified phone with the same number form it was verified under
- Signup: fix the dead Google button and send "pay first" buttons to checkout
- Forwarding help: add Liberty and Claro (Puerto Rico)
- Signup: "call me with the code" fallback for phone verification
- Forwarding help: fix Visible, Google Fi, Spectrum Voice, Comcast Business, Google Voice
- Backup lines: promote a carrier backup to the business's main number
- Stop one account's outbound calls from getting the shared carrier flagged
- Outbound calls: wait up to 60s for the callee to pick up
- feat(intake): refer non-US signups who can't finish to a partner
- Industries index: real trade photos instead of drawn mascot cards
- feat(calls): durable call_kind so metrics never count the welcome call
- Industry pages: real people, real photos, real product
- Fade the Kai mascot behind the /intake questions
- Make SMS opt-in match 10DLC campaign CF7ATNA
- Launch film: new filenames to bust the year-long cache
- Text campaign segments, a Boulevard comparison page, and Kai booking into Boulevard
- Routing: clear message when a number's carrier account is down
- Vertical walkthrough loops on phones
- Readable header on phones in dark mode (opt out of Chrome forced dark)
- fix(e911): stop failing emergency-address saves on backup lines
- fix(calls): end outbound calls stuck in an automated phone menu
- Final CTA mascot: no white on white
- Launch film: no white-on-white intro, dark bezel
- Let logged-out visitors reach three Google landing pages
- Vertical launch film and a tighter final CTA on phones
- Keep the see-it-work loop playing after a tab switch
- Remove agent / voice-AI wording left in public body copy
- Lead enrichment: report deferrals as deferred and keep real failure reasons
- Use the catalog plan name in the plan-changed email
- Handle Stripe pending-update subscription events
- Treat a repeated owner-alert email as already sent, not failed
- Real dashboard walkthroughs, motion kit and YC-grade polish across kaicalls.com
- Stop "forward your calls" reminders going to existing accounts
- Keep an owner's pasted call script at signup instead of shredding it
- Replace the cron firewall reconciler with a stateless rule and an external watchdog
- Make a cron outage visible and block the firewall rule that caused it
- Take the mobile reservation prices from one place, and drop "target" from the pricing link
- Clearer copy where people pay, no more 7-day trial, plus a UX writing skill
- Stop a zero-length hours window from reading as "closed around the clock"
- Progressive trust levels with a Kai-guided onboarding path
- Connector funnel: skip the phone step, hold the first call through checkout, stop logging refusals as 502
- Read every format business hours are actually stored in, so a listing stops crashing and stops lying
- Ops changelog: partner program migration applied
- Get the $10 plan found by search and AI answers
- Careers: hire a commission sales rep first, pause the salaried roles
- fix(usage-metering): stop before the 60s cron limit
- Skip Telnyx forwarding on Call Control numbers instead of erroring
- Never send a failed call to the business's public line
- Ring the owner's phone when a call can't reach the voice agent
- Per-business carrier sub-accounts, stale routing on database errors, voice platform alarm
- Show a purchased first line as the business number
- ops: correct outbound flag time and add Telnyx profile read-back
- fix(numbers): show an attached line as the business number when it has none
- ops: log agent number-field fill and stuck configuration windows
- fix(numbers): treat direct-mode webhook lines as already wired on attach
- fix(numbers): attach Telnyx lines and fill pointers for already-wired lines
- Return a no-card attach as a 402, not a 500 that pages error alerts
- Attach a Telnyx line without the SMS flag, and don't strand a rejected attach
- Checkout link in the add-a-card refusal for calls and texts
- ops: log production outbound calling flag
- Fill the agent's number fields when a purchase attaches a line
- Skip the partner ledger sync until the partner tables exist
- ops: change log for I Saved Houses number recovery
- Fix the stale setup-call capacity test (it lacked a paid business)
- Signup line purchases buy a local number near the business, never toll-free
- Stop the "are you still there" check-in from inventing questions
- Number purchases: write only registry statuses the database allows
- Number search and checkout line buys use the same carrier rule as purchases
- Buy on the carrier rule for a hosted business that holds no hosted numbers
- Keep the setup call and the number pickers off a carrier that is down
- Route signups and texts around a down carrier; turn Telnyx texting on when the campaign is live
- Fix number purchases: begin_phone_purchase used an invalid claim state
- Fraud guard: enforce per-account limit rows
- Stop paging per text while the Twilio account is suspended
- Hide raw carrier errors when a text fails through the API or connector
- Outbound calls only for accounts with a card, with a daily cap for trials
- Owner invites: five free-first-month links per paying owner
- Owner review page: plain question and button first, raw detail folded
- Review notices say what changes, who asked, the cost and the deadline
- Careers: structured application form + admin list (#2720)
- Let legacy accounts with a card on file buy numbers
- ops: log outbound block on the 29 Sep call-burst trial account
- ops: change log for +972 ring-first removal
- ops: change log for Telnyx destination policy + Twilio fraud reply
- Owner-review purchase: refuse before charging when the number reservation would refuse
- Stop error alerts from crons that fail while Twilio is suspended
- ops: change log for directory listings + alias index
- Stop the rental pages claiming syncs we don't have

## 🔧 Bug Fixes

- Make /sms-consent, /intake and the in-call text ask match 10DLC campaign CF7ATNA
- Carrier-agnostic telephony + failover lines (Twilio suspended 2026-09-29)
- gate all remaining charged Twilio outbound seams
- security: contain Twilio toll fraud and enforce outbound call limits
- All scheduled jobs down since 2026-09-25 20:19 UTC: firewall host allowlist denies cron requests
- Migration 20260920150000 (port readiness + provider snapshot) never reached production — porting routes query missing columns
- Silent callers: dead air until hang-up, and owner summaries that invent bookings
- Transfer enabled through the agent API has no destination; every transfer fails mid-call
- Owner's own agent edits via API key still queue for approval
- Owner texts to their own line get no reply (length limit + operator-identity guard)
- Outbound calls fail: agent has two transferCall tools after enabling transfer via API
- communication-runs: assigned_number_id as an E.164 phone passes /validate but fails create (uuid cast)
- Caller name saved as 'Unknown' when only the intake structured output captured it
- Owner's own agent edits from ChatGPT/Claude get stuck in an approval queue that notifies nobody
- Owner after-call summary text silently switched off when a direct-mode owner saves phone settings
- E911 status stuck on 'pending' forever — nothing reconciles Twilio's async registration
- DNI form capture: stored passwords, duplicate leads, and a source that names the script instead of the channel
- unworked-leads cron times out before notifying owners
- owner feedback check-in calls have never been placed (provider 400 on every dispatch)
- Greeting name injection: "Thanks for calling Bob Velleran" + dangling punctuation around identity question
- Setup line won't tell callers the price
- Call Tracking: website form captures always land in Unattributed
- deliver qualified lead owner SMS and unblock verified conversation follow-up
- collapse Twilio number inventory into one page
- Country gate fires after Google OAuth, stranding signed-in users with no account and a dead end
- Agent places an outbound call, then treats the person calling back 90 seconds later as a stranger
- Seeded welcome call is counted as a real call and inflates every call metric
- re-encode attachLineReconcile.ts as UTF-8 (unblocks prod build)

---

Have questions about these updates? [Contact our support team](https://kaicalls.com/contact) or reply to our weekly email.

Want to stay updated? [Subscribe to our newsletter](https://kaicalls.com/newsletter)
