SurveyMonkey Response to Notion Research Log
When a SurveyMonkey research/UX survey response arrives, the flow creates a structured entry in a Notion research database with the answers, participant segment, and key quotes, tags it by study, and posts notable responses to a Teams research channel. Builds a searchable research repository from survey data.
Provided as-is, without warranty of any kind. Review and test each pattern in a non-production environment before deploying it to live automations. See our Terms.
Overview
This flow turns every new SurveyMonkey research/UX survey response into a structured entry in a Notion research database and posts the notable ones to a Microsoft Teams research channel. It captures the participant, their segment, the study tag, and the key quotes (answer payload) so the team builds a searchable research repository automatically.
Why it matters: Research insight is usually trapped in raw survey exports. Auto-logging each response to Notion — tagged by study and segment — turns scattered responses into a queryable knowledge base, while the Teams alert surfaces high-signal feedback the moment it arrives.
Status: Built and deployed to the solution in the Off state. Going live requires only authorizing the three connections and setting the environment variable values (no logic changes).
Use Case
A UX/research team runs ongoing surveys in SurveyMonkey. They want every response recorded in their Notion research database (tagged by study and participant segment), and they want responses that mention a watched keyword (e.g. 'cancel', 'bug', 'churn') pushed to their Teams research channel in real time so nothing important is missed.
Flow Architecture
When a new SurveyMonkey response is received
SurveyMonkey OnNewResponseAddedSurvey (polling, splitOn responses)Fires once per new response on the monitored survey.
Initialize config
Initialize VariableLoads Notion DB Id, Study Tag, Notable Keyword, and Teams group/channel from env vars.
Initialize Participant Name
Initialize VariableBuilds display name from response first/last name.
Initialize Participant Segment
Initialize VariableSegment carried on the SurveyMonkey custom_value field.
Initialize Key Quotes
Initialize VariableSerialized answer pages used as the key-quotes payload.
Get Survey Details
SurveyMonkey GetSurveyRetrieves the survey title for the research entry.
Create Notion Research Entry
Notion CreateaPageCreates the structured research log row in Notion.
Check If Response Is Notable
Condition (If)When the answers contain the notable keyword, Post Notable Response To Teams (PostMessageToConversation).
Environment Variables
| Schema name | Type | Default | Description |
|---|---|---|---|
| flowlibs_SurveyMonkeySurveyId | String | <configure> | SurveyMonkey survey whose responses are monitored. |
| flowlibs_NotionResearchDatabaseId | String | <configure> | Notion research database that receives entries. |
| flowlibs_ResearchStudyTag | String | General Research | Study label applied to every entry (Study select). |
| flowlibs_NotableKeyword | String | cancel | Keyword that flags a response as notable. |
| flowlibs_TeamsGroupId | String | <your-team-id> | Team/group ID of the research channel. |
| flowlibs_TeamsChannelId | String | <your-channel-id> | Channel ID for notable-response alerts. |
Connectors & Connections
| Connector | API name | Actions used |
|---|---|---|
| SurveyMonkey | shared_surveymonkey | OnNewResponseAddedSurvey GetSurvey |
| Notion | shared_notionip | CreateaPage |
| Microsoft Teams | shared_teams | PostMessageToConversation |
Note — All connections are referenced as solution connection references; the flow is portable between environments as long as a connection is mapped at import time.
Customization Guide
Almost every realistic variant of this flow can be implemented by changing environment variable values. A few cases require small edits inside the flow definition — those are called out explicitly below.
- Map real quote questions
- Replace the serialized varKeyQuotes payload with specific open-text answers from triggerOutputs()?['body/pages'] (or carry a verbatim quote in a custom field) for cleaner Notion rows.
- Score-based notability
- Swap the keyword check for a rating threshold by carrying the score on custom_value and comparing with @greaterOrEquals(int(...), threshold).
- Segment tagging
- Populate the SurveyMonkey collector custom_value with the respondent's segment so the Notion Segment select is meaningful.
- Multiple studies
- Duplicate the flow per study (each with its own flowlibs_SurveyMonkeySurveyId + flowlibs_ResearchStudyTag) or make the study tag dynamic from a survey field.
Key Expressions
The flow is intentionally light on Power Fx / WDL gymnastics — the heaviest expressions are the branch-name concatenation and the approval outcome check. They are listed below in the order they appear in the flow.
EXPR.01Participant name
Builds the participant display name.
EXPR.02Segment
Segment from custom_value.
EXPR.03Key quotes
Serializes the answer pages.
EXPR.04Notable check
Case-insensitive keyword match.
EXPR.05Title fallback
Falls back to response id for anonymous.
Customize & download
Generate a ready-to-import copy of this solution with your environment-variable values baked in — available on Base, Pro, or Team.
Upgrade to customize
Comments
Sign in to join the conversation.
Sign inNo comments yet. Be the first to share your experience with this flow.