Changelog

What we shipped

New features, improvements, and fixes across the platform. Everything here is live — go try it.

New

GDPR Data Export

Export all your account data in one click — contacts, calls, flows, billing history, and more.

You can now export a complete copy of your account data directly from Settings > Data Export.

The export includes 12 data categories: account info, users, contacts, calls, flows, phone numbers, VoIP providers, call schedules, campaigns, charges, balance transactions, and notifications.

How it works

  1. Request an export from Settings
  2. Confirm via email (security verification)
  3. A background job collects and packages your data
  4. Download link arrives by email — valid for 24 hours

The export is a structured JSON file, machine-readable and portable. Sensitive fields like passwords and MFA secrets are excluded automatically.

Limits

  • One active export at a time
  • 24-hour cooldown between exports
  • Download available for 24 hours after generation

This fulfills GDPR Article 20 (right to data portability). Full details on our Privacy Policy.

New

Dynamic Prompt Resolution

Every call now gets a personalized prompt assembled at call time — no latency tradeoff for personalization.

Every prompt in Talkif is a Handlebars template. When a call starts, the platform resolves that template against real data: who the contact is, why they're being called, what business is calling, and what time it is in their timezone.

Four namespaces are available at resolution time:

  • contact.* — name, email, company, timezone, language, notes, interests, tags, custom fields
  • call.* — direction (inbound/outbound), caller and callee numbers
  • account.* — your business name and identifier
  • system.* — current date, time, and timezone

A template looks like this:

handlebarsYou are calling on behalf of {{default account.name "our office"}}
to confirm an upcoming appointment.
 
Address the contact as {{default contact.firstName "there"}}.
 
{{#if contact.email}}
  Offer to send a confirmation email to {{contact.email}}.
{{/if}}
 
{{#if (includes contact.tags "vip")}}
  This is a high-priority contact. Be especially attentive.
{{/if}}

The engine supports conditionals, comparisons (eq, ne, gt, lt), regex matching, array operations, fallback defaults, and existence checks. Template resolution runs in microseconds — the agent picks up, greets the caller by name, and references their specific context in under one second.

New

AI-Assisted Prompt Authoring

The Prompt Library now includes an AI assistant that knows your contact schema, available Handlebars helpers, and account-specific custom variables.

Writing Handlebars templates from scratch isn't always intuitive — especially when you have dozens of available variables and helpers.

The Prompt Library now includes an AI assistant that knows your schema. Describe what you want in plain language. It generates a complete, valid template using only variables that actually exist in your account.

The assistant enforces proper Handlebars syntax, avoids literal dialogue scripts, and supports multi-turn refinement. You stay in control of the final template — the AI just gets you there faster.

textYou: "I need a prompt for appointment reminders that 
      checks if they're a VIP and mentions their timezone"
 
Assistant generates:
  {{#if (includes contact.tags "vip")}}
    This is a priority client. Be especially accommodating.
  {{/if}}
  Their local time is based on {{default contact.timezone "UTC"}}.

No more guessing which variables exist or getting the syntax wrong.

New

Campaign Contact Snapshots

Contact data is now frozen at campaign enrollment time. No more mid-campaign data drift.

When you run an outbound campaign, contact data is now captured at enrollment time and frozen for the duration of the campaign.

If a contact's name, company, or notes change between scheduling and dialing, the call still uses the original data. Retries and rescheduled attempts stay consistent — the agent references the same context across every attempt.

This prevents a class of bugs where mid-campaign CRM updates cause the agent to reference stale or conflicting information. The prompt your agent receives on retry #3 is identical to what it received on attempt #1.