> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.talkif.ai/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.talkif.ai/_mcp/server.

# Changelog

## Success rates reported as percentages

* **API**: correction — [`GET /flows/{flowId}/stats`](/api-reference/analytics/get-flow-stats) now returns `rates.successRate` and `rates.failureRate` as percentages from 0 to 100, as documented. They were returned as fractions from 0 to 1, so a flow where every call completed reported `1` instead of `100`. If your integration multiplied these values by 100 to work around this, remove that step.
* **Dashboard**: the **Success rate** figure on the overview shows the real percentage. It used to show 0% or 1% whatever the real rate was.

## Passkeys and Sign in with Apple

* **Account**: sign in with a **passkey** — Touch ID, Face ID, Windows Hello or your device PIN, saved in iCloud Keychain, Google Password Manager or your password manager. A passkey sign-in skips the 2FA code. Add one under **User menu → Security → Passkeys**; you get an email whenever a passkey is added or removed. See [Passkeys](/account/passkeys-and-sign-in-with-apple#passkeys).
* **Account**: **Continue with Apple** on sign-in and sign-up, with Hide My Email support. Existing users link Apple from **User menu → Security**; accounts are never merged by email. See [Sign in with Apple](/account/passkeys-and-sign-in-with-apple#sign-in-with-apple).
* **Security**: Google sign-in now asks for the two-factor code on users with two-factor authentication turned on.

## Eleven v4 Turbo, model retirements, and updated prices

* **Models**: **Eleven v4 Turbo** (`eleven_v4_turbo`) is available — ElevenLabs' newest real-time voice, with Turkish and 90+ other languages and inline audio tags. It is now the default voice for new agents and templates. See [Choose models and voices](/build/choose-models-and-voices) and [Write prompts](/build/write-prompts#emotion-and-delivery-with-eleven-v4-turbo).
* **Models**: model retirements are now announced in advance. Every model scheduled for retirement carries a `deprecation` object (`retiresOn`, `replacedBy`) in the [models endpoint](/api-reference/ai-models/list-providers-public). Until that date it works as before; from that date calls on it run on the named replacement from the same provider, without republishing. See [When a model is retired](/build/choose-models-and-voices#when-a-model-is-retired).
* **Models**: scheduled retirements — ElevenLabs Flash v2.5, Turbo v2.5, Multilingual v2, Turbo v2 and v3 Conversational move to Eleven v4 Turbo on **13 October 2026**; Cartesia `sonic-2` and `sonic-turbo` move to `sonic-3` on 20 October; OpenAI `gpt-4.1-nano` moves to `gpt-5.6-luna` on 23 October; `gpt-5`, `gpt-5-mini` and `gpt-5-nano` move to the GPT-5.6 models on 11 December; `gpt-5.1` and `gpt-5.4-nano` retire on 1 April 2027. Models their providers already shut down (`gpt-5.2-chat-latest`, Grok 4.1 Fast, Rime Arcana) now run on `gpt-5.6-sol`, `grok-4.3` and Rime Coda.
* **Models**: new in the catalog — `grok-4.3` and Rime **Coda**.
* **Billing**: prices follow each provider's current public list price — ElevenLabs Flash, Turbo and v3 Conversational $0.04 per 1,000 characters (was $0.05), Multilingual v2 $0.08 (was $0.10); ElevenLabs Scribe v2 Realtime $0.0065/min; Deepgram Nova-3 $0.0077/min; Amazon Transcribe $0.010/min; Cartesia Sonic $0.038 per 1,000 characters. See [Credits and pricing](/concepts/credits-and-pricing).
* **Account**: signing in with Google now opens every account you belong to, including organization accounts.
* **Docs**: dashboard paths updated to the current menu — **Voice agents**, **Calls**, **Contacts**, **Campaigns**, **Schedules**, **Leads**, **Phone & WhatsApp**, **Settings → Compliance**, and the user menu for **Security** and **Sessions**.

## Call transfers, taking calls in the dashboard, and the Team page

* **Builder**: a new **Transfer** node hands a live call from the AI to a person — **warm** (the AI briefs your colleague while the caller holds) or **cold**. Ring a phone number, your team, a team the AI picks from the conversation, a destination group, or your own app. Every transfer carries a handoff case (reason, summary, your own fields). If nobody answers, or your colleague drops right after connecting, the agent comes back to the caller and carries on. See [Transfer calls to people](/build/transfer-calls-to-people).
* **Settings**: **Settings → People & numbers** holds transfer destinations (phone numbers, people in the dashboard, your app) and destination groups that ring together.
* **Integrate**: **Your app** destinations send your server a signed `transfer.offer` webhook. Your server accepts it with an API key that has the new `transfer_offers` scope, then joins the call audio over a websocket. See [Receive transfers in your app](/build/receive-transfers-in-your-app).
* **Calls**: take transferred calls in the browser. Turn on **Ring in this browser** under the status button in the top bar, then accept from the incoming-transfer window with the handoff case on screen. **Listen** and **Take over** let you join a live call. See [Take calls in the dashboard](/calls/take-calls-in-the-dashboard).
* **Account**: a new **Team** page lists members, invitations, and a **Roles & permissions** table. Members carry teams (tags), weekly available hours and a status (*Available*, *Away* with an end time, *Offline*). Owners and admins can set a member's status. See [Members and roles](/account/members-and-roles).
* **Account**: a fourth role, **Agent**, only takes transferred calls. **Admins** now manage API keys, the webhook signing secret, account settings, phone number configuration, webhooks, integrations and transfer destinations. Money, deletion, ownership and role changes stay with the **Owner**. Members keep the daily work but no longer change account settings or number configuration.
* **API**: new endpoints for transfer destinations and groups, member tags, hours and availability, and transfer offers (`transfers` and `transfer_offers` scopes). Also new: [`GET /roles`](/api-reference/accounts/get-roles) and [`GET /permissions`](/api-reference/accounts/get-permissions). Embedded web calls use `POST /public/calls`, `GET /public/calls/{callId}`, `POST /public/calls/{callId}/offer` and `POST /public/calls/{callId}/end`; the older `/public/calls/calls/…` paths keep working, and `@talkif/webrtc` 0.1.6 switches to the new ones.
* **Billing**: AI usage stops when the agent leaves a transferred call. The outgoing leg to a phone-number destination is billed as telephony from answer. See [Credits and pricing](/concepts/credits-and-pricing#transferred-calls).

## Direct outbound calling for SIP trunks

* **Telephony**: SIP trunk connections now handle outbound calls end-to-end without an extra telephony hop, and new SIP numbers go active immediately with no verification call. You can also set the outbound caller-ID format per SIP trunk provider. See [Bring your own SIP trunk](/telephony/bring-your-own-sip-trunk).
* **Calls**: Ending a call from an embedded web widget now hangs up right away instead of waiting on a network timeout. See [Browser SDK](/sdks/browser).
* **Builder**: The AI Assistant keeps one conversation thread as you move between the dashboard and the flow canvas.
* **Account**: Adding a first phone number to your account no longer requires setting a password, including for Google-only sign-ins. See [Security](/account/security).
* **Account**: Data from a deleted account is now permanently erased 60 days after the deletion grace period ends. See [Data export and deletion](/account/data-export-and-deletion).
* **Billing**: Fixed a display bug where a real-time balance update could briefly show the wrong amount.

## Web call hangup and billing reliability fixes

* **Calls**: Ending a web call now takes effect immediately instead of waiting for the connection to time out. See [Browser SDK](/sdks/browser).
* **Account**: Adding your first phone number no longer requires setting a password — useful if you signed up with Google. See [Security](/account/security).
* **Billing**: Low-balance notifications are far less frequent, and accounts that have never added funds no longer get a false "balance depleted" warning. See [Notifications](/account/notifications).
* **Billing**: A phone number's monthly rental now recovers correctly after a temporary payment failure — topping up reliably reactivates a past-due number instead of leaving it stuck. See [Buy a number](/telephony/buy-a-number#what-happens-when-rental-cant-be-paid).
* **Builder**: The AI assistant keeps one continuous conversation as you move between the dashboard and the flow canvas, instead of starting over. See [Assistant](/build/assistant).

## Available number search now fully typed

* **Telephony**: Searching for available phone numbers now returns full, correctly-typed results through the SDKs — previously the Python SDK could fail to parse the response and only 6 of 22 search filters (area code, region, postal code, capabilities, and more) were usable from the SDKs. See [Buy a number](/telephony/buy-a-number).
* **Builder**: The assistant now keeps a single conversation as you move between the dashboard and the flow canvas, so following a "take me there" suggestion no longer starts a new, empty thread. See [Assistant](/build/assistant).

## SDKs published; typed list responses

* **SDKs**: `@talkif/sdk` 0.1.1 (npm) and `talkif` 0.1.1 (PyPI) are published. Both auto-page list endpoints and expose typed errors — see [SDKs](/sdks/server).
* **API**: list endpoints now return typed responses (`calls`, `contacts`, `campaigns`, … plus `meta`) instead of untyped arrays; `offset` pagination starts at 0.
* **Calls**: the call list is now `GET /calls` (replacing `/calls/history` and `/calls/active`); use `status` to narrow to live calls. It gains filters — `status`, `direction`, `source`, `phoneNumber`, `flowId`, `contactId`, `campaignId`, `scheduleId`, `providerType`, `isLead`, `search`, and sorting.
* **Integrate**: **Agent Skills** for Claude Code, Codex, Cursor and any Agent-Skills-compatible tool — `npx skills add Talkif-ai/skills` — covering every job in these docs, verified against the public API. See [Build with AI agents](/skills/agent-skills).
* **Docs**: docs.talkif.ai restructured around tasks — Getting started, Concepts, Build agents, Telephony, Run calls, Integrate, Account and billing, Reference. Every previous URL redirects.

## System Prompt and Agent Prompt

* **Builder**: Prompts are now two clearly separated fields. The **System Prompt** is the call's persona, set once on the Main Agent and inherited by every other agent; the **Agent Prompt** is each agent's own job. Existing flows were migrated automatically. See [Write prompts](/build/write-prompts).
* **Builder**: Flows built by the Assistant now include spoken-output rules on the main agent by default (short replies, no lists read aloud).
* **Models**: Models no longer offered by any template were retired; ElevenLabs Multilingual v2 removed in favour of the v3 and Flash models.
* **Calls**: A contact skipped mid-campaign (Do Not Call, opt-out, manual skip) no longer keeps the campaign in *running* after every other contact is done.

## Contact-local call windows; ElevenLabs v3

* **Calls**: Campaign call windows are evaluated in each contact's local time, so a list spanning time zones is called at sensible hours everywhere. See [Campaigns](/calls/campaigns#contact-timezones-and-call-windows).
* **Calls**: Campaign pacing is budgeted against your concurrent-call limit, and busy agents are protected during platform scaling — fewer mid-call drops under load.
* **Builder**: Campaign screens rebuilt around the new analytics; raw call errors no longer appear in the campaign summary.
* **Models**: ElevenLabs v3 conversational voices are available for text-to-speech.
* **Calls**: A call now ends cleanly, with a recorded reason, when a speech or language service becomes unusable mid-call, instead of hanging silently.
* **Telephony**: Meta Lead Ads form mappings can declare the phone country for their leads, so numbers submitted without a country code are normalised correctly.

## Reasoning effort per model; campaign analytics

* **Builder**: Models that support a reasoning *effort* setting now expose it, and every model defaults to the least thinking it allows — the right default for live conversation. Models that reject a temperature (current GPT-5 and Claude families) no longer show one. See [Choose models and voices](/build/choose-models-and-voices).
* **Models**: Catalogue corrected from live-call results; retired models removed; the Claude 5 family added.
* **Calls**: Campaign analytics gain outcome, attempt-distribution, failure-cause and duration-histogram views, and campaign counters no longer drift. See [Campaigns](/calls/campaigns).
* **Telephony**: WhatsApp calls from callers Meta identifies by business ID rather than phone number are now answered; a single unrecognised WhatsApp event no longer drops the events around it.
* **Calls**: Releasing a phone number no longer interrupts Meta Lead Ads calls already in flight for that number.

## Meta Lead Ads qualification and call windows

* **Meta Lead Ads**: A dedicated qualification pass decides each lead's funnel stage, with AI stage suggestions behind a confidence gate, a hold window, and manual override from a needs-review queue.
* **Meta Lead Ads**: Per-form qualification criteria, a user-configurable call window and concurrent-call limit on the lead campaign; the campaign schedules its own lead calls.
* **Meta Lead Ads**: Drill-down navigation (Overview → Page → Form → Leads), source and integration filters, and per-lead actions: retry the Conversions API send, add to Do Not Call, schedule a call.

## WhatsApp Business Calling, Assistant, six providers, web calls

* **Telephony**: **WhatsApp Business Calling** — connect a WhatsApp Business Account (Embedded Signup or credentials), register numbers, and your agents answer WhatsApp calls with no telephony charge. The same digits can exist as a phone line and a WhatsApp number. See [WhatsApp Business Calling](/telephony/whatsapp-business-calling).
* **Builder**: The **Talkif Assistant** — a chat in the dashboard that answers questions about your account, proposes flow edits as reviewable diffs, and builds a complete flow from a description.
* **Models**: Six new providers — Google Gemini TTS, Google Cloud STT, xAI Grok STT and TTS, Amazon Transcribe, Rime TTS — and the LLM catalogue refreshed with official pricing. ElevenLabs voice browser gains gender, age, language and accent filters; shared-library voices can be added to your account.
* **Integrate**: **Web calls** — put a voice agent on any web page with a publishable key and the browser SDK; and a **real-time events WebSocket** for account-wide and per-call events. See [Real-time events](/integrate/real-time-events).
* **Calls**: Failed calls carry the carrier's real failure code and reason instead of a generic *failed*.
* **Calls**: Honest interruption accounting — the transcript shows what the caller actually heard, and wasted (generated but unspoken) TTS characters are reported per call. Per-contact call timeline; call history gains phone/name search, provider filter, lead filter and server-side sorting.
* **Calls**: Timezone-honest schedules — pick an IANA zone, preview in local time, default to the contact's zone. See [Schedules](/calls/schedules).
* **Builder**: End Call as a shared canvas node; provider nodes auto-connect to the Main Agent when dropped; per-flow turn-taking configuration.
* **Billing**: Trial credit, coupons and promotional balances; Assistant usage with a free monthly allowance, then billed to balance.
* **Meta Lead Ads**: Leads grouped under auto-created campaigns; dataset picker instead of pasting an ID; per-lead attempts, manual recall and a clickable funnel; moved to Call Center → Meta Leads.

## Call lifetime controls, webhook signing, Meta Lead Ads

* **Builder**: **Silence handling** ("are you still there?", then a polite hang-up) on by default, and a per-flow **maximum call length** with a graceful goodbye. `end_call` now lets the farewell finish instead of hanging up instantly. See [Transfer and end calls](/build/transfer-and-end-calls).
* **Integrate**: **Webhook signing** — every request to your endpoints carries a `Talkif-Signature` (HMAC-SHA256) once you create a per-account secret; secrets are rotatable with an overlap window. See [Webhooks](/integrate/webhooks).
* **Integrate**: **Meta Lead Ads** — connect a Facebook Page, map lead forms to flows, and Talkif calls every new lead within seconds, reporting funnel stages back to Meta's Conversions API. See [Meta Lead Ads](/integrate/meta-lead-ads).

## Voicemail detection; call lifecycle

* **Calls**: **Voicemail detection** on outbound calls — recognise an answering machine and leave a message (fixed or composed) or hang up, with its own cost line. See [Transfer and end calls](/build/transfer-and-end-calls#safety-net-3-voicemail-outbound-only).
* **Calls**: Single call state machine with an automatic reconciler — a call can no longer get stuck in an in-progress state; stuck calls are ended with reason `reconciled`.
* **Calls**: Admission is region-aware, so a call is only accepted where an agent can actually serve it.
* **Calls**: Lower browser-call connection latency.
* **Developer**: Account ID and Organization ID shown on the Developer page; link to API documentation.

## Flow functions

* **Builder**: **Flow functions** — the agent calls your HTTP endpoints mid-conversation. Structured requests (path, query and body parameters as JSON Schema), with each parameter bound to the model, to call context (caller, call, flow) or to a static value; values bound to context are never shown to the model. Attach a function to any agent with the **HTTP Request** node. See [Call your backend](/build/call-your-backend).
* **Builder**: Functions (called by the model) and actions (run automatically around an agent's turn) are now distinct concepts.
* **Models**: Settings a model doesn't support — a temperature on a reasoning model, for example — are stripped automatically rather than failing the call; the builder hides them.

## Public REST API, flow versions, API keys

* **API**: The **public REST API** at `api.talkif.ai` with OpenAPI documentation and an error catalogue endpoint.
* **API**: **API keys** with scopes, IP allowlists, expiry, usage tracking and error monitoring, managed under Developer → Credentials. See [Authentication](/integrate/authentication).
* **Builder**: **Flow versions** — every publish is an immutable version with notes, a semantic diff between versions, rollback, and phone numbers that follow *latest* or are pinned to a version. See [Flows and versions](/concepts/flows-and-versions).
* **Builder**: Voice browser with filters for TTS nodes; ElevenLabs shared voices; a prompt editor dialog on agent nodes.
* **Calls**: Unified call timeline with every speech event, function calls per turn, and the model used per message; redesigned call detail and cost breakdown; end reasons shown in the UI.
* **Billing**: **Charge history** — every billable event (call usage, number purchase and rental, analysis, recording storage, adjustments) with status and line items, alongside the transaction ledger. **Payment-method health** — cards show declined / expired / blocked with the decline reason, auto-recharge skips unusable cards, and cards can be labelled. See [Credits and payment](/account/credits-and-payment).
* **Telephony**: Redesigned number purchase; phone-number change with SMS verification.
* **Calls**: Faster browser test calls.

## Recording, Do Not Call, calling hours, data export

* **Calls**: **Call recording** with playback and download, per-recording storage billing, and a retention period you set. Delete a recording on demand. See [Transcripts and recordings](/calls/transcripts-and-recordings).
* **Calls**: **Do Not Call list** — numbers on it are never dialled, by any path; campaign contacts are skipped with the reason. See [Do Not Call](/calls/do-not-call).
* **Calls**: **Legal calling hours** enforced by the recipient's jurisdiction (US: 8 am – 9 pm local, TCPA), with timezone derived from area code when the contact has none.
* **Builder**: Dynamic prompts — `{{contact.*}}`, `{{call.*}}`, `{{system.*}}` variables with helpers, resolved at call time; AI-assisted prompt authoring; per-flow analysis instructions. See [Write prompts](/build/write-prompts).
* **Builder**: Start from a blank flow, or a template.
* **Calls**: Campaign contacts are **snapshotted at enrollment** — a contact edited mid-campaign is still called with the data the campaign started with, so every retry sees the same context.
* **Telephony**: Two regions (EU and US) — calls are served from the closer one; SIP numbers activate immediately (no verification call).
* **Billing**: Phone-number prices fetched live from the carrier per country; direction-based (inbound/outbound) telephony pricing; public pricing endpoint.
* **Account**: **Data export** — everything as one JSON file, email-confirmed, GDPR Article 20; account name and deletion from Settings → General; legal document acceptance with change notices.
* **Dashboard**: Onboarding checklist; toast notifications for every action.
* **Security**: SIP/Twilio credentials and two-factor secrets encrypted at rest; personal data redacted from logs.

## Campaigns, templates, OpenAI, Google sign-in

* **Calls**: **Campaigns** — call a contact list with a flow, with concurrency, call windows, an end time and per-contact outcomes; skipped contacts are previewed with reasons before you start. See [Campaigns](/calls/campaigns).
* **Calls**: Two-layer call status: the telephony leg (`status`) and the agent leg (`agentStatus`) reported separately. See [How a call works](/getting-started/how-a-call-works).
* **Builder**: **Flow templates** to start from; an **End Call** function for graceful termination; structured validation errors that name the field.
* **Builder**: OpenAI language models; Cartesia text-to-speech; ElevenLabs voice filtering; Soniox languages. Multi-provider STT/TTS per flow.
* **Contacts**: Import from CSV, JSON and vCard with phone-number normalisation and a country-code selector; tags with multi-tag filtering; export.
* **Telephony**: Caller ID on SIP calls; automatic carrier-edge selection from your carrier's location; timezone detection from phone numbers.
* **Billing**: Auto-recharge; Stripe-hosted payment methods and 3-D Secure; cost breakdown per call with cached and reasoning token pricing for every LLM provider; telephony billed at the carrier's actual per-call price.
* **Account**: Sign in with Google; organization invitations; personal and organization accounts.
* **Calls**: Faster first response — the greeting is prepared while the call connects; idle calls end automatically.

## New platform: calls, queueing, analytics

The current Talkif platform, rebuilt from the ground up. Everything below this entry is the product as it exists today; earlier history isn't listed.

* **Calls**: Every call runs through a capacity-managed queue — calls beyond your concurrent limit wait and are placed automatically as slots free, in priority order. Call source (direct, scheduled, campaign) is tracked on every record.
* **Calls**: Post-call **insights** — summary, sentiment, intents, action items, outcome — generated automatically, with contacts created or enriched from what callers say.
* **Calls**: Full call details with related contact, campaign and flow, and per-service cost breakdown priced dynamically per model.
* **Telephony**: Bring your own Twilio account, or a SIP trunk; phone-number search with full filters (area code, city, state, ZIP, pattern).
* **Account**: Organizations with members and roles; account deletion with a grace period; multi-factor authentication.
* **Dashboard**: Real-time updates for call status, balance and notifications; analytics dashboard with call quality.
* **Builder**: Flow status lifecycle (draft → testing → published → archived) and flow tags.