FlowRunner
PricingContact
Theme
Start Free

Refiner

Forms

Refiner runs in-app microsurveys for NPS, CSAT, CES and product-market fit at the moment a user is in your product. Agents push user traits and events in, pull responses and aggregated scores out, manage surveys and segments, and react when new feedback arrives.

2 triggers 19 actions API key available
Refiner website Platform Documentation Capability data verified 2026-08-26
On New Survey Response fires when a user completes an in-app survey
The score, the verbatim comment and the contact's traits are read from the response
The score is compared against the detractor threshold set for this survey
Get Contact confirms which account and plan the respondent belongs to
Tag Survey Response marks the response as escalated so reporting groups it
The account owner receives the score, the comment and the contract context in chat
The owner decides whether this is a save play, a support ticket or a product defect

What This Integration Enables

Refiner is a microsurvey tool for teams who think the useful question is the one asked inside the product, at the moment the user is doing the thing. What separates it from a general survey builder is the trait model: Refiner targets on attributes you push in from your own backend, so a renewal survey can be aimed at accounts over a contract value without that number ever reaching the browser. The API is where that model actually pays off.

FlowRunner agents use the write side to keep Refiner honest about who your users are, calling Identify User with plan, tenure and lifecycle traits pulled from billing, tracking product events so a survey fires on behavior rather than a calendar, and syncing manual segments built elsewhere. On the read side they pull responses and aggregated NPS, CES and CSAT figures on a schedule, tag open text into themes so the dashboards group it, and control collection windows with Publish Survey and Unpublish Survey. The one thing they hand back is erasure, because Refiner's delete reaches further than most people expect.

Without FlowRunner

Feedback arrives as a weekly export A detractor comment written on Monday is read on Friday, after the renewal conversation already happened
Targeting runs on what the browser knows Plan, seat count and contract value are either exposed to client side code or left out of survey targeting entirely
Erasure requests are all or nothing A privacy request gets handled by deleting the person, which quietly removes their feedback from the score history too

With FlowRunner

Feedback routes at submission time The response reaches the account owner while the user is still in the product, with the traits already attached
Targeting runs on backend facts Traits are pushed server side from billing and CRM, so a survey can address renewal risk without shipping that data to the page
Erasure is a decided act The agent presents both paths, and a person chooses whether the responses survive anonymized or go with the contact

Use Case Scenarios

  • A detractor score that reaches a human the same hour

    On New Survey Response fires on a completed NPS survey. The agent reads the score and the comment, calls Get Contact for the traits Refiner already resolved, and posts the whole picture into the customer success channel in Slack with the plan and renewal date beside the verbatim. Tag Survey Response marks it as escalated so the reporting dashboard groups it with its siblings. If the account crosses a value threshold, the same message opens a follow up in Zendesk. The response never waits for an export.

  • Targeting that reflects what billing knows

    On a schedule, the agent pulls accounts whose stage or renewal date moved in HubSpot, then calls Identify User for each one so Refiner holds the current plan, seat count and contract value. Add User To Segment places the changed accounts into a manual segment that a renewal survey targets. Because only manual segments accept membership writes, the agent checks the segment's manual flag from Get Segments first rather than discovering the refusal at write time. The survey then addresses exactly the list the revenue team built, without anyone maintaining it in two places.

  • A score that shows up where the team already looks

    Get Reporting runs weekly for the Net Promoter Score over the trailing period and appends the figure with its promoter, passive and detractor split to a tracker in Google Sheets, then posts the movement to the team channel. When a release window opens, Publish Survey starts collection and Unpublish Survey closes it at the end without archiving or deleting anything, so the same survey can be reused next cycle and the historical responses stay in the score.

Human-in-Loop Highlight

Delete Contact is the operation on this connector that reaches furthest. It is irreversible, and it does not only remove the person: it deletes every survey response that contact ever submitted, which moves the NPS baseline the whole team reports on. Refiner ships a gentler sibling for the same intent, since Identify User can overwrite the sensitive traits with empty values and leave the feedback in place. So a FlowRunner agent handling an erasure request gathers the evidence and stops. It posts: "This request covers a contact with survey responses attached, including two that are cited in the current quarter's detractor themes. Delete Contact removes the person and those responses permanently. Clearing traits removes the personal data and keeps the responses. Which one?" The privacy owner answers, and the agent executes the path they named. The lookup was automatic. The choice between erasing a person and erasing a quarter of feedback was not.

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

Agent Capabilities

19 actions

User Tracking

2
  • Identify User Creates or updates a contact with traits pushed from your own systems. Traits merge, and value types matter, so a score sent as a number charts and the same score sent as text does not. Also the safe path for stripping personal data without destroying feedback.
  • Track Event Records a product event against a user from a server side workflow, so a survey can be timed to behavior rather than to a schedule.

Survey Responses

3
  • Get Survey Responses Reads responses newest first, filterable by survey, segment, question identifier and date. Supports cursor paging, which is the right choice past the first few thousand records.
  • Store Survey Response Records a response against an existing survey. Used to backfill feedback from a legacy tool or to land answers collected in your own interface, so everything reports in one place.
  • Tag Survey Response Applies tags to a response. The operation behind automatic theming of open text, and behind marking a response as escalated.

Reporting

1
  • Get Reporting Returns the aggregate score for a survey over a period, including the promoter, passive and detractor split. Used for scheduled digests and metrics stores rather than row by row analysis.

Contacts

3
  • Get Contacts Lists contacts with their traits and segment membership.
  • Get Contact Retrieves one contact by identifier. Used to attach account context to a response before routing it.
  • Delete Contact Permanently deletes a contact and every survey response that contact submitted. The operation this page's human gate exists for.

Surveys

6
  • Get Surveys Lists the surveys in the environment, with archived surveys hidden unless you ask for them.
  • Publish Survey Starts collection on a survey. Used to open a feedback window at the start of a release.
  • Unpublish Survey Stops a survey being shown without archiving or deleting anything. The safe way for a flow to halt collection.
  • Archive Survey Archives a survey. Reversible in the dashboard, but the survey disappears from the default listing afterwards.
  • Duplicate Survey Copies a survey. The copy is always created as an unpublished draft, so duplicating never starts collection by accident.
  • Get Survey Change Log Reads the history of changes made to a survey. Useful when a score shifts and the question is whether the survey moved underneath it.

Segments

3
  • Get Segments Lists segments and reports which are manual. Check this before attempting a membership write.
  • Add User To Segment Adds a user to a manual segment. Fails on a data driven segment, which Refiner recomputes from traits and events.
  • Remove User From Segment Removes a user from a manual segment.

Account

1
  • Get Account Info Reports account usage against plan limits for tracked users and responses. The read behind alerting before a limit is reached rather than after.

Triggers

2 triggers

Event Triggers

2
  • On New Survey Response Fires when a new response appears. It polls the responses listing, which the vendor documents as reverse chronological, and defaults to completed responses only, so a half answered survey does not fire until the user finishes. The first cycle records what already exists and emits nothing.
  • On New Contact Fires when a new contact appears in the environment. Refiner does not document the sort direction on its contacts listing, so this trigger assumes newest first and reads a configurable batch each cycle. On a high volume environment, raise the batch size or configure a dashboard webhook pointed at a FlowRunner flow instead.

Frequently Asked Questions

What can FlowRunner do with Refiner?

FlowRunner agents can run Identify User, Track Event, and Get Survey Responses in Refiner, plus 16 more actions.

Does connecting Refiner to FlowRunner require OAuth?

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

Can Refiner trigger a FlowRunner workflow automatically?

Yes. Refiner supports 2 triggers that can start a FlowRunner workflow automatically.

Start building with Refiner

Free plan, no card required. Connect in minutes.