New feature
Matrix questions: rate a whole list of things on one scale
You can now ask a Matrix question: give participants a list of items and one shared rating scale (1 to 5 by default, and you can relabel every point), and they rate the lot in one go. On WhatsApp it arrives as a proper grid the participant fills in rather than a long string of separate questions. Building one is a spreadsheet-style grid in the study builder, rows down the left and the scale across the top, with drag-to-reorder and in-place editing. You can randomise the row order per participant, translate the column labels, and the WhatsApp confirmation now names each row so it reads "Street food: 5, Home-cooked: 3" instead of "Rating: 5, Rating: 3". It works across Survey, Recurring Survey, AI Interview and Multi-Activity studies. This was the single biggest capability gap clients kept running into.
New feature
"Select all that apply" questions arrive as a tappable form
Multiple-choice questions that let people pick more than one answer used to reach participants as a plain text list they had to reply to with letters ("reply A, C, E"). They now arrive as a clean WhatsApp form with tappable checkboxes, the same format as Matrix questions, including any "pick at least or at most N" limits and a Back button for changing an earlier answer. Studies that don't have the form set up keep working exactly as before with letter replies, so nothing breaks mid-field. Single-select multiple choice is unchanged.
New feature
Export results as numeric codes, not just answer text
Quant teams working in Q or SPSS can now choose how a CSV or Excel export is written. Answer values can come out as labels, as numeric codes, or as both in separate columns. Column headings can be the full question text or short variable names (Q1, Q2). Multi-select questions can be split into one 0/1 column per option, matching the SPSS export. A small options screen appears when you click Export and it remembers your choice, so you don't set it every time. It's on Survey, AI Interview and Recurring/Diary results. This is presentation only: the raw data and the existing SPSS (.sav) export are unchanged.
New feature
17 ready-made interview briefs, and an assessor that reviews yours
The Research objectives step of an AI interview now has two new things. A template gallery of 17 interview briefs, written from studies that actually ran well in production: browse by category or search, preview the full brief, and start from it instead of a blank box. And an objective assessor that reads your brief back to you when you've finished writing it, with a quality rating, a plain-language summary and specific fixes you can apply in one click. It can also fill in your target audience, key topics and required questions, and anything it changes can be undone. The assessor is advisory only. It never changes your campaign settings on its own.
New feature
Pipe someone's earlier answers into a later question's options
A question's answer options can now be built from what the participant picked earlier, instead of being typed out by hand. Ask which brands someone uses, then have the follow-up show only those brands. You set it up in a Piping panel next to Question Logic in the builder, and the options are resolved at send time from that person's actual prior answer. It handles the awkward cases properly: if the source question was skipped, answered with "none of the above", or left unanswered, the piped question is skipped forward rather than sent with nothing in it.
New feature
Retry a reward payment that failed
Reward Approvals now has a Failed tab listing every payment that didn't go through, why it failed, and how many times it was tried, with a Reprocess button on each row. Some failures happen for reasons that go away, for example the airtime float being topped up a few minutes later, and until now a failed payment was simply stuck. Reprocess now genuinely gives a payment a fresh set of attempts. It also can't accidentally pay someone twice: before sending again it checks with the provider whether the earlier attempt actually went through, and adopts that result if it did.
New feature
Yazi now works properly on a phone
We spent the week making the web app usable on a phone rather than a shrunken desktop site, and the whole batch is live. Pop-up dialogs slide up as full-width sheets from the bottom instead of stranding a thin card mid-screen. Responses arrive as readable cards, one respondent per card with their answers stacked, plus a Cards/Table switch if you'd rather compare across people, and your choice is remembered. The dashboard campaign list, broadcast history, Share screen and broadcast send flow all stack one item per row instead of squeezing into columns. The study title and the Build/Share/Responses/Reporting tabs are readable and scroll cleanly. The navigation drawer has a close button and responds to Escape. Adding a question opens the card fully expanded, and the per-question actions sit behind a labelled menu instead of running off the edge. And the floating Ask Yazi button no longer sits on top of the main Continue button, which was making the primary action partly untappable. Desktop is unchanged throughout.
Improvement
Reward payouts now wait for credits instead of getting stuck
If a participant finished a study at a moment when the account had run out of reward credits, their payout used to get stuck and never go out, even after the account was topped up. Someone had to re-approve each one by hand, and in practice people were being left unpaid. Those payouts now park in a clear "waiting on credits" state and send themselves automatically the moment the balance is topped up. The rewards screen shows that state plainly instead of spinning.
Improvement
Big studies open twice as fast and no longer freeze
Clicking "Load all" on a study with hundreds of responses could lock the browser tab for minutes and sometimes looked like a crash. The cause turned out to be our own session-recording tool trying to capture the entire results grid every time it redrew, which on a 1,523-respondent study was 91 percent of all the work the browser was doing. That recorder now skips results grids, and the results page no longer builds a hidden second copy of the whole table for phones when you're on a laptop. On the study that reported it, Load all went from roughly 18 minutes to 18 seconds. Opening a large study's responses went from about 22 seconds to about 11, and the page stays usable throughout. Three places that were only ever looking at the first 100 responses are fixed too: adding data to a study, downloading photos and voice notes, and approving participant incentives, which previously meant you couldn't see the answers of the 150th respondent you were paying.
Improvement
Shared results links show the whole study, and no longer carry participant details
The public shared-results link got a redesign: a proper header with your logo, the study name, who shared it and a "view only" pill, cleaner white cards, and a Bar/Table/Pie toggle the viewer controls. It also closed a real privacy problem. The public link previously exposed participant phone numbers and demographic details in its underlying data; respondents now appear as "Respondent 1", "Respondent 2" and that data is stripped before it leaves our servers. Separately, a shared link for a multi-activity study used to show only the first activity. It now shows the whole study, every activity's charts stacked under the study title, with a per-activity picker for transcripts. Existing links get all of this automatically, so nothing needs resharing.
Improvement
A readable phrase to start a study on WhatsApp
The message a participant sends to begin a study used to be a bare code, which people mistyped, edited or deleted, and then hit a dead end. It now reads as a sentence, for example "Send to start #4F9A1", and the Share Link modal offers the phrase in each language the study runs in. Campaigns already launched are unaffected, since a phrase is only ever finalised once at go-live.
Improvement
Change how every question displays in one click
The results toolbar now lets you switch every question to Bar, Table or Pie at once, instead of setting each one on a large study, and the toolbar itself is icon-first so it stops crushing the stats row on a laptop. In Table Data you can also hide or show a whole family of columns at a time (Survey answers, Themes, Transcriptions, Translations) rather than toggling columns one by one to reach the transcripts.
Improvement
Turn the participant progress counter on or off
The "Question X of Y" counter that participants see is now under your control on every study type. The Hide Message Count setting, previously only on AI Interviews, is now on Surveys, Recurring Surveys, Diary studies and Live Forms, and a bug where the setting didn't actually take effect on surveys is fixed. Newly created campaigns hide the counter unless you switch it on. Anything already running is unchanged.
Improvement
Question images now show in the transcript
When a study attaches images to a question, for example asking people to rate a logo or a pack shot, those images go out to participants on WhatsApp but were missing from the transcript on the Responses screen. You'd see the question and the answer but not the thing the participant was actually looking at, which made responses hard to read. The transcript now shows each question's images, with captions, in order, exactly as the participant saw them, across all four study types.
Improvement
Activity schedules now explain what they actually do
A setting called "Only send once the previous activity is completed" was saving fine but nothing in the platform ever read it, so switching it off changed nothing. On one live study that meant 19 people were expected to get an invite and 3 did, with nothing on screen explaining the gap. We removed the switch rather than leave it promising something the platform can't do, and put a "How this schedule works" section in its place that explains the real behaviour: each participant moves at their own pace, the time you pick is the earliest an invite can go out after they finish the previous activity, people who haven't finished wait rather than being skipped, and if the time has already passed when they finish, the next activity opens straight away. Second fix on the same screen: if you hadn't picked a broadcast or written an invite message, Save still looked clickable and silently did nothing. It's now properly disabled and tells you which field needs filling in.
Improvement
Create a broadcast template without leaving the send flow
Sending a broadcast from the Share tab used to bounce you out to the Broadcast Messages screen if you needed a new template, and you'd lose your place. There's now a "+ New template" button inside the send wizard that opens template creation on top of it, so you land back in the same flow with your template ready. Works across all campaign types, in English and Portuguese. Related: extra columns in an uploaded recipient CSV, for example surname, category or group, now appear as selectable message variables. Previously anything beyond phone and name was silently dropped from the variable list, the preview and the outgoing file.
Improvement
Ask Yazi understands Matrix questions, and speaks in names not IDs
Ask Yazi didn't know Matrix questions existed. If you asked for one it said it couldn't, and if it drafted a study that needed one it quietly substituted an ordinary open-text question, so you got a weaker questionnaire than the one you described with no indication anything had changed. It now suggests, builds and converts Matrix questions properly, and tells you when one won't work on a given campaign. Separately, when it proposes a change the confirmation card now shows the campaign's name and the question number ("Q1") with the answer options as tags, instead of a long internal ID and a key like "iXjCCMn".
Improvement
Filter media by the answer someone gave
The media library filter that lets you pull voice notes and photos from people who gave a particular answer has been in the product for a while and, it turns out, never matched anybody. It's now fixed end to end, including the case where option wording was edited in Build after respondents had already answered, which used to break the match. The filter list has also been reorganised into a Questions folder split by with-media and without-media, instead of one long flat list.
Improvement
The Share tab now speaks Portuguese
Every piece of wording on a campaign's Share tab now comes from our translation files rather than being written into the page, so the Portuguese white-label build stops showing English on that screen. Nothing changes for English users. We also added an automatic check that fails the build if any of this wording goes missing, because when a translation is absent the system quietly prints its own internal label on screen instead of raising an error, which normal testing never catches.
Improvement
Better test-run coverage in the Simulator
The Test Simulator's Run Simulation view was reworked, with logic-path coverage so you can see which routes a test run exercised, and detail on past runs. Separately the workflow canvas got a usability pass (edge routing, click handling, drawer navigation and the embedded logic-rule editor), and "Decision Map" is now called "Logic Map" throughout the builder.
Improvement
LSM bands calculate automatically on the Ipsos panel
LSM, the 1 to 10 Living Standard Measure band worked out from a participant's household answers, used to be calculated only as a side effect of a Tivian webhook, so any study without that webhook attached never produced a band. It now calculates whenever a participant finishes a survey and is stored on the participant, so quota logic and per-band broadcasts can read it. No change for any organisation other than Ipsos.
Improvement
Security and privacy hardening across the platform
Another round of hardening shipped ahead of the upcoming audit. The parts worth knowing about as a client: participant answers, voice-note transcriptions and the AI interviewer's replies are no longer written into our logs word for word, so a survey answer containing a name, a location or a health detail can't be read out of a log; the AI interviewer is now protected against instructions hidden inside an uploaded participant list, with uploaded details clearly marked as information to read and never as commands to follow; we send the AI less personal data, with surnames removed entirely and names shortened to a first name, which matters for POPIA and GDPR because those prompts are processed outside South Africa; two paths that create and update AI interview records were missing an ownership check and now confirm you belong to the organisation that owns the interview before anything is written; and the production database has stopped accepting connections from a broad whole-network rule, so only the specific services that need it (plus the team VPN) can reach it, with a watchdog that checks every five minutes. No customer data was changed and we found no sign any of these gaps were ever used.
Fix
Broadcast "Started" counts were reading zero
If you sent a broadcast from a multi-activity study, Send History showed Started: 0 even when people had plainly begun, which made the whole table look untrustworthy. Two things were wrong: broadcasts sent from a study were filed against the study while the count looked them up against each individual activity, so it found nothing; and someone only counted as "Started" once they had replied, so anyone partway through was invisible. Both are fixed. Across the platform this recovered 1,175 participants who were being under-counted, 155 broadcasts now report higher, correct numbers, and not one went down. The page also loads about five times faster.
Fix
Failed reward payouts no longer show as if they were fine
On the Incentive Approvals screen, a reward payment that failed was displayed as a plain grey "Not required", visually identical to one that had been paid. The "Failed" counter at the top was structurally incapable of ever showing a number, so it always read zero. On live data that meant 61 rewards which genuinely failed to reach participants were invisible on that screen, with 50 of them counted under "Approved". A failed payout now shows as a red "Failed", the counters add up to every reward in the list, and a failure is never counted as approved. Reward Approvals also gained a search by participant ID and a CSV export of the visible list.
Fix
PowerPoint downloads work again on multi-activity studies
Downloading a PowerPoint from a study activity had been failing since 13 July with a red "Generation Failed" banner that only said "Network Error", so no study-level PowerPoint had been generated in that time. The report was never the problem: the request was being sent to the wrong one of our two APIs and rejected before anything started, and a browser reports a missing endpoint the same way it reports a lost connection, which is why the error pointed at the network. That's fixed, and we've added an automated check that verifies every request the app makes actually points at an API that can serve it, since this same mistake has reached production eight times over the past months. Campaign-level PowerPoint export was never affected.
Fix
The completion message setting now stays where you put it
Switching on "Send a completion message" wouldn't stick: it looked saved and then quietly reverted after publishing, and once a study had the closing message off there was no way to switch it back on from the platform at all. The closing message is where clients often put payment instructions or a link, and two of the affected client's live surveys were finishing without one. The reverse case is fixed too, where publishing could wipe a deliberately switched-off setting. Applies to every organisation and all four study types, and nothing anyone had written was lost.
Fix
Participants mid-study are no longer told they aren't enrolled
Someone partway through a multi-day study who sent a message in the gap after finishing one activity and before the next one opened could be told "you're not enrolled in any interviews at the moment", which reads like being removed from the study. They now get a proper reply saying they're still taking part and we'll message them when the next activity is ready, in whichever language they're already being spoken to in. Related: a participant who finished an activity later than planned used to have the next activity start cold without the invite message the researcher had written, and that invite is now sent first. The Opt out button on those invites also wasn't actually opting anyone out, and on Portuguese studies it would have restarted the study rather than ending it. Both fixed.
Fix
Messages WhatsApp rejects are no longer lost
When someone answers very quickly, WhatsApp sometimes refuses the next message because it limits how fast one business number can message one person. That message used to be thrown away, leaving the participant waiting for a question that was never coming, with nothing recorded. Rejected messages are now saved and automatically resent a few seconds later, and if one still can't be delivered after several tries it stops and raises an alert rather than disappearing quietly. Surveys aren't any slower: the first attempt is still sent immediately and nothing is saved or retried unless it has already failed. Nobody gets asked the same question twice.
Fix
Answers and photos that were being silently dropped
Four separate ways a participant's answer could go missing are fixed. Photos sent at the moment a survey was expecting a button answer were being discarded while the participant still saw a "thanks for your images!" message, so nobody knew data was lost; they're now held and attached to the upload question. A participant removed from a study and then re-added had their new answers written but permanently hidden from the transcript, Table Data and every export. People recruited through a Facebook ad were answering the consent question and never getting the button through to the actual survey, because the redirect was sent using the wrong WhatsApp number's credentials and Meta rejected it. And participants tapping a click-to-chat link sometimes had the whole link pasted as their message, which our system couldn't read as a survey code, so they were told they weren't enrolled in anything.
Fix
Round selfie videos now get a reply
If someone answered a question with one of WhatsApp's round "instant video" selfies, our bot said nothing back. The message looked delivered on their side, no answer was recorded, and the study appeared to have gone dead, so people simply stopped. WhatsApp doesn't pass those videos to us at all, it only tells us "unsupported type", and we were quietly accepting that. Participants now get told straight away that we can't accept that format and to send it another way, in whichever of the 17 languages they're being spoken to in, rate-limited to one notice per person every five minutes.
Fix
Duplicating a study no longer copies the original's routing
Duplicating a campaign left the copy's logic rules pointing at the original campaign's questions, which surfaced in the logic editor as blank or "Participant Language" rules defaulting to Q1. Fixed in both the Duplicate Campaign button and the study/activity duplication path, and the one live campaign affected has already had its data corrected. No participant was affected.
Fix
The question builder no longer loses focus while you type
When you were building a survey and typing an answer option, the text box was losing focus on almost every keystroke, so you'd type a letter and get kicked out. This was a large part of why people abandoned question setup partway through. Building questions holds focus properly again.
Fix
The Participants tab shows the right information
Three things on the Participants tab were wrong. "Last activity" was always blank even for people who had clearly started, because the information was being dropped before it reached the screen. "Source" said "Link" for people uploaded by CSV, because the rule was backwards and treated an inferred link as more trustworthy than a file someone deliberately uploaded. And people who'd already been sent a broadcast still showed "Ready to invite" on multi-activity studies. All three are fixed, along with the filter counts, which were under-counting in the same way.
Fix
Panel completes from PureSpectrum are credited properly
When someone from a paid panel finished one of our surveys, we sent them back to be marked complete and paid, and that handover has to be cryptographically signed. Ours wasn't signed correctly, so it was rejected, and silently: the respondent saw a "thanks, you're done" screen, so nobody had any signal anything had gone wrong. They just never got paid and we never got credited. Fixed end to end, and anything unexpected is now rejected outright rather than waved through as a complete.
Fix
Small things that were quietly wrong
A handful of smaller fixes worth knowing about. "Other" now appears as a selectable answer in Question Logic when its toggle is on, instead of being dropped from the routing rule builder. The Insights tab shows the survey analysis that already existed on studies set up as interviews but answered like a survey, and shows a proper "no insights yet" empty state rather than a blank section or a copy of Graph Data. Test-data deleted with "Remove all simulated" now disappears from results immediately instead of lingering for up to fifteen minutes. Publishing no longer reports false "empty text" errors against the wrong question number or creates phantom duplicate blocks on retry. The Test Simulator, which had been unable to run any survey since a protective change the day before, works again. You can finish signing up on a short browser window, where the Create Account button used to be out of reach with no way to scroll. And new organisations reliably get their demo survey data, which for accounts with AI switched off was being thrown away by a failing AI-interview step. In the agent takeover screen, a participant's first message after connecting no longer goes missing, and photos a researcher sends now display instead of showing as broken images.