The Ditto Slack integration shipped some time ago as a notifier — a place where study completions surfaced and where you could ask the agent for a summary. As of today it is no longer a notifier. It runs the research project.
You can DM the agent in plain English — "recruit me twelve American mums in California and ask them about organic baby food" — and the agent will recruit the panel, ask the questions one at a time, poll for completion, run the synthesis, and post the share link back to your thread. The whole loop, in Slack, in roughly the same time it would take in the web app.
This release ships as twelve internal workstreams. The user-facing summary is short.
What's new
#### Group lifecycle from a thread
Create a group in plain English. Append agents to it (add three more West Coast respondents). Update its name. Archive it. The Slack agent now hits the live v1 endpoints for all of these — interview-style recruitment, append, remove, update, archive — and uses thread state to track which group your conversation is about, so you don't have to repeat the UUID every turn.
#### Study orchestration with auto-clarification
Ask for a study. If your request is ambiguous, the agent replies with the specific clarifying questions it needs ("how many participants?", "what's the brand we're testing?"). Answer in-thread; the agent picks up where it left off. Status is tracked through the new POST /v1/research-study-requests endpoint, with the full state machine — queued, in_progress, needs_clarification, completed, failed — surfaced as readable progress messages.
#### Synthesis pipeline
Once a study completes, you can ask the agent to compare segments, synthesise themes, surface recommendations, or extract follow-up questions. The pipeline picks the relevant studies from your recent history, ranks them by topical match, and pulls quotes with confidence scoring. When confidence isn't high, the agent includes citations automatically.
#### Share-link controls and stakeholder summaries
Ask the agent to enable a share link, regenerate it, or set an expiry. Or ask for a stakeholder summary in one of four presets — exec, client, product, marketing — and the agent assembles a deterministic output pack from the study insights, with the share link included where relevant.
#### Proactive checkpoints
The agent now nudges you. If a study you launched is still in progress when you'd expect it to be done, the agent posts an update. If a Zeitgeist metric you're watching shifts beyond a delta you've configured, the agent flags it. Cadence and rate limits are workspace-aware (minimum gap between proactive posts, maximum per hour) so the agent doesn't become noise.
#### Direct one-off questions
Don't want to scaffold a whole study? Ask the agent to put a single question to a single persona, or to an existing group. Useful for quick sense-checks where the survey overhead doesn't pay back.
What's changed under the hood
Inbound reliability: event handling now uses unique-constraint inserts for dedupe (rather than read-then-insert), with rollback on enqueue failure. Deterministic inbound job IDs (
slack_evt_) make troubleshooting easier when something does fail._ Durable DM identity: direct-message conversations now use a stable
dm:identity, with a migration that consolidates the legacy thread rows.Retry-safe posting: outbound messages go through a wrapper with bounded retries and consistent idempotency keys, so the agent doesn't accidentally double-post when a Slack API call hiccups.
Release controls: canary, eval, and regression gates can block ingress at the workspace level. Telemetry covers ingress routing, action dispatch, queue health, proactive delivery volume, and post-retry rates.
Contract parity: an automated parity analyser now compares the live API routes, the OpenAPI spec, and the Slack/MCP tool catalogue. CI fails on drift, so what the Slack agent thinks the API can do stays in sync with what the API actually does.
Also in this release
Two follow-up improvements landed in early March alongside the v1 launch and are part of the same surface:
One-click connect (3rd March). The Slack OAuth callback now auto-links the workspace to your Ditto organisation, so you no longer paste an API key after install.
Live progress reactions (6th March). When the agent is working on something that takes more than a moment, it adds an hourglass reaction to your message and posts human-readable status updates ("looking up the study", "drafting questions"). The reaction comes off when the work is done. Addresses the dead-air problem during long agent runs.
Getting started
If your organisation already has the Slack integration installed, the new behaviour is live — DM the agent and try a study request. If you don't, an org admin can install from the Integrations tab in your organisation settings.
Documentation lives in the Slack integration runbook.
---


