See llms.txt for all machine-readable content.

Slack and Survicate integration

Save yourself the work of writing custom integrations for Slack and Survicate and use n8n instead. Build adaptable and scalable Communication, HITL, workflows that work with your technology stack. All within a building experience you will love.

How to connect Slack and Survicate

Create a new workflow and add the first step

In n8n, click the "Add workflow" button in the Workflows tab to create a new workflow. Add the starting point – a trigger on when your workflow should run: an app event, a schedule, a webhook call, another workflow, an AI chat, or a manual trigger. Sometimes, the HTTP Request node might already serve as your starting point.

Slack and Survicate integration: Create a new workflow and add the first step

Answer multi-channel support queries with OpenAI RAG and Supabase

Quick overview Answers customer questions on Email, Live Chat, WhatsApp, Slack and Discord from your own documentation, retrieved through a Supabase vector store. Ungrounded answers, negative sentiment and explicit handover requests escalate to a human with a Zendesk ticket. Every conversation is categorised, logged and reported weekly. How it works A message arrives on Email, Live Chat, WhatsApp, Slack or Discord and is normalised into one schema, with an explicit branch per channel. Five guards run before a single model call is paid for: auto-replies and bounces, empty bodies, duplicate deliveries, oversized messages, and an explicit request for a human matched in six languages. Live chat receives an HTTP response on each of those paths, so a caller never waits on an open connection. The agent answers from your documentation, retrieved from a Supabase vector store wired as a tool, with Postgres-backed chat memory so history survives restarts. Confidence is scored on grounding rather than on answer length: did the agent search the knowledge base, and did the knowledge base return anything. A long, fluent answer with no retrieval behind it scores low. Greetings and thank-yous short circuit that test instead of failing it, so ordinary politeness does not open a support ticket. At or above the threshold, and without negative sentiment, the answer goes back on the originating channel. Email keeps the customer's own subject, Slack replies in thread. Otherwise the case escalates. The reason is derived from what already happened rather than re-decided, an AI step writes a short note for the human agent into the ticket body, and Zendesk gets a priority derived from sentiment. The chain keeps going if a step fails, so one outage cannot delete an entire escalation. Every conversation, answered or escalated, is categorised and logged to Google Sheets. A weekly job posts real figures to Slack, then archives them and purges old chat memory. A manual branch ingests your documentation, clearing the previous run first so re-running never duplicates anything. Setup Run the Supabase SQL from the note beside the ingestion branch. It creates the pgvector extension, three tables, the retrieval function and the indexes. Nothing retrieves anything before it exists, and chat memory has no retention before it exists. Set four workflow settings by hand: timezone, a 180 second execution timeout, successful production executions set to not save, failed ones set to save. n8n does not carry timezone, timeout or the execution-saving options across an import, so no template can ship them. Two minutes of work, and it keeps customer messages out of your execution history. Create the 12 n8n Variables listed in the Global Configuration note on the canvas. Four of them are specific to your instance and have no sensible default, so they show SET_ in the field until you fill them in. The other eight resolve on their own. Set SUPPORT_EMAIL before you go live: its default is a placeholder, and it is the From address on every reply. Connect credentials: IMAP, SMTP, WhatsApp, Slack for both trigger and API, a Discord bot, Zendesk, a Google Sheets service account, Supabase, OpenAI, Postgres on the same Supabase project, and Header Auth for both webhooks. Replace the Load Source Documents node with your real documentation source, keeping its output shape of title, url and content. It ships with three sample articles so the pipeline runs end to end straight after import. Create the Google Sheet with these columns, in order: userId, channel, message, category, sentiment, timestamp, aiResponse, confidence, escalated, escalationReason. Run the manual ingestion trigger once. It populates the knowledge base, and until it has, grounding scores zero and everything routes to a human, which is the intended fallback. Then test three paths: a question your documentation answers, a message asking for a human, and the same message sent twice. Delete any channel branch you do not use. Requirements Built and verified on n8n 2.32.7. It uses AI Agent 3.1, Postgres 2.7, Google Sheets 4.7 and Remove Duplicates 2, so an older release may not carry every node version used here. Supabase with pgvector enabled, plus direct Postgres access to the same project for chat memory and the metrics archive. OpenAI for the chat model and the embedding model. Zendesk, or another ticketing system if you swap that one node. A Google Sheet and a Google service account. Discord needs a relay bot. n8n has no native Discord trigger and Discord cannot send custom headers, so the endpoint cannot be a Discord Interactions URL. The relay must post a JSON body with four fields: id, content, channel_id and author.id. All four are used, and without channel_id the reply has nowhere to go. The exact body is in the Discord note on the canvas. Live chat callers should send message_id. Without it, deduplication falls back to a content hash bucketed per minute: enough for a provider retry, not a guarantee. Customization Confidence threshold and maximum message length live in the Workflow Configuration node. Chat memory retention lives in Weekly Configuration and defaults to 30 days. The chat model and embedding model are variables. Changing the embedding model also means changing the vector dimension in the setup SQL and recreating the knowledge base table. The knowledge base table name is a variable and is also hardcoded inside the retrieval function. Change one without the other and retrieval reads a table nothing writes to, with no error at all. Keyword gates cover English, Romanian, German, French, Spanish and Italian across handover detection, escalation reasons, categorisation and small talk. Keyword matching, not language detection: extend per market. Zendesk can be replaced by swapping a single node. The reason, the AI note, the priority and the Slack alert are all built upstream of it. Additional info Email replies carry the customer's own subject, prefixed with Re:, which is how Gmail and Outlook group a conversation. The SMTP node cannot set In-Reply-To or References, so grouping is by subject rather than by header: reliable in practice, not guaranteed by the standard. If you need strict RFC threading, swap the send step for an email API call. The three escalation steps continue on error, so a Zendesk or Slack outage cannot take the alert, the log row and the customer's HTTP response down with the ticket. The cost is that the Error Trigger stays quiet for those three, so a Zendesk failure is written into the Slack alert instead, in the channel a human is already watching. Chat memory is purged weekly, on a schedule you set in Weekly Configuration. The Google Sheets log is left to you on purpose: it holds message text and user identifiers, and the right retention depends on your jurisdiction rather than on a default someone else picked. Every identifier on the Slack, Discord and Google Sheets nodes is an expression resolved at runtime, which is what lets you move this template between environments by changing variables instead of editing nodes. The dropdowns show "Choose…" as a result. Anything else worth knowing is written into the notes on the canvas, beside the nodes it applies to.

Build your own Slack and Survicate integration

Create custom Slack and Survicate workflows by choosing triggers and actions. Nodes come with global operations and settings, as well as app-specific parameters that can be configured. You can also use the HTTP Request node to query data from any app or service with a REST API.

Slack supported actions

Supported API Endpoints for Survicate

To set up Survicate integration, add the HTTP Request node to your workflow canvas and authenticate it using a generic authentication method. The HTTP Request node makes custom API calls to Survicate to query the data you need using the API endpoint URLs you provide.

See the example here

These API endpoints were generated using n8n

n8n AI workflow transforms web scraping into an intelligent, AI-powered knowledge extraction system that uses vector embeddings to semantically analyze, chunk, store, and retrieve the most relevant API documentation from web pages. Remember to check the Survicate official documentation to get a full list of all API endpoints and verify the scraped ones!

Slack and Survicate integration details

Slack

Slack

Slack is a powerful collaboration tool for businesses of all sizes. It brings team communication and collaboration into one place so you can get more work done, whether you belong to a large enterprise or a small business.

Survicate

Survicate

Survicate is a customer feedback platform that helps businesses gather and analyze feedback through various channels, including surveys, feedback widgets, and website analytics. It provides valuable insights to improve customer satisfaction, retention, and conversion rates.

Other integrations with Slack and Survicate

FAQ about Slack integrations

Need help setting up your Slack and Survicate integration?

Discover our latest community's recommendations and join the discussions about Slack and Survicate integration.

  • Michelle

    Slack node: Channel list not loading with "Issues: There was a problem loading the parameter options from server: "[object Object]""

    Michelle

    I’m trying to use a Slack node for searching messages in a specific channel. Yet, when I add the option for channel selection, I get an error: *Issues: There was a problem loading the parameter options from server: “[ob…

    Open topic
  • Ageng Putra

    Slack Trigger Node stopped working between two different channels

    Ageng Putra

    Describe the problem/error/question I have two separate workflows, each using a different Slack app integration: Staging channel → uses trigger-app 1 Production channel → uses trigger-app 2 The issue: The Slack…

    Open topic
  • Kyrylo

    Slack's channel history timestamp parameters

    Kyrylo

    Describe the problem I’m trying to get certain messages from a channel. The way I had it configured with HTTP node was by making a request to this URL: https://slack.com/api/conversations.history?channel={{ $(‘get_all_m…

    Open topic
  • Ignas

    Scalable Slack triggers set up

    Ignas

    Describe the problem/error/question Hey Community, we recently rolled out N8N company wide and we are missing is scalable solution to Slack trigger set up. The problem is that for every workflow that we create in N8N we …

    Open topic
  • Sergiy B.

    Slack node token rotation issue

    Sergiy B.

    Describe the problem/error/question I have a Opt in option switched on in the Slack app, so tokens are rotating every 12 hours, but there is no way I found in n8n to make dynamik access tocken to be applied, so every 12…

    Open topic

Looking to integrate Slack and VirusTotal in your company?

Trusted by teams building smarter workflows.

Why

Why use n8n to integrate Slack with Survicate

Handle branching, merging and iteration easily. Pause your workflow to wait for external events.

Re-run single steps to test changes in no time. And pin your data to avoid generating trigger events every time you execute.

Your data is displayed alongside your settings, making edge cases easy to track down.

Use 1000+ workflow templates available from our core team and our community.

Copy and paste, easily import and export workflows.

Simple enough to 
understand + sophisticated 
enough to ship