diff --git a/docs/api-reference/openapi.json b/docs/api-reference/openapi.json index 62ed9db67e..bf0bee96f7 100644 --- a/docs/api-reference/openapi.json +++ b/docs/api-reference/openapi.json @@ -238,7 +238,7 @@ "type": ["string", "null"] }, "workspaceId": { - "description": "The workspace this contact belongs to", + "description": "The Workspace this contact belongs to", "type": "string" } }, @@ -326,7 +326,7 @@ "type": "string" }, "workspaceId": { - "description": "The ID of the workspace this attribute belongs to", + "description": "The ID of the Workspace this attribute belongs to", "type": "string" } }, @@ -372,7 +372,7 @@ "type": ["string", "null"] }, "workspaceId": { - "description": "The ID of the workspace this attribute belongs to", + "description": "The ID of the Workspace this attribute belongs to", "type": "string" } }, @@ -531,17 +531,17 @@ "projectTeam": { "properties": { "createdAt": { - "description": "The date and time the project tem was created", + "description": "The date and time the Workspace team was created", "example": "2021-01-01T00:00:00.000Z", "type": "string" }, "permission": { - "description": "Level of access granted to the project", + "description": "Level of access granted to the Workspace", "enum": ["read", "readWrite", "manage"], "type": "string" }, "projectId": { - "description": "The ID of the project", + "description": "The ID of the Workspace", "type": "string" }, "teamId": { @@ -549,7 +549,7 @@ "type": "string" }, "updatedAt": { - "description": "The date and time the project team was last updated", + "description": "The date and time the Workspace team was last updated", "example": "2021-01-01T00:00:00.000Z", "type": "string" } @@ -2693,7 +2693,7 @@ "type": ["string", "null"] }, "projectOverwrites": { - "description": "Project specific overwrites", + "description": "Workspace-specific overwrites", "properties": { "brandColor": { "pattern": "^#(?:[A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$", @@ -3052,7 +3052,7 @@ "type": "object" }, "workspaceId": { - "description": "The workspace ID of the survey", + "description": "The Workspace ID of the survey", "type": "string" } }, @@ -3243,7 +3243,7 @@ "type": "string" }, "workspaceId": { - "description": "The ID of the workspace", + "description": "The ID of the Workspace", "type": "string" } }, @@ -3284,7 +3284,7 @@ "paths": { "/client/{workspaceId}/contacts/{userId}/attributes": { "put": { - "description": "Update a contact's attributes in Formbricks to keep them in sync with your app or when you want to set a custom attribute in Formbricks. Note - Environments are deprecated. Use workspace/workspaceId terminology.", + "description": "Update a contact's attributes in Formbricks to keep them in sync with your app or when you want to set a custom attribute in Formbricks. Note - Environments are deprecated. Use Workspace/workspaceId terminology.", "parameters": [ { "in": "path", @@ -3359,7 +3359,7 @@ }, "/client/{workspaceId}/displays": { "post": { - "description": "Create a new display for a valid survey ID. If a userId is passed, the display is linked to the user. Note - Environments are deprecated. Use workspace/workspaceId terminology.", + "description": "Create a new display for a valid survey ID. If a userId is passed, the display is linked to the user. Note - Environments are deprecated. Use Workspace/workspaceId terminology.", "requestBody": { "content": { "application/json": { @@ -3401,10 +3401,10 @@ }, "/client/{workspaceId}/environment": { "get": { - "description": "Retrieves the workspace state to be used in Formbricks SDKs. Note - Environments are deprecated. Use workspace/workspaceId terminology. **Cache Behavior**: This endpoint uses server-side caching with a **5-minute TTL (Time To Live)**. Any changes to surveys, action classes, project settings, or other workspace data will take up to 5 minutes to reflect in the API response. This caching is implemented to improve performance for high-frequency SDK requests.", + "description": "Retrieves the Workspace state to be used in Formbricks SDKs. Note - Environments are deprecated. Use Workspace/workspaceId terminology. **Cache Behavior**: This endpoint uses server-side caching with a **5-minute TTL (Time To Live)**. Any changes to surveys, action classes, Workspace settings, or other Workspace data will take up to 5 minutes to reflect in the API response. This caching is implemented to improve performance for high-frequency SDK requests.", "parameters": [ { - "description": "The ID of the workspace. Deprecated alias `environmentId`.", + "description": "The ID of the Workspace. Deprecated alias `environmentId`.", "in": "path", "name": "workspaceId", "required": true, @@ -3443,7 +3443,7 @@ }, "/client/{workspaceId}/identify/contacts/{userId}": { "get": { - "description": "Retrieves a contact's state including their segments, displays, responses and other tracking information. If the contact doesn't exist, it will be created. Note - Environments are deprecated. Use workspace/workspaceId terminology.", + "description": "Retrieves a contact's state including their segments, displays, responses and other tracking information. If the contact doesn't exist, it will be created. Note - Environments are deprecated. Use Workspace/workspaceId terminology.", "parameters": [ { "in": "path", @@ -3491,7 +3491,7 @@ }, "/client/{workspaceId}/responses": { "post": { - "description": "Create a response for a survey and its fields with the user's responses. The userId & meta here is optional. Note - Environments are deprecated. Use workspace/workspaceId terminology.", + "description": "Create a response for a survey and its fields with the user's responses. The userId & meta here is optional. Note - Environments are deprecated. Use Workspace/workspaceId terminology.", "requestBody": { "content": { "application/json": { @@ -3533,10 +3533,10 @@ }, "/client/{workspaceId}/responses/{responseId}": { "put": { - "description": "Update an existing response for example when you want to mark a response as finished or you want to change an existing response's value. Note - Environments are deprecated. Use workspace/workspaceId terminology.", + "description": "Update an existing response for example when you want to mark a response as finished or you want to change an existing response's value. Note - Environments are deprecated. Use Workspace/workspaceId terminology.", "parameters": [ { - "description": "The ID of the workspace. Deprecated alias `environmentId`.", + "description": "The ID of the Workspace. Deprecated alias `environmentId`.", "in": "path", "name": "workspaceId", "required": true, @@ -3613,10 +3613,10 @@ }, "/client/{workspaceId}/storage": { "post": { - "description": "API endpoint for uploading private files. Uploaded files are kept private so that only users with access to the specified workspace can retrieve them. The endpoint validates the survey ID, file name, and file type from the request body, and returns a signed URL for S3 uploads along with a local upload URL. Note - Environments are deprecated. Use workspace/workspaceId terminology.", + "description": "API endpoint for uploading private files. Uploaded files are kept private so that only users with access to the specified Workspace can retrieve them. The endpoint validates the survey ID, file name, and file type from the request body, and returns a signed URL for S3 uploads along with a local upload URL. Note - Environments are deprecated. Use Workspace/workspaceId terminology.", "parameters": [ { - "description": "The ID of the workspace. Deprecated alias `environmentId`.", + "description": "The ID of the Workspace. Deprecated alias `environmentId`.", "in": "path", "name": "workspaceId", "required": true, @@ -3756,7 +3756,7 @@ }, "/client/{workspaceId}/user": { "post": { - "description": "Endpoint for creating or identifying a user within the specified workspace. 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. Note - Environments are deprecated. Use workspace/workspaceId terminology.", + "description": "Endpoint for creating or identifying a user within the specified Workspace. 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. Note - Environments are deprecated. Use Workspace/workspaceId terminology.", "requestBody": { "content": { "application/json": { @@ -3834,7 +3834,7 @@ }, "/management/contact-attribute-keys": { "get": { - "description": "Gets contact attribute keys from the database. Note - Environments are deprecated. Use workspace/workspaceId terminology.", + "description": "Gets contact attribute keys from the database. Note - Environments are deprecated. Use Workspace/workspaceId terminology.", "operationId": "getContactAttributeKeys", "parameters": [ { @@ -3911,11 +3911,11 @@ } }, { - "description": "The workspace ID to filter by", + "description": "The Workspace ID to filter by", "in": "query", "name": "workspaceId", "schema": { - "description": "The workspace ID to filter by", + "description": "The Workspace ID to filter by", "type": "string" } }, @@ -3985,7 +3985,7 @@ "type": "string" }, "workspaceId": { - "description": "The ID of the workspace this attribute belongs to", + "description": "The ID of the Workspace this attribute belongs to", "type": "string" } }, @@ -4019,7 +4019,7 @@ "tags": ["Management API - Contact Attribute Keys"] }, "post": { - "description": "Creates a contact attribute key in the database. Note - Environments are deprecated. Use workspace/workspaceId terminology.", + "description": "Creates a contact attribute key in the database. Note - Environments are deprecated. Use Workspace/workspaceId terminology.", "operationId": "createContactAttributeKey", "requestBody": { "content": { @@ -4084,7 +4084,7 @@ "type": "string" }, "workspaceId": { - "description": "The ID of the workspace this attribute belongs to", + "description": "The ID of the Workspace this attribute belongs to", "type": "string" } }, @@ -4166,7 +4166,7 @@ "type": "string" }, "workspaceId": { - "description": "The ID of the workspace this attribute belongs to", + "description": "The ID of the Workspace this attribute belongs to", "type": "string" } }, @@ -4246,7 +4246,7 @@ "type": "string" }, "workspaceId": { - "description": "The ID of the workspace this attribute belongs to", + "description": "The ID of the Workspace this attribute belongs to", "type": "string" } }, @@ -4337,7 +4337,7 @@ "type": "string" }, "workspaceId": { - "description": "The ID of the workspace this attribute belongs to", + "description": "The ID of the Workspace this attribute belongs to", "type": "string" } }, @@ -4354,7 +4354,7 @@ }, "/management/contacts": { "post": { - "description": "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. Note - Environments are deprecated. Use workspace/workspaceId terminology.", + "description": "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. Note - Environments are deprecated. Use Workspace/workspaceId terminology.", "operationId": "createContact", "requestBody": { "content": { @@ -4391,7 +4391,7 @@ } } }, - "description": "The single contact to create. Must include a top-level `attributes` object with an email attribute, and all attribute keys must already exist in the workspace. Note - Environments are deprecated. Use workspace/workspaceId terminology.", + "description": "The single contact to create. Must include a top-level `attributes` object with an email attribute, and all attribute keys must already exist in the Workspace. Note - Environments are deprecated. Use Workspace/workspaceId terminology.", "required": true }, "responses": { @@ -4446,7 +4446,7 @@ }, "/management/contacts/bulk": { "put": { - "description": "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. Note - Environments are deprecated. Use workspace/workspaceId terminology.", + "description": "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. Note - Environments are deprecated. Use Workspace/workspaceId terminology.", "operationId": "uploadBulkContacts", "requestBody": { "content": { @@ -6133,7 +6133,7 @@ }, "/management/webhooks": { "get": { - "description": "Gets webhooks from the database. Note - Environments are deprecated. Use workspace/workspaceId terminology.", + "description": "Gets webhooks from the database. Note - Environments are deprecated. Use Workspace/workspaceId terminology.", "operationId": "getWebhooks", "parameters": [ { @@ -6279,7 +6279,7 @@ "type": "string" }, "workspaceId": { - "description": "The ID of the workspace", + "description": "The ID of the Workspace", "type": "string" } }, @@ -6313,7 +6313,7 @@ "tags": ["Management API - Webhooks"] }, "post": { - "description": "Creates a webhook in the database. Note - Environments are deprecated. Use workspace/workspaceId terminology.", + "description": "Creates a webhook in the database. Note - Environments are deprecated. Use Workspace/workspaceId terminology.", "operationId": "createWebhook", "requestBody": { "content": { @@ -6356,7 +6356,7 @@ "type": "string" }, "workspaceId": { - "description": "The ID of the workspace", + "description": "The ID of the Workspace", "type": "string" } }, @@ -6432,7 +6432,7 @@ "type": "string" }, "workspaceId": { - "description": "The ID of the workspace", + "description": "The ID of the Workspace", "type": "string" } }, @@ -6449,7 +6449,7 @@ }, "/management/webhooks/{id}": { "delete": { - "description": "Deletes a webhook from the database. Note - Environments are deprecated. Use workspace/workspaceId terminology.", + "description": "Deletes a webhook from the database. Note - Environments are deprecated. Use Workspace/workspaceId terminology.", "operationId": "deleteWebhook", "parameters": [ { @@ -6518,7 +6518,7 @@ "type": "string" }, "workspaceId": { - "description": "The ID of the workspace", + "description": "The ID of the Workspace", "type": "string" } }, @@ -6533,7 +6533,7 @@ "tags": ["Management API - Webhooks"] }, "get": { - "description": "Gets a webhook from the database. Note - Environments are deprecated. Use workspace/workspaceId terminology.", + "description": "Gets a webhook from the database. Note - Environments are deprecated. Use Workspace/workspaceId terminology.", "operationId": "getWebhook", "parameters": [ { @@ -6602,7 +6602,7 @@ "type": "string" }, "workspaceId": { - "description": "The ID of the workspace", + "description": "The ID of the Workspace", "type": "string" } }, @@ -6617,7 +6617,7 @@ "tags": ["Management API - Webhooks"] }, "put": { - "description": "Updates a webhook in the database. Note - Environments are deprecated. Use workspace/workspaceId terminology.", + "description": "Updates a webhook in the database. Note - Environments are deprecated. Use Workspace/workspaceId terminology.", "operationId": "updateWebhook", "parameters": [ { @@ -6671,7 +6671,7 @@ "type": "string" }, "workspaceId": { - "description": "The ID of the workspace", + "description": "The ID of the Workspace", "type": "string" } }, @@ -6747,7 +6747,7 @@ "type": "string" }, "workspaceId": { - "description": "The ID of the workspace", + "description": "The ID of the Workspace", "type": "string" } }, @@ -6764,7 +6764,7 @@ }, "/me": { "get": { - "description": "Fetches the projects and organizations associated with the API key.", + "description": "Fetches the Workspaces and organizations associated with the API key.", "operationId": "me", "responses": { "200": { @@ -6885,7 +6885,7 @@ }, "/organizations/{organizationId}/project-teams": { "delete": { - "description": "Deletes a project team from the database.", + "description": "Deletes a Workspace team from the database.", "operationId": "deleteProjectTeam", "parameters": [ { @@ -6921,17 +6921,17 @@ "schema": { "properties": { "createdAt": { - "description": "The date and time the project tem was created", + "description": "The date and time the Workspace team was created", "example": "2021-01-01T00:00:00.000Z", "type": "string" }, "permission": { - "description": "Level of access granted to the project", + "description": "Level of access granted to the Workspace", "enum": ["read", "readWrite", "manage"], "type": "string" }, "projectId": { - "description": "The ID of the project", + "description": "The ID of the Workspace", "type": "string" }, "teamId": { @@ -6939,7 +6939,7 @@ "type": "string" }, "updatedAt": { - "description": "The date and time the project team was last updated", + "description": "The date and time the Workspace team was last updated", "example": "2021-01-01T00:00:00.000Z", "type": "string" } @@ -6948,11 +6948,11 @@ } } }, - "description": "Project team deleted successfully." + "description": "Workspace team deleted successfully." } }, - "summary": "Delete a project team", - "tags": ["Organizations API - Project Teams"] + "summary": "Delete a Workspace team", + "tags": ["Organizations API - Workspace Teams"] }, "get": { "description": "Gets projectTeams from the database.", @@ -7065,17 +7065,17 @@ "items": { "properties": { "createdAt": { - "description": "The date and time the project tem was created", + "description": "The date and time the Workspace team was created", "example": "2021-01-01T00:00:00.000Z", "type": "string" }, "permission": { - "description": "Level of access granted to the project", + "description": "Level of access granted to the Workspace", "enum": ["read", "readWrite", "manage"], "type": "string" }, "projectId": { - "description": "The ID of the project", + "description": "The ID of the Workspace", "type": "string" }, "teamId": { @@ -7083,7 +7083,7 @@ "type": "string" }, "updatedAt": { - "description": "The date and time the project team was last updated", + "description": "The date and time the Workspace team was last updated", "example": "2021-01-01T00:00:00.000Z", "type": "string" } @@ -7111,14 +7111,14 @@ } } }, - "description": "Project teams retrieved successfully." + "description": "Workspace teams retrieved successfully." } }, - "summary": "Get project teams", - "tags": ["Organizations API - Project Teams"] + "summary": "Get Workspace teams", + "tags": ["Organizations API - Workspace Teams"] }, "post": { - "description": "Creates a project team in the database.", + "description": "Creates a Workspace team in the database.", "operationId": "createProjectTeam", "parameters": [ { @@ -7137,12 +7137,12 @@ "schema": { "properties": { "permission": { - "description": "Level of access granted to the project", + "description": "Level of access granted to the Workspace", "enum": ["read", "readWrite", "manage"], "type": "string" }, "projectId": { - "description": "The ID of the project", + "description": "The ID of the Workspace", "type": "string" }, "teamId": { @@ -7155,7 +7155,7 @@ } } }, - "description": "The project team to create", + "description": "The Workspace team to create", "required": true }, "responses": { @@ -7165,17 +7165,17 @@ "schema": { "properties": { "createdAt": { - "description": "The date and time the project tem was created", + "description": "The date and time the Workspace team was created", "example": "2021-01-01T00:00:00.000Z", "type": "string" }, "permission": { - "description": "Level of access granted to the project", + "description": "Level of access granted to the Workspace", "enum": ["read", "readWrite", "manage"], "type": "string" }, "projectId": { - "description": "The ID of the project", + "description": "The ID of the Workspace", "type": "string" }, "teamId": { @@ -7183,7 +7183,7 @@ "type": "string" }, "updatedAt": { - "description": "The date and time the project team was last updated", + "description": "The date and time the Workspace team was last updated", "example": "2021-01-01T00:00:00.000Z", "type": "string" } @@ -7192,14 +7192,14 @@ } } }, - "description": "Project team created successfully." + "description": "Workspace team created successfully." } }, "summary": "Create a projectTeam", - "tags": ["Organizations API - Project Teams"] + "tags": ["Organizations API - Workspace Teams"] }, "put": { - "description": "Updates a project team in the database.", + "description": "Updates a Workspace team in the database.", "operationId": "updateProjectTeam", "parameters": [ { @@ -7218,12 +7218,12 @@ "schema": { "properties": { "permission": { - "description": "Level of access granted to the project", + "description": "Level of access granted to the Workspace", "enum": ["read", "readWrite", "manage"], "type": "string" }, "projectId": { - "description": "The ID of the project", + "description": "The ID of the Workspace", "type": "string" }, "teamId": { @@ -7236,7 +7236,7 @@ } } }, - "description": "The project team to update", + "description": "The Workspace team to update", "required": true }, "responses": { @@ -7246,17 +7246,17 @@ "schema": { "properties": { "createdAt": { - "description": "The date and time the project tem was created", + "description": "The date and time the Workspace team was created", "example": "2021-01-01T00:00:00.000Z", "type": "string" }, "permission": { - "description": "Level of access granted to the project", + "description": "Level of access granted to the Workspace", "enum": ["read", "readWrite", "manage"], "type": "string" }, "projectId": { - "description": "The ID of the project", + "description": "The ID of the Workspace", "type": "string" }, "teamId": { @@ -7264,7 +7264,7 @@ "type": "string" }, "updatedAt": { - "description": "The date and time the project team was last updated", + "description": "The date and time the Workspace team was last updated", "example": "2021-01-01T00:00:00.000Z", "type": "string" } @@ -7273,11 +7273,11 @@ } } }, - "description": "Project team updated successfully." + "description": "Workspace team updated successfully." } }, - "summary": "Update a project team", - "tags": ["Organizations API - Project Teams"] + "summary": "Update a Workspace team", + "tags": ["Organizations API - Workspace Teams"] } }, "/organizations/{organizationId}/teams": { @@ -8269,8 +8269,8 @@ "name": "Organizations API - Teams" }, { - "description": "Operations for managing project teams.", - "name": "Organizations API - Project Teams" + "description": "Operations for managing Workspace teams.", + "name": "Organizations API - Workspace Teams" }, { "description": "Operations for managing users.", diff --git a/docs/api-reference/test-key.mdx b/docs/api-reference/test-key.mdx index a2f55d3ceb..10b3c56098 100644 --- a/docs/api-reference/test-key.mdx +++ b/docs/api-reference/test-key.mdx @@ -35,9 +35,9 @@ curl --location \ "createdAt": "2023-08-08T18:04:59.922Z", "updatedAt": "2023-08-08T18:04:59.922Z", "type": "production", - "project": { + "workspace": { "id": "cll2m30r60003mx0hnemjfckr", - "name": "My Project" + "name": "My Workspace" }, "appSetupCompleted": false, "websiteSetupCompleted": false, diff --git a/docs/api-v2-reference/openapi.yml b/docs/api-v2-reference/openapi.yml index fd4e14997c..ac7e74ab7f 100644 --- a/docs/api-v2-reference/openapi.yml +++ b/docs/api-v2-reference/openapi.yml @@ -29,8 +29,8 @@ tags: description: Operations for managing webhooks. - name: Organizations API - Teams description: Operations for managing teams. - - name: Organizations API - Project Teams - description: Operations for managing project teams. + - name: Organizations API - Workspace Teams + description: Operations for managing Workspace teams. - name: Organizations API - Users description: Operations for managing users. security: @@ -41,14 +41,14 @@ paths: security: [] description: Update an existing response for example when you want to mark a response as finished or you want to change an existing response's value. - Note - Environments are deprecated. Use workspace/workspaceId terminology. + Note - Environments are deprecated. Use Workspace/workspaceId terminology. parameters: - in: path name: workspaceId required: true schema: type: string - description: The ID of the workspace. Deprecated alias `environmentId`. + description: The ID of the Workspace. Deprecated alias `environmentId`. - in: path name: responseId required: true @@ -94,7 +94,7 @@ paths: security: [] description: Create a response for a survey and its fields with the user's responses. The userId & meta here is optional. Note - Environments are deprecated. - Use workspace/workspaceId terminology. + Use Workspace/workspaceId terminology. requestBody: content: application/json: @@ -123,7 +123,7 @@ paths: security: [] description: Update a contact's attributes in Formbricks to keep them in sync with your app or when you want to set a custom attribute in Formbricks. - Note - Environments are deprecated. Use workspace/workspaceId terminology. + Note - Environments are deprecated. Use Workspace/workspaceId terminology. parameters: - in: path name: workspaceId @@ -173,7 +173,7 @@ paths: security: [] description: Retrieves a contact's state including their segments, displays, responses and other tracking information. If the contact doesn't exist, - it will be created. Note - Environments are deprecated. Use workspace/workspaceId + it will be created. Note - Environments are deprecated. Use Workspace/workspaceId terminology. parameters: - in: path @@ -207,7 +207,7 @@ paths: security: [] description: Create a new display for a valid survey ID. If a userId is passed, the display is linked to the user. Note - Environments are deprecated. Use - workspace/workspaceId terminology. + Workspace/workspaceId terminology. requestBody: content: application/json: @@ -234,11 +234,11 @@ paths: /client/{workspaceId}/environment: get: security: [] - description: "Retrieves the workspace state to be used in Formbricks SDKs. - Note - Environments are deprecated. Use workspace/workspaceId terminology. + description: "Retrieves the Workspace state to be used in Formbricks SDKs. + Note - Environments are deprecated. Use Workspace/workspaceId terminology. **Cache Behavior**: This endpoint uses server-side caching with a **5-minute TTL (Time To Live)**. Any changes to surveys, action classes, - project settings, or other workspace data will take up to 5 minutes to + Workspace settings, or other Workspace data will take up to 5 minutes to reflect in the API response. This caching is implemented to improve performance for high-frequency SDK requests." parameters: @@ -247,7 +247,7 @@ paths: required: true schema: type: string - description: The ID of the workspace. Deprecated alias `environmentId`. + description: The ID of the Workspace. Deprecated alias `environmentId`. responses: "200": content: @@ -269,9 +269,9 @@ paths: post: security: [] description: Endpoint for creating or identifying a user within the specified - workspace. If the user already exists, this will identify them and + Workspace. 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. Note - Environments are deprecated. Use workspace/workspaceId + a new user. Note - Environments are deprecated. Use Workspace/workspaceId terminology. requestBody: content: @@ -302,11 +302,11 @@ paths: security: [] summary: Upload Private File description: API endpoint for uploading private files. Uploaded files are kept - private so that only users with access to the specified workspace can + private so that only users with access to the specified Workspace can retrieve them. The endpoint validates the survey ID, file name, and file type from the request body, and returns a signed URL for S3 uploads along with a local upload URL. Note - Environments are deprecated. Use - workspace/workspaceId terminology. + Workspace/workspaceId terminology. tags: - Client API - File Upload parameters: @@ -315,7 +315,7 @@ paths: required: true schema: type: string - description: The ID of the workspace. Deprecated alias `environmentId`. + description: The ID of the Workspace. Deprecated alias `environmentId`. requestBody: required: true content: @@ -463,7 +463,7 @@ paths: get: operationId: me summary: Me - description: Fetches the projects and organizations associated with the API key. + description: Fetches the Workspaces and organizations associated with the API key. tags: - Me responses: @@ -1441,7 +1441,7 @@ paths: /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. Note - Environments are deprecated. - Use workspace/workspaceId terminology. + Use Workspace/workspaceId terminology. tags: - Management API - Contacts requestBody: @@ -1584,8 +1584,8 @@ paths: 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. Note - Environments are deprecated. Use workspace/workspaceId + exist in the Workspace. The email is used as the unique identifier along + with the Workspace. Note - Environments are deprecated. Use Workspace/workspaceId terminology. tags: - Management API - Contacts @@ -1593,7 +1593,7 @@ paths: required: true description: The single contact to create. Must include a top-level `attributes` object with an email attribute, and all attribute keys must already exist - in the workspace. Note - Environments are deprecated. Use workspace/workspaceId + in the Workspace. Note - Environments are deprecated. Use Workspace/workspaceId terminology. content: application/json: @@ -1659,7 +1659,7 @@ paths: operationId: getContactAttributeKeys summary: Get contact attribute keys description: Gets contact attribute keys from the database. Note - Environments - are deprecated. Use workspace/workspaceId terminology. + are deprecated. Use Workspace/workspaceId terminology. tags: - Management API - Contact Attribute Keys parameters: @@ -1717,10 +1717,10 @@ paths: description: Date field to filter by - in: query name: workspaceId - description: The workspace ID to filter by + description: The Workspace ID to filter by schema: type: string - description: The workspace ID to filter by + description: The Workspace ID to filter by - in: query name: environmentId description: Deprecated alias for workspaceId @@ -1781,7 +1781,7 @@ paths: example: custom workspaceId: type: string - description: The ID of the workspace this attribute belongs to + description: The ID of the Workspace this attribute belongs to environmentId: type: string deprecated: true @@ -1799,7 +1799,7 @@ paths: operationId: createContactAttributeKey summary: Create a contact attribute key description: Creates a contact attribute key in the database. Note - Environments - are deprecated. Use workspace/workspaceId terminology. + are deprecated. Use Workspace/workspaceId terminology. tags: - Management API - Contact Attribute Keys requestBody: @@ -1857,7 +1857,7 @@ paths: example: custom workspaceId: type: string - description: The ID of the workspace this attribute belongs to + description: The ID of the Workspace this attribute belongs to environmentId: type: string deprecated: true @@ -1924,7 +1924,7 @@ paths: example: custom workspaceId: type: string - description: The ID of the workspace this attribute belongs to + description: The ID of the Workspace this attribute belongs to environmentId: type: string deprecated: true @@ -1997,7 +1997,7 @@ paths: example: custom workspaceId: type: string - description: The ID of the workspace this attribute belongs to + description: The ID of the Workspace this attribute belongs to environmentId: type: string deprecated: true @@ -2063,7 +2063,7 @@ paths: example: custom workspaceId: type: string - description: The ID of the workspace this attribute belongs to + description: The ID of the Workspace this attribute belongs to environmentId: type: string deprecated: true @@ -2225,7 +2225,7 @@ paths: operationId: getWebhooks summary: Get webhooks description: Gets webhooks from the database. Note - Environments are deprecated. - Use workspace/workspaceId terminology. + Use Workspace/workspaceId terminology. tags: - Management API - Webhooks parameters: @@ -2330,7 +2330,7 @@ paths: description: The source of the webhook workspaceId: type: string - description: The ID of the workspace + description: The ID of the Workspace environmentId: type: string deprecated: true @@ -2363,7 +2363,7 @@ paths: operationId: createWebhook summary: Create a webhook description: Creates a webhook in the database. Note - Environments are deprecated. - Use workspace/workspaceId terminology. + Use Workspace/workspaceId terminology. tags: - Management API - Webhooks requestBody: @@ -2389,7 +2389,7 @@ paths: description: The source of the webhook workspaceId: type: string - description: The ID of the workspace + description: The ID of the Workspace environmentId: type: string deprecated: true @@ -2448,7 +2448,7 @@ paths: description: The source of the webhook workspaceId: type: string - description: The ID of the workspace + description: The ID of the Workspace environmentId: type: string deprecated: true @@ -2470,7 +2470,7 @@ paths: operationId: getWebhook summary: Get a webhook description: Gets a webhook from the database. Note - Environments are deprecated. - Use workspace/workspaceId terminology. + Use Workspace/workspaceId terminology. tags: - Management API - Webhooks parameters: @@ -2514,7 +2514,7 @@ paths: description: The source of the webhook workspaceId: type: string - description: The ID of the workspace + description: The ID of the Workspace environmentId: type: string deprecated: true @@ -2535,7 +2535,7 @@ paths: operationId: updateWebhook summary: Update a webhook description: Updates a webhook in the database. Note - Environments are deprecated. - Use workspace/workspaceId terminology. + Use Workspace/workspaceId terminology. tags: - Management API - Webhooks parameters: @@ -2568,7 +2568,7 @@ paths: description: The source of the webhook workspaceId: type: string - description: The ID of the workspace + description: The ID of the Workspace environmentId: type: string deprecated: true @@ -2627,7 +2627,7 @@ paths: description: The source of the webhook workspaceId: type: string - description: The ID of the workspace + description: The ID of the Workspace environmentId: type: string deprecated: true @@ -2648,7 +2648,7 @@ paths: operationId: deleteWebhook summary: Delete a webhook description: Deletes a webhook from the database. Note - Environments are deprecated. - Use workspace/workspaceId terminology. + Use Workspace/workspaceId terminology. tags: - Management API - Webhooks parameters: @@ -2692,7 +2692,7 @@ paths: description: The source of the webhook workspaceId: type: string - description: The ID of the workspace + description: The ID of the Workspace environmentId: type: string deprecated: true @@ -3021,10 +3021,10 @@ paths: /organizations/{organizationId}/project-teams: get: operationId: getProjectTeams - summary: Get project teams + summary: Get Workspace teams description: Gets projectTeams from the database. tags: - - Organizations API - Project Teams + - Organizations API - Workspace Teams parameters: - in: path name: organizationId @@ -3094,7 +3094,7 @@ paths: type: string responses: "200": - description: Project teams retrieved successfully. + description: Workspace teams retrieved successfully. content: application/json: schema: @@ -3107,15 +3107,15 @@ paths: properties: createdAt: type: string - description: The date and time the project tem was created + description: The date and time the Workspace team was created example: 2021-01-01T00:00:00.000Z updatedAt: type: string - description: The date and time the project team was last updated + description: The date and time the Workspace team was last updated example: 2021-01-01T00:00:00.000Z projectId: type: string - description: The ID of the project + description: The ID of the Workspace teamId: type: string description: The ID of the team @@ -3125,7 +3125,7 @@ paths: - read - readWrite - manage - description: Level of access granted to the project + description: Level of access granted to the Workspace meta: type: object properties: @@ -3138,9 +3138,9 @@ paths: post: operationId: createProjectTeam summary: Create a projectTeam - description: Creates a project team in the database. + description: Creates a Workspace team in the database. tags: - - Organizations API - Project Teams + - Organizations API - Workspace Teams parameters: - in: path name: organizationId @@ -3150,7 +3150,7 @@ paths: required: true requestBody: required: true - description: The project team to create + description: The Workspace team to create content: application/json: schema: @@ -3161,21 +3161,21 @@ paths: description: The ID of the team projectId: type: string - description: The ID of the project + description: The ID of the Workspace permission: type: string enum: - read - readWrite - manage - description: Level of access granted to the project + description: Level of access granted to the Workspace required: - teamId - projectId - permission responses: "201": - description: Project team created successfully. + description: Workspace team created successfully. content: application/json: schema: @@ -3183,15 +3183,15 @@ paths: properties: createdAt: type: string - description: The date and time the project tem was created + description: The date and time the Workspace team was created example: 2021-01-01T00:00:00.000Z updatedAt: type: string - description: The date and time the project team was last updated + description: The date and time the Workspace team was last updated example: 2021-01-01T00:00:00.000Z projectId: type: string - description: The ID of the project + description: The ID of the Workspace teamId: type: string description: The ID of the team @@ -3201,13 +3201,13 @@ paths: - read - readWrite - manage - description: Level of access granted to the project + description: Level of access granted to the Workspace put: operationId: updateProjectTeam - summary: Update a project team - description: Updates a project team in the database. + summary: Update a Workspace team + description: Updates a Workspace team in the database. tags: - - Organizations API - Project Teams + - Organizations API - Workspace Teams parameters: - in: path name: organizationId @@ -3217,7 +3217,7 @@ paths: required: true requestBody: required: true - description: The project team to update + description: The Workspace team to update content: application/json: schema: @@ -3228,21 +3228,21 @@ paths: description: The ID of the team projectId: type: string - description: The ID of the project + description: The ID of the Workspace permission: type: string enum: - read - readWrite - manage - description: Level of access granted to the project + description: Level of access granted to the Workspace required: - teamId - projectId - permission responses: "200": - description: Project team updated successfully. + description: Workspace team updated successfully. content: application/json: schema: @@ -3250,15 +3250,15 @@ paths: properties: createdAt: type: string - description: The date and time the project tem was created + description: The date and time the Workspace team was created example: 2021-01-01T00:00:00.000Z updatedAt: type: string - description: The date and time the project team was last updated + description: The date and time the Workspace team was last updated example: 2021-01-01T00:00:00.000Z projectId: type: string - description: The ID of the project + description: The ID of the Workspace teamId: type: string description: The ID of the team @@ -3268,13 +3268,13 @@ paths: - read - readWrite - manage - description: Level of access granted to the project + description: Level of access granted to the Workspace delete: operationId: deleteProjectTeam - summary: Delete a project team - description: Deletes a project team from the database. + summary: Delete a Workspace team + description: Deletes a Workspace team from the database. tags: - - Organizations API - Project Teams + - Organizations API - Workspace Teams parameters: - in: path name: organizationId @@ -3294,7 +3294,7 @@ paths: required: true responses: "200": - description: Project team deleted successfully. + description: Workspace team deleted successfully. content: application/json: schema: @@ -3302,15 +3302,15 @@ paths: properties: createdAt: type: string - description: The date and time the project tem was created + description: The date and time the Workspace team was created example: 2021-01-01T00:00:00.000Z updatedAt: type: string - description: The date and time the project team was last updated + description: The date and time the Workspace team was last updated example: 2021-01-01T00:00:00.000Z projectId: type: string - description: The ID of the project + description: The ID of the Workspace teamId: type: string description: The ID of the team @@ -3320,7 +3320,7 @@ paths: - read - readWrite - manage - description: Level of access granted to the project + description: Level of access granted to the Workspace /organizations/{organizationId}/users: get: operationId: getUsers @@ -3949,7 +3949,7 @@ components: example: 2021-01-01T00:00:00.000Z workspaceId: type: string - description: The workspace this contact belongs to + description: The Workspace this contact belongs to environmentId: type: string deprecated: true @@ -4035,7 +4035,7 @@ components: example: custom workspaceId: type: string - description: The ID of the workspace this attribute belongs to + description: The ID of the Workspace this attribute belongs to environmentId: type: string deprecated: true @@ -4150,7 +4150,7 @@ components: description: The user who created the survey workspaceId: type: string - description: The workspace ID of the survey + description: The Workspace ID of the survey environmentId: type: string deprecated: true @@ -5614,7 +5614,7 @@ components: - light - dark - null - description: Project specific overwrites + description: Workspace-specific overwrites styling: type: - object @@ -5930,7 +5930,7 @@ components: description: The source of the webhook workspaceId: type: string - description: The ID of the workspace + description: The ID of the Workspace environmentId: type: string deprecated: true @@ -5990,15 +5990,15 @@ components: properties: createdAt: type: string - description: The date and time the project tem was created + description: The date and time the Workspace team was created example: 2021-01-01T00:00:00.000Z updatedAt: type: string - description: The date and time the project team was last updated + description: The date and time the Workspace team was last updated example: 2021-01-01T00:00:00.000Z projectId: type: string - description: The ID of the project + description: The ID of the Workspace teamId: type: string description: The ID of the team @@ -6008,7 +6008,7 @@ components: - read - readWrite - manage - description: Level of access granted to the project + description: Level of access granted to the Workspace required: - createdAt - updatedAt @@ -6093,7 +6093,7 @@ components: example: The user's email address workspaceId: type: string - description: The ID of the workspace this attribute belongs to + description: The ID of the Workspace this attribute belongs to environmentId: type: string deprecated: true diff --git a/docs/development/local-setup/linux.mdx b/docs/development/local-setup/linux.mdx index e5b9ac97c9..2de7c2e186 100644 --- a/docs/development/local-setup/linux.mdx +++ b/docs/development/local-setup/linux.mdx @@ -16,7 +16,7 @@ Here are the requirements for setting up Formbricks on Linux: **Steps:** -1. **Clone the project & move into the directory:** +1. **Clone the repository and move into the directory:** ```bash git clone https://github.com/formbricks/formbricks && cd formbricks diff --git a/docs/development/local-setup/mac.mdx b/docs/development/local-setup/mac.mdx index 7b8bcf7d1e..d9953514f4 100644 --- a/docs/development/local-setup/mac.mdx +++ b/docs/development/local-setup/mac.mdx @@ -16,7 +16,7 @@ icon: "apple" **Steps:** -1. **Clone the project & change directory:** +1. **Clone the repository and change directory:** ```bash git clone https://github.com/formbricks/formbricks && cd formbricks diff --git a/docs/development/local-setup/windows.mdx b/docs/development/local-setup/windows.mdx index 4b0300f663..429da92202 100644 --- a/docs/development/local-setup/windows.mdx +++ b/docs/development/local-setup/windows.mdx @@ -19,7 +19,7 @@ icon: "windows" **Steps (Using WSL2):** -1. **Open your WSL2 terminal and clone the project:** +1. **Open your WSL2 terminal and clone the repository:** ```bash git clone https://github.com/formbricks/formbricks && cd formbricks diff --git a/docs/development/overview.mdx b/docs/development/overview.mdx index 10e22a73e5..36ba84b6f7 100644 --- a/docs/development/overview.mdx +++ b/docs/development/overview.mdx @@ -4,12 +4,12 @@ description: Learn how to setup formbricks locally and build custom integrations icon: "code" --- -Welcome to the Development section of Formbricks! This guide is designed to help you get started with setting up the project locally, contributing to the Formbricks codebase, and customizing it to suit your needs. +Welcome to the Development section of Formbricks! This guide is designed to help you get started with setting up the repository locally, contributing to the Formbricks codebase, and customizing it to suit your needs. Whether you're a seasoned developer or just getting started, you'll find valuable information on how to: - **Set Up Locally**: Step-by-step instructions to clone the repository, install dependencies, and run Formbricks on your local machine. -- **Contribute**: Guidelines on how to contribute to the project, including coding standards, submitting pull requests, and collaborating with other developers. +- **Contribute**: Guidelines on how to contribute to the codebase, including coding standards, submitting pull requests, and collaborating with other developers. - **Customize**: Tips and tricks for customizing Formbricks to better fit your specific use cases, including modifying components and extending functionality. Dive in and start building with Formbricks today! diff --git a/docs/development/standards/organization/file-and-directory-organization.mdx b/docs/development/standards/organization/file-and-directory-organization.mdx index 1af8514e5a..9f7bca3b9b 100644 --- a/docs/development/standards/organization/file-and-directory-organization.mdx +++ b/docs/development/standards/organization/file-and-directory-organization.mdx @@ -1,10 +1,10 @@ --- title: File and Directory Org. -description: This document outlines the structure and organization of files and directories in the Formbricks codebase, providing guidelines for maintaining consistency and clarity across the project. +description: This document outlines the structure and organization of files and directories in the Formbricks codebase, providing guidelines for maintaining consistency and clarity across the repository. icon: folder-tree --- -## Project Structure Overview +## Repository Structure Overview The Formbricks codebase follows a monorepo structure using pnpm workspaces, with two main directories: @@ -246,7 +246,7 @@ Each package maintains its own configuration files: Following these organizational patterns ensures: -* Consistent code structure across the project +* Consistent code structure across the repository * Easy navigation and maintenance diff --git a/docs/development/standards/organization/naming-conventions.mdx b/docs/development/standards/organization/naming-conventions.mdx index 554de23dd8..c129418783 100644 --- a/docs/development/standards/organization/naming-conventions.mdx +++ b/docs/development/standards/organization/naming-conventions.mdx @@ -1,6 +1,6 @@ --- title: Naming Conventions -description: This section outlines the guidelines for naming conventions across the codebase, ensuring consistency and clarity in the project. +description: This section outlines the guidelines for naming conventions across the codebase, ensuring consistency and clarity in the codebase. icon: input-text --- diff --git a/docs/development/standards/practices/code-formatting.mdx b/docs/development/standards/practices/code-formatting.mdx index 35a2f93140..d963dc060e 100644 --- a/docs/development/standards/practices/code-formatting.mdx +++ b/docs/development/standards/practices/code-formatting.mdx @@ -1,6 +1,6 @@ --- title: "Code Formatting" -description: "Standards for consistent code formatting across the Formbricks project" +description: "Standards for consistent code formatting across the Formbricks codebase" icon: code --- diff --git a/docs/development/standards/technical/language-specific-conventions.mdx b/docs/development/standards/technical/language-specific-conventions.mdx index da611bc329..30bfeb39d9 100644 --- a/docs/development/standards/technical/language-specific-conventions.mdx +++ b/docs/development/standards/technical/language-specific-conventions.mdx @@ -10,7 +10,7 @@ Our codebase follows the Vercel Engineering Style Guide conventions. ### ESLint Configuration -We maintain three primary ESLint configurations for different project types: +We maintain three primary ESLint configurations for different package types: 1. **Library Configuration** (for packages): diff --git a/docs/development/technical-handbook/database-model.mdx b/docs/development/technical-handbook/database-model.mdx index 675aaed217..c84a72b3b6 100644 --- a/docs/development/technical-handbook/database-model.mdx +++ b/docs/development/technical-handbook/database-model.mdx @@ -62,7 +62,7 @@ erDiagram 1. **Organization** - Top-level entity for multi-tenancy - - Contains multiple workspaces and team members + - Contains multiple Workspaces and team members - Manages billing and whitelabel settings 2. **Workspace** @@ -72,8 +72,8 @@ erDiagram - Controls branding and display settings 3. **WorkspaceTeam** - - Maps teams to workspaces - - Controls workspace-level access permissions + - Maps teams to Workspaces + - Controls Workspace-level access permissions - Enables scoped collaboration across teams ### Survey Management @@ -111,7 +111,7 @@ erDiagram 3. **Team** - Groups users within organizations - - Controls workspace access permissions + - Controls Workspace access permissions - Facilitates collaborative survey management ## Data Isolation @@ -120,20 +120,20 @@ The database schema ensures proper data isolation through: 1. **Organization-level isolation** - - Each organization has its own workspaces + - Each organization has its own Workspaces - Users can belong to multiple organizations - Resources are scoped to organizations -2. **Workspace-level isolation** +2. **Environment-level isolation** - Independent surveys, contacts, action classes, and integrations - - Isolated API key workspace assignments + - Isolated API key Workspace assignments - Workspace-specific configuration and styling defaults 3. **Team-based access isolation** - - Teams are linked to workspaces through `WorkspaceTeam` - - Permissions are scoped per workspace + - Teams are linked to Workspaces through `WorkspaceTeam` + - Permissions are scoped per Workspace - Access can be delegated without exposing all organization resources @@ -158,7 +158,7 @@ Formbricks stores all data in PostgreSQL tables. Here's a comprehensive list of | Account | Stores third-party authentication accounts (OAuth) and their tokens | | ActionClass | Defines triggerable events that can launch surveys | | ApiKey | Stores API authentication keys for organization-level access | -| ApiKeyWorkspace | Maps API keys to the workspaces they can access | +| ApiKeyWorkspace | Maps API keys to the Workspaces they can access | | Contact | Records information about user that can receive and respond to surveys | | ContactAttribute | Stores attribute values for contacts (e.g., role, company size) | | ContactAttributeKey | Defines available attribute types for contacts | @@ -169,7 +169,7 @@ Formbricks stores all data in PostgreSQL tables. Here's a comprehensive list of | Invite | Manages pending invitations to join organizations | | Language | Defines supported languages for multi-lingual surveys | | Membership | Links users to organizations with specific roles | -| Organization | Top-level container for workspaces and team management | +| Organization | Top-level container for Workspaces and team management | | Response | Stores survey responses and associated metadata | | Segment | Defines groups of contacts based on attributes | | Survey | Stores survey configurations, questions, and display rules | @@ -181,7 +181,7 @@ Formbricks stores all data in PostgreSQL tables. Here's a comprehensive list of | TagsOnResponses | Junction table linking tags to responses | | Team | Groups users within organizations | | TeamUser | Links users to teams with specific roles | -| WorkspaceTeam | Manages team access permissions to workspaces | +| WorkspaceTeam | Manages team access permissions to Workspaces | | User | Stores user account information and preferences | | Webhook | Manages webhook endpoints for event notifications | diff --git a/docs/development/technical-handbook/tenant-separation.mdx b/docs/development/technical-handbook/tenant-separation.mdx index be49e5858b..9995ba1409 100644 --- a/docs/development/technical-handbook/tenant-separation.mdx +++ b/docs/development/technical-handbook/tenant-separation.mdx @@ -12,7 +12,7 @@ This documentation only applies to Formbricks Cloud instances. On-premise deploy ## Multi-Tenancy in Formbricks Cloud -Formbricks Cloud is architected as a true multi-tenant system where each organization operates in its own isolated workspace while sharing the underlying infrastructure. This approach allows multiple organizations to use the platform independently without visibility into each other's data. +Formbricks Cloud is architected as a true multi-tenant system where each organization operates in its own isolated Workspace while sharing the underlying infrastructure. This approach allows multiple organizations to use the platform independently without visibility into each other's data. ### Organizational Structure @@ -56,10 +56,10 @@ The multi-tenant architecture in Formbricks Cloud is built around three key leve ### 2. Workspace-Level Isolation -Within each organization, further isolation is maintained through workspaces: +Within each organization, further isolation is maintained through Workspaces: -- Organizations can have multiple workspaces to separate different applications or product lines -- Complete separation of resources between workspaces: +- Organizations can have multiple Workspaces to separate different applications or product lines +- Complete separation of resources between environments: - Surveys and responses - Contacts and attributes - Action classes and triggers @@ -67,19 +67,19 @@ Within each organization, further isolation is maintained through workspaces: - Webhooks and notifications - Segments and targeting rules - Workspace-specific configuration, branding, and style settings -- Language settings and customizations are workspace-specific +- Language settings and customizations are Workspace-specific ### 3. Team-Based Access Isolation -Team access is scoped per workspace: +Team access is scoped per Workspace: -- Teams can be granted access to specific workspaces via workspace-team mapping -- Permissions are applied at the workspace level for finer-grained access control -- Users can collaborate in one workspace without being granted access to all organization resources +- Teams can be granted access to specific Workspaces via Workspace-team mapping +- Permissions are applied at the Workspace level for finer-grained access control +- Users can collaborate in one Workspace without being granted access to all organization resources ## Data Security in the Multi-Tenant Model -Formbricks ensures data security in its multi-tenant workspace model through: +Formbricks ensures data security in its multi-tenant Workspace model through: - **Database Layer Isolation**: - Foreign key constraints enforce data isolation @@ -92,7 +92,7 @@ Formbricks ensures data security in its multi-tenant workspace model through: - Multi-factor authentication support - **API Access Control**: - - API keys are scoped to specific workspaces + - API keys are scoped to specific Workspaces - Rate limiting per organization - Request validation and sanitization diff --git a/docs/images/xm-and-surveys/surveys/general-features/multi-language-surveys/workspace-configuration.webp b/docs/images/xm-and-surveys/surveys/general-features/multi-language-surveys/workspace-configuration.webp new file mode 100644 index 0000000000..8ebe4d8300 Binary files /dev/null and b/docs/images/xm-and-surveys/surveys/general-features/multi-language-surveys/workspace-configuration.webp differ diff --git a/docs/self-hosting/advanced/enterprise-features/team-access.mdx b/docs/self-hosting/advanced/enterprise-features/team-access.mdx index 6eb0c9f483..808b1576de 100644 --- a/docs/self-hosting/advanced/enterprise-features/team-access.mdx +++ b/docs/self-hosting/advanced/enterprise-features/team-access.mdx @@ -1,12 +1,12 @@ --- title: "Teams & Roles (RBAC)" -description: "Granularly control which users have access to specific projects and surveys." +description: "Granularly control which users have access to specific Workspaces and surveys." icon: "user" --- Each User can be a member of any number of Teams. -Each Team can have Read, Write or Manage access to any number of Projects. +Each Team can have Read, Write or Manage access to any number of Workspaces. In the Community Edition, each User has Admin rights. diff --git a/docs/self-hosting/advanced/license.mdx b/docs/self-hosting/advanced/license.mdx index 83ca2e02aa..3784537bd9 100644 --- a/docs/self-hosting/advanced/license.mdx +++ b/docs/self-hosting/advanced/license.mdx @@ -4,7 +4,7 @@ description: "License for Formbricks" icon: "file-certificate" --- -The Formbricks core source code is licensed under AGPLv3 and available on GitHub. Additionally, we offer features for bigger organisations & enterprises under a separate, paid Enterprise License. This assures the long-term sustainability of the open source project. All free features are listed [below](#what-features-are-free%3F). +The Formbricks core source code is licensed under AGPLv3 and available on GitHub. Additionally, we offer features for bigger organisations & enterprises under a separate, paid Enterprise License. This assures the long-term sustainability of the open source codebase. All free features are listed [below](#what-features-are-free%3F). Want to get your hands on the Enterprise Edition? [Request a free Enterprise Edition @@ -26,7 +26,7 @@ Additional to the AGPLv3 licensed Formbricks core, the Formbricks repository con | Unlimited responses | ✅ | Pay per response | | Unlimited surveys | ✅ | ✅ | | Unlimited users | ✅ | ✅ | -| Projects | 3 | Unlimited | +| Workspaces | 3 | Unlimited | | Use all [free features](#what-features-are-free%3F) | ✅ | ✅ | | Use [paid features](#what-features-are-free%3F) | ❌ | Pay per feature | @@ -48,7 +48,7 @@ Additional to the AGPL licensed Formbricks core, this repository contains code l ## White-Labeling Formbricks and Other Licensing Needs -We offer Formbricks white-labeled in some cases. [Please send us an email with a project description and we'll get back to you.](mailto:hola@formbricks.com). +We offer Formbricks white-labeled in some cases. [Please send us an email with a deployment description and we'll get back to you.](mailto:hola@formbricks.com). ## Why charge for Enterprise Features? @@ -92,7 +92,7 @@ The Enterprise Edition allows us to fund the development of Formbricks sustainab | SAML SSO | ❌ | ✅ | | Spam protection (ReCaptchaV3) | ❌ | ✅ | | Two-factor authentication | ❌ | ✅ | -| Custom 'Project' count | ❌ | ✅ | +| Custom 'Workspace' count | ❌ | ✅ | | White-glove onboarding | ❌ | ✅ | | Support SLAs | ❌ | ✅ | diff --git a/docs/self-hosting/auth-behavior.mdx b/docs/self-hosting/auth-behavior.mdx index c9247f3296..c3318d23bf 100644 --- a/docs/self-hosting/auth-behavior.mdx +++ b/docs/self-hosting/auth-behavior.mdx @@ -37,7 +37,7 @@ In self-hosted Formbricks, user management and authentication can be customized - **Default:** None (must be set if you want to use default team assignment) - **Description:** - When a new user is invited or signs up (if allowed), they will automatically be added to the team with the ID specified in this variable. - - This is useful for onboarding users into a default team, ensuring they have access to relevant projects and resources immediately after joining. + - This is useful for onboarding users into a default team, ensuring they have access to relevant Workspaces and resources immediately after joining. - **Use case:** - Set this to the ID of your default team to streamline onboarding for new users. - If not set, users will not be automatically assigned to any team upon signup or invite acceptance. diff --git a/docs/self-hosting/configuration/auth-sso/keycloak-oidc.mdx b/docs/self-hosting/configuration/auth-sso/keycloak-oidc.mdx index 69eb24e6c3..147772d79b 100644 --- a/docs/self-hosting/configuration/auth-sso/keycloak-oidc.mdx +++ b/docs/self-hosting/configuration/auth-sso/keycloak-oidc.mdx @@ -133,7 +133,7 @@ When `AUTH_SKIP_INVITE_FOR_SSO=1` and `AUTH_SSO_DEFAULT_TEAM_ID` are both set: 1. A user authenticates through Keycloak for the first time. 2. Formbricks creates a new user account. 3. The user is automatically added as a **member** of the organization that owns the specified team. -4. The user is assigned to the default team, granting them access to all projects associated with that team. +4. The user is assigned to the default team, granting them access to all Workspaces associated with that team. No manual invitation or admin action is required. @@ -160,7 +160,7 @@ AUTH_SSO_DEFAULT_TEAM_ID=your-team-id-here This means the user was added to the organization but not assigned to a team. Verify that: - `AUTH_SSO_DEFAULT_TEAM_ID` is set correctly (the env variable name is `AUTH_SSO_DEFAULT_TEAM_ID`, not `DEFAULT_TEAM_ID`). - The Team ID is a valid cuid that exists in your database. - - The team is linked to a project via **Project Teams** settings. + - The team is linked to a Workspace via **Workspace Teams** settings. You can verify the team exists by checking your database: ```sql diff --git a/docs/self-hosting/configuration/file-uploads.mdx b/docs/self-hosting/configuration/file-uploads.mdx index 0dfe9b4bca..d0a74003e0 100644 --- a/docs/self-hosting/configuration/file-uploads.mdx +++ b/docs/self-hosting/configuration/file-uploads.mdx @@ -1,6 +1,6 @@ --- title: "File Uploads Configuration" -description: "Configure file storage for survey images, file uploads, and project assets in your self-hosted Formbricks instance" +description: "Configure file storage for survey images, file uploads, and Workspace assets in your self-hosted Formbricks instance" icon: "upload" --- @@ -12,7 +12,7 @@ Setting up file storage enables important features in Formbricks, including: - Adding images to surveys (questions, backgrounds, logos) - 'File Upload' and 'Picture Selection' question types -- Project logos and branding +- Workspace logos and branding - Custom organization logos in emails - Survey background images from uploads @@ -59,7 +59,7 @@ When using the Formbricks installation script, you'll be prompted to configure f If you skip this, the following features will be disabled: - Adding images to surveys (e.g., in questions or as background) - 'File Upload' and 'Picture Selection' question types - - Project logos + - Workspace logos - Custom organization logo in emails Configure file uploads now? [Y/n] y ``` @@ -380,7 +380,7 @@ If you’re using the bundled MinIO setup, this is already configured for you. To test if file uploads are working: -1. **Admin Panel**: Try uploading a project logo in the project settings +1. **Admin Panel**: Try uploading a Workspace logo in the Workspace settings 2. **Survey Editor**: Attempt to add a background image to a survey 3. **Question Types**: Create a 'File Upload' or 'Picture Selection' question 4. **Check Logs**: Monitor container logs for any storage-related errors diff --git a/docs/self-hosting/overview.mdx b/docs/self-hosting/overview.mdx index cead8adbe1..8ec5e5b3c2 100644 --- a/docs/self-hosting/overview.mdx +++ b/docs/self-hosting/overview.mdx @@ -32,7 +32,7 @@ icon: "server" * **Cloud Hosting:** Hassle-free managed deployment at [app.formbricks.com](https://app.formbricks.com). -* **Self-Hosting Free:** Perfect for personal use or small projects. +* **Self-Hosting Free:** Perfect for personal use or small teams. * **Self-Hosting with EE License:** Unlock advanced features for large teams or enterprises. diff --git a/docs/xm-and-surveys/core-features/styling-theme.mdx b/docs/xm-and-surveys/core-features/styling-theme.mdx index 77ef83e9ab..fd48cd45ff 100644 --- a/docs/xm-and-surveys/core-features/styling-theme.mdx +++ b/docs/xm-and-surveys/core-features/styling-theme.mdx @@ -127,7 +127,7 @@ Customize your survey with your brand's logo. - In the **Look & Feel** page in Project settings, scroll down to the **Logo Upload** box. + In the **Look & Feel** page in Workspace settings, scroll down to the **Logo Upload** box. ![Logo upload box](/images/xm-and-surveys/core-features/styling-theme/step-four.webp) diff --git a/docs/xm-and-surveys/core-features/user-management.mdx b/docs/xm-and-surveys/core-features/user-management.mdx index fa30406eab..c11a2ee9f4 100644 --- a/docs/xm-and-surveys/core-features/user-management.mdx +++ b/docs/xm-and-surveys/core-features/user-management.mdx @@ -13,7 +13,7 @@ Formbricks uses a flexible permission system with multiple layers: - **Organization roles** - Control access across the entire organization - **Team roles** - Provide granular permissions within specific teams -- **Project permissions** - Fine-tune access to individual projects +- **Workspace permissions** - Fine-tune access to individual Workspaces - **Security features** - Protect accounts with two-factor authentication @@ -25,11 +25,11 @@ Formbricks uses a flexible permission system with multiple layers: - Learn about organization-level roles and how they control access to teams, projects, and data across your Formbricks organization. + Learn about organization-level roles and how they control access to teams, Workspaces, and data across your Formbricks organization. - Understand team-level roles and project permissions that enable granular access control within teams and projects. + Understand team-level roles and Workspace permissions that enable granular access control within teams and Workspaces. diff --git a/docs/xm-and-surveys/core-features/user-management/invite-members.mdx b/docs/xm-and-surveys/core-features/user-management/invite-members.mdx index 982c7d16da..35a9ff3bdd 100644 --- a/docs/xm-and-surveys/core-features/user-management/invite-members.mdx +++ b/docs/xm-and-surveys/core-features/user-management/invite-members.mdx @@ -4,7 +4,7 @@ description: "Learn how to invite new members to your organization individually icon: "user-plus" --- -Add new members to your Formbricks organization to collaborate on surveys and manage projects together. You can invite members individually or in bulk using CSV uploads. +Add new members to your Formbricks organization to collaborate on surveys and manage Workspaces together. You can invite members individually or in bulk using CSV uploads. ## Prerequisites diff --git a/docs/xm-and-surveys/core-features/user-management/organizations-and-roles.mdx b/docs/xm-and-surveys/core-features/user-management/organizations-and-roles.mdx index 537f19dd1e..933ceb4bf5 100644 --- a/docs/xm-and-surveys/core-features/user-management/organizations-and-roles.mdx +++ b/docs/xm-and-surveys/core-features/user-management/organizations-and-roles.mdx @@ -1,10 +1,10 @@ --- title: "Organizations and roles" -description: "Understand organization-level roles and how they control access to teams, projects, and data across your Formbricks organization." +description: "Understand organization-level roles and how they control access to teams, Workspaces, and data across your Formbricks organization." icon: "building" --- -Organization-level roles apply to all teams and projects within your Formbricks organization. These roles provide broad permissions that determine what users can do across the entire organization. +Organization-level roles apply to all teams and Workspaces within your Formbricks organization. These roles provide broad permissions that determine what users can do across the entire organization. Access Roles is a feature of the [Enterprise Edition](/self-hosting/advanced/license). In the **Community Edition** and on the **Free** @@ -18,7 +18,7 @@ Here are the different access permissions, ranked from highest to lowest access: 1. **Owner** - Full organizational control 2. **Manager** - Management access with some restrictions 3. **Billing** - Billing and payment management only -4. **Member** - Basic access to assigned projects +4. **Member** - Basic access to assigned Workspaces ### Role Permissions and Privilege Escalation Prevention @@ -46,7 +46,7 @@ All users and their organization-level roles are listed in **Organization Settin - Can manage all aspects of the organization including billing, integrations, and member management ### Manager -- Have full management access to all teams and projects +- Have full management access to all teams and Workspaces - Can manage the organization's membership (but can only invite or assign users as members) - Can perform Team Admin actions without needing to join the team - Cannot change other organization settings like billing or delete the organization @@ -57,9 +57,9 @@ All users and their organization-level roles are listed in **Organization Settin - Cannot access other organizational data or settings ### Member -- Can view most data in the organization and act in the projects they are members of -- Cannot create or join projects on their own and need to be assigned by owners or managers -- Have limited permissions that depend on their project-level access +- Can view most data in the organization and act in the Workspaces they are members of +- Cannot create or join Workspaces on their own and need to be assigned by owners or managers +- Have limited permissions that depend on their Workspace-level access ## Detailed permissions matrix @@ -72,13 +72,13 @@ All users and their organization-level roles are listed in **Organization Settin | Delete member | ✅ | ✅ | ❌ | ❌ | | Update member access | ✅ | ✅ | ❌ | ❌ | | Update billing | ✅ | ✅ | ✅ | ❌ | -| **Project** | | | | | -| Create project | ✅ | ✅ | ❌ | ❌ | -| Update project name | ✅ | ✅ | ❌ | ✅\*\* | -| Update project recontact options | ✅ | ✅ | ❌ | ✅\*\* | +| **Workspace** | | | | | +| Create Workspace | ✅ | ✅ | ❌ | ❌ | +| Update Workspace name | ✅ | ✅ | ❌ | ✅\*\* | +| Update Workspace recontact options | ✅ | ✅ | ❌ | ✅\*\* | | Update look & feel | ✅ | ✅ | ❌ | ✅\*\* | | Update survey languages | ✅ | ✅ | ❌ | ✅\*\* | -| Delete project | ✅ | ✅ | ❌ | ❌ | +| Delete Workspace | ✅ | ✅ | ❌ | ❌ | | **Surveys** | | | | | | Create new survey | ✅ | ✅ | ❌ | ✅\* | | Edit survey | ✅ | ✅ | ❌ | ✅\* | @@ -115,4 +115,4 @@ All users and their organization-level roles are listed in **Organization Settin - **Principle of least privilege**: Assign users the minimum role necessary for their responsibilities - **Regular audits**: Periodically review organization members and their roles - **Owner role**: Limit the number of owners to reduce security risk -- **Manager role**: Use for team leads who need to manage projects but not organizational settings +- **Manager role**: Use for team leads who need to manage Workspaces but not organizational settings diff --git a/docs/xm-and-surveys/surveys/general-features/multi-language-surveys.mdx b/docs/xm-and-surveys/surveys/general-features/multi-language-surveys.mdx index 8d325bc161..f45eab46f8 100644 --- a/docs/xm-and-surveys/surveys/general-features/multi-language-surveys.mdx +++ b/docs/xm-and-surveys/surveys/general-features/multi-language-surveys.mdx @@ -28,13 +28,13 @@ How to deliver a specific language depends on the survey type (app or link surve Go to Configuration and open the **Survey Languages tab**: - ![Survey Configuration](/images/xm-and-surveys/surveys/general-features/multi-language-surveys/project-configuration.webp) + ![Survey Configuration](/images/xm-and-surveys/surveys/general-features/multi-language-surveys/workspace-configuration.webp) Click on the **Edit languages** button to add a new language to your survey. - Select the preferred language from the dropdown and assign an identifier Alias. Click the **Add language** button to add the language to your project: + Select the preferred language from the dropdown and assign an identifier Alias. Click the **Add language** button to add the language to your Workspace: - ![Add Multiple Languages to your Project](/images/xm-and-surveys/surveys/general-features/multi-language-surveys/add-languages.webp) + ![Add Multiple Languages to your Workspace](/images/xm-and-surveys/surveys/general-features/multi-language-surveys/add-languages.webp) You can come back to this page anytime to add more languages or remove existing ones. diff --git a/docs/xm-and-surveys/surveys/general-features/overwrite-styling.mdx b/docs/xm-and-surveys/surveys/general-features/overwrite-styling.mdx index f255e828bd..ecbad02765 100644 --- a/docs/xm-and-surveys/surveys/general-features/overwrite-styling.mdx +++ b/docs/xm-and-surveys/surveys/general-features/overwrite-styling.mdx @@ -16,7 +16,7 @@ Overwrite the global styling theme for individual surveys to create unique style ![Styling tab in survey editor](/images/xm-and-surveys/surveys/general-features/overwrite-styling/step-nine.webp) -2. Activate the **Add Custom Styles** toggle to override the default project styling: +2. Activate the **Add Custom Styles** toggle to override the default Workspace styling: ![Add Custom Styles toggle](/images/xm-and-surveys/surveys/general-features/overwrite-styling/step-ten.webp) /> @@ -55,7 +55,7 @@ You can overwrite the default CSS styles for app and website surveys by adding t --fb-rating-selected: black; ``` -Check out an example in our Demo project. +Check out an example in our Demo Workspace. Funky Survey Examples Super Mario diff --git a/docs/xm-and-surveys/surveys/general-features/tags.mdx b/docs/xm-and-surveys/surveys/general-features/tags.mdx index a46d310d7f..663e151680 100644 --- a/docs/xm-and-surveys/surveys/general-features/tags.mdx +++ b/docs/xm-and-surveys/surveys/general-features/tags.mdx @@ -53,7 +53,7 @@ Access the tag management page to view and organize all tags in your environment - Click on **Project Configuration** > **Tags**. + Click on **Workspace Configuration** > **Tags**. @@ -135,7 +135,7 @@ Tag management requires appropriate permissions: - **View tags**: All users with access to the environment can view tags on responses - **Add/remove tags on responses**: Users with read-write access can apply and remove tags -- **Manage tags** (create, edit, merge, delete): Users with project team read-write permission or organization owner/manager roles +- **Manage tags** (create, edit, merge, delete): Users with Workspace team read-write permission or organization owner/manager roles --- diff --git a/docs/xm-and-surveys/surveys/website-app-surveys/actions.mdx b/docs/xm-and-surveys/surveys/website-app-surveys/actions.mdx index a12f8eb61c..4b21ecafc4 100644 --- a/docs/xm-and-surveys/surveys/website-app-surveys/actions.mdx +++ b/docs/xm-and-surveys/surveys/website-app-surveys/actions.mdx @@ -22,7 +22,7 @@ icon: "code" - If the user or visitor already filled out a survey in the past couple of days (see [Global Waiting Time](/xm-and-surveys/surveys/website-app-surveys/recontact#project-wide-global-waiting-time)), the survey will not be shown to prevent survey fatigue. + If the user or visitor already filled out a survey in the past couple of days (see [Global Waiting Time](/xm-and-surveys/surveys/website-app-surveys/recontact#workspace-wide-survey-cooldown)), the survey will not be shown to prevent survey fatigue. Also, if this user or visitor has seen this specific survey before, Formbricks might not show it as this is dependent on the [Recontact Options](/xm-and-surveys/surveys/website-app-surveys/recontact). diff --git a/docs/xm-and-surveys/surveys/website-app-surveys/framework-guides.mdx b/docs/xm-and-surveys/surveys/website-app-surveys/framework-guides.mdx index 21cf118cef..37adb49301 100644 --- a/docs/xm-and-surveys/surveys/website-app-surveys/framework-guides.mdx +++ b/docs/xm-and-surveys/surveys/website-app-surveys/framework-guides.mdx @@ -21,12 +21,12 @@ Integrate the **Formbricks App Survey SDK** into your app using multiple options - Load our JavaScript library with your workspace ID, and you're ready to + Load our JavaScript library with your Workspace ID, and you're ready to go! - Natively add us to your Next.js project, with support for both App and Pages project + Natively add us to your Next.js app, with support for both App and Pages setups structure. @@ -57,7 +57,7 @@ Before getting started, make sure you have: - A running web application with user authentication in your chosen framework. -- A Formbricks account with your **workspace ID** and **API host**, available in the **Setup Checklist** under **Settings**. +- A Formbricks account with your **Workspace ID** and **API host**, available in the **Setup Checklist** under **Settings**. ## HTML @@ -86,7 +86,7 @@ Now, visit the [Validate Your Setup](#validate-your-setup) section to verify you ## React.js Install the Formbricks SDK using one of the following package managers: `npm`, `pnpm`, or `yarn`. -Note that **`zod`** is required as a peer dependency and must also be installed in your project. +Note that **`zod`** is required as a peer dependency and must also be installed in your app. ```javascript npm npm install @formbricks/js zod @@ -131,7 +131,7 @@ Now, visit the [Validate Your Setup](#validate-your-setup) section to verify you ## Next.js -Next.js projects use either the **App Directory** or the **Pages Directory**. Since the Formbricks SDK runs on the client side, follow these steps based on your setup: +Next.js apps use either the **App Directory** or the **Pages Directory**. Since the Formbricks SDK runs on the client side, follow these steps based on your setup: - **App Directory**: Create a new component in `app/formbricks.tsx` and call it in `app/layout.tsx`. @@ -373,7 +373,7 @@ Install the Formbricks iOS SDK using the following steps: end ``` -2. Run `pod install` in your project directory +2. Run `pod install` in your app directory 3. Import in your code: ```swift import FormbricksSDK diff --git a/docs/xm-and-surveys/surveys/website-app-surveys/quickstart.mdx b/docs/xm-and-surveys/surveys/website-app-surveys/quickstart.mdx index ab9b2335ad..cbed35cdd6 100644 --- a/docs/xm-and-surveys/surveys/website-app-surveys/quickstart.mdx +++ b/docs/xm-and-surveys/surveys/website-app-surveys/quickstart.mdx @@ -68,7 +68,7 @@ sidebarTitle: "Quickstart" For better scalability, we cache the request the SDK makes to the server. This allows you to use Formbricks on websites with millions of visitors without high hosting cost. - **Important**: Any changes to surveys, action classes, project settings, or environment configuration will + **Important**: Any changes to surveys, action classes, or Workspace settings will take **up to 1 minute** to reflect in your app/website due to server-side caching. This includes survey modifications, new triggers, styling changes, and other updates. diff --git a/docs/xm-and-surveys/surveys/website-app-surveys/recontact.mdx b/docs/xm-and-surveys/surveys/website-app-surveys/recontact.mdx index 3ed75f06bb..608be04687 100644 --- a/docs/xm-and-surveys/surveys/website-app-surveys/recontact.mdx +++ b/docs/xm-and-surveys/surveys/website-app-surveys/recontact.mdx @@ -50,7 +50,7 @@ Available Recontact Options include: ![Choose Recontanct Options for the Survey](/images/xm-and-surveys/surveys/website-app-surveys/recontact/survey-recontact.webp) -## Project-wide Survey Cooldown +## Workspace-wide Survey Cooldown The Survey Cooldown is a universal blocker to make sure that no user sees too many surveys. This is particularly helpful when several teams of large organisations use Formbricks at the same time. @@ -60,13 +60,13 @@ To adjust the Survey Cooldown: 1. Visit Formbricks Settings -2. Go to Project Settings +2. Go to Workspace Settings 3. Find the **Recontact Waiting Time** section 4. Modify the interval (in days) as needed. -![Formbricks Project-Wide Wait Time](/images/xm-and-surveys/surveys/website-app-surveys/recontact/global-wait-time.webp) +![Formbricks Workspace-Wide Wait Time](/images/xm-and-surveys/surveys/website-app-surveys/recontact/global-wait-time.webp) ## Overriding Survey Cooldown for a Specific Survey diff --git a/docs/xm-and-surveys/surveys/website-app-surveys/user-identification.mdx b/docs/xm-and-surveys/surveys/website-app-surveys/user-identification.mdx index 175597231d..374591a77a 100644 --- a/docs/xm-and-surveys/surveys/website-app-surveys/user-identification.mdx +++ b/docs/xm-and-surveys/surveys/website-app-surveys/user-identification.mdx @@ -67,7 +67,7 @@ formbricks.setAttributes({ ### Setting User Language -Use the `setLanguage` function to set the user's preferred language for surveys. This allows you to display surveys in the user's language when multi-language surveys are enabled. You can pass either the ISO language code (e.g., "de", "fr", "es") or the language alias you configured in your project settings. +Use the `setLanguage` function to set the user's preferred language for surveys. This allows you to display surveys in the user's language when multi-language surveys are enabled. You can pass either the ISO language code (e.g., "de", "fr", "es") or the language alias you configured in your Workspace settings. ```javascript Setting User Language formbricks.setLanguage("de"); // ISO identifier or Alias set when creating language diff --git a/docs/xm-and-surveys/xm/best-practices/cancel-subscription.mdx b/docs/xm-and-surveys/xm/best-practices/cancel-subscription.mdx index 1e65a6d50b..ff0992e51c 100644 --- a/docs/xm-and-surveys/xm/best-practices/cancel-subscription.mdx +++ b/docs/xm-and-surveys/xm/best-practices/cancel-subscription.mdx @@ -50,7 +50,7 @@ You’re free to update the question and answer options. However, based on our e ![Change text content](/images/xm-and-surveys/xm/best-practices/cancel-subscription/change-text.webp) -*Want to change the button color? You can do so in the project settings.* +*Want to change the button color? You can do so in the Workspace settings.* Save, and move over to the “Audience” tab. diff --git a/docs/xm-and-surveys/xm/best-practices/headless-surveys.mdx b/docs/xm-and-surveys/xm/best-practices/headless-surveys.mdx index 5b0ac0a5e4..ead7546ba9 100644 --- a/docs/xm-and-surveys/xm/best-practices/headless-surveys.mdx +++ b/docs/xm-and-surveys/xm/best-practices/headless-surveys.mdx @@ -115,7 +115,7 @@ Body: { ... }, { ... } ], - "project": { + "workspace": { "id": "", ... }, diff --git a/docs/xm-and-surveys/xm/best-practices/improve-trial-cr.mdx b/docs/xm-and-surveys/xm/best-practices/improve-trial-cr.mdx index b9017ffcc7..7a6dbbc043 100644 --- a/docs/xm-and-surveys/xm/best-practices/improve-trial-cr.mdx +++ b/docs/xm-and-surveys/xm/best-practices/improve-trial-cr.mdx @@ -42,7 +42,7 @@ You can update the questions and answer options. ![Change text content](/images/xm-and-surveys/xm/best-practices/improve-trial-cr/change-text.webp) -_Want to change the button color? Adjust it in the project settings!_ +_Want to change the button color? Adjust it in the Workspace settings!_ Save, and move over to the **Audience** tab. diff --git a/docs/xm-and-surveys/xm/best-practices/interview-prompt.mdx b/docs/xm-and-surveys/xm/best-practices/interview-prompt.mdx index 61a472b254..8cde5c85a3 100644 --- a/docs/xm-and-surveys/xm/best-practices/interview-prompt.mdx +++ b/docs/xm-and-surveys/xm/best-practices/interview-prompt.mdx @@ -44,7 +44,7 @@ Click on "Create Survey" and choose the template [Interview Prompt](https://form ### 2. Update prompt and CTA -Update the prompt, description and button text to match your products tonality. You can also update the button color in the Project Settings. +Update the prompt, description and button text to match your products tonality. You can also update the button color in the Workspace Settings. ![Change text content](/images/xm-and-surveys/xm/best-practices/interview-prompt/change-text.webp) diff --git a/docs/xm-and-surveys/xm/best-practices/pmf-survey.mdx b/docs/xm-and-surveys/xm/best-practices/pmf-survey.mdx index 164a483408..cb452ab475 100644 --- a/docs/xm-and-surveys/xm/best-practices/pmf-survey.mdx +++ b/docs/xm-and-surveys/xm/best-practices/pmf-survey.mdx @@ -43,7 +43,7 @@ You can update the questions and answer options, but based on our experience, we ![Change text content](/images/xm-and-surveys/xm/best-practices/pmf-survey/change-text.webp) /> -_Want to change the button color? You can do so in the project settings!_ +_Want to change the button color? You can do so in the Workspace settings!_ Save, and move over to where the magic happens: The “Audience” tab. diff --git a/docs/xm-and-surveys/xm/best-practices/research-panel.mdx b/docs/xm-and-surveys/xm/best-practices/research-panel.mdx index 6ccd538cd0..304c9f45c0 100644 --- a/docs/xm-and-surveys/xm/best-practices/research-panel.mdx +++ b/docs/xm-and-surveys/xm/best-practices/research-panel.mdx @@ -81,7 +81,7 @@ Building a research panel with Formbricks involves these key steps: To understand the required format for uploading contacts, download the example CSV: - 1. Go to the **Contacts** section in your project + 1. Go to the **Contacts** section in your Workspace 2. Click **Upload Contacts** 3. Download the **Example CSV** to see the required column structure @@ -186,7 +186,7 @@ Building a research panel with Formbricks involves these key steps: | **Response attribution** | Know exactly who responded to each survey | | **Targeted research** | Survey specific segments without bothering others | | **Panel management** | Maintain a centralized database of research participants | -| **Reusability** | Use the same panel for multiple research projects | +| **Reusability** | Use the same panel for multiple research initiatives | | **Data enrichment** | Build up participant profiles over time with each survey |