FlowRunner
PricingContact
Theme
Start Free

Surveybot

Forms

Surveybot runs surveys as chatbot conversations inside Facebook Messenger and Workplace. Agents list surveys, pull responses with the full respondent profile, flatten answers to one row per question, resolve respondents, and react when a response arrives or a survey completes.

Verified 3 triggers 13 actions API key available
Surveybot website Platform Documentation Capability data verified 2026-08-26
On Survey Completed fires when someone finishes the chatbot conversation
Get Survey Answers flattens the conversation into one row per question
The agent reads the quiz score and notes which questions the person never reached
The agent matches the response to a known customer record before writing anything
The answers append to the reporting sheet and land on the customer record
A low score posts to the account team with the questions the respondent actually answered
The owner decides whether the respondent's identity leaves the survey tool, and who makes contact

What This Integration Enables

Surveybot's whole premise is that the survey happens inside a conversation the respondent was already having, in Facebook Messenger or in Workplace from Meta, rather than on a page they had to be persuaded to visit. That premise decides the shape of the API. Surveys, panels, and campaigns are built in the Surveybot web app, and the Data API exists so the collected answers can leave it. There are four read routes and no documented write anywhere, which means FlowRunner never speaks in the conversation. It carries the result out.

What it carries out is unusual, and it is the reason this page has the gate it does. A Surveybot response is not an anonymous row. It arrives with the respondent profile Surveybot holds, which can include the name, locale, time zone, email, phone, and the custom attributes recorded against the panel member. FlowRunner agents list surveys, pull responses with their full answers, flatten them into one row per question, count completed against abandoned conversations, and resolve the individual people behind them. Every one of those is a read. The moment that matters is when one of those reads is written somewhere else, and that is where the human-in-the-loop step belongs.

Without FlowRunner

Chat answers stay in the chat tool Conversations finish inside Surveybot and the rest of the stack never sees them
Abandonment invisible A survey people quit halfway looks the same as one nobody started
Manual export before analysis Someone downloads the responses and reshapes them before any question can be asked of them

With FlowRunner

Answers arrive as rows Every completed conversation reaches the sheet, the warehouse, and the customer record
Drop off is a number you watch Started against completed is counted on a schedule, with the unreached questions kept
Analysis shape by default One row per answer, with the respondent and the question attached, ready to query

Use Case Scenarios

  • A finished conversation becomes a customer record update

    On Survey Completed fires only for respondents Surveybot marks completed, which matters because a chatbot survey is frequently abandoned part way. The agent calls Get Survey Answers to flatten the conversation into one row per question, reads the quiz score the response carries, and updates the account record in HubSpot or the conversation history in Intercom. A score below the threshold posts into the customer success channel in Slack with the answers laid out in the order the person gave them.

  • Drop off measured instead of guessed

    On a schedule, the agent runs Count Survey Responses, which reports how many conversations were completed, how many were abandoned part way, and the completion rate. Because the API keeps the questions a respondent never reached, the agent can also pull Get All Survey Responses and identify where in the script people are leaving. The result appends to Google Sheets alongside the previous weeks, so a research team can see whether a rewritten question changed anything rather than assuming it did.

  • Research export without the manual download

    A researcher names a survey in a message rather than picking it from a list. The agent resolves it with Find Survey By Name, pulls the whole history with Get All Survey Responses, flattens it with Get Survey Answers, and writes it into Airtable or Snowflake for analysis next to the rest of the customer data. Before any respondent profile fields go into that export, the agent stops and asks what this survey's participants were told.

Human-in-Loop Highlight

Get Respondent returns the full profile Surveybot holds for a person: first and last name, gender, locale, time zone, email, picture, date of birth, occupation, address, relationship status, phone, and the custom attributes set on the panel member. List Survey Respondents does the same for everyone who answered. Reading that profile is harmless. Writing it into a CRM, a warehouse table, or a channel message is not, because a disclosure cannot be undone and the respondent answered inside their own Messenger or Workplace conversation, where the reasonable expectation about who sees their name is set by what the survey told them, not by what the API can return. Surveybot exposes no write route, so nothing in this connector can annotate a response as sensitive or restrict who sees it later. That check has to happen before the export. So the agent pauses: "The Q3 employee pulse survey has 214 completed responses. Get Respondent will attach a name, email, and phone number to each one before this export reaches the warehouse. Was this survey presented to participants as identified or as aggregate only? Export with profiles, with the respondent identifier only, or with answers alone?" The research owner answers in Slack. The agent handles the paging, the flattening, and the load. Deciding whose name leaves the survey tool is not an agent's call.

Agent processes routinely
Detects exception requiring judgment
Clear match Continues automatically
Ambiguous Routes to human via Slack
Human decides
Agent resumes with decision

Agent Capabilities

13 actions

Surveys

4
  • List Surveys Returns one page of the chatbot surveys in the account, each with the identifier every other action needs.
  • Get All Surveys Walks every page of the survey list and returns them as one array, for accounts holding more surveys than a single page.
  • Get Survey Returns one survey record by identifier. Surveybot publishes no route for a single survey, so this reads the list and selects from it.
  • Find Survey By Name Looks a survey up by its human readable title, which is what a flow holds when the name came from a message or a sheet rather than a picker.

Responses

5
  • Get Survey Responses Returns one page of a survey's responses, each carrying its completion state, start and finish times, quiz score, answers, and respondent profile.
  • Get All Survey Responses Walks every page of a survey's responses and returns them as one array. The usual way to export a whole survey into a sheet, a warehouse, or an analysis step.
  • Get Survey Response Returns one response by its identifier with answers and respondent attached. Surveybot publishes no single response route, so this pages the survey's responses to find it.
  • Count Survey Responses Counts a survey's responses and reports how many completed, how many were abandoned part way, and the completion rate. Cheap enough to run on a schedule as a drop off watch.
  • Get Survey Answers Flattens a survey's responses into one row per answer, with the response identifier, the respondent, and the question on every row. The shape a spreadsheet insert or a text analysis step wants.

Respondents

2
  • Get Respondent Returns the full profile Surveybot holds for one person who took a survey inside Messenger or Workplace. The operation this page's human gate exists for.
  • List Survey Respondents Returns the distinct people who answered a survey, one entry per person rather than per response, derived from that survey's responses. It sees only people who actually started.

Account and Escape Hatch

2
  • Get Account Returns the account the configured key belongs to. The quickest confirmation that a connection is working, which matters here because a misnamed credential header answers with an empty list rather than an error.
  • Make API Call Sends an authorized request to any Data API path, for routes this connector does not name.

Triggers

3 triggers

Event Triggers

3
  • On New Survey Response Fires when a survey receives a new response, carrying the whole record with its answers and respondent profile. It fires for abandoned conversations as well as finished ones, so use it when the incomplete ones are the point.
  • On Survey Completed Fires only when a respondent finishes the conversation. This is the one to use for scoring a quiz, thanking a participant, or writing a result onto a customer record, because chatbot surveys are abandoned part way often enough to matter.
  • On New Survey Fires when a new chatbot survey appears in the account. Used to register a newly built survey with the rest of the stack and tell the research team it exists.

Frequently Asked Questions

What can FlowRunner do with Surveybot?

FlowRunner agents can run List Surveys, Get All Surveys, and Get Survey in Surveybot, plus 10 more actions.

Does connecting Surveybot to FlowRunner require OAuth?

No. Surveybot connects to FlowRunner with an API key, no OAuth flow required.

Can Surveybot trigger a FlowRunner workflow automatically?

Yes. Surveybot supports 3 triggers that can start a FlowRunner workflow automatically.

Start building with Surveybot

Free plan, no card required. Connect in minutes.