Skip to main content

Changelog

Follow new updates and improvements to kapptivate.

A release all about the details, to polish Kapptivate ✨

KTM 8.95

No big feature announcement this time. We spent the last two weeks on the details you run into every day: steps that wait properly, fewer dead ends, clearer screens and a long list of fixes.

⏱️ Improved: Mail and SMS code steps wait the way you want

Mail steps and SMS code steps now let you control how long to wait for a message and how often to check for it.

  • Timeout: How long the step waits. Mail steps now wait up to 60 seconds by default (was 20), SMS code up to 2 minutes.

  • Interval: How often the step checks. Every 3 seconds for mail, every 5 seconds for SMS, with a 1-second minimum.

  • No more guessing: When several messages match, the step fails right away instead of picking one randomly.

Both settings accept global variables.

πŸ“ˆ Improved: Create a campaign monitor from anywhere

Creating a monitor for a test campaign no longer means going through the Monitors page.

A Create monitor action is now available from:

  • The row menu in the test campaigns list

  • The selection banner

  • The campaign page header

The monitor form opens with your campaign already selected.

Also new:

  • Campaign monitors now offer the execution mode option, like single-test monitors

  • Monitors whose last run ended in a technical error no longer show as successful

πŸ”” New: Robot availability alerts in Slack, Teams or Jira

Following the Integration Center launch, robot availability notifications can now be sent to a connected Slack, Microsoft Teams or Jira integration.

Jira tickets now include which incident triggered them, including when a robot disconnects.

Alert emails are back to the Kapptivate design instead of a plain title and bullet list.

🧭 Improved: Real 404 pages, and fewer dead ends

  • 404 pages: A link to a test, monitor, execution, campaign, reusable component, device or agent that no longer exists now shows a proper 404 page with a way back to its list, instead of loading forever.

  • Reusable components in use: The delete dialog now lets you remove the component from tests that use it, then delete or keep it.

  • Variants in use: A variant used by tests, monitors or campaigns can no longer be deleted. Tests pointing at a deleted variant tell you clearly.

  • Smarter run forms: No longer ask for a value for a variable the test writes itself.

  • Safer saving: An edit made right after clicking Save is no longer lost. Renaming a test from the breadcrumb saves immediately.

πŸ” New: Session expiration in security policies

Admins can now make sessions expire after a delay of their choice, from 1 hour to 365 days.

The option is off by default. Turning it on doesn't log anyone out, and API keys are not affected.

πŸ“± Smartphone Improvements

  • Better input field detection: The tap on a field is kept before typing, so the test focuses the field first

  • Correct capabilities picker: Smartphone V2 tests now suggest Android or iOS capabilities instead of web ones

  • SIM preservation: Tests created from Live Session history keep the SIM of each step

  • Get XML upgraded: The Get XML button in Live Session now opens the new Find an element window

✨ Small things

  • Menus and selects can be used with the keyboard, and selects stay fast on long lists

  • Press keys step shows its keys in a field, like every other step

  • What's new window shows release notes in your chosen language

  • Your browser no longer offers to translate a French interface into French

  • Bulk monitor creation window explains why creation is unavailable

  • Admin user list shows when each user was last active

  • AI features are now available on on-premise installations

πŸ› Fixes

  • Rebooting a robot works again

  • Robot's Event logs tab lists its events instead of staying empty

  • Queued executions show the device they will run on

  • Clicking a long execution name in the list opens it correctly

  • Usage tag on device/agent pages matches the weekly figures below

  • Long device names no longer hide the phone number in the device field

  • Enable AI checkbox is read-only when other test settings are

  • Visual fixes on step chevrons, multi-line tooltips, failed steps inside step groups, device selection window and empty states

Find your elements faster with the smartphone recorder, and alerts that land in Slack, Teams & Jira

The smartphone recorder gets a major upgrade: instead of navigating through an XML tree, you now select elements directly on the screenshot. Plus, Slack, Microsoft Teams and Jira are now connected once and picked from a list when setting up alerts.

πŸ“± Improved: Find an element, on the smartphone recorder

The recorder's "XML tree" is now Find an element. Instead of navigating through an XML hierarchy, you now work directly on the screenshot: hover to highlight, click to select.

How it works:

  • Three scrollable columns: hover over the screenshot to highlight elements, click to select, and the hierarchy unfolds automatically

  • Selectors are ranked by reliability and shown on the screenshot, with the best one preselected and marked as recommended

  • When multiple elements match the same selector, you're asked which one you meant, with each match numbered on screen

  • A search bar filters the tree by label, text or id

Coords mode: When no selector can reach your target, switch to coordinates mode. A crosshair appears on the screenshot with live x/y values you can edit. The system clearly states that this approach depends on screen resolution.

WebView support: When the element tree stops at a WebView, a banner explains why and helps you access its contents.

More steps take a locator: The element selection modal now offers Tap, Long press, Fill input, Verify element and Extract value.

API Call step is now available in smartphone tests.

Learn more about mobile recorder

πŸ”Œ New: Integration Center

Connect your tools once, use them everywhere.

Slack, Microsoft Teams and Jira are now connected through OAuth from the new Integration Center. When setting up an alert, you simply pick a channel from a dropdown instead of copy-pasting webhook URLs.

Jira creates tickets automatically. Connect a Jira project, and tickets are created automatically when an alert fires.

Track notification delivery. The Incidents table now shows the notification status for each incident, with a failure indicator and a direct link to the Jira ticket when applicable.

⚠️ Action required: The old Slack and Teams webhook fields are gone. Reconnect your workspaces from the Integration Center to keep your existing alerts working.

🧩 Improved: Custom step editor, with AI

Custom step code now opens in a fullscreen editor for better readability.

  • AI assistant: Describe what you want in plain language, and the AI generates the code using your test's actual selectors

  • Insert variable button: Browse your product's variables and insert them with the correct syntax

  • Library indicator: Shows which library script your step is using

  • Dependency warning: If your script relies on data from a previous step, you'll be warned that it won't work standalone

☁️ Improved: BrowserStack

BrowserStack is now a proper cloud agent with its own dedicated page.

  • See your imported devices and account details

  • Your API key is validated before being saved

  • Removing a device removes it from all agents sharing that account

✨ Other Improvements

  • Deep links to test editor: Share a link that opens exactly the panel, step and tab you were looking at

  • Pick JSON/XML attributes visually: Instead of typing paths manually, pick them from the step's last response

  • Smarter warning defaults: Adding a warning on an API call step starts with Response time preselected, so you only need to set the threshold

  • Device status explained: Hover over a device status to see what it means

πŸ› Fixes

  • Secret variables are now masked everywhere results are shared outside the platform

  • Saving a test no longer clears its input variable values

  • Custom library steps stay within their product; exported tests keep their code

  • Global storage can write variables again when their group has a single variant

  • Slack alert failure reasons stay clickable regardless of error message content

  • Re-running a test works for legacy tests and uses the device from the original run

  • The test editor no longer crashes when reloading after a run or when showing in-test variable fields

  • Using the browser back button from the test editor no longer shows an error page

  • Save & run on a test that other tests depend on now opens run confirmation after the update

  • Executions missing from observability store now fall back to the legacy store

  • Execution steps no longer error when an API action hasn't produced a result yet

  • Screenshot preview labels, navigation arrows and close button work correctly

  • Step type picker stays on screen and scrolls properly when expanded

  • The "step added" confirmation no longer covers the Add step button

  • Hidden in-test variables appear read-only when the form is locked

  • Agent actions respect permissions again

  • Device search finds options like "iPhone"

  • Dialogs have accessible names and copy buttons are keyboard-navigable

Checks redesigned, in-test variables & campaign monitors 🧬

KTM 8.93

A major release. Checks are now tailored to each step type with clear plain-language conditions. Variables become a real input/output system with runtime capture and updates. Monitors can now watch entire test campaigns. And yes, dark mode is here 🀩 .

βœ… New: Checks, redesigned from the ground up

Checks are no longer one-size-fits-all. Each step type now offers checks that make sense for what it does.

What's changed:

  • Step-specific checks: API, email and web steps each get their own relevant checks

  • Success and warnings are independent: A warning no longer decides whether a step passes. It's always reported separately.

  • Plain language conditions: "Passes if Status code = 200", "Warns if Response time > 10s"

  • AND/OR logic on both success conditions and warnings

Existing tests keep their exact pass/fail logic unchanged.

πŸ” New: API, Email & PDF Checks

API responses: Target a specific JSON field, use variables in header names or XML paths, compare body structure with the new matches-JSON operator.

Get mail steps: Check sender, recipient, CC, subject, content and attachment name.

New Check PDF step: Download a PDF from a URL and check its extracted text, page count, file size and file name.

🧬 New: In-test variables, inputs and outputs

Variables become a proper input/output system.

Declare inputs where the test lives. The Environment tab is now grouped into sections with + buttons to create in-test variables, global variables or variable groups without leaving the form. Duplicate names are blocked with an inline error.

Capture outputs from the run. An API Call step can write its response into a variable: from a JSON path, an XML path, the entire body or a response header. Optional default values prevent step failures when nothing is extracted. Steps that create variables show them as a blue chip on the canvas.

Update a global variable at runtime. The new Update Variable step (web and smartphone) reassigns an existing variable while the test runs. A token captured at step 3 can be written into a global variable and used by whatever comes next.

Set Local Variable owns its value. The former Set Variable step now holds both name and value, accepting variables and random functions. Its variables can no longer be overridden at launch: the step is the single source of truth.

Hide sensitive values. In-test variables and Set Local Variable steps can be masked in execution results. The flag follows into run confirmation, monitors and campaign overrides. Reveal on demand when needed.

Scoped suggestions. Variables created by a step are only suggested in steps that follow it. References above their creating step show as a red tag.

Cascading renames. Renaming a variable updates checks, campaigns and monitors that use the test, with a toast reporting what was updated.

🎯 New: Monitor a whole test campaign

Create a monitor on a test campaign instead of one monitor per test.

Campaign monitors support per-test overrides and show up in the monitors list with a type filter. In the Realtime Status dashboard, drilling into a campaign shows an aggregated verdict, success count and per-test breakdown.

🧩 New: Custom step library

JS snippets can now live in a library and be referenced by your tests instead of copied into each one.

A linked Custom step shows the library step it points to, with a read-only view of its code and a way to detach. Editing or deleting a library script tells you how many tests it will update.

Custom step code is now edited directly in the step panel, like every other step type.

πŸŒ“ New: Dark mode

Pick your display mode in My Account β†’ Preferences: Light, Dark, or Auto to follow your system.

TV mode gets its own day/night toggle in its top bar, so a screen left running in a control room can be set independently from your personal preference.

✨ Other Improvements

  • BrowserStack support: Back-end ready, front-end with agent setup coming soon

  • Send results by email: Export execution results directly from the execution details page

  • USSD Live export: Export a USSD Live session as a real Excel test report

  • Product switcher: Switch between products from the Status Details breadcrumb

  • Chronological order: New timeline option with oldest bucket first

  • TV mode timeline: Compacts itself, filter popover can select all tests at once

  • Cleaner step display: Extract value, SMS code, mail code, email link and Get text steps show selector and variable name on one line

  • Legacy Overview removed: Bookmarked URLs redirect to Realtime Status

  • Compact check rows: More space-efficient layout

  • Bulk delete checks: Right-click the "N checks" chip to delete all checks at once

πŸ› Fixes

  • Campaign monitors now carry every in-test variable of every test, so steps get values shown in the form instead of empty values

  • Running a campaign with the same test multiple times keeps the variant configured for each occurrence

  • Typing in the middle of a variable field no longer moves cursor to the end

  • Opening tests created before JSON path checks update no longer crashes the editor

  • Email checks on Get mail steps survive every save path

  • Step details panel scrolls when there are more checks than fit on screen

  • Long JSON paths and values no longer overflow check rows

  • Variables extracted by a step no longer ask for an input value

  • "Add tests" modal in campaigns no longer comes up empty for operators with 100+ products

  • Reusable components no longer leak into test list screens

  • Web recorder can start when starting URL contains variables

  • Test campaigns show the selected value of choice variables, no longer showing secret variables as empty in red

  • Opening fullscreen images from execution results displays above the modal

Earlier updates