# Formbricks

```json
{
  "name": "Formbricks",
  "slug": "formbricks",
  "url": "https://composio.dev/toolkits/formbricks",
  "markdown_url": "https://composio.dev/toolkits/formbricks.md",
  "logo_url": "https://formbricks.com/logo.png",
  "categories": [
    "data & analytics"
  ],
  "is_composio_managed": false,
  "updated_at": "2026-05-12T10:12:06.663Z"
}
```

![Formbricks logo](https://formbricks.com/logo.png)

## Description

Securely connect your AI agents and chatbots (Claude, ChatGPT, Cursor, etc) with Formbricks MCP or direct API to create surveys, fetch responses, analyze feedback, and automate follow-ups through natural language.

## Summary

Formbricks is an open-source platform for building and managing surveys. It helps organizations collect and analyze user feedback efficiently.

## Categories

- data & analytics

## Toolkit Details

- Tools: 45

## Images

- Logo: https://formbricks.com/logo.png

## Authentication

- **Api Key**
  - Type: `api_key`
  - Description: Api Key authentication for Formbricks.
  - Setup:
    - Configure Api Key credentials for Formbricks.
    - Use the credentials when creating an auth config in Composio.

## Suggested Prompts

- Create a new customer feedback survey
- Add a contact to our user list
- Record survey responses from yesterday's event
- Delete an outdated attribute class

## Supported Tools

| Tool slug | Name | Description |
|---|---|---|
| `FORMBRICKS_CHECK_HEALTH` | Check Health | Tool to check the health status of the Formbricks API. Use when you need to verify that the API is operational and responding to requests. |
| `FORMBRICKS_CREATE_ACTION_CLASS` | Create Action Class | Tool to create a new action class. Use when defining custom action logic in your environment. |
| `FORMBRICKS_CREATE_ATTRIBUTE_CLASS` | Create Attribute Class | Creates a new attribute class (custom contact attribute) in Formbricks. Attribute classes define the schema for contact attributes used for segmentation and personalization. Each attribute must have a unique key within the environment. Common examples include 'plan', 'tier', 'company', or custom business-specific attributes. Use this when you need to define new contact attribute types before tracking user data. |
| `FORMBRICKS_CREATE_CLIENT_USER` | Create Client User | Tool to create or identify a user within a specified environment. If the user already exists, this will identify them and potentially update user attributes. If they don't exist, it will create a new user. Use when you need to register or update users in the client API for survey targeting. |
| `FORMBRICKS_CREATE_CONTACT` | Create Contact | Creates a new contact in a Formbricks environment. A contact represents a person or entity tracked in Formbricks for survey responses and interactions. The email serves as the unique identifier within an environment - if a contact with the same email already exists, this will update the existing contact. Use this action when you need to: - Register a new contact for survey distribution - Add contact information before sending surveys - Create or update contact records with custom attributes Prerequisites: - An environment ID (use GET_ME to retrieve available environments) - All attribute keys must exist in the environment (email is always available) - Write permissions on the API key |
| `FORMBRICKS_CREATE_DISPLAY` | Create Display | Create a display record to track when a survey is shown to users. Displays are used to measure survey view counts and can optionally be linked to a specific user. Use this after obtaining valid survey and environment IDs to register that a survey was displayed. |
| `FORMBRICKS_CREATE_RESPONSE` | Create Survey Response | Tool to create a response for a survey. Use after collecting all survey answers. |
| `FORMBRICKS_CREATE_SURVEY` | Create Survey | Tool to create a new survey. Use after defining survey details and questions. |
| `FORMBRICKS_CREATE_WEBHOOK` | Create Webhook | Tool to create a new webhook. Use when you need to register an external endpoint to receive form response events. |
| `FORMBRICKS_DELETE_ATTRIBUTE_CLASS` | Delete Attribute Class | Tool to delete an attribute class. Use when you need to remove an attribute class by its ID after confirming it's no longer needed. |
| `FORMBRICKS_DELETE_PERSON` | Delete Person | Tool to delete a person. Use when you need to remove a person's record from Formbricks after confirming the ID. |
| `FORMBRICKS_DELETE_RESPONSE` | Delete Survey Response | Tool to delete a survey response by its ID. Use when you need to remove an existing response after confirming its ID. |
| `FORMBRICKS_DELETE_SURVEY` | Delete Survey | Deletes a survey from Formbricks by its unique identifier. Use this action when you need to permanently remove a survey. The deletion cannot be undone. Before deletion, ensure you have the correct survey ID - you can list surveys first to verify. Returns the deleted survey's data including its ID, name, type, status, and timestamps. |
| `FORMBRICKS_DELETE_TEAM` | Delete Team | Tool to delete an organization team by its ID. Use when you need to permanently remove a team from an organization. Requires write permissions on the organization. Returns the deleted team's details including ID, name, timestamps, and organization ID. |
| `FORMBRICKS_DELETE_WEBHOOK` | Delete Webhook | Tool to delete a webhook by ID. Use when you need to remove an existing webhook from Formbricks. Use after confirming the webhook ID. |
| `FORMBRICKS_GET_ACCOUNT_INFO` | Get Account Info | Retrieves environment information for the authenticated API key. Returns details about the environment (development or production) including the associated project and setup completion status. This is useful for understanding which environment and project you're working with. |
| `FORMBRICKS_GET_ALL_CONTACTS` | Get All Contacts | Tool to retrieve all contacts within the organization. Use when you need a complete list of contacts. |
| `FORMBRICKS_GET_ATTRIBUTE_CLASS` | Get Attribute Class | Tool to get a specific attribute class by ID. Use when you need to retrieve details of a specific attribute class for inspection or validation. |
| `FORMBRICKS_GET_CLIENT_CONTACTS_STATE` | Get Client Contacts State | Tool to get the current state of a contact including surveys and segment information. Use when you need to retrieve tracking data for a specific user, including their segment memberships, survey displays, and response history. This endpoint uses the v2 client API. |
| `FORMBRICKS_GET_CONTACT_ATTRIBUTE_KEY` | Get Contact Attribute Key | Tool to retrieve detailed information about a specific contact attribute key by ID (v2 API). Use when you need to inspect the properties of a contact attribute key such as its type, uniqueness requirement, or associated environment. |
| `FORMBRICKS_GET_CONTACT_BY_ID` | Get Contact by ID | Tool to retrieve a specific contact by its ID. Use when you need to fetch detailed information about a single contact. |
| `FORMBRICKS_GET_ME` | Get Me | Tool to retrieve current authenticated organization's and environment details. Use when you need to fetch organization and environment information for the current API key. |
| `FORMBRICKS_GET_PERSON_BY_ID` | Get Person by ID | Tool to retrieve a person by their internal ID in Formbricks. Use when you need detailed information about a specific person, including all their custom attributes. The person ID can be obtained from the Get All Persons endpoint. |
| `FORMBRICKS_GET_RESPONSES` | Get Responses | Retrieve survey responses with flexible filtering, sorting, and pagination. Use this tool to: - List all responses across surveys or filter by specific surveyId - Filter responses by contactId to see submissions from a specific contact - Apply date range filters (startDate/endDate) with filterDateField - Sort by creation or update time (sortBy: createdAt/updatedAt) - Paginate through large result sets (limit: 1-250, skip for offset) Returns detailed response data including answers, completion status, timestamps, contact attributes, time-to-complete metrics, and pagination metadata. |
| `FORMBRICKS_GET_ROLES` | Get Roles | Tool to retrieve all available roles in the system. Use when you need system roles for access control. |
| `FORMBRICKS_GET_WEBHOOK` | Get Webhook | Tool to retrieve details of a specific webhook. Use when you need to inspect a webhook's configuration by ID. |
| `FORMBRICKS_LIST_ACTION_CLASSES` | List Action Classes | List all action classes in your Formbricks environment. Action classes define trackable user interactions (like clicks, page views, form submissions) that can trigger surveys or be used in targeting logic. Use this to discover what actions are available for survey triggers and audience segmentation. |
| `FORMBRICKS_LIST_ATTRIBUTE_CLASSES` | List Attribute Classes | Tool to list all attribute classes. Use when you need to retrieve existing attribute classes for segmentation or management. |
| `FORMBRICKS_LIST_CLIENT_ENVIRONMENT` | List Client Environment | Tool to retrieve environment state for Formbricks SDKs. Use when you need to fetch the complete environment configuration including surveys, action classes, and project settings. Note: This endpoint uses server-side caching with a 5-minute TTL, so changes may take up to 5 minutes to reflect. |
| `FORMBRICKS_LIST_CONTACT_ATTRIBUTE_KEYS` | List Contact Attribute Keys | Tool to retrieve contact attribute keys from Formbricks. Use when you need to list all available contact attributes for segmentation, filtering, or contact management. Supports pagination, sorting, and date filtering. |
| `FORMBRICKS_LIST_HEALTH` | List Health | Tool to check the health status of critical application dependencies including database and cache. Use when you need to verify that Formbricks services are operational. |
| `FORMBRICKS_LIST_MANAGEMENT_CONTACT_ATTRIBUTES` | List Management Contact Attributes | Tool to retrieve all contact attributes in the environment. Use when you need to view custom data stored for contacts across the organization. |
| `FORMBRICKS_LIST_MANAGEMENT_ME` | List Management Me | Tool to retrieve authenticated user's environment and project information. Use when you need to get details about the environment associated with the current API key, including project details and setup status. |
| `FORMBRICKS_LIST_MANAGEMENT_PEOPLE` | List Management People | Tool to retrieve all people (legacy term for contacts) in the environment. Use when you need a complete list of people with their attributes. |
| `FORMBRICKS_LIST_ORGANIZATIONS_PROJECT_TEAMS` | List Organizations Project Teams | Tool to list all project-team assignments for an organization (v2 API only). Use when you need to retrieve which teams are assigned to which projects, along with their permission levels. Supports filtering by team, project, date range, and pagination. |
| `FORMBRICKS_LIST_ORGANIZATION_TEAMS` | List Organization Teams | Tool to retrieve all teams in an organization (v2 API). Use when you need to list teams within a specific organization, with support for pagination, sorting, and date-based filtering. Returns team details including ID, name, timestamps, and organization ID. |
| `FORMBRICKS_LIST_SURVEYS` | List Surveys | List all surveys in the environment. Use this tool to: - Retrieve all surveys with complete configuration details - Access survey questions, endings, triggers, and styling - View survey status and metadata (created/updated timestamps, creator) - Get display settings, targeting, and language configurations Returns complete survey objects including questions, endings, welcome cards, triggers, display options, styling, and all other configuration settings. |
| `FORMBRICKS_LIST_WEBHOOKS` | List Webhooks | List all webhooks configured for the current environment. Returns webhooks with pagination support and optional filtering by survey IDs, date ranges, and sorting. Use this action to retrieve webhook configurations, check which surveys have webhooks enabled, or audit webhook settings. |
| `FORMBRICKS_UPDATE_CONTACT_ATTRIBUTES` | Update Contact Attributes | Tool to update a contact's attributes in Formbricks. Use when you need to keep contact information in sync with your app or set custom attributes. |
| `FORMBRICKS_UPDATE_RESPONSE` | Update Survey Response | Tool to update an existing survey response. Use after identifying the response to modify. |
| `FORMBRICKS_UPDATE_SURVEY` | Update Survey | Updates an existing Formbricks survey with new properties. Only include fields you want to modify - all fields except 'id' are optional. Common use cases: - Change survey status (e.g., from 'draft' to 'inProgress' to make it live) - Update survey name or closed message - Modify display settings (delay, frequency, percentage) - Add/update questions, welcome cards, or ending screens - Configure triggers and targeting Requires: Valid survey ID (get from List Surveys or Create Survey actions) |
| `FORMBRICKS_UPDATE_WEBHOOK` | Update Webhook | Tool to update an existing webhook. Use when you need to apply modifications to a webhook's configuration. |
| `FORMBRICKS_UPLOAD_BULK_CONTACTS` | Upload Bulk Contacts | Upload multiple contacts to a Formbricks environment in bulk (up to 250 per request). Each contact must include an 'email' attribute with a valid email address. Additional attributes like firstName, lastName, or custom fields can be included. The API returns status 200 for full success or 207 for partial success with details about skipped contacts. Use this tool when you need to efficiently import multiple contacts at once instead of creating them individually. |
| `FORMBRICKS_UPLOAD_PRIVATE_FILE` | Upload Private File | Tool to obtain S3 presigned upload data for a private survey file. Use after confirming environmentId and surveyId. |
| `FORMBRICKS_UPLOAD_PUBLIC_FILE` | Upload Public File | Retrieves S3 presigned upload URLs and form fields for uploading a public file to Formbricks storage. Returns signed URL and presigned fields needed to upload files directly to S3. Maximum file size: 5MB. Uploaded files are publicly accessible. Requires write permissions on the specified environment. |

## Supported Triggers

None listed.

## Installation and MCP Setup

### Path 1: SDK Installation

#### Path 1, Step 1: Install Composio

Install the Composio SDK
```python
pip install composio_openai
```

```typescript
npm install @composio/openai
```

#### Path 1, Step 2: Initialize Composio and Create Tool Router Session

Import and initialize Composio client, then create a Tool Router session
```python
from openai import OpenAI
from composio import Composio
from composio_openai import OpenAIResponsesProvider

composio = Composio(provider=OpenAIResponsesProvider())
openai = OpenAI()
session = composio.create(user_id='your-user-id')
```

```typescript
import OpenAI from 'openai';
import { Composio } from '@composio/core';
import { OpenAIResponsesProvider } from '@composio/openai';

const composio = new Composio({
  provider: new OpenAIResponsesProvider(),
});
const openai = new OpenAI({});
const session = await composio.create('your-user-id');
```

#### Path 1, Step 3: Execute Formbricks Tools via Tool Router with Your Agent

Get tools from Tool Router session and execute Formbricks actions with your Agent
```python
tools = session.tools
response = openai.responses.create(
  model='gpt-4.1',
  tools=tools,
  input=[{
    'role': 'user',
    'content': 'Create a new survey with five customer satisfaction questions.'
  }]
)
result = composio.provider.handle_tool_calls(
  response=response,
  user_id='your-user-id'
)
print(result)
```

```typescript
const tools = session.tools;
const response = await openai.responses.create({
  model: 'gpt-4.1',
  tools: tools,
  input: [{
    role: 'user',
    content: 'Create a new survey with five customer satisfaction questions.'
  }],
});
const result = await composio.provider.handleToolCalls(
  'your-user-id',
  response.output
);
console.log(result);
```

### Path 2: MCP Server Setup

#### Path 2, Step 1: Install Composio

Install the Composio SDK and Claude Agent SDK
```python
pip install composio claude-agent-sdk
```

```typescript
npm install @composio/core ai @ai-sdk/openai @ai-sdk/mcp
```

#### Path 2, Step 2: Create Tool Router Session

Initialize the Composio client and create a Tool Router session
```python
from composio import Composio
from claude_agent_sdk import ClaudeSDKClient, ClaudeAgentOptions

composio = Composio(api_key='your-composio-api-key')
session = composio.create(user_id='your-user-id')
url = session.mcp.url
```

```typescript
import { Composio } from '@composio/core';

const composio = new Composio({ apiKey: 'your-api-key' });

console.log("Creating Tool Router session...");
const { mcp } = await composio.create('your-user-id');
console.log(`Tool Router session created: ${mcp.url}`);
```

#### Path 2, Step 3: Connect to AI Agent

Use the MCP server with your AI agent
```python
import asyncio

options = ClaudeAgentOptions(
    permission_mode='bypassPermissions',
    mcp_servers={
        'tool_router': {
            'type': 'http',
            'url': url,
            'headers': {
                'x-api-key': 'your-composio-api-key'
            }
        }
    },
    system_prompt='You are a helpful assistant with access to Formbricks tools.',
    max_turns=10
)

async def main():
    async with ClaudeSDKClient(options=options) as client:
        await client.query('Create a new survey to collect user satisfaction feedback')
        async for message in client.receive_response():
            if hasattr(message, 'content'):
                for block in message.content:
                    if hasattr(block, 'text'):
                        print(block.text)

asyncio.run(main())
```

```typescript
import { openai } from '@ai-sdk/openai';
import { experimental_createMCPClient as createMCPClient } from '@ai-sdk/mcp';
import { generateText, stepCountIs } from 'ai';

const client = await createMCPClient({
  transport: {
    type: 'http',
    url: mcp.url,
    headers: { 'x-api-key': 'your-composio-api-key' }
  }
});

const tools = await client.tools();

const { text } = await generateText({
  model: openai('gpt-4o'),
  tools,
  messages: [{ role: 'user', content: 'Create a new survey to collect user satisfaction feedback' }],
  stopWhen: stepCountIs( 5 )
});

console.log(`Agent: ${text}`);
```

## Why Use Composio?

### 1. AI Native Formbricks Integration

- Supports both Formbricks MCP and direct API based integrations
- Structured, LLM-friendly schemas for reliable tool execution
- Rich coverage for reading, writing, and querying your Formbricks data

### 2. Managed Auth

- Built-in OAuth handling with automatic token refresh and rotation
- Central place to manage, scope, and revoke Formbricks access
- Per user and per environment credentials instead of hard-coded keys

### 3. Agent Optimized Design

- Tools are tuned using real error and success rates to improve reliability over time
- Comprehensive execution logs so you always know what ran, when, and on whose behalf

### 4. Enterprise Grade Security

- Fine-grained RBAC so you control which agents and users can access Formbricks
- Scoped, least privilege access to Formbricks resources
- Full audit trail of agent actions to support review and compliance

## Use Formbricks with any AI Agent Framework

Choose a framework you want to connect Formbricks with:

- [OpenAI Agents SDK](https://composio.dev/toolkits/formbricks/framework/open-ai-agents-sdk)
- [Claude Agent SDK](https://composio.dev/toolkits/formbricks/framework/claude-agents-sdk)
- [Claude Code](https://composio.dev/toolkits/formbricks/framework/claude-code)
- [Claude Cowork](https://composio.dev/toolkits/formbricks/framework/claude-cowork)
- [Codex](https://composio.dev/toolkits/formbricks/framework/codex)
- [OpenClaw](https://composio.dev/toolkits/formbricks/framework/openclaw)
- [Hermes](https://composio.dev/toolkits/formbricks/framework/hermes-agent)
- [Google ADK](https://composio.dev/toolkits/formbricks/framework/google-adk)
- [LangChain](https://composio.dev/toolkits/formbricks/framework/langchain)
- [Vercel AI SDK](https://composio.dev/toolkits/formbricks/framework/ai-sdk)
- [Mastra AI](https://composio.dev/toolkits/formbricks/framework/mastra-ai)
- [LlamaIndex](https://composio.dev/toolkits/formbricks/framework/llama-index)
- [CrewAI](https://composio.dev/toolkits/formbricks/framework/crew-ai)
- [Pydantic AI](https://composio.dev/toolkits/formbricks/framework/pydantic-ai)
- [AutoGen](https://composio.dev/toolkits/formbricks/framework/autogen)

## Related Toolkits

- [Excel](https://composio.dev/toolkits/excel) - Microsoft Excel is a robust spreadsheet application for organizing, analyzing, and visualizing data. It's the go-to tool for calculations, reporting, and flexible data management.
- [21risk](https://composio.dev/toolkits/_21risk) - 21RISK is a web app built for easy checklist, audit, and compliance management. It streamlines risk processes so teams can focus on what matters.
- [Abstract](https://composio.dev/toolkits/abstract) - Abstract provides a suite of APIs for automating data validation and enrichment tasks. It helps developers streamline workflows and ensure data quality with minimal effort.
- [Addressfinder](https://composio.dev/toolkits/addressfinder) - Addressfinder is a data quality platform for verifying addresses, emails, and phone numbers. It helps you ensure accurate customer and contact data every time.
- [Agenty](https://composio.dev/toolkits/agenty) - Agenty is a web scraping and automation platform for extracting data and automating browser tasks—no coding needed. It streamlines data collection, monitoring, and repetitive online actions.
- [Ambee](https://composio.dev/toolkits/ambee) - Ambee is an environmental data platform providing real-time, hyperlocal APIs for air quality, weather, and pollen. Get precise environmental insights to power smarter decisions in your apps and workflows.
- [Ambient weather](https://composio.dev/toolkits/ambient_weather) - Ambient Weather is a platform for personal weather stations with a robust API for accessing local, real-time, and historical weather data. Get detailed environmental insights directly from your own sensors for smarter apps and automations.
- [Anonyflow](https://composio.dev/toolkits/anonyflow) - Anonyflow is a service for encryption-based data anonymization and secure data sharing. It helps organizations meet GDPR, CCPA, and HIPAA data privacy compliance requirements.
- [Api ninjas](https://composio.dev/toolkits/api_ninjas) - Api ninjas offers 120+ public APIs spanning categories like weather, finance, sports, and more. Developers use it to supercharge apps with real-time data and actionable endpoints.
- [Api sports](https://composio.dev/toolkits/api_sports) - Api sports is a comprehensive sports data platform covering 2,000+ competitions with live scores and 15+ years of stats. Instantly access up-to-date sports information for analysis, apps, or chatbots.
- [Apify](https://composio.dev/toolkits/apify) - Apify is a cloud platform for building, deploying, and managing web scraping and automation tools called Actors. It lets you automate data extraction and workflow tasks at scale—no infrastructure headaches.
- [Autom](https://composio.dev/toolkits/autom) - Autom is a lightning-fast search engine results data platform for Google, Bing, and Brave. Developers use it to access fresh, low-latency SERP data on demand.
- [Beaconchain](https://composio.dev/toolkits/beaconchain) - Beaconchain is a real-time analytics platform for Ethereum 2.0's Beacon Chain. It provides detailed insights into validators, blocks, and overall network performance.
- [Big data cloud](https://composio.dev/toolkits/big_data_cloud) - BigDataCloud provides APIs for geolocation, reverse geocoding, and address validation. Instantly access reliable location intelligence to enhance your applications and workflows.
- [Bigpicture io](https://composio.dev/toolkits/bigpicture_io) - BigPicture.io offers APIs for accessing detailed company and profile data. Instantly enrich your applications with up-to-date insights on 20M+ businesses.
- [Bitquery](https://composio.dev/toolkits/bitquery) - Bitquery is a blockchain data platform offering indexed, real-time, and historical data from 40+ blockchains via GraphQL APIs. Get unified, reliable access to complex on-chain data for analytics, trading, and research.
- [Brightdata](https://composio.dev/toolkits/brightdata) - Brightdata is a leading web data platform offering advanced scraping, SERP APIs, and anti-bot tools. It lets you collect public web data at scale, bypassing blocks and friction.
- [Builtwith](https://composio.dev/toolkits/builtwith) - BuiltWith is a web technology profiler that uncovers the technologies powering any website. Gain actionable insights into analytics, hosting, and content management stacks for smarter research and lead generation.
- [Byteforms](https://composio.dev/toolkits/byteforms) - Byteforms is an all-in-one platform for creating forms, managing submissions, and integrating data. It streamlines workflows by centralizing form data collection and automation.
- [Cabinpanda](https://composio.dev/toolkits/cabinpanda) - Cabinpanda is a data collection platform for building and managing online forms. It helps streamline how you gather, organize, and analyze responses.

## Frequently Asked Questions

### Do I need my own developer credentials to use Formbricks with Composio?

Yes, Formbricks requires you to configure your own API key credentials. Once set up, Composio handles secure credential storage and API request handling for you.

### Can I use multiple toolkits together?

Yes! Composio's Tool Router enables agents to use multiple toolkits. [Learn more](https://docs.composio.dev/tool-router/overview).

### Is Composio secure?

Composio is SOC 2 and ISO 27001 compliant with all data encrypted in transit and at rest. [Learn more](https://trust.composio.dev).

### What if the API changes?

Composio maintains and updates all toolkit integrations automatically, so your agents always work with the latest API versions.

---
[See all toolkits](https://composio.dev/toolkits) · [Composio docs](https://docs.composio.dev/llms.txt)
