Skip to content

Every 15 minutes

Share new Qualtrics responses in Slack

Your team sees fresh survey responses in their channel within about 15 minutes of submission.

Runs
Every 15 minutes
Apps
Qualtrics
AI
Not needed
Access
API permission on the brand

Send this to your assistant

Create a ClickRuntime automation: every 15 minutes, check my Qualtrics "Store visit feedback" survey for new responses and post each one's score and comment to #cx-feedback in Slack.

Paste it into your assistant. It tells you what it will send or change before it runs live.

First time? Adding ClickRuntime to your assistant takes about two minutes.

Why use it

Why teams use this automation

Qualtrics surveys collect answers all week, but the people who should read them are in Slack, not in Qualtrics. A product manager running a feedback survey after a release checks the Responses tab when they remember, which might be Thursday, and a respondent describing a serious bug has been waiting since Monday for anyone to notice.

Every 15 minutes, ClickRuntime asks Qualtrics for any responses recorded since the last one it saw, posts a short summary of each to the Slack channel you pick, and saves the ID of the newest response so nothing is posted twice. Quiet periods produce no messages at all.

It is a good fit for launch feedback, post-support surveys and event surveys, where the team wants to read answers while the context is still fresh.

What you get out of it

  • The team reads feedback while it matters

    A survey answer read the same day can lead to a quick fix or a thank-you reply. The same answer read the following week usually only becomes a line in a report.

  • Everyone sees the same responses

    Posting to a shared channel means designers, support and product all read the same words. That avoids the common situation where one person holds the export and summarizes it differently for each group.

  • No one needs Qualtrics access

    Many teammates lack a Qualtrics license. A Slack summary gives them the answers without seat costs or training, and the full response stays in Qualtrics for whoever needs the details.

  • Nothing is posted twice or skipped

    Saving the last response ID means each answer appears exactly once, even if a check runs late. You get a reliable stream instead of an occasional batch that might overlap or leave gaps.

  • Urgent problems stand out in the stream

    A respondent reporting a billing error appears among the other answers within a quarter hour. Someone can reply or open a ticket straight from the thread, rather than discovering the complaint in a monthly summary.

How it works

What happens, step by step

  1. Every 15 minutes, ClickRuntime checks your Qualtrics survey for responses received since its last check.

  2. Each new response is posted to your Slack channel with its score and the written comment.

  3. It remembers the last response it posted, so nothing is shared twice.

Before it runs live

  • Connect Qualtrics

What you get

RunsEvery 15 minutes
Share new Qualtrics responses in Slacktoday, 9:00Succeeded
Slack · #cx-feedbackStore visit feedback: 9/10 > Staff at the Northwind Mall store were really helpful.

Build your own

Need it to work differently?

This template is a starting point. Copy the prompt and change it, or describe a different automation from scratch, with your own conditions, more apps or an AI step. Your assistant writes it, tests it and runs it on ClickRuntime.
  • Your own rules

    Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.

  • Any number of apps

    One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.

  • AI where it helps

    Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.

  • On a schedule or on each event

    Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.

Changes you can ask for

  • Act only on the items that match your own rules, and skip the rest
  • Add an AI step, for example to summarize, sort or draft a reply
  • Add another app, for example also send it to Slack
  • Combine it with other Qualtrics steps into one automation

Under the hood

The code that runs this automation

This is the Python script that runs each time the automation starts. Your AI assistant writes it for you when you send the prompt, and you allow each step in your assistant. To change how the automation works, describe the change to your assistant and it updates the script for you. For every function it can use, see the script reference.
slack_alert_on_new_survey_response.pyexample
import io, json, time, zipfile
from clickruntime import on_trigger, credentials, http, state, notify, report_fetched

DATACENTER = "iad1"
SURVEY_ID = "SV_abc123XYZ"

def qx(method, path, **kw):
    resp = http.request(method, f"https://{DATACENTER}.qualtrics.com/API/v3/{path}",
                        headers={"X-API-TOKEN": credentials.secret("QUALTRICS_API_TOKEN")}, **kw)
    resp.raise_for_status()
    return resp

@on_trigger
def run(event):
    token = state.get("token")
    body = {"format": "json", "compress": True, "allowContinuation": True}
    if token:
        body = {"format": "json", "compress": True, "continuationToken": token}
    job = qx("POST", f"surveys/{SURVEY_ID}/export-responses", json=body).json()["result"]
    while (prog := qx("GET", f"surveys/{SURVEY_ID}/export-responses/{job['progressId']}").json()["result"])["status"] != "complete":
        time.sleep(2)
    raw = qx("GET", f"surveys/{SURVEY_ID}/export-responses/{prog['fileId']}/file").content
    zf = zipfile.ZipFile(io.BytesIO(raw))
    responses = json.loads(zf.read(zf.namelist()[0]))["responses"]
    report_fetched(len(responses))
    if not responses:
        return {"summary": "Nothing new"}
    for r in responses:
        v = r["values"]
        notify.slack(f"Store visit feedback: {v.get('QID1', '?')}/10\n> {v.get('QID2_TEXT') or '(no comment)'}",
                     channel="#cx-feedback")
    state.set("token", prog.get("continuationToken"))
    return {"posted": len(responses)}

FAQ

Common questions

Does a 15-minute delay matter for survey responses?
For feedback it rarely does, since most surveys are read, not acted on in seconds. If you need faster alerts for a specific question, such as a low NPS score, the event-based Qualtrics alert reacts the moment a response is recorded.
What does each Slack message contain?
A short summary built from the response: the survey name, when it was submitted and the answers to the questions you choose. Long free-text answers are trimmed so the channel stays readable, and the full response remains in Qualtrics.
Will it post responses that were already in Qualtrics before I set it up?
No. The first run records the most recent response as the starting point, and only newer ones are posted after that. That prevents a flood of old answers appearing in the channel the day it is turned on.
What permissions does it need?
API permission on the brand. Nothing else in your accounts is used.
Does it need AI?
No. It runs without AI, so it doesn't use your plan's AI allowance.
How many runs does it use?
One run each time it checks. Checks that find nothing new and stop right away aren't counted.
Can I change how it works?
Yes. Describe the change to your AI assistant, for example a different schedule, channel or filter. It updates the automation, tests it and tells you what changed.

Set up “Share new Qualtrics responses in Slack” from your assistant

Copy the prompt above, or connect your assistant first. Free plan, no credit card.