All integrations

Formbricks

MARKETING · TASKS

Surveys, responses, and contacts in the workspace that person connected.

Acts as the person, not as itself

Each user connects their own account. Every call carries both identities — the agent and the person it is acting for — so the agent can never reach past what that individual can already do.

Credentials never touch the agent

Tokens live in the vault and attach server-side at call time. The agent holds a session, not a secret, and revoking access does not mean rotating a key.

Every call on the record

Who asked, which agent acted, which action ran, and the verdict that let it through — one audit trail across every integration, not one per vendor.

What an agent can do

Each action is granted on its own. An agent allowed to read is not thereby allowed to write, and the scope beside each row is what the acting user must have connected for it to run at all.

formbricks_delete_api_v1_management_action_classes_by_actionclassidWRITE

Deletes an existing action class. Formbricks DELETE /api/v1/management/action-classes/{actionClassId} (v1).

workspace:manage
formbricks_delete_api_v1_management_responses_by_responseidWRITE

Delete a response with its ID. Formbricks DELETE /api/v1/management/responses/{responseId} (v1).

workspace:manage
formbricks_delete_api_v1_management_surveys_by_surveyidWRITE

Delete a Survey by its ID. Please use this only when extrememly necessary. Formbricks DELETE /api/v1/management/surveys/{surveyId} (v1).

workspace:manage
formbricks_delete_api_v1_webhooks_by_webhookidWRITE

Delete an existing webhook by provifding it's ID. It will immediately apply and not trigger again. Formbricks DELETE /api/v1/webhooks/{webhookId} (v1).

workspace:manage
formbricks_delete_management_contact_attribute_keys_by_idWRITE

Deletes a contact attribute key from the database. Formbricks DELETE /api/v2/management/contact-attribute-keys/{id} (v2).

workspace:manage
formbricks_delete_management_responses_by_idWRITE

Deletes a response from the database. Formbricks DELETE /api/v2/management/responses/{id} (v2).

workspace:manage
formbricks_delete_management_webhooks_by_idWRITE

Deletes a webhook from the database. Note - Environments are deprecated. Use Workspace/workspaceId terminology. Formbricks DELETE /api/v2/management/webhooks/{id} (v2).

workspace:manage
formbricks_delete_organizations_by_organizationid_teams_by_idWRITE

Deletes a team from the database. Formbricks DELETE /api/v2/organizations/{organizationId}/teams/{id} (v2). Organization-scoped: the API key needs Organization Access, ticked when the key was created.

organization:write
formbricks_delete_organizations_by_organizationid_workspace_teamsWRITE

Deletes a Workspace team from the database. Formbricks DELETE /api/v2/organizations/{organizationId}/workspace-teams (v2). Organization-scoped: the API key needs Organization Access, ticked when the key was created.

organization:write
formbricks_get_api_v1_management_action_classesREAD

Fetches all the action classes available in the workspace. Formbricks GET /api/v1/management/action-classes (v1).

workspace:read
formbricks_get_api_v1_management_action_classes_by_actionclassidREAD

Fetch an Action Class by it's ID. Formbricks GET /api/v1/management/action-classes/{actionClassId} (v1).

workspace:read
formbricks_get_api_v1_management_contact_attribute_keysREAD

Retrieve a list of all contact attribute keys defined in the current workspace. Formbricks GET /api/v1/management/contact-attribute-keys (v1).

workspace:read
formbricks_get_api_v1_management_contact_attribute_keys_by_contactattributekeyidREAD

Retrieve a specific contact attribute key by its ID. This returns detailed information about how a particular attribute is defined in your workspace. Formbricks GET /api/v1/management/contact-attribute-keys/{contactAttributeKeyId} (v1).

workspace:read
formbricks_get_api_v1_management_contact_attributesREAD

Retrieve a list of all contact attributes in the current workspace. Formbricks GET /api/v1/management/contact-attributes (v1).

workspace:read
formbricks_get_api_v1_management_contactsREAD

Retrieve a list of all contacts for the current workspace. Formbricks GET /api/v1/management/contacts (v1).

workspace:read
formbricks_get_api_v1_management_contacts_by_contactidREAD

Retrieve a specific contact by its ID. Formbricks GET /api/v1/management/contacts/{contactId} (v1).

workspace:read
formbricks_get_api_v1_management_meREAD

Fetches the product associated with the passed API key. Formbricks GET /api/v1/management/me (v1).

workspace:read
formbricks_get_api_v1_management_responsesREAD

Pass the surveyId as a Query Parameter & only fetch responses for a specific survey that you have access to. Formbricks GET /api/v1/management/responses (v1).

workspace:read
formbricks_get_api_v1_management_responses_by_responseidREAD

Fetch the entire response object based on its ID. Formbricks GET /api/v1/management/responses/{responseId} (v1).

workspace:read
formbricks_get_api_v1_management_surveysREAD

Fetches all existing surveys. Each survey includes both `questions` (the legacy structure) and `blocks` (the newer structure). `questions` is always derived from `blocks` for backwards compatibility, so integrations may read either field. Formbricks GET /api/v1/management/surveys (v1).

workspace:read
formbricks_get_api_v1_management_surveys_by_surveyidREAD

Fetch a survey object based on its ID. The response includes both `questions` (the legacy structure) and `blocks` (the newer structure). `questions` is always derived from `blocks` for backwards compatibility, so integrations may read either field. Formbricks GET /api/v1/management/surveys/{surveyId} (v1).

workspace:read
formbricks_get_api_v1_management_surveys_by_surveyid_singleuseidsREAD

Generates multiple single use survey links for a survey based on its id. Formbricks GET /api/v1/management/surveys/{surveyId}/singleUseIds (v1).

workspace:read
formbricks_get_api_v1_webhooksREAD

Retrieve a list of all webhooks for the current workspace. Formbricks GET /api/v1/webhooks (v1).

workspace:read
formbricks_get_api_v1_webhooks_by_webhookidREAD

Get a specific webhook object based on its ID. Formbricks GET /api/v1/webhooks/{webhookId} (v1).

workspace:read
formbricks_get_healthREAD

Formbricks' Health Check endpoint to make sure the App & the Database are connected with each other & up!. Formbricks GET /health (v1).

workspace:read
formbricks_get_management_contact_attribute_keysREAD

Gets contact attribute keys from the database. Note - Environments are deprecated. Use Workspace/workspaceId terminology. Formbricks GET /api/v2/management/contact-attribute-keys (v2).

workspace:read
formbricks_get_management_contact_attribute_keys_by_idREAD

Gets a contact attribute key from the database. Formbricks GET /api/v2/management/contact-attribute-keys/{id} (v2).

workspace:read
formbricks_get_management_responsesREAD

Gets responses from the database. Formbricks GET /api/v2/management/responses (v2).

workspace:read
formbricks_get_management_responses_by_idREAD

Gets a response from the database. Formbricks GET /api/v2/management/responses/{id} (v2).

workspace:read
formbricks_get_management_surveys_by_surveyid_contact_links_contacts_by_contactidREAD

Retrieves a personalized link for a specific survey. Formbricks GET /api/v2/management/surveys/{surveyId}/contact-links/contacts/{contactId} (v2).

workspace:read
formbricks_get_management_surveys_by_surveyid_contact_links_segments_by_segmentidREAD

Generates personalized survey links for contacts in a segment. Formbricks GET /api/v2/management/surveys/{surveyId}/contact-links/segments/{segmentId} (v2).

workspace:read
formbricks_get_management_webhooksREAD

Gets webhooks from the database. Note - Environments are deprecated. Use Workspace/workspaceId terminology. Formbricks GET /api/v2/management/webhooks (v2).

workspace:read
formbricks_get_management_webhooks_by_idREAD

Gets a webhook from the database. Note - Environments are deprecated. Use Workspace/workspaceId terminology. Formbricks GET /api/v2/management/webhooks/{id} (v2).

workspace:read
formbricks_get_meREAD

Fetches the Workspaces and organizations associated with the API key. Formbricks GET /api/v2/me (v2). Organization-scoped: the API key needs Organization Access, ticked when the key was created.

organization:read
formbricks_get_organizations_by_organizationid_teamsREAD

Gets teams from the database. Formbricks GET /api/v2/organizations/{organizationId}/teams (v2). Organization-scoped: the API key needs Organization Access, ticked when the key was created.

organization:read
formbricks_get_organizations_by_organizationid_teams_by_idREAD

Gets a team from the database. Formbricks GET /api/v2/organizations/{organizationId}/teams/{id} (v2). Organization-scoped: the API key needs Organization Access, ticked when the key was created.

organization:read
formbricks_get_organizations_by_organizationid_usersREAD

Gets users from the database.<br />Only available for self-hosted Formbricks. Formbricks GET /api/v2/organizations/{organizationId}/users (v2). Organization-scoped: the API key needs Organization Access, ticked when the key was created.

organization:read
formbricks_get_organizations_by_organizationid_workspace_teamsREAD

Gets workspace teams from the database. Formbricks GET /api/v2/organizations/{organizationId}/workspace-teams (v2). Organization-scoped: the API key needs Organization Access, ticked when the key was created.

organization:read
formbricks_get_rolesREAD

Gets roles from the database. Formbricks GET /api/v2/roles (v2). Organization-scoped: the API key needs Organization Access, ticked when the key was created.

organization:read
formbricks_mcp_archive_workflowWRITE

Archive a Formbricks workflow. Archiving soft-deletes it and excludes it from default reads; unarchive_workflow restores it to draft.

workflows:write
formbricks_mcp_count_feedback_recordsREAD

Count the feedback records matching a set of filters, without fetching them — use this for 'how many' questions instead of paging through records. Takes exactly the same filters as list_feedback_records, with the same OR-within-a-filter and AND-across-filters rules. Ordering and pagination do not apply and are REJECTED. Returns only the total and the dataset it came from, never record content.

feedbackRecords:read
formbricks_mcp_create_feedback_recordWRITE

Create a feedback record in a workspace's feedback dataset. The dataset is resolved from workspaceId, or from datasetId when the workspace has more than one; it can never be set through the record body. submission_id is optional — a UUID is generated when it is omitted. Send the value_* field the record's field_type accepts; Formbricks validates the combination and the required set.

feedbackRecords:write
formbricks_mcp_create_feedback_recordsWRITE

Create between 1 and 50 feedback records in one call — the batch form, for imports. Every record is validated before any is written, so an invalid record fails the whole call rather than storing part of the batch; if the feedback service rejects some, the created ones are returned and meta.failures lists the rest by index.

feedbackRecords:write
formbricks_mcp_create_surveyWRITE

Create a Formbricks LINK survey using the v3 Surveys API contract. In-app surveys and distribution settings are not part of the v3 create operation. blocks, metadata, welcomeCard, endings, hiddenFields and variables follow the v3 survey document contract, which validates them server-side.

surveys:write
formbricks_mcp_create_workflowWRITE

Create a Formbricks workflow, ALWAYS as a draft — only enable_workflow makes one live. Takes the full v3 create payload: a complete definition with a schemaVersion, a trigger and an entry node. Everything below definition is open at the provider (ENG-2437), so a misspelled key inside a trigger, node or edge is DROPPED rather than rejected: treat the result as confirming only what it echoes back.

workflows:write
formbricks_mcp_delete_feedback_recordWRITE

Permanently delete ONE feedback record from a workspace's feedback dataset. This cannot be undone: the record and its search embedding are removed and no copy is kept — the audit log entry is the only remaining trace. There is no bulk delete.

feedbackRecords:write
formbricks_mcp_delete_surveyWRITE

Delete a Formbricks survey using the v3 Surveys API contract. The v3 delete answers 204 No Content; the tool result carries the requestId so the audit trail can be correlated.

surveys:write
formbricks_mcp_delete_workflowWRITE

Delete a Formbricks workflow using the v3 Workflows API contract. The v3 delete answers 204 No Content; the tool result carries the requestId.

workflows:write
formbricks_mcp_disable_workflowWRITE

Disable a live Formbricks workflow, stopping future runs, using the v3 Workflows API contract.

workflows:write
formbricks_mcp_duplicate_workflowWRITE

Duplicate a Formbricks workflow as a new DRAFT with empty run and version history, using the v3 Workflows API contract.

workflows:write
formbricks_mcp_enable_workflowWRITE

Enable a Formbricks workflow: validate executability, snapshot an immutable version and make it LIVE. Once live it runs on matching survey responses and CAN SEND EMAIL. A non-executable definition is refused with 422 workflow_not_executable.

workflows:write
formbricks_mcp_find_similar_feedback_recordsREAD

Find the feedback records most similar to a given one, by embedding distance — how widely a piece of feedback is echoed. Scored matches, best first, excluding the anchor. A record with no embedding answers 409 rather than an empty result and says which case it is: worth retrying while it is still being embedded, not worth retrying for a record with no text.

feedbackRecords:read
formbricks_mcp_get_feedback_recordREAD

Get one feedback record by its Hub UUID from a workspace's feedback dataset. A record in another tenant answers a generic authorization error rather than revealing whether the id exists.

feedbackRecords:read
formbricks_mcp_get_surveyREAD

Get one Formbricks survey using the v3 Surveys API contract.

surveys:read
formbricks_mcp_get_workflowREAD

Get one Formbricks workflow using the v3 Workflows API contract. An unknown or cross-workspace id answers 403, never 404, so existence is not leaked.

workflows:read
formbricks_mcp_get_workflow_runREAD

Get one Formbricks workflow run with its ordered step logs using the v3 Workflows API contract.

workflows:read
formbricks_mcp_list_feedback_datasetsREAD

List the active feedback datasets assigned to a Formbricks workspace. Use the returned id as datasetId for the other feedback-record tools. Needs the feedbackDirectories Enterprise entitlement; without it the provider answers 403 or 422.

feedbackRecords:read
formbricks_mcp_list_feedback_recordsREAD

List feedback records for a workspace's feedback dataset, with cursor pagination and optional filters. Repeating one filter ORs its values; different filters are AND-ed, and there is no way to OR across filters. Range filters are inclusive and EXCLUDE records whose column is empty, so value_number_min: 0 drops every text answer — use has_sentiment: false to find records enrichment has not reached.

feedbackRecords:read
formbricks_mcp_list_surveysREAD

List surveys in a Formbricks workspace using the v3 Surveys API contract. Cursor-paginated; filter by name substring, status (for example draft or inProgress) and type (for example link).

surveys:read
formbricks_mcp_list_workflow_runsREAD

List workflow runs for a Formbricks workspace, newest first, using the v3 Workflows API contract. Only workspaceId is required; omit filter.isDryRun to return both real and dry runs.

workflows:read
formbricks_mcp_list_workflowsREAD

List workflows in a Formbricks workspace using the v3 Workflows API contract. Omitting filter.status.in returns every status except archived.

workflows:read
formbricks_mcp_list_workspacesREAD

List the Formbricks workspaces this connection can access. The workspaceId-discovery prerequisite for the survey, workflow and feedback-record tools. Takes NO arguments — Formbricks rejects a call that pads them. Formbricks admits this tool on ANY resource read scope, so it requires none here; it still runs only on the sign-in connection, because it is an MCP tool and the API key never reaches the MCP server.

no provider scope
formbricks_mcp_patch_surveyWRITE

Update a Formbricks survey using the v3 Surveys API patch contract. Omitted top-level fields are preserved; PROVIDED top-level arrays and objects REPLACE that whole subtree, so omitted nested entries inside a provided subtree are removed. No deep merge and no JSON Patch. Fetch the survey and run validate_survey with operation: patch first.

surveys:write
formbricks_mcp_patch_workflowWRITE

Update a Formbricks workflow using the v3 Workflows API patch contract: top-level partial merge, no deep merge. Provided top-level fields replace that whole subtree, and definition edits are only accepted while the workflow is draft or disabled.

workflows:write
formbricks_mcp_search_feedback_recordsREAD

Search a workspace's feedback dataset by MEANING rather than keywords: the query is embedded and compared to record embeddings, so 'checkout is confusing' also matches 'I couldn't figure out how to pay'. Returns scored matches, best first — record ids with the matched text, not full records. Only records with text are searchable and embedding is asynchronous, so a record created moments ago may not appear.

feedbackRecords:read
formbricks_mcp_test_workflowREAD

Dry-run a Formbricks workflow: validate its live definition would execute, resolve the trigger's survey and ending cards, and confirm every literal send_email recipient is an organization member. No run is persisted and no side effects occur; the response reports { ok, problems }. Drafts ARE testable; only archived workflows are rejected, with 422.

workflows:read
formbricks_mcp_unarchive_workflowWRITE

Unarchive a Formbricks workflow, restoring it to draft, using the v3 Workflows API contract.

workflows:write
formbricks_mcp_update_feedback_recordWRITE

Correct the value of an existing feedback record. Send ONLY the mutable fields below — this tool REJECTS any other key rather than ignoring it, so do not echo a record back from get_feedback_record; strip its provenance (source_*, field_*, submission_id, collected_at) and its derived sentiment/emotions/translation first. At least one field is required. metadata is REPLACED wholesale.

feedbackRecords:write
formbricks_mcp_validate_surveyREAD

Validate a v3 survey create or patch payload without writing survey changes. A validation failure answers 200 with valid: false and structured invalid_params rather than an error.

surveys:read
formbricks_post_api_v1_management_action_classesWRITE

Create Action Class from the UI or from the API! You can read more about them [here](https://formbricks.com/docs/in-app-surveys/actions). Formbricks POST /api/v1/management/action-classes (v1).

workspace:write
formbricks_post_api_v1_management_responsesWRITE

Create a user response using the management API. This will trigger the response pipeline, including webhooks, integrations, follow-up emails, and other configured actions. Formbricks POST /api/v1/management/responses (v1).

workspace:write
formbricks_post_api_v1_management_storageWRITE

API endpoint for uploading public files. Uploaded files are public and accessible by anyone. This endpoint requires authentication and enforces a hard limit of 5 MB for all uploads. It accepts a JSON body with fileName, fileType, workspaceId, and optionally allowedFileExtensions to restrict file types. On success, it returns a signed URL for uploading the file to S3. Formbricks POST /api/v1/management/storage (v1).

workspace:write
formbricks_post_api_v1_management_surveysWRITE

Create a survey with granular settings, questions, their types, welcomeCard, thankYouCard, languages, etc right from this API. We'd however recommend you to do this via our Formbricks App with the UI for a better visual experience. Formbricks POST /api/v1/management/surveys (v1).

workspace:write
formbricks_post_api_v1_webhooksWRITE

Create a new webhook right from the API and see it active right away!. Formbricks POST /api/v1/webhooks (v1).

workspace:write
formbricks_post_management_contact_attribute_keysWRITE

Creates a contact attribute key in the database. Note - Environments are deprecated. Use Workspace/workspaceId terminology. Formbricks POST /api/v2/management/contact-attribute-keys (v2).

workspace:write
formbricks_post_management_contactsWRITE

Creates a single contact in the database. This endpoint expects a top-level `attributes` object. For bulk uploads, use `PUT /management/contacts/bulk`, which expects `contacts[].attributes[]` instead. Each contact must have a valid email address in the attributes. All attribute keys must already exist in the Workspace. The email is used as the unique identifier along with the Workspace. Formbricks POST /api/v2/management/contacts (v2).

workspace:write
formbricks_post_management_responsesWRITE

Creates a response in the database. This will trigger the response pipeline, including webhooks, integrations, follow-up emails, and other configured actions. Formbricks POST /api/v2/management/responses (v2).

workspace:write
formbricks_post_management_webhooksWRITE

Creates a webhook in the database. Note - Environments are deprecated. Use Workspace/workspaceId terminology. Formbricks POST /api/v2/management/webhooks (v2).

workspace:write
formbricks_post_organizations_by_organizationid_teamsWRITE

Creates a team in the database. Formbricks POST /api/v2/organizations/{organizationId}/teams (v2). Organization-scoped: the API key needs Organization Access, ticked when the key was created.

organization:write
formbricks_post_organizations_by_organizationid_workspace_teamsWRITE

Creates a Workspace team in the database. Formbricks POST /api/v2/organizations/{organizationId}/workspace-teams (v2). Organization-scoped: the API key needs Organization Access, ticked when the key was created.

organization:write
formbricks_put_api_v1_management_responses_by_responseidWRITE

Update an existing user response with new data. This will trigger the response pipeline, including webhooks, integrations, follow-up emails (if the response is marked as finished), and other configured actions. Formbricks PUT /api/v1/management/responses/{responseId} (v1).

workspace:write
formbricks_put_api_v1_management_surveys_by_surveyidWRITE

Update an existing survey with new properties. This is also what we'd recommend you to do from the UI for a better visual feedback. Formbricks PUT /api/v1/management/surveys/{surveyId} (v1).

workspace:write
formbricks_put_management_contact_attribute_keys_by_idWRITE

Updates a contact attribute key in the database. Formbricks PUT /api/v2/management/contact-attribute-keys/{id} (v2).

workspace:write
formbricks_put_management_contacts_bulkWRITE

Uploads contacts in bulk. This endpoint expects the bulk request shape: `contacts` must be an array, and each contact item must contain an `attributes` array of `{ attributeKey, value }` objects. Unlike `POST /management/contacts`, this endpoint does not accept a top-level `attributes` object. Each contact must include an `email` attribute in its `attributes` array, and that email must be valid. Formbricks PUT /api/v2/management/contacts/bulk (v2).

workspace:write
formbricks_put_management_responses_by_idWRITE

Updates a response in the database. This will trigger the response pipeline, including webhooks, integrations, follow-up emails (if the response is marked as finished), and other configured actions. Formbricks PUT /api/v2/management/responses/{id} (v2). A FULL REPLACE, not a partial update: send every field of the response as Get a response (v2) returns it -- only `id` and `surveyId` may be left out -- and Formbricks answers 422 naming each field that is missing.

workspace:write
formbricks_put_management_webhooks_by_idWRITE

Updates a webhook in the database. Note - Environments are deprecated. Use Workspace/workspaceId terminology. Formbricks PUT /api/v2/management/webhooks/{id} (v2).

workspace:write
formbricks_put_organizations_by_organizationid_teams_by_idWRITE

Updates a team in the database. Formbricks PUT /api/v2/organizations/{organizationId}/teams/{id} (v2). Organization-scoped: the API key needs Organization Access, ticked when the key was created.

organization:write
formbricks_put_organizations_by_organizationid_workspace_teamsWRITE

Updates a Workspace team in the database. Formbricks PUT /api/v2/organizations/{organizationId}/workspace-teams (v2). Organization-scoped: the API key needs Organization Access, ticked when the key was created.

organization:write

Put Formbricks behind one governed endpoint.

Same permissions, same audit trail, whatever else you connect next.