Skip to content

The moment it happens

Show new survey responses in Slack

Your team reads each finished response in a channel, without logging in to SurveyMonkey.

Runs
The moment it happens
Apps
SurveyMonkey
AI
Not needed
Access
as above

Send this to your assistant

Create a ClickRuntime automation: post each completed response to my SurveyMonkey "Onboarding experience" survey to #customer-success in Slack, with the satisfaction score and any comments.

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

A customer success team runs a post-onboarding survey on SurveyMonkey and a product team runs a feedback survey, but only the person who created each survey sees the results. The rest of the company hears about feedback in a monthly slide deck. Meanwhile a customer who rated the experience one out of five is waiting for somebody to notice. That gap is how unhappy customers quietly leave.

Each time someone submits a response, ClickRuntime receives the SurveyMonkey webhook, fetches the response details and posts a short summary to a Slack channel: the key answers, the score and a link to the full response. Everyone in the channel sees customer feedback as it happens, not weeks later. Nobody needs a SurveyMonkey login to read it.

Teams usually create a dedicated feedback channel so support, product and leadership can follow along.

What you get out of it

  • Feedback stops living in one person's account

    When responses show up in a shared channel, the whole team can see and react. Insights are no longer stuck with the survey creator, who may be too busy to share them.

  • Low scores trigger quick action

    A one-star rating posted in Slack can be picked up by whoever owns the account within the hour. Fast recovery turns a likely detractor into someone who feels listened to.

  • Product decisions use live customer words

    Reading actual comments as they arrive keeps the team grounded in what customers say. That tends to shape priorities better than a quarterly summary built from averages. That keeps roadmap debates tied to what people actually wrote down.

  • Conversation starts where the team already works

    Colleagues can reply in a thread, tag the account owner and agree next steps right beside the response. The discussion and the follow-up stay together in one place. Nobody has to forward a screenshot or ask which response you meant.

  • Recognition reaches the people behind good scores

    A glowing comment about a support agent or a feature appears in a channel the whole company sees. Sharing praise publicly motivates the people who earned it. Sharing a good score also reminds the whole company why the work matters.

How it works

What happens, step by step

  1. When someone completes your SurveyMonkey survey, SurveyMonkey tells ClickRuntime straight away.

  2. ClickRuntime fetches the full response and picks out the score and the written comment.

  3. A short summary is posted to your Slack channel, so the team can read it without logging in.

Before it runs live

  • Connect SurveyMonkey
  • Paste your automation's link into the other app's webhook settings

What you get

RunsThe moment it happens
Show new survey responses in Slackjust nowSucceeded
Slack · #customer-successOnboarding survey: satisfaction 4 - Satisfied > The kickoff call helped, docs could be shorter.

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 SurveyMonkey 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_responses.pyexample
from clickruntime import on_event, credentials, http, notify

def sm(path):
    resp = http.get(f"https://api.surveymonkey.com/v3/{path}",
                    headers={"Authorization": f"Bearer {credentials.connection('surveymonkey', 'work')}"})
    resp.raise_for_status()
    return resp.json()

def answered(survey_id, response_id):
    survey = sm(f"surveys/{survey_id}/details")
    questions, choices = {}, {}
    for page in survey["pages"]:
        for q in page["questions"]:
            questions[q["id"]] = q["headings"][0]["heading"]
            for c in (q.get("answers") or {}).get("choices", []):
                choices[c["id"]] = c["text"]
    resp = sm(f"surveys/{survey_id}/responses/{response_id}/details")
    for page in resp["pages"]:
        for q in page["questions"]:
            text = ", ".join(a.get("text") or choices.get(a.get("choice_id"), "") for a in q["answers"])
            yield questions.get(q["id"], q["id"]), text

@on_event
def handle(event):
    payload = event.json or {}
    if payload.get("event_type") != "response_completed":
        return {"posted": False}
    answers = dict(answered(payload["resources"]["survey_id"], payload["object_id"]))
    score = next((a for q, a in answers.items() if "satisf" in q.lower()), "?")
    comments = next((a for q, a in answers.items() if "comment" in q.lower()), "") or "(no comments)"
    notify.slack(f"Onboarding survey: satisfaction {score}\n> {comments}", channel="#customer-success")
    return {"posted": True}

FAQ

Common questions

Can the summary include only certain questions?
Yes. You can choose which questions appear, for instance the score and the open comment, and leave out long or sensitive ones. Tell your assistant which questions to show and the updated message is previewed for approval.
Is the respondent's personal information posted to Slack?
Only what the survey collected and what you choose to include. If your survey asks for an email address, you can leave it out of the Slack message and keep the link, so people with access to SurveyMonkey can look it up.
Can I send low scores to a different channel?
Yes. A condition on the score, such as 6 or below on a 10 point scale, can route those responses to a support channel and tag a person. All other responses continue to the general feedback channel.
What permissions does it need?
as above. 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 for each event the app sends.
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 “Show new survey responses in Slack” from your assistant

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