Send Research Insights to Slack: Real-Time Customer Interview Notifications via Webhooks
Pipe customer interview insights from Koji into your Slack workspace in real time. Use Koji webhooks to notify a #research channel the moment an interview completes, post quote highlights to #product-feedback, or alert #cs-alerts when a churn signal is detected. Step-by-step setup with a working Slack incoming webhook recipe.
The 60-second answer
Koji can post live customer interview insights into any Slack channel in three steps: create a Slack incoming webhook, register that URL in Koji as a webhook endpoint subscribed to interview events, and choose which events trigger a Slack message. The first interview completion will land in your channel within seconds — full quote, theme, quality score, and a link to the transcript. No third-party Zapier middleman required, no daily delay.
If you have ever wished your team got pinged in Slack the moment a customer says "I'd pay double for that feature" — this is the workflow.
Why pipe research into Slack?
Research loses 80% of its impact when insights sit in a dashboard nobody opens. A 2024 Forrester study found that organizations with real-time research distribution channels were 3.5x more likely to act on customer feedback within a sprint, vs. teams reading quarterly reports.
With Koji webhooks → Slack you get:
- Real-time visibility — every completed interview, every theme detected, posted instantly
- Cross-functional reach — engineers, designers, support, and execs all see the same raw quote
- Faster product decisions — a single quote in
#product-channelcan shortcut a 30-minute meeting - Customer obsession at scale — your CEO can lurk on
#voice-of-customerand stay close to users without scheduling a single call
Koji's webhooks fire on study events; Slack's incoming webhooks accept structured JSON; the two glue together with a 30-line forwarder or a no-code automation tool. We will show both.
Webhook events Koji can send
Koji emits webhook events for the moments that matter:
interview.started— a participant began an interviewinterview.completed— interview finished, transcript and structured answers are readyinterview.quality_passed— completion scored 3+ on Koji's quality gatetheme.detected— a new theme has emerged across multiple interviewsreport.generated— a research report is ready to share
For most teams, the high-signal triggers are interview.completed and theme.detected. Set up a Slack channel for each.
Setup: Slack → Koji in 3 steps
Step 1 — Create the Slack incoming webhook
- In Slack, go to Apps → search for Incoming Webhooks → click Add to Slack.
- Pick the channel where research insights should post. We recommend
#voice-of-customerfor general research,#cs-alertsfor churn signals, and#product-feedbackfor feature requests. - Slack generates a unique URL like
https://hooks.slack.com/services/T0000/B0000/XXXXXXXX. Copy it.
Step 2 — Decide on payload shape
Slack's incoming webhooks accept either a plain {"text": "..."} payload or rich Block Kit JSON. Koji emits JSON like:
{
"event": "interview.completed",
"study_id": "abc123",
"study_name": "B2B onboarding research",
"respondent_id": "anon_xyz",
"duration_seconds": 720,
"quality_score": 4.5,
"summary": "Participant struggled with onboarding step 3...",
"top_quote": "I almost gave up at the import screen.",
"themes": ["onboarding friction", "data import"],
"transcript_url": "https://koji.so/p/abc123/r/anon_xyz"
}
Since the payload shapes differ, you need a tiny middleware that reformats Koji's JSON into Slack's format.
Step 3 — Connect with one of three integration patterns
Option A — No-code (5 minutes)
Use a tool like Zapier, Make, or n8n with this recipe: trigger on Koji webhook, transform with a "format JSON" step, post to Slack with the incoming webhook URL. Map the Koji top_quote field into the Slack text field with formatting like:
New interview completed for {{study_name}}
Quote: "{{top_quote}}"
Themes: {{themes}}
Quality: {{quality_score}}/5
Full transcript: {{transcript_url}}
Option B — Lightweight serverless (15 minutes)
Deploy a small forwarder on Vercel, Cloudflare Workers, or AWS Lambda. The forwarder accepts Koji's POST, reformats it into Block Kit, and pushes to Slack. A complete TypeScript example lives in our Webhook Setup guide.
Option C — Direct via the Headless API (advanced)
If you are already using the Headless API, have your existing backend listen for Koji webhooks and post to Slack alongside the work it already does (write to your data warehouse, update CRM, ping PagerDuty for negative sentiment, etc.). This is the route most enterprise customers go.
Step 4 — Register the endpoint in Koji
In Koji, open Settings → API & Webhooks → Add Webhook. Paste your forwarder URL, pick the events to subscribe to, and save. Koji will sign every request with a shared secret using HMAC-SHA256 — verify the signature in your forwarder. See MCP Authentication & Security for the signature-verification pattern.
Fire a test event from Koji's webhook console. Within a few seconds you should see a message appear in Slack.
Five Slack research workflows worth setting up
1. Real-time interview firehose
Channel: #voice-of-customer. Trigger: interview.completed with quality_score ≥ 3. Posts the top quote, themes, and transcript link. Keeps the whole team close to customers.
2. Churn-signal alerting
Channel: #cs-alerts. Trigger: theme.detected where theme matches cancel|leaving|switching|too expensive. Tags your CS lead. Pulls churn signals out of noisy data immediately.
3. Feature-request capture
Channel: #product-feedback. Trigger: theme.detected matching wish|need|missing|wanted. Auto-creates Linear tickets via the Linear Slack app. Closes the loop from interview to backlog.
4. Daily research digest
Channel: #research-daily. Posts a 5pm summary every day: number of interviews completed, top 3 themes, top 3 quotes, quality score average. Ideal for execs.
5. Stakeholder mentions
Channel: project-specific (e.g., #proj-checkout-redesign). Filters webhook events by study_id and posts to the matching project channel. Keeps domain stakeholders in the loop without spamming everyone.
Why webhooks beat the "export CSV every Monday" workflow
| Capability | Manual CSV export | Slack via Koji webhook |
|---|---|---|
| Latency | 1–7 days | Seconds |
| Distribution | Email attachment to 3 people | Whole channel sees it |
| Discoverability | Sits in someone's inbox | Searchable in Slack forever |
| Action time | Days (waits for next standup) | Immediate (link → discussion) |
| Setup time | Weekly recurring chore | One-time, runs forever |
Platforms like Koji eliminate the "research bottleneck" entirely. Insights flow into the same channels where decisions already happen.
Filtering noise: only Slack the signal
Two controls keep your channels useful:
- Quality gate — Koji only sends webhook events for conversations that pass the quality gate (score 3+). Low-effort or abandoned interviews never trigger Slack. See How the Quality Gate Works.
- Theme thresholds — Configure
theme.detectedto fire only when ≥3 unique respondents mention the same theme. Prevents single-data-point overreaction.
For sensitive employee research running in Anonymous Mode, webhook payloads automatically strip identifiers — only theme-level data is forwarded.
Combining with Koji's 6 structured question types
When your study uses Koji's structured questions (open_ended, scale, single_choice, multiple_choice, ranking, yes_no), webhook payloads include the exact structured answer for every question. This means your Slack message can say:
"Sarah scored NPS as 9/10. Top reason for the 9: 'The new dashboard saves me 2 hours a week.'"
…instead of just an unstructured quote. Single, parseable, ready to ingest into your analytics warehouse alongside the conversation.
Security best practices
- Verify HMAC signatures on every incoming Koji webhook before forwarding to Slack. Never trust unsigned webhooks.
- Store the Slack webhook URL as a secret in your environment (not in code). Anyone with the URL can post to your channel.
- Use a per-study webhook URL if you have sensitive studies. Slack lets you create unlimited incoming webhooks; isolating them per channel limits blast radius.
- Rotate secrets quarterly — Koji supports webhook secret rotation in the dashboard.
- Apply Koji rate limits — see Rate Limits and CORS. High-volume studies (1,000+ interviews/day) should batch events through a queue.
What about Microsoft Teams, Discord, or Mattermost?
The same pattern works. All three accept incoming webhooks. Replace the Slack URL with their equivalents. The Koji-side configuration is identical — you control the destination URL.
Plan availability and pricing
Webhooks are available on every Koji plan, including Free. Each interview costs 1 credit (text) or 3 credits (voice). The webhook itself is not metered — you can fire as many as your study generates without additional cost. The Insights plan (€29/mo) suits teams running ~30 interviews per month; the Interviews plan (€79/mo) supports always-on programs.
Related Resources
- Webhook Setup — full webhook configuration walkthrough with code samples
- Research Automation Webhooks — building real-time research pipelines
- Headless API Overview — running Koji programmatically
- Structured Questions in AI Interviews — the 6 question types that produce parseable data
- How to Automate User Research — building 24/7 research pipelines
- MCP Authentication & Security — verifying Koji request signatures
- Real-Time Research Insights — the Koji insights dashboard
Related Articles
Real-Time Research Insights: How to See Themes, Quotes, and Quality Scores as Interviews Complete
Stop waiting weeks for analysis — modern AI research platforms surface themes, structured-question distributions, sentiment, and quality-scored quotes the moment each interview ends. Here is how real-time research insights work in Koji and how to design studies that take advantage of them.
Research Automation: How to Build Real-Time Research Pipelines with Webhooks
Koji webhooks push interview and report data to your systems the instant something happens — enabling Slack alerts, CRM sync, automated tagging, and fully automated research pipelines that operate without manual intervention.
Webhook Setup
Receive real-time notifications when interviews complete and analysis finishes using webhooks.
Rate Limits and CORS
Understand how Koji's API rate limiting works and how to configure CORS origins for your integration.
Plan Comparison Guide
Compare Koji's credit-based pricing plans — Free, Insights, Interviews, and Enterprise — to find the right fit for your research needs.
How the Quality Gate Works
Understand Koji's quality gate — conversations scoring below 3/5 are completely free and don't consume credits, protecting your research budget.
Headless API Overview
Manage interviews programmatically with the Koji REST API — start, message, and complete interviews from your own code.
Structured Questions in AI Interviews
Mix quantitative data collection — scales, ratings, multiple choice, ranking — with AI-powered conversational follow-up in a single interview.
MCP Authentication & Security
How Koji MCP authenticates with OAuth 2.1 and PKCE. Covers the authorization flow, token lifecycle, security model, data privacy, and how to revoke access.
How to Automate User Research: Build a Pipeline That Runs 24/7
A step-by-step guide to automating user research — from setting up AI-moderated interviews to continuous discovery pipelines that generate insights every week without manual effort.
Customer Interview Cadence: How Often Should You Talk to Users? (2026)
Set the right customer interview cadence for your team — from one a week (Teresa Torres' baseline) to daily continuous discovery — and how AI moderation makes higher cadences sustainable.