Improvements
Improvements
- Agent Version History: Each Publish now saves a numbered version of your agent. Select Versions in the agent’s header to see the draft, the live version and older ones, rename a version, compare two with View Changes, or Export Version and Delete Version. Agents you’ve already published start at Version 1. See Version History.
- Make an Earlier Version Live: In Versions, Make this version active sends new calls, chats and emails to an earlier version straight away, without a Publish and without changing your draft. Studio shows what will change first and asks you to tick any warnings, and the change is recorded in Audit Logs. See Make an Earlier Version Live.
- See the Agent Version on Each Conversation: Call, Chat and Email History now show the agent version a conversation started on, such as V3, under the agent’s name and in its details, and the CSV export has an Agent Version column. See Call History.
- The Co-pilot Works With Versions: Ask the Co-pilot to list, compare or rename an agent’s versions, make an earlier one live, or delete one. It asks first before making a version live or deleting one. See Squawk Co-pilot.
- Read and Replace an Agent’s Guidelines With an API Key: Your own systems can now read an agent’s Guidelines and replace them with an API key from Manage → API Keys, without signing in to Studio. A change saves to the agent’s draft like any Studio edit, so a published agent keeps its live guidelines until it’s published again. See Replace guidelines.
- Publish an Agent With an API Key: Your own systems can now publish an agent with an API key, follow the publish until the new version is live, and check which version is live. It’s the same as Publish in Studio, so it puts the whole draft live as the next version. See Publish an agent.
- Quick Search Opens the Page You Typed: Type a page or setting name in the top-bar search and press Enter to open the first match. The Ask AI about … row now comes last, and it’s the only row when nothing else matches. See Quick Search.
- Sign In Returns You to Where You Were: If you open a Studio link while signed out, or your session ends, signing in now takes you back to that page instead of Home. See Sign In to Studio.
Fixes
Fixes
- Back Button Leaving the Page With a Drawer Open: With a side drawer open, such as a call’s details or Buy a Phone Number, the browser’s Back button left the page. It now closes the drawer and keeps you where you were.
Released 2026-10-27
Improvements
Improvements
- Transferred Calls Are Billed in Two Legs: When your agent transfers a call to a phone number and it’s answered, the AI’s part (up to the answer) and the live agent’s part (after it) are each rounded up to a whole minute, so a transferred call can bill more than before. Hover a transferred call’s Cost in Call History to see AI voice leg and Transfer (live agent). See Call History.
- Usage Breakdown Shows Each Feature on Its Own: Manage → Billing → Usage Breakdown now opens with a Total cost card that shows each channel’s and feature’s share, then a Channels row and a Features row (such as DNC scrubbing and Transfer (live agent)). Feature charges are no longer folded into the Voice tile, and the total is unchanged. The chart is now Cost by channel and feature, with a Features filter. See Usage Breakdown.
- Google Chirp 3 HD Voices: The voice list now includes Google’s Chirp 3 HD voices in US English, shown with Google as the provider. Find one by name with Search voices and preview it before choosing. See Choosing a Voice.
- Your First Phone Number Is Free Whatever Its Type: Your first phone number is now free whatever its type, including Toll-Free, instead of only a US or Canadian Local number. See Buying a Number.
- Business Details for UK Mobile Numbers: UK mobile numbers need approved business details before you can buy them. Submit them on the United Kingdom regulatory bundle card under Manage → Compliance, or with Add details in the Buy a Phone Number drawer, and once they’re approved you can buy the number and add its emergency address. See United Kingdom Mobile Numbers.
- Search Your Co-pilot Threads: Select Search above your Co-pilot threads, or press Cmd/Ctrl+K and type, to find a past conversation by its title or by what was said in it. The matching word is highlighted. See Open the Co-pilot.
Released 2026-10-20
Improvements
Improvements
- Publish an Agent to Choose When Changes Go Live: Anyone in your account can now publish an agent. Once an agent is published, phone calls, website chats and emails use the published version, and later edits wait until you select Publish in the agent’s header, where Review Changes shows what will change. An agent you haven’t published keeps running your latest saved edits, and Talk and the test Chat always use your latest edits. Build → AI Agents shows each agent’s status, and each publish is recorded in Audit Logs. See Publishing Your Agent.
- What Waits for Publish: On a published agent, most edits wait for the next Publish: the greeting, Guidelines, voice, Agent Settings, Handoff, actions, variables, knowledge, Chat Configuration and Email Configuration. Phone numbers, mailbox choices, the chat widget’s Allowed Origins and widget key, noise cancellation and auth profiles apply at once. See What Waits for Publish.
- Knowledge Groups and Published Agents: Editing a knowledge group that a published agent uses makes a draft copy, so the live agent keeps answering from the published version until you publish. A group a published agent uses can’t be deleted until you publish the agent without it. See Knowledge Groups and Published Agents.
- Accept the Terms of Service and DPA Before a Plan Starts: Subscribing to a plan, or adding a card during onboarding, now asks you to accept the SquawkVoice Terms of Service and Data Processing Addendum first. See Terms of Service and Data Processing Addendum.
- A One-Time Terms Prompt at Sign-in: If your account has an active plan, you’ll see We’ve updated our terms when you next open the Studio, until someone on your account accepts. Your agents keep running while it waits. See The Sign-in Prompt.
- BYO Numbers Need a Verified SIP Trunk for Campaign Calls: Voice campaigns now call only from numbers bought in the Studio, or BYO numbers on a Verified SIP trunk. Other BYO numbers are skipped, and an agent that has only those can’t launch a campaign. Check any voice campaign whose agent holds a BYO number. See Numbers as Campaign Caller IDs.
- Outbound Calls From a BYO Number Through Your Own Carrier: A BYO number can now place outbound calls through a SIP trunk your provider has set up. Pick the trunk with Change SIP trunk on Manage → Phone Numbers; a Verified trunk carries campaign and on-demand calls. See Adding a Number You Already Own.
- Phone Numbers Priced by Country and Type: Numbers are now priced by country and type, and Buy a Phone Number offers only what’s on sale: at launch, Local and Toll-Free numbers in the United States and Canada. Your first number is free if it’s a US or Canadian Local number, and numbers bought before 14 October 2026 keep their price. Each number now shows its country and type. See Buying a Number.
- Noise Cancellation for Your Agents: Noise cancellation, which reduces background noise so the agent hears callers more clearly, is now a setting you can turn on in Agent Settings. It’s a per-minute add-on on top of your voice rate, it applies from the agent’s next call, and new agents start with it off. See Noise Cancellation.
- Switch Noise Cancellation During a Talk Call: A Talk test call shows whether noise cancellation is on and has a Noise cancellation button to switch it for that call only. Test calls aren’t charged. See Testing Your Agent.
- Chats Are Charged From the Visitor’s First Message: A website chat is now charged when the visitor sends their first message, not when the widget opens, so a visitor who leaves without writing costs nothing.
- Refused Chats Appear in Chat History and Analytics: A chat that couldn’t start because your balance couldn’t cover it now shows in Chat History as REJECTED with INSUFFICIENT_BALANCE, and in Chat Analytics as Insufficient-Balance. It’s never billed. See Chat History.
- Unanswered Emails Appear in Email History: An email the agent couldn’t answer because of your balance now shows in Email History as REJECTED with INSUFFICIENT_BALANCE, and in Email Analytics as Insufficient-Balance. After a top-up, the agent picks the thread up again when the customer next writes. See Email History.
- Attach Files in the Co-pilot: The Co-pilot’s paperclip now stores a file where you say: in a knowledge base, as an agent’s widget logo or avatar, as a campaign’s contacts, or as a new agent from an exported file. It works from Home too, and you can send a file with nothing typed. The Co-pilot stores files but can’t read what’s in them. See Squawk Co-pilot.
- Set Up an Agent’s Email With the Co-pilot: Ask the Co-pilot to choose or remove an agent’s mailbox, or to change its Inactivity Timeout and AI Disclaimer. See Email Agents.
- Set Up an Agent’s Chat Widget With the Co-pilot: The Co-pilot can change an agent’s chat widget settings, map chat variables and show the embed code. It asks first before it changes Allowed Origins or replaces the widget key. See Squawk Co-pilot.
- The Co-pilot Manages Outcome Options: The Co-pilot can add, rename, describe or remove outcome options on the Voice, Chat and Email tabs of Handoff, following each tab’s rules, and can run Sync from Freshchat. See Squawk Co-pilot.
- The Co-pilot Asks Before a Live Test Request: When you ask the Co-pilot to test an action’s API request, it shows a card first, and nothing is sent until you select Yes, go ahead.
- AI Agents Is Now a List: Build → AI Agents shows one row per agent, with chips that name its phone numbers and mailboxes, and Edit and Delete on each row. See Creating and Managing Agents.
- One Place to Manage an Agent’s Phone Numbers: An agent’s numbers are now assigned and unassigned in one Manage Phone Numbers drawer, with Available and Unassign tabs. See From the Agent Side.
- API Keys in the Sidebar and Search: Add API Keys to your sidebar with Customize sidebar, or find it with Cmd/Ctrl+K. See API Keys.
- Invite Someone Who Already Has a SquawkVoice App Account: You can now invite an address that already has a SquawkVoice app login. They accept by signing in with that account. See User Invitation Process.
- Fewer False Dissatisfied Labels: Conversations with no real exchange, and those where the agent handed off a caller who asked for a person, are now designed to be marked Satisfied. Labels from before 14 October 2026 aren’t re-scored. See Customer Satisfaction (CSAT).
- Search Timezones by Abbreviation in Data Transformers: The Timezone field on Datetime and Date Offset steps is now the same searchable picker as in Agent Settings, so typing PST or EST finds the zone. See Date formats and timezones.
- Clearer Co-pilot Delete Cards: The card shown before deleting a flow step now names the step, and the Delete branch card lists the steps it removes.
- The Studio Fits Better Beside the Co-pilot: Pages, cards and the create-agent wizard now fit beside the docked Co-pilot on smaller windows, and the wizard’s exit button reads Back to AI Agents.
Fixes
Fixes
- Transfer Message Skipped for Keypad-Only Callers: On a Multilingual agent, a caller who had only pressed keys could be transferred without hearing the Transfer Message. It now plays, in English.
- Sync from Freshchat Not Fetching Channels: Sync from Freshchat didn’t fetch your Freshchat channels on agents whose connection was chosen under Handoff Platform. It now syncs from that connection.
- Post-conversation Actions Couldn’t See Chat and Email Variables: On chat and email, a post-conversation action could read the conversation’s variables as empty. It now sees what the conversation collected. See Post-conversation Actions.
- Refused Calls and Emails Always Read INSUFFICIENT_BALANCE: A call or email refused for a reason other than your balance was recorded as INSUFFICIENT_BALANCE. It now shows SYSTEM_ERROR.
- A New Co-pilot Chat Picking Up the Old Reply: Starting a new chat while the Co-pilot was still replying could carry the old reply into the new conversation.
- Voice Filters Staying Applied: The voice list on Voice Configuration stayed filtered after you closed the panel. Search and filters now clear.
- Co-pilot Voice Suggestions Not Matching Its Reply: Suggested voices now shows the voices the Co-pilot names, four at a time.
- Co-pilot Contacts Missing Until a Reload: Contacts the Co-pilot adds now appear on the campaign’s Contacts tab straight away.
- Co-pilot Crawls Losing Their Name: A website crawl added through the Co-pilot now keeps the name you gave it.
- Times in Another Time Zone: When a caller named a time in another zone, the agent could pass it to an action with the wrong offset. The agent is now guided to keep the zone the caller meant.
- The Studio Slowing Down With Several Tabs Open: Studio tabs in the background no longer slow down the tab you’re using.
- A Clipped Box Around the Chat Widget’s Proactive Message: The proactive message bubble on your website no longer shows a cut-off grey box.
Released 2026-10-06
Improvements
Improvements
- The Co-pilot Answers Product Questions From the Documentation: Ask the Co-pilot how something works — what a setting means, where to find it in the Studio, how to set something up, or what changed in a release — and it now looks the answer up in the product documentation before replying, instead of answering from general knowledge. While it looks, the chat shows Searching in the available knowledge, which becomes Searched available knowledge once it has; this is the product documentation, not your own Knowledge Bases. If the documentation doesn’t cover the question, it’s designed to say so rather than guess. Questions about your own agents, calls, analytics or numbers are still answered from your account, and replies give the answer without links or citations. See Squawk Co-pilot.
- Inworld Voices: The voice catalogue has a new provider, Inworld. Set Provider to Inworld to browse its voices, each listed with its language, gender and, where one is recorded, accent, and preview any of them before choosing. In the voice picker every voice now also shows which provider it comes from, and with no Provider filter set the list starts with Inworld voices, then ElevenLabs Flash voices, then the rest. On an Inworld voice the Tone + energy card offers Speed only. Agents already using another voice are unchanged.
- Clearer Confirmation Cards in the Co-pilot: When the Co-pilot asks before doing something, the buttons now sit inside the card instead of in a box below it, and there are two instead of three: one named for what it does — such as Delete agent, Launch campaign, Update campaign (for pause, resume and stop), Link number, Detach number, Save handoff, Save SAN or Send invite — and Cancel, which declines it. The buttons appear once the Co-pilot has finished writing its reply, rather than waiting there greyed out. See Squawk Co-pilot.
- Action Names Are Unique on Each Agent: Each action on an agent needs a name of its own, across its pre-, in- and post-conversation actions, and capital letters don’t make a name different. Creating an action, or renaming one, to a name another action on the agent already uses is refused with a message naming that action, such as This agent already has an in-conversation action named “lookup”. Choose a different name. The same applies when the Co-pilot creates an action. Duplicate and Copy to Agent never fail over a name: the copy takes the next free name on the agent. Agents that already have two actions with the same name keep them. See In-conversation Actions.
- Agent Pages Fit Beside the Co-pilot: With the Co-pilot open next to an agent, the agent’s top bar and cards now adapt to the narrower page. Talk, Chat and Copy ID become icons with tooltips when space is tight, the Copy ID button and assigned numbers move to a line under the name when they don’t fit beside it, and the cards fit as many columns as the width allows, up to four, so titles and counts stay inside them. The card grids on the Build, Manage, Optimize and Library pages use the same layout, so a mid-width screen may show one or two columns fewer than before.
Fixes
Fixes
- Silence Detection Stopping After an Interruption: On a call using an ElevenLabs voice, if the caller talked over the agent after it had started speaking, the call could go on treating the agent as still talking. Silence detection then stopped for the rest of the call, so the agent never checked in with a quiet caller or hung up after its Max Retries. It now carries on after an interruption.
Released 2026-09-30
Improvements
Improvements
- Transferred Calls Show the Caller’s Number: When your agent transfers an inbound phone call to a phone number, the phone that rings now shows the caller’s own number, so whoever picks up can see who’s on the line. Until now every one of these transfers showed the same SquawkVoice number, whoever was calling. If the caller’s number is withheld, or the call didn’t come in from a phone number (a browser call or a SIP call, for example), the transfer shows your agent’s own number instead — the earliest-assigned of its numbers bought in the Studio — so it still connects. Transfers to a SIP address that use SIP REFER are unchanged. See Caller ID on Transferred Calls.
- See the Chats That Are Still Going: Chat History now has the same In-progress Only switch as Email History. Open the filters on Optimize → Advanced → Chat History and turn it on to list the chats that haven’t finished yet, each marked IN_PROGRESS with its agent, start date and Message Count. A chat appears as soon as the widget greets the visitor, before they type anything, and leaves the list when it ends. Select View to follow the live transcript, including the agent’s actions and, for a chat handed over to Freshchat, the handoff notices and the human agent’s replies. The switch is off by default, and finished chats still appear in the normal list as before. See Chat History.
- History Lists Update as Conversations Change: With In-progress Only on in Chat History or Email History, or Escalated Only on in Email History, the list no longer re-checks every fifteen seconds. It updates itself within a few seconds of a conversation starting, ending or gaining a message, so statuses and message counts stay current. An open chat transcript adds new messages as they arrive, without reloading or losing your place (an open email thread still needs reopening to show new replies). While a transcript is open, the list waits and catches up as soon as you close it. See Chat History and Email History.
- Quiet Chats End After 24 Hours: A chat that’s still open but has had no message from the visitor or the agent for 24 hours now ends by itself, the same as a normal close. The widget shows the agent’s Closing message (Greeting & Sign-off → Chat), then “Session ended. Start a new session to continue.”, and the conversation leaves the In-progress Only list. The 24 hours can’t be changed. A chat that has been handed to a human agent keeps the existing handoff limits instead (4 hours without a message, 24 hours in total). See When a Chat Ends.
- The Co-pilot Checks a Campaign Can Launch Before It Asks You: Asked to launch a campaign, the Co-pilot used to ask its automated-agent question and show a confirmation card, and only after your yes did the launch fail because something was missing, such as your SAN. It now runs the same checks as Launch first — agent, a phone number on the agent, calling window, SAN when scrubbing is on, account status and balance — and tells you what’s missing before it asks anything. When you create or change a campaign, set its schedule or add contacts, it also tells you what the launch still needs. If every number on the agent is pending release for non-payment, it says so instead of telling you to link a number, and a number you ask it to link now ticks Number assigned to agent on the launch checklist straight away, without a reload. See Launch Checklist.
- Ask the Co-pilot “Can We Call Right Now?”: Ask whether it’s legal to call right now in a given timezone (and, for the US, state), and the Co-pilot answers yes or no against today’s legal dialing window for that place — no campaign needed. When no dialing rules are set up for the place, it says it can’t confirm rather than guessing. Adding contacts in the chat is smoother too: it asks for each contact’s postcode up front, and for the date consent was obtained when you say you hold consent, instead of adding them, reporting them invalid and asking again. Uploading a CSV is still done on the Campaigns page. See Squawk Co-pilot.
- Clearer Co-pilot Result Cards and Charts: The card for each step the Co-pilot runs now has a plain-English title (“List assistants” rather than “Executed list_assistants”) and a Details button that shows the technical record. Cards also no longer end up below the reply that describes them, live or when you reopen a conversation. A stacked line chart now draws as a stacked area, and charts with several series use clearly different colours in light and dark mode. See Squawk Co-pilot.
Fixes
Fixes
- Code and Links Showing as Raw Text in Replies: Replies that contained text in single backticks, such as a phone number or an ID, or a link written as
[label](address), showed the backticks and brackets literally. Backticked text now shows as code, and https links are clickable and open in a new tab, with utm_ tracking parameters removed. This applies to the Co-pilot, the test chat, conversation transcripts and your agents’ replies in the chat widget. - Handoff Notices Appearing Twice in Chat Transcripts: When a chat was handed to a human agent, the “connecting” and “connected” messages were recorded twice in the transcript — once as an AI message and once as a system notice — and each AI copy was counted in the chat’s Message Count. They’re now recorded once, as the system notice. The visitor’s widget was never affected. Transcripts of chats that had already ended keep their duplicates, and their message counts aren’t recalculated.
- Signed Out When Reloading During a Brief Outage: Loading or reloading the Studio while our service was briefly unreachable, such as during an update, could send you to the sign-in page even though your session was fine. The Studio now retries for about seven seconds; if it still can’t reach us, it stays on the page and shows “We couldn’t verify your session. Check your connection and try again.” with a Try again button. A session that has really ended, or a sign-out in another tab, still takes you to sign-in.
- Stray “Chat greeting saved” Message: Opening the build page of an agent with no chat greeting of its own, such as a new agent, showed “Chat greeting saved” even though you hadn’t changed anything, because the default greeting was being saved for you. The chat greeting now saves only when you edit it, and the agent’s chat behaviour is unchanged.
Released 2026-09-24
Improvements
Improvements
- Voice Campaigns Call From Their Agent’s Own Numbers: Voice campaigns no longer use outbound number pools. A campaign now calls from the phone numbers assigned to its AI agent, taking turns between them, least recently used first, and its test calls and on-demand calls use the agent’s numbers too. The campaign’s Setup tab lists them in a new Caller ID section, and Number assigned to agent replaces the pool check in the launch checklist. Pools weren’t carried over, so check each voice campaign’s agent now. Until the agent has a number, the campaign can’t launch, a run already under way stays running but places no calls, and on-demand calls are accepted but wait as pending. Any number the agent already answers inbound calls on is now one of its campaigns’ caller IDs too — but only numbers bought in the Studio can place campaign calls, so if the agent also answers on a number you forward or brought yourself, calls placed from that number fail. Assign numbers from Build → AI Agents → ⋯ → Assign phone number, or with Assign on Manage → Phone Numbers. To use a number another agent already answers on, Reassign it on Manage → Phone Numbers: a number answers for one agent at a time, so its inbound calls move to the campaign’s agent too. See Campaign Setup.
- Outbound Number Pools Have Been Retired: The Outbound Number Pools page is gone, along with its sidebar and search entries, and old links to it now open Home. Pool rotation modes, the Active, Flagged and Retired number statuses, attestation badges, the spam-flag warning on the launch checklist, and the automatic and on-demand spam checks went with it. The Co-pilot can no longer build pools or check a number for spam. The upgrade deleted your pools but not their numbers: those stay on Manage → Phone Numbers and still count toward your monthly number charges, so release any you no longer need. A number you had retired in a pool is dialed again if it’s assigned to a campaign’s agent. To stop calling from it, unassign it, which also stops it answering that agent’s inbound calls. Runs launched before the change keep their pool details on the run’s page, in a card now titled Caller ID (snapshot). See Phone Numbers.
- AI Disclaimer on Email Replies: Email agents now end each reply they write with a short line of small grey text: “This email was generated by AI. Verify important information”. It’s on for every email agent, including your existing ones, so your customers see it from this release with nothing to switch on. It follows the agent’s ordinary replies, its final reply and Closing message, and the Handoff Message when a thread is escalated, including when you escalate from Email History. Replies a person sends after a handoff don’t carry it, and neither do the two automatic follow-ups. To reword it or turn it off, open the agent’s Email Configuration → Config → AI Disclaimer: use the switch, or enter your own Disclaimer text of up to 2,000 characters (leave it blank for the default). One text covers every language the agent writes in, and it isn’t translated. It’s separate from the chat widget’s AI Disclaimer. See Email Agents.
- See What the Co-pilot Changed on Your Agent: With an agent open beside the Co-pilot, the card a request changes pulses, and that now includes greeting and sign-off edits, which pulse Greeting & Sign-off. A voice greeting change used to pulse nothing, and a sign-off or chat greeting change pulsed Agent Settings. When a single step changes several cards, they all pulse, and if the section being changed is already open — Guidelines, Variables or one of the Actions sections — a ring pulses around it. When a request changes a single card, the link on its result card now opens that card and is named after it: a chat sign-off change, for example, opens Greeting & Sign-off on its Chat tab. See Squawk Co-pilot.
- Keep the Co-pilot Open While You Test: Talk and Chat on an agent’s page no longer close the Co-pilot panel. The test chat opens beside the panel, narrowing to fit on smaller screens, so you can try a change next to the conversation that asked for it. A test call still covers the whole window while it runs, and your conversation is waiting when you hang up. See Squawk Co-pilot.
- Date Offset Data Transformer: A new transformer moves a date forward or back by a whole number of hours, days, weeks, months or years, so you can check, say, whether an appointment is less than a week away or a renewal falls due in the next 30 days. Choose Date Offset as an expression’s Transformation and give the incoming date’s Format and Timezone. Then pick an Action (After (+) or Before (−)), a Value (a whole number of 0 or more, or an
{{input#}}/{{expr#}}reference) and a Unit. Like Datetime, it returns a Unix timestamp in milliseconds, ready to pass to Compare — it isn’t a date to read out to a caller. Month and year steps stop at the end of a shorter month, so 31 January plus one month is the last day of February. A referenced Value that doesn’t resolve to a whole number leaves the date unchanged rather than failing the step. See Data Transformers. - Choose Local, Toll-Free or Mobile When Buying a Number: The Buy a Phone Number drawer (Manage → Phone Numbers → Buy Number) has a new Type filter next to Area Code. It’s set to Local by default, with Toll-Free and Mobile as the alternatives, and each search result now shows a badge with its type. Area Code is for Local numbers, so leave it empty when you search for Toll-Free or Mobile. Not every type is offered in every country — there are no Mobile numbers to buy in the United States, for example, and some countries may list only one type — so if you see “No numbers found. Try a different type, area code, or country.”, try another type. Changing the country sets Type back to Local, and the drawer reopens on United States and Local after you close it or complete a purchase. See Phone Numbers.
- Choose the Time Range on Your Billing Usage Chart: The usage-by-day chart on Manage → Billing → Overview (Minutes & calls by day, and its Chat and Email views) now has a time range picker next to Refresh: Today, Last 7 Days, Last 30 Days (the default) or Custom Range, where you set a start and end date and time and select Apply. The chart covers the whole range you pick instead of starting at your first day of usage, and its running total covers the same range. Days are UTC calendar days, and the times you enter for a custom range are read as UTC. The Usage Breakdown tab now uses UTC days too — its Use UTC switch is gone — and gains a Refresh button. On both, a custom range can start no more than 60 days back. See Checking usage between invoices.
Fixes
Fixes
- Transfers Failing on Browser Test Calls: When you tested an agent with Talk and the conversation reached a transfer to a phone number, the transfer could fail and the test call ended instead of reaching the destination. Transfers to a SIP address from a test call now use the same caller ID. Test-call transfers now show the agent’s own number as the caller ID: the earliest-assigned of its numbers bought in the Studio, so assigning more numbers later doesn’t change it. Numbers you brought yourself (BYO) and numbers with an unresolved payment failure aren’t used, so give the agent a Studio-bought number before you test a transfer, or it may still fail. Transfers on real phone and SIP calls are unchanged. See Testing Transfers.
Released 2026-09-21
Improvements
Improvements
- A Rebuilt Home, Sidebar, and Search: Signing in now takes you to a new Home page, where you can ask the Co-pilot anything, pick up past conversations from a Threads column, and see your last seven days at a glance. The sidebar starts with a short set of pages for building agents — AI Agents, Knowledge Base, and your call, chat and email history — and only ever shows pages you have access to. Make it yours with Customize sidebar at the bottom of the sidebar: pick a role, turn pages on or off, and select Save Changes. Or pin the page you’re on straight from its header. Everything else is one Cmd/Ctrl+K away: type a request and press Enter to hand it to the Co-pilot, or arrow down to a page to jump there. Cmd/Ctrl+K replaces the old Cmd/Ctrl+I shortcut.
- The Co-pilot Charts Your Analytics and Runs Campaigns: Ask how your agents are doing on voice, chat or email and the answer comes back as charts and tables. The Co-pilot can also point a phone number at an agent, and when you describe what an integration should do, it picks and adds the matching actions for you. It can set up an outbound campaign — agent, contacts and calling window — check the hours against local dialing rules, and launch it once you confirm the campaign tells the people it calls that they’re talking to an automated agent. If Do Not Call scrubbing is on, save your Subscription Account Number in your campaign account settings first — the Co-pilot can’t enter it for you. Anything irreversible, like launching a campaign or deleting an agent, waits for your explicit yes. Open it from the Co-pilot button in the top bar. See Squawk Co-pilot.
- Two New Data Transformers: Round Number and Trim String: Round Number rounds a value to at most a chosen number of decimal places, rounding to nearest (the default), down, or up — it doesn’t add trailing zeros, and treats a blank or non-numeric input as 0. Trim String strips characters from the start, end, or both ends of a value — leave the character set blank for ordinary whitespace, or supply your own. See Data Transformers.
Fixes
Fixes
- Test Calls No Longer Dropped by a False “Token Expired”: Using Test Your Agent could end a call abruptly with a token-expired error even though audio was still working. An already-connected call is no longer disconnected this way, and approving mic permission no longer eats into the test token’s short lifetime. See Test Your Agent.
Patches
Patches
- API Request Nodes Briefly Stopped Saving Their Variable Assignments: For about three hours on September 9, from 09:53 to 12:47 UTC, an API Request node’s Response Mapping — values pulled from a response and stored as flow variables — silently failed to save on every call, chat and email interaction. Nothing needs reconfiguring, but values from that window can’t be recovered. The fix shipped as a patch release the same day and wasn’t covered in that day’s notes.
Released 2026-09-09
Improvements
Improvements
- Arabic AI Agents: Arabic is now a fully supported agent language, with a large library of Arabic voices across eight regional varieties. Find them in the voice picker under Provider → Munsit (Arabic), set Arabic (AR) as the agent’s Primary Language — a combination that was previously rejected — and use the Accent picker on the Languages card to tune both what the agent hears and how it speaks, across eighteen regional options. Because these voices speak only Arabic, selecting one switches the agent to single-language Arabic and drops every other configured language. Transfer, closing and silence messages are re-translated automatically — your greeting is not, so rewrite it — and the switch is one-way: moving back to another voice does not restore the languages you lost. Try it on a duplicate agent first. See Arabic Agents and Voices.
- Email Agents Follow Up Before Closing a Thread: Instead of waiting in silence for the inactivity window to lapse, an email agent now sends two follow-ups in the thread, timed from its Close After value. This sends real mail to your customers with nothing to switch on, it is on for every existing email agent, and threads that had already gone quiet get both messages shortly after the upgrade. The copy is English only. See Follow-ups before abandonment.
- Exported Agents Carry Their Knowledge Base: An exported bundle now includes each linked Knowledge Group’s FAQs, URLs and crawl settings, so importing into another workspace no longer produces empty groups to rebuild by hand. One catch worth knowing: if the destination already has a group with the same name, that existing group is linked instead and the bundle’s content is not recreated. See Import and Export.
- Clearer Blocks on Deletions in Use: Deleting an authentication profile that an agent still references now opens a dialog naming every agent holding it, rather than failing with a generic error. Data transformers in use are likewise refused — including through the API, which previously deleted them and left agents pointing at nothing. See Auth Profiles.
Fixes
Fixes
- Imported Agents With Broken Variables: Importing an agent into a different account carried across variable references the destination could not resolve, so placeholders surfaced as raw identifiers in prompts and messages. Those variables are now recreated on import. Agents imported before this release still need re-importing.
- Voice Rows Showing Language Codes: The voice picker read “En”, “Fr” and “Ar” instead of the full language name.
Released 2026-09-02
Improvements
Improvements
- On-Demand Call API: Place calls into a voice campaign one at a time from your own systems — no CSV, no run, no launch.
POST /api/v1/campaigns/{campaignId}/contacts/on-demandwith anX-API-Keyheader, a phone number and a postcode, orscheduled_atfor up to 48 hours ahead. A new On-Demand Calls tab on each campaign carries the campaign ID and ready-to-run snippets. There is no idempotency key, so a retried request places a second call. See On-Demand Calls. - Create and Revoke Your Own API Keys: Manage → Advanced → API Keys creates and revokes the machine-to-machine keys the On-Demand Call API uses — until now they had to be minted for you. A key is shown once and there is no rotate. Account users see only their own keys; partner users see and can revoke every key in their scope. See API Keys.
- Handoff Is Configured Per Channel: The Freshchat account has moved from Chat Configuration → Widget Config → Agent Escalation to Handoff Platform on Build → AI Agents → Handoff → Chat. Existing selections carry over, each channel keeps its own connection, and the Chat tab gains a per-language Handoff Message. See Chat Escalation.
- Assign Several Numbers to an Agent, from the Agent: The ⋯ menu on an agent card in Build → AI Agents now assigns and unassigns phone numbers in bulk, from a drawer where you can tick several at once. Previously staff-only, now open to account and partner users. See Phone Numbers.
- Pad String Data Transformer: Pads a value out to a fixed width — zero-fill a reference number, right-align a figure to a column. Pad From picks Left or Right, Pad Character takes one character, Target Length goes to 100,000. It only pads, never truncates. See Data Transformers.
- The Template Library, Rebuilt: Library → Prompt Templates is now Library → Templates, rebuilt around an industry rail with call-direction filtering, sorting and paging. Search matches tags and prompt text, and prompts are edited in the formatted editor. See Templates.
Fixes
Fixes
- One Email Inbox Answered by Two Agents: An inbox can now be worked by exactly one agent, matched on the address. On upgrade the later of any duplicate claims is deleted and that agent silently stops working the mailbox — check Email Configuration → Inbox on each email agent afterwards. Unsubscribing now offers only Resolve & Unsubscribe. See Email Agents.
- History Lists Blanking While They Reloaded: Changing a filter in call, chat or email history emptied the table while it reloaded. Lists now update in place, running conversations refresh every fifteen seconds, and the toggle reads In-progress Only. See Call History.
Patches
Patches
- Chat Handoff Outcomes List the Automatic Rows: Handoff → Chat now shows Contained and User Abandoned as read-only rows. User Abandoned is a display name only — exports still record Caller-Hungup, so keep matching on that. See Chat Escalation.
- Repeat On-Demand Calls to the Same Number: Submitting the same number to a campaign’s on-demand run more than once is now accepted, each request its own attempt with its own
request_id. Anything relying on the API to reject a duplicate must de-duplicate itself.
Released 2026-08-19
Improvements
Improvements
- Email AI Agents: Your AI agents can now work email, alongside voice and chat. An email agent picks up tickets from a connected Freshdesk mailbox, replies in the thread, and either resolves the conversation or escalates it to a human. The channel is switched on for every account — there is nothing to request and no provisioning step — but an agent only starts working email once you connect Freshdesk under Manage → Connected Apps → Freshdesk and tick a mailbox in Build → AI Agents → Email Configuration → Inbox. Until you do, the panel reads “No Freshdesk accounts connected”. An email agent draws on the same configuration your voice and chat agents already use: its FAQs and knowledge groups, its in-conversation actions, and its outcomes. Two email outcomes are built in and cannot be edited — Contained when the agent resolves the thread, and User Abandoned when the customer stops replying and the conversation ends through inactivity — and you can add your own alongside them. A conversation is treated as inactive after 72 hours by default, adjustable from 3 to 7 days in Email Configuration → Config. See Email Agents.
- Email Closing Message and Handoff Message: Greeting & Sign-off and Handoff are now organized as Voice, Chat and Email tabs. The Email tab of Greeting & Sign-off holds a Closing message, sent when an email conversation is resolved and pre-filled with “Thank you for contacting us. Have a great day!” — it cannot be left blank. The Email tab of Handoff holds a Handoff Message, the reply that goes out when the agent escalates a thread to a human. Both accept variables, and both gain a Message to Send in Language box for every language configured on the agent — when you add a language, existing email copy is translated into it automatically, exactly as voice and chat copy already was. Your existing voice and chat settings are unchanged, just relocated under their own tabs. See Email Agents.
- Email Analytics and Email History: Two new views under Optimize. Email Analytics tracks email containment, resolution rates, and response-time trends. Email History, under Advanced, lists email threads with their replies and escalations, and opens a full transcript for any one of them. Email History also lets you step in: switch on the in-progress filter and each live thread offers Escalate and Resolve, from the row’s menu or the Actions dropdown in the transcript drawer. Resolve closes the conversation; Escalate hands it to a human and then closes it. Only a thread that is still in progress can be ended this way. See Email Analytics.
- A Proactive Message on the Chat Widget: The embedded chat widget can now invite a visitor to start chatting before they click, with a small teaser bubble beside the closed launcher. Configure it in Chat Configuration → Widget Config → Proactive notification, where you can turn it off, change the wording, and set how long the visitor waits before it appears. This one is on by default, including for widgets already live on your site. After upgrading, a visitor who lands on a page carrying your widget and does not interact will see “Hey there 👋🏻, how can I help you?” ten seconds later. Nothing needs to be redeployed for that to begin, because the widget reads its settings fresh on every load. If you do not want it, clear the Proactive notification toggle on each agent. The bubble appears only when the widget starts closed and the visitor has no chat already in progress, and once dismissed it stays dismissed for that visitor. Messages are capped at 120 characters and the delay at one hour. See Chat Widget.
- Default Values for Variables: A variable can now carry a Default value, set in Build → Variables when you create or edit one and shown in its own column in the variables table. Every interaction — voice, chat, or email — starts with that value already in place, so a
{{variable}}in an Initial Message, in Guidelines, or in an action’s request body renders the default instead of an empty string when nothing has assigned to it yet. Anything that assigns to the variable during the interaction still wins, as does data a channel supplies up front, such as chat widget variables or campaign contact fields. Defaults are capped at 2,000 characters, and clearing the field returns the variable to starting unset. Two things worth knowing: a variable created on the fly from an API Request node’s Response Mapping now inherits that row’s Default Value (optional) as its own default, and because the edit drawer always submits the field, saving an edit with Default value empty clears a default you set earlier. Nothing changes for your existing variables until you fill the field in — but once a variable has a default, a Decision node that tested it for emptiness will take a different branch. See Variables Manager. - Three New Data Transformers: Extract Letter (fixed) returns the first run of letters of an exact Length, and Extract Letter (min–max) returns the first run whose length falls between Min Length and an optional Max Length — the word equivalents of the Extract Number transformers. Both match whole runs only, so a Length of 2 against
abcdreturns nothing rather thanab. Arithmetic adds, subtracts, multiplies, divides, or takes the remainder of two values; like Random Number it generates a value rather than transforming one, so the block has no Input field — just an Operator, Value 1 and Value 2. All three accept{{input#}}and{{expr#}}references in their parameters. See Data Transformers. - Actions Are Now Conversation Actions: Because actions run on email and chat as well as calls, the three action phases have been renamed from “call” to “conversation” — Pre-conversation Actions, In-conversation Actions and Post-conversation Actions — everywhere they appear, including tab labels, section headings, drawer titles and global search. The phases themselves, and every action inside them, are unchanged, and nothing needs reconfiguring. The Studio pages moved to matching addresses at the same time, so a bookmark saved straight to an actions tab in Studio no longer opens it — navigate from the agent instead, and re-save the link. See Pre-conversation Actions.
Fixes
Fixes
- Chat Outcomes Judged by Voice Rules: Chat conversations were classified using the rules written for phone calls, which mislabelled a lot of them. A visitor who simply closed the tab was filed under a caller-hangup outcome and shown as Hangup, even though for chat that is ordinary self-service; those conversations now read Contained, in Chat Analytics and in the Disposition column of chat history alike. Because they are no longer counted as escalations, they have also left the Transfer Dispositions breakdown, so its percentages are now calculated over genuinely transferred conversations only — expect the shape of both charts to shift for periods you have already reviewed, including historical ones. Separately, a visitor who abandoned a conversation and started a fresh one mid-thread is now recorded as User-Abandoned rather than contained, and the transcript of the abandoned thread ends with the chat end message you configured instead of internal wording. See Chat Analytics.
- Failed Live-Agent Handoffs Counted as Transfers: When a handoff to a human agent failed and the conversation fell back to the AI, it was still reported as Transferred — inflating escalation counts with conversations that never reached a person, and leaving the conversation flagged as mid-transfer. The transfer state is now cleared on every fallback, so a failed handoff is classified on how the conversation actually ended. Escalations that succeed keep the Freshchat channel disposition the agent chose, which had also been getting overwritten.
- Chat Escalations Dropped on a Transient Freshchat Error: Handing a chat to a human could fail outright if Freshchat was momentarily rate-limited or returned a server error — leaving the visitor with an AI that had already said it was fetching someone. Those requests are now retried up to three times with a short backoff, so a brief upstream blip no longer costs the escalation.
- Transcript Order When Pre-conversation Actions Ran: In a transcript where the agent ran pre-conversation actions and the customer spoke first, the agent’s opening message was hoisted above the customer’s — making it look as though the agent had spoken out of turn. Messages now appear in the order they actually occurred. This corrects existing voice and chat transcripts, not only new ones.
- Phone Number Search Returning Numbers That Did Not Match: Searching for a number pattern when buying a number returned results that merely contained the digits somewhere, rather than matching the pattern you typed — so an area code search came back full of numbers from other area codes. Results are now filtered to genuine matches, and a search with nothing behind it shows an empty state instead of an unrelated list. This applies everywhere numbers are bought: onboarding, Manage → Phone Numbers, and number pools. Because matching is stricter, a pattern that used to return a long list may now return fewer numbers, or none. See Phone Numbers.
- Widget Config Edits Lost or Overwritten: In Chat Configuration → Widget Config, edits could be discarded or reverted when the panel reloaded its saved settings underneath you. Pending changes are now preserved. Relatedly, AI Agent Name accepted only a single word — anything after the first space was dropped as you typed — and now takes full names.
- Email Threads Stuck In Progress, and Exports Returning Calls: An email conversation that ended in an error stayed in the in-progress list indefinitely, so supervisors saw live threads that were not live. Errored threads now leave that list. Separately, exporting from email history produced a file of voice calls rather than email conversations.
- Drawers and Dialogs Behind the Co-pilot Panel: With the Co-pilot panel open, side drawers and dialogs across telephony, account and user settings rendered underneath it or in the wrong place. They now dock beside the panel, or cover it where they are meant to. Text inside side drawers can also be selected and copied again.
Patches
Patches
- Freshdesk Automation Rules Are Re-created at the Top: The two automation rules SquawkVoice manages inside your Freshdesk account are now pinned to position 1 and renamed to carry a
[DO NOT DELETE, DO NOT REORDER]marker, so a reordering in Freshdesk can no longer stop the AI agent seeing new tickets. Because the rule shape changed, both rules are deleted and re-created the next time each connected mailbox syncs after the upgrade — and they will land above your own automation rules. If you rely on one of your own rules running first on the same tickets, check the order in Freshdesk afterwards. Where an account rejects the pinned position, the rules are re-created unpositioned so coverage is never lost. - Limits on Email Reply Work: An email agent now takes at most five rounds of look-ups and actions to compose a reply, allowing 60 seconds for each drafting pass and 30 seconds per action. On reaching a limit it sends its best reply rather than stalling the thread. Replies that search a knowledge base or call an action are correspondingly slower, and cost more per turn, than a plain reply.
- Reserved and Duplicate Email Outcome Names: The two built-in email outcomes now occupy reserved slots a custom outcome cannot overwrite, and custom email outcome names must be unique regardless of capitalisation. Both are rejected with a clear message when you save.
- FAQ Answers on Email: An email agent inlines the agent’s full FAQ list into every reply it composes, so a very long FAQ list raises the cost of each email turn. See Knowledge Base.
- Platform Runtime Upgrades: The API and Studio moved to the current long-term-support release of their JavaScript runtime, and the platform’s cloud provider modules were upgraded to their current major version. Deliberately behavior-neutral.
Released 2026-08-06
Improvements
Improvements
- Chat Widget 2.0: The website chat widget has been redesigned, and the new look reaches every page that already has it embedded — nothing on your site needs to change. The embed snippet keeps working exactly as pasted, because the version you pick only selects which loader file the snippet points at, while the chat experience itself is always the current release. Chat Configuration → Embed Code now offers Latest (2.0.0), which new agents use, with versions 1.0.0–1.4.0 still available if you need to pin one. Agents that were pinned to an older version have been moved to Latest — re-pin from Embed Code if you were relying on a specific loader. Your colors, logo, disclaimer, allowed origins, Freshchat connection and chat variables all carry over unchanged. See Chat Widget.
- Redesigned Widget Customization: Chat Configuration → Widget Config has been reworked. Title is now AI Agent Name, and a new AI Agent Avatar upload sits alongside Widget Logo, so the picture beside AI replies can differ from the logo in the chat header. The color pickers are renamed to say what they actually control — Brand, User Message Text, AI Agent Message Text, AI Agent Message Background and Header Text — each still set separately for light and dark mode, with the dark value auto-derived when you change the light one. The avatar disc beside AI replies and the icon inside it now take the same background and text colors as the AI message bubble, so the two always share one contrast pair. One behavior change to note: the name in the chat header no longer falls back to your agent’s internal name. A title you had already customized carries over, but if AI Agent Name is left blank visitors now see AI Agent — set the field if you want something else.
- Refreshed Widget Look & Feel: The collapsed launcher is now a clean floating circle — the rounded card behind it is gone, its shadow traces the circle, the icon is larger, and the bubble grows slightly on hover. Opening and closing is a smoother morph, with the panel keeping its rounded corners until it settles into the launcher. The sender label above each message and the timestamp inside it are replaced by one small muted line under the bubble — “AI Agent · 10:32” for the agent, the live agent’s own name during a handoff, and the time alone for the visitor — fixed in neutral grey so it no longer picks up your brand or message text colors. The header logo now fills its circular slot, the spacing between the AI disclaimer and the “Powered by SquawkVoice.ai” line is tighter and consistent across the chat and email-capture screens, and your logo and avatar are pre-loaded so you no longer see an empty image slot on first paint.
- Random Number Transformer: A new Data Transformer that returns a random whole number between a Min Value and a Max Value, inclusive of both. Because it generates a value rather than transforming one, the block has no Input field — the two bounds are its only parameters. Bounds may be negative, and either one can be an
{{input#}}or{{expr#}}reference, including text that mixes literal digits with references. Literal bounds are validated when you save; at run time the transformer never fails a chain — a bound that resolves to blank or non-numeric text counts as0, and if the resolved minimum ends up above the maximum the result is0. See Data Transformers.
Fixes
Fixes
- Chat Launcher Flash and Dropped Widget Edits: On your website, the chat launcher used to appear immediately in the default bottom-right corner at default size, color and logo, then jump to your configured appearance a moment later. It now stays hidden until its saved appearance has loaded and fades into place already correct, with a 10-second safeguard that reveals it using defaults if that request is slow or fails — so it can never be left invisible. Separately, in Chat Configuration → Widget Config, a change made in the moment just before you navigated away from the panel could be discarded rather than saved; pending changes are now flushed when you leave.
- Decision Nodes Freezing the Flow Builder: Opening a Decision node — in a pre-call, during-call or post-call flow — sent its configuration panel into a render loop that never stopped, locking up the panel and the canvas behind it so conditions could not be edited or saved without reloading the page. The panel now settles as soon as it opens and stays responsive while you add and delete conditions, set each one’s data transformer, input values and target node, and choose the Otherwise branch.
- Freshservice Tickets Without an Assigned Agent: Creating or updating a Freshservice ticket no longer fails when the AI agent has no one to assign it to. Rather than leaving the assignee out, the agent could fill it with a placeholder value of zero, which Freshservice rejected as an invalid agent ID — the ticket was never created, or the update never applied, and the action came back as an error mid-conversation. A zero or negative assignee is now dropped before the request is sent and the ticket is created unassigned as intended, whether the value was supplied as the assignee directly or through the older agent ID field. Existing actions pick this up automatically.
Patches
Patches
- Widget Logo and Avatar Image Formats: The widget logo and AI agent avatar now accept PNG, JPG, GIF and WebP only, up to 10 MB. SVG files were previously accepted and are now rejected, both in the Studio and through the API, because these images are served publicly from the widget on your site and an SVG can carry embedded scripts. An SVG you already uploaded keeps displaying — upload a PNG or WebP the next time you change it.
Released 2026-07-27
Improvements
Improvements
- Bring Your Own Number: Add phone numbers you already own on a SIP trunk to an account instead of only buying them in the Studio. Manage → Phone Numbers → BYO Number accepts a single number or a consecutive range (2–100 at a time; numbers already in use are skipped automatically), and BYO numbers then behave like any other number — assign them to an AI agent. They carry a BYO badge, are never billed by SquawkVoice, and do not use up your included number. For SIP trunk customers this replaces per-number
X-SIP-AssistantIdheaders — assign the number to an agent in Studio and reassign it later without touching your SBC. Contact your provider to enable it for your account. See Phone Numbers and SIP Integration. - Five New Data Transformers: Search String returns where a value appears in the text (or
-1), String Length returns a character count, Extract Email pulls the first email address out of free-form text, Extract Number (min–max) pulls the first digit run of a given length — an OTP or account number out of a messy transcript — and Matches Regex returns a plaintrue/falseyou can branch on with Conditions or Compare. See Data Transformers. - Find Nodes in a Flow: Large flows now have a search box in the top-right of the flow canvas. Type any part of a node’s name or its type and every match is highlighted at once; pick a result to pan and center the canvas on that node. See Find a Node on the Canvas.
Fixes
Fixes
- Summaries in the Wrong Language: Call and chat summaries now come back in the agent’s configured Summary language. Agents set to a specific language — or to Auto — could receive an English summary instead, and the Additional Concerns section was returned in English even when the rest of the summary was translated. The setting now also lives alongside the agent’s other language options in the Languages & localization card. See Summary Language.
- Campaign Voicemail Calls Never Hanging Up: When an outbound campaign reached an answering machine and was configured not to leave a message, answering-machine audio could interrupt the agent’s hang-up and leave the call connected in silence, holding the line. The hang-up now always completes, exactly once, and speech picked up after the agent has committed to hanging up can no longer cancel it.
- Campaign Outcomes: Voicemail is now decided by the outcome the agent itself reports, not by scanning the transcript for answering-machine phrases — so a live contact who happens to mention a voicemail greeting is no longer hung up on and filed as Voicemail. Voicemail, Wrong number, Callback requested and DNC request now all travel through a single end-of-conversation path and reach the campaign reliably, with transfers reserved for genuinely connecting a contact to a person. See How a campaign call ends.
- Inbound Transfers Blocked by an Outcome Name: On a non-campaign agent, an outcome named Voicemail, Wrong Number, Callback Requested or DNC Request silently prevented inbound callers from being transferred to a human — the call ended instead. That behavior is now limited to genuine outbound campaign calls. Outcome names are also checked for duplicates (case-insensitive) when you add or rename one, including against those four names, which are reserved for campaigns.
- Transfer Status in Call Logs: The Agent Handoff section of a transferred call’s transcript again lists the dial progress to the transfer destination — dialing, ringing, connected, and the outcome — instead of dropping lines (most often the first one) or rendering empty. In the same viewer, the customer’s messages are now labeled Caller throughout. See Transfer Status in the Transcript.
- Billing Accuracy for Transferred Calls: Calls handed to a human over a PSTN transfer are now billed on the carrier-reported connected duration of the call — answer to hang-up, covering the AI conversation, the transfer dial, and the human-agent leg. Previously the charge was derived from a wall-clock span that kept running until the call record was closed out, so when a transfer’s final status never arrived, the waiting time before a background sweep closed the record was billed as call time. Those records now also finalize promptly instead of waiting for the sweep, and the Duration shown in Call History matches what you are charged. See How minutes are calculated.
- Freshservice Ticket Actions: Assigning a ticket to an agent now works — the platform sends the field name Freshservice expects, and actions configured before this release are translated automatically. Agents can also resolve and close tickets, via a new optional Resolution notes parameter that Freshservice requires for those statuses. And looking up tickets without a requester filter no longer fails and retries — an unset requester ID is treated as “no filter”. See Connected Apps.
- False Error After Connecting an App: Connecting Google Sheets, Google Calendar, or another app that signs in through OAuth no longer shows an “Integration not found” error on return. The connection had actually succeeded — only the message was wrong.
- Stuck Action Cards in Test Calls: In the test-call transcript, an action card could stay on “Running…” forever if backend logging failed. Cards now always advance to their final status and latency.
Patches
Patches
- Guaranteed Call Wrap-Up: Once an agent has decided to end or transfer a call, the platform now guarantees the call finishes wrapping up within 15 seconds even if the normal shutdown path stalls — so the call log, summary, campaign follow-up, and billing are never left pending. No change on a healthy call.
- Regex Safety Limits: The Regex Extract and Find & Replace transformers now reject oversized input, over-long patterns, and runaway match counts with a clear error instead of stalling the request. See Data Transformers.
- Contact Timezone Data: The postal-code dataset used to resolve each campaign contact’s local time for legal dialing hours now refreshes on a weekly schedule, and a partial download fails the run instead of reporting success with incomplete data. See Scheduling.
- Platform Runtime Upgrades: The orchestrator, API, and Studio moved onto current supported releases of their application framework, telephony SDK, and routing library, off versions that had reached end of life. Deliberately behavior-neutral.
Released 2026-07-16
Improvements
Improvements
- Squawk Co-pilot is now generally available: The in-platform AI assistant — Build with AI in Studio — is now available to all users. Open it from the sparkles button in the top bar (or
Cmd/Ctrl + I) and describe what you want in plain English: it creates and configures AI agents, links knowledge bases, sets up actions, and answers questions about the platform. It can now also edit during-call flows node by node, with the flow editor refreshing in real time as the Co-pilot works. See Squawk Co-pilot. - Consistent Contact-Table Sorting: Campaign contact tables now sort consistently across all sortable columns — Zipcode sorting now applies to the full contact list instead of only the current page.
- Smarter Summaries: Call and chat summaries now receive the current date as context, so relative dates (“tomorrow”, “next Friday”) in conversations resolve correctly in summaries.
- Data Transformer Empty Inputs: Transformation pipelines now handle empty or missing inputs gracefully — references to absent inputs resolve to empty strings instead of failing the chain. See Data Transformers.
Fixes
Fixes
- Voice Stability After Barge-In: Fixed two interruption edge cases — calls no longer hang in dead air when a caller interrupts the agent during a transfer, and transfer/closing messages are no longer played twice after an interruption.
- Freshcaller Call Endings: Freshcaller conversations now hang up correctly at the end of a conversation instead of transferring.
- Chat Handoff Transcripts: Chat handoff messages are no longer missing from transcripts after a browser reconnect, and reconnect handling no longer delays handoff completion.
- Freshchat Connections: Adding a new Freshchat connection in the Build Hub now auto-refreshes the channel list, preventing handoff failures on newly added connections.
- Call & Chat History Error Logging: Cancelled API requests are no longer logged as errors in call history, chat history, and knowledge-base linking.
- Freshdesk Contact Search: Invalid company filters are now dropped before reaching Freshdesk, fixing “Get Many Contacts” failures.
Patches
Patches
- Post-Call Processing Resilience: Summarization now uses bounded retries and timeouts with graceful degradation, so upstream LLM slowness no longer stalls post-call processing.
- Zero-Downtime Deploys: Added deep health/liveness probes and graceful shutdown draining across platform services for smoother releases.
Released 2026-07-07
Improvements
Improvements
- Outbound Voice Campaigns: Launch AI-driven outbound calling campaigns from Manage → Campaigns — assign an agent, upload up to 100,000 contacts per CSV (custom columns become agent
{{variables}}), set weekly calling windows, and control concurrency, retries, and voicemail handling. Every launch creates a numbered run with immutable configuration snapshots. See the new Outbound Campaigns guides. - Live Campaign Monitoring: Real-time run dashboard with progress, active-call banner, and outcome buckets (retry, no answer, busy, voicemail, wrong number, callback requested, blocked, frequency capped) — plus per-contact dial history with TCPA decisions, transcripts, and recordings, CSV export, and side-by-side comparison of 2–5 campaigns.
- Campaign Compliance & DNC Scrubbing: TCPA attestation at every launch, per-contact consent (PEWC) gating, legal calling-hours enforcement in the contact’s local timezone, in-call opt-out capture, and Do-Not-Call + Reassigned-Number scrubbing before every dial ($0.10 per contact per run by default, with an upfront cost preview and SAN management). See Compliance & DNC.
- Phone Numbers: Buy phone numbers in-app across 3 countries, assign them to AI agents for inbound routing, and release them when done — first number free, additional numbers billed as a monthly add-on with prorated cost previews. See Phone Numbers.
- Number Pools: Group numbers into rotating caller-ID pools with Sequential or Random rotation, automatic STIR/SHAKEN registration and attestation tracking, and automatic + on-demand spam checks. Voice campaigns now require a pool before launch. See Number Pools.
- AI Call Context in SIP Headers: New transfer-rule option sends the conversation’s disposition and a brief AI summary as SIP headers (
X-SV-Disposition,X-SV-Summary) on SIP transfers, so receiving contact-center systems get context inline — works alongside screen pop. - Full-Call Billing for PSTN Escalations: Calls escalated to a human agent over a PSTN transfer are now metered for the full call duration, including the human-agent leg. New per-agent Enable Handoff Transcript and Enable Handoff Recording toggles capture the escalation leg, with a separate Handoff Summary in the call drawer.
- Variables Manager: New Variables capability in the Build hub — create, edit, search, and delete agent variables, filter unused ones, and see exactly where each variable is referenced across actions, flows, and settings.
- Per-Channel Actions: Pre-call and post-call actions can now be scoped to run on Voice, Chat, or both, and the new
interaction.CHANNELvariable lets prompts and flows branch by channel. - Summary Language: Choose the language AI call and chat summaries are written in per agent — any configured language, or Auto to match the detected conversation language.
- Chat Widget Test Values: Add a per-variable test value to chat widget variables and preview variable-driven behavior in the in-platform test chat — test values never reach your live website widget.
- Persistent Chat Widget Sessions: The embeddable chat widget now keeps sessions alive across page reloads and tab closes within a 10-minute reconnect window, with per-visitor session separation and a “Start new session” control.
- Payment Methods: Add a new card in Billing → Payment methods via a secure embedded Stripe form, set it as default, and remove old cards.
- Professional Services Hours: Purchase Professional Services hours directly from the billing portal ($200/hour), track the remaining balance, and review the work log in billing history.
- Call History Direction Columns: Call History now shows Caller ID, To (dialed number), and Direction (Incoming/Outgoing) columns — included in CSV exports, and search now matches the called number.
- Opportunity Discovery: New Optimize capability that scans ticket and call transcripts with AI to auto-generate FAQs, system instructions, and a business case.
- Partner White-Labeled Sign-In: Partners can claim a dedicated subdomain so their customers see partner branding on the sign-in and forgot-password pages, before login.
Fixes
Fixes
- Chat Escalation UX: Failed live-agent handoffs now show a clear status banner, and the conversation stays alive instead of ending when a handoff fails.
- Chat Transcript Styling: Restored correct formatting of assistant messages in the transcript viewer, test chat, and embedded widget.
- Freshchat Handoff Reliability: Fixed issues with handing off sessions to FreshChat agent.
- Integration Action Logs: Action logs now record the real third-party endpoint URL (with credentials redacted) instead of the internal proxy URL.
- Conversation Summaries: Call and chat summaries no longer intermittently omit sections.
- Action Editing: During-call action parameters no longer swap position while editing, action names stay in sync with their flow names, and the required-parameter toggle on integration actions persists correctly.
Patches
Patches
- Resolved issues with loading states in the portal for a more responsive interface.
- Cleaner integration action logs, with response payloads shown without wrapper noise.
Released 2026-06-09
Improvements
Improvements
- Transcript Viewer & Action Logs: Enhanced the Transcript Viewer alongside Call and Chat History Action Logs for improved readability and detail.
- Chat Widget Identifier Override: Added support for email and identifier overrides in the Chat Widget, allowing known users to bypass the email capture screen seamlessly.
Fixes
Fixes
- Interaction Retrieval: Improved interaction queries to correctly exclude soft-deleted AI Agents, ensuring accurate history and analytics results.
Patches
Patches
- Fixed various bugs affecting interaction functions and overall performance.
Released 2026-05-29
Improvements
Improvements
- Chat Widget Context: Improved chat widget behavior by injecting customer context directly into AI interactions to enhance conversation relevance and personalization.
Fixes
Fixes
- Integration Call Actions: Resolved issues with the
ConnectionIdparameter during call actions linked to external integrations. - Variable Picker Visibility: Ensured closing message variables are fully visible in the variable picker and correctly substituted at runtime.
- Deployment Consistency: Prevented the deletion of the loader version during agent deployment to maintain environmental consistency.
Patches
Patches
Released 2026-05-26
Improvements
Improvements
- Action Copy & Paste: Enable copying and pasting call actions (including flows and configurations) between different AI agents within the same account.
- Streamlined Pre- & Post-Call Flows: Converted Pre-Call and Post-Call actions into fully-featured visual flows, supporting API Request, Set Variable, and Decision nodes for advanced pre-call preparation and post-call automation.
Fixes
Fixes
- Freshchat Webhook Reliability: Resolved an issue causing the Freshchat webhook to silently drop agent messages due to message ID collisions.
- Billing History Invoices: Corrected an issue where the invoice list in billing history failed to render or refresh upon re-visiting the tab.
Patches
Patches
- Interaction Variables: Restored the missing
interaction.TRANSFER_DESTINATIONvariable to ensure reliable dynamic transfer destination routing.
Released 2026-05-15
Improvements
Improvements
- Added the capability to track handoff outcomes and user-agent chat transcripts in chat history.
Fixes
Fixes
- Addressed language selection bug when switched between multilingual and monolingual modes.
- Addressed multiple issues causing call drops during actions without API request nodes.
- Fixed formatting issues in the Guidelines editor and addressed integration action uncheck functionalities.
- Resolved various UI issues in the Guidelines editor and menu positioning.
Patches
Patches
Released 2026-05-07
Improvements
Improvements
Fixes
Fixes
- Resolved issues with Audit Logs to ensure proper visibility and accuracy.
- Fixed the sticky search box and integration drawer states during calls for more reliable navigation.
- Addressed rendering issues with ActionLog to enhance display functionality.
- Disambiguated greeting messages between chat and voice interactions to improve clarity.
Patches
Patches
- Refactored key-value string handling for improved action logs readability.
Released 2026-05-06
Improvements
Improvements
- Enhanced onboarding flow now supports Chat channel setup.
- New Regex Extract data transformer added for improved data manipulation.
- New interactions variable
CURRENT_DATEthat has the current date based on the AI Agent’s timezone.
Fixes
Fixes
- Resolved the issue with ActionLog rendering that was causing visual errors.
Patches
Patches
- Improved logging and JSON handling in the API request components.
Released 2026-04-28
Improvements
Improvements
- New Integrations: FreshChat, FreshDesk, and FreshService are now available as Connected Apps, letting AI agents interact with Freshworks platforms during calls and conversations.
- Chat Analytics: Added a dedicated Chat Analytics dashboard with headline KPIs (Total Chats, Unique Users, Avg Turns, Resolution Rate, User Satisfaction), outcome charts, transfer disposition breakdown, and real-time live updates.
Fixes
Fixes
- Resolved typography inconsistencies in the chat widget compared to in-app test chat.
Patches
Patches
Released 2026-04-14
Improvements
Improvements
- Action log added for Transfer actions to capture relevant details.
- Substring function added to the Data Transformer for enhanced text processing.
Fixes
Fixes
- Fixed issue with flows not being deleted when during call actions are deleted.
- Resolved UI layout issues for guidelines and default voice configurations.
- Updated the Forgot Password and password reset pages to fix theming issues.
Patches
Patches
- Package dependencies updated for better stability and performance.
- Enhancements made to the Guidelines Editor for improved user experience.
Released 2026-03-31
Improvements
Improvements
- Streamlined Onboarding: Reimagined the initial setup and agent creation workflow, making it faster and more intuitive to deploy your first and subsequent AI agents.
- Modular Block-Based Guidelines Editor: Replaced the traditional Markdown editor with a modern, block-based interface. This intuitive editor provides a flexible way to structure your AI agent’s instructions and guidelines.
- Quick Search & Navigation: Introduced a powerful search functionality (Command/Ctrl + K) that allows you to instantly find features and navigate across the platform with ease.
- Real-time Call Analytics: The Call Analytics dashboard now features live tracking with updates immediately following every call. We’ve also added advanced filtering to analyze performance for specific AI agent or groups.
Fixes
Fixes
- Fixed occasional issues with the WebSocket connectivity.
- Addressed bugs in the Refreshed UI to enhance overall stability and performance.
Patches
Patches
Released 2026-03-16
Improvements
Improvements
- Improved data export file naming for clarity.
- Added support for upper and lower case data transformations.
- Chat channel modality added to the Voice AI Agent.
- Added 3 year term along with the 1 year Commit & Save plan.
Fixes
Fixes
- Fixed an issue where during call actions displayed incorrect parameters.
- Corrected display of error messages in action logs.
- Fixed UI issues for certain post-call actions for Partners.
Patches
Patches
- Search and replace data transformer function can search for spaces.
- Optimized summarization in interaction processing.
Released 2026-02-24
Improvements
Improvements
- Introduced a yearly commit plan “Commit & Save”.
- Refined user satisfaction assessment analysis.
- Optimized summarization processing in interactions.
Fixes
Fixes
- Fixed an issue where end-of-call processing steps were not completing as expected.
Patches
Patches
Released 2026-02-19
Improvements
Improvements
- Added entries to live transcript and action logs for during call action invocations.
- Added entries to live transcript and action logs for decision node executions.
- Improved guardrails for AI Agents to not indulge in inappropriate conversations.
- Improved user experience for using expression references in data transformers.
- Included support for ACH payments in billing.
- Added Audit Logs support that tracks all changes and clicks across the platform.
Fixes
Fixes
- Corrected behavior for calls not terminating if the transfer destination is empty.
- Fixed variable naming validation to ensure compliance with system standards.
- Fixed various bugs to enhance backend transaction stability.
Patches
Patches
- Patch added for resolving mTLS profile import/export failures.
- Updates made to prevent duplicate variable creations for assistants.
- Adjusted timeout settings for Guidelines Assistant to prevent timeout errors.
Released 2026-02-05
Improvements
Improvements
- Introduced mTLS integration for better security in communications.
- Improved flow editor by adding a “Set Variable” node, allowing users to set variables dynamically.
- Abilily to download newly uploaded documents to Knowledge Groups
Fixes
Fixes
- Fixed action references in guidelines in AI Agent duplication and Import.
- Fixed issue with calls not properly disconnected in some situations.
- Fixed a rendering issue related to the initial message after autosave.
- Resolved an issue where switching authentication types in Auth Profiles disrupted functionality.
- Fixed bugs related to document management in the knowledge base.
Patches
Patches
- Updated variables in task import/export frameworks for accurate recognition in call actions.
Improvements
Improvements
- Ability to perform call analytics on a custom date time range
- Add user dissatisfied badge and filter to call history page
- Customer Satisfaction metric card in Call Analytics
- Containment Rate card metric updated to Resolution rate Metric card
- Summary Issue field should surface key points discovered from the conversation
- Support for variables in Transfer and End Conversation messages
Fixes
Fixes
- Call Analytics and Billing Usage details not starting at start of UTC midnight
- Fix for call summary not generated for calls in some cases
- Fix Input Handling for Data Transformers with Custom Text and Dynamic Variables