VX Agents

API directory · Customer Support

HubSpot Feedback Survey Responses

v1.0.0 · 4 endpoints · 0 connections · shared by vx.ai

How did customers rate us this month, and who left a detractor score? Pull NPS, CSAT, CES and custom survey responses from HubSpot, search them by survey, sentiment or date, and open each response with the contact and ticket it belongs to.

Connect this API to an AI agent Browse all specs

What you can do with HubSpot Feedback Survey Responses via MCP

Every endpoint below becomes a governed tool your AI agent (Claude, ChatGPT, or a customer-facing VX agent) can call — with scoped permissions, sandbox testing, and audit logs.

MethodPathOperationDescription
GET /crm/objects/2026-09/feedback_submissions listSurveyResponses List survey responses page by page with chosen properties
POST /crm/objects/2026-09/feedback_submissions/search searchSurveyResponses Search survey responses by survey, sentiment, channel or date
GET /crm/objects/2026-09/feedback_submissions/{objectId} getSurveyResponse Get one survey response, with its contact or ticket if asked
POST /crm/objects/2026-09/feedback_submissions/batch/read batchReadSurveyResponses Read up to 100 survey responses by id in one call

Authentication

private_app_token

Bearer token — sent as Authorization: Bearer <token>

HubSpot private app access token (or an OAuth access token), sent as Authorization: Bearer <token>.

How to get a credential

  1. In HubSpot, open Development (or Settings > Integrations) > Legacy apps / Private apps.
  2. Click Create legacy app > Private, and name it (e.g. VX Agents surveys).
  3. On the Scopes tab add crm.objects.feedback_submissions.read and crm.objects.contacts.read.
  4. Create the app and copy the access token (pat-...).

Permissions used

Scope Operations
crm.objects.feedback_submissions.read listSurveyResponses, searchSurveyResponses, getSurveyResponse, batchReadSurveyResponses
crm.objects.contacts.read the same operations (HubSpot accepts either scope)

Common errors

Status Meaning Fix
401 Token missing, expired or revoked Copy the token again from the private app; rotate it if it was revoked.
403 Scope missing, or the scope is not available on your HubSpot subscription Add the scopes above (they only appear when the account has customer feedback surveys) and use the new token.
400 Bad search filter or property name Use internal property names such as hs_sentiment and hs_survey_channel.
429 Rate limit Wait and retry; search allows a few requests per second.

Store the token as a VX Agents credential (Bearer token). The API is read-only: it cannot change survey responses.

Usage guide

Setup

  • Credential: a HubSpot private app token with crm.objects.feedback_submissions.read (and crm.objects.contacts.read).
  • Worth pinning: the survey you report on most (its name or id, from Service > Customer feedback in HubSpot) and the property list you always want back, e.g. hs_sentiment,hs_survey_channel.

Review survey results

  1. Recent responses: searchSurveyResponses with a filterGroups filter on hs_createdate (GTE, epoch milliseconds), sorted by hs_createdate DESCENDING. Add a hs_sentiment filter to see only detractors or promoters.
  2. Ask for the properties you need in properties. Default answers only include hs_createdate, hs_lastmodifieddate and hs_object_id; hs_sentiment (how the contact feels) and hs_survey_channel (where they answered, e.g. email) are named in the HubSpot reference.
  3. Who answered: getSurveyResponse with associations=contacts,tickets returns the contact (and the ticket for support surveys) linked to the response.
  4. Many at once: listSurveyResponses pages through everything (limit up to 100, after from paging.next); batchReadSurveyResponses reads up to 100 known ids.
  5. Summarise by sentiment or survey type, and list the detractors with their contact ids so the team can follow up.

Good to know

  • This API is read-only: it cannot create, edit or delete survey responses, and response properties can only be created in HubSpot's survey tool.
  • Surveys cover NPS, customer satisfaction (CSAT), customer effort (CES) and custom surveys. Sentiment is derived from the rating (detractor, passive, promoter).
  • Other response fields (rating, written response, survey name, survey type) also exist; if a property name returns nothing, look up its internal name under Settings > Properties > Feedback submission properties.
  • Search returns at most 200 per page and 10,000 in total; page with after.

Source: HubSpot API reference (https://developers.hubspot.com/docs/api-reference/latest/crm/objects/feedback-submissions/guide), checked 2026-10-25.

How to use this spec

  1. Create a free VX Agents account (sandbox tools included).
  2. Open the marketplace and connect “HubSpot Feedback Survey Responses” to an agent.
  3. Expose it as an MCP server for Claude/ChatGPT, or chat with it directly.

Related APIs