feat: activepieces integration (#4711)

This commit is contained in:
Dhruwang Jariwala
2025-02-06 21:04:02 +05:30
committed by GitHub
parent 475cce8253
commit 88cb4c742f
23 changed files with 185 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 154 KiB

View File

@@ -0,0 +1,155 @@
import { MdxImage } from "@/components/mdx-image";
import CreateConnection from "./create-connection.webp";
import CreateNewFlow from "./create-new-flow.webp";
import DuplicateSurvey from "./duplicate-survey.webp";
import ConfigureConnection from "./configure-connection.webp";
import SearchFormbricks from "./search-formbricks.webp";
import SelectSurvey from "./select-survey.webp";
import TestTrigger from "./test-trigger.webp";
import UpdateQuestionId from "./update-question-id.webp";
import SuccessResponse from "./success-response.webp";
import SelectGSSheet from "./select-gs-sheet.webp";
import SelectGoogleSheet from "./select-google-sheet.webp";
import MatchData from "./match-data.webp";
import Result from "./result.webp";
export const metadata = {
title: "Formbricks Integration with Activepieces: A Step-by-Step Guide",
description:
"Learn how to integrate Formbricks with Activepieces. Follow our detailed guide to set up workflows, connect with various apps, and send your survey data to multiple platforms.",
};
#### Integrations
# Activepieces Setup
Activepieces is a versatile tool to automate workflows between Formbricks and numerous applications. Here's how to set it up.
<Note>
Ensure your survey is finalized before setting up Activepieces. Any changes in the survey will require additional adjustments in the workflow.
</Note>
## Step 1: Setup your survey incl. `questionId` for every question
Set up the `questionId`s of your survey questions before publishing.
<MdxImage
src={UpdateQuestionId}
alt="Update Question ID"
quality="100"
className="max-w-full rounded-lg sm:max-w-3xl"
/>
_Update the Question ID field in every question card under Advanced Settings._
<Note>
Already published? Duplicate survey You can only update the questionId before publishing the survey. If already published, simply duplicate it.
<MdxImage
src={DuplicateSurvey}
alt="Duplicate Survey"
quality="100"
className="max-w-full rounded-lg sm:max-w-3xl"
/>
</Note>
## Step 2: Setup Activepieces
Visit [Activepieces](https://activepieces.com) to start a new Flow.
<MdxImage
src={CreateNewFlow}
alt="Create New Flow"
quality="100"
className="max-w-full rounded-lg sm:max-w-3xl"
/>
Search for `Formbricks` and choose the event to trigger the flow, we will choose `Response Finished` here
<MdxImage
src={SearchFormbricks}
alt="Search Formbricks"
quality="100"
className="max-w-full rounded-lg sm:max-w-3xl"
/>
## Step 3: Connect Formbricks with Activepieces
Click on `Create connection`:
<MdxImage
src={CreateConnection}
alt="Create Connection"
quality="100"
className="max-w-full rounded-lg sm:max-w-3xl"
/>
Enter the Formbricks API Host and API Key. API Host is by default set to https://app.formbricks.com but can be modified for self-hosting instances. Learn how to get an API Key from the [API Key tutorial](/additional-features/api#how-to-generate-an-api-key).
<MdxImage
src={ConfigureConnection}
alt="Configure Connection"
quality="100"
className="max-w-full rounded-lg sm:max-w-3xl"
/>
## Step 4: Select Survey
Choose from your created surveys:
<MdxImage
src={SelectSurvey}
alt="Select Survey"
quality="100"
className="max-w-full rounded-lg sm:max-w-3xl"
/>
## Step 5: Send a test response
You need a test response for Activepieces setup. Click on Test trigger and submit a test response in the connected Formbricks survey to see the data in Activepieces.
<MdxImage
src={TestTrigger}
alt="Test Trigger"
quality="100"
className="max-w-full rounded-lg sm:max-w-3xl"
/>
If the test response is successful, you will see the data in Activepieces.
<MdxImage
src={SuccessResponse}
alt="Success Response"
quality="100"
className="max-w-full rounded-lg sm:max-w-3xl"
/>
## Step 6: Set up Google Sheet
Decide on the desired action for the data. Here, we'll send submissions to a Google Sheet. Add Google sheet step to your flow and configure it as follows:
Choose "Add a Row" for the action. Authenticate with Google and select the spreadsheet you want to add the data to.
<MdxImage
src={SelectGSSheet}
alt="Select Google sheet"
quality="100"
className="max-w-full rounded-lg sm:max-w-3xl"
/>
Specify the fields you want to add to the spreadsheet.
<MdxImage
src={MatchData}
alt="Match Data"
quality="100"
className="max-w-full rounded-lg sm:max-w-3xl"
/>
A new row gets added to the spreadsheet for every response:
<MdxImage
src={Result}
alt="Result"
quality="100"
className="max-w-full rounded-lg sm:max-w-3xl"
/>

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 123 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

View File

@@ -120,6 +120,7 @@ export const navigation: NavGroup[] = [
{ title: "Airtable", href: "/developer-docs/integrations/airtable" },
{ title: "Google Sheets", href: "/developer-docs/integrations/google-sheets" },
{ title: "Make", href: "/developer-docs/integrations/make" },
{ title: "Activepieces", href: "/developer-docs/integrations/activepieces" },
{ title: "n8n", href: "/developer-docs/integrations/n8n" },
{ title: "Notion", href: "/developer-docs/integrations/notion" },
{ title: "Slack", href: "/developer-docs/integrations/slack" },

View File

@@ -1,4 +1,5 @@
import { getWebhookCountBySource } from "@/app/(app)/environments/[environmentId]/integrations/lib/webhook";
import ActivePiecesLogo from "@/images/activepieces.webp";
import AirtableLogo from "@/images/airtableLogo.svg";
import GoogleSheetsLogo from "@/images/googleSheetsLogo.png";
import JsLogo from "@/images/jslogo.png";
@@ -38,6 +39,7 @@ const Page = async (props) => {
zapierWebhookCount,
makeWebhookCount,
n8nwebhookCount,
activePiecesWebhookCount,
] = await Promise.all([
getEnvironment(environmentId),
getIntegrations(environmentId),
@@ -47,6 +49,7 @@ const Page = async (props) => {
getWebhookCountBySource(environmentId, "zapier"),
getWebhookCountBySource(environmentId, "make"),
getWebhookCountBySource(environmentId, "n8n"),
getWebhookCountBySource(environmentId, "activepieces"),
]);
const isIntegrationConnected = (type: TIntegrationType) =>
@@ -216,6 +219,25 @@ const Page = async (props) => {
statusText: isNotionIntegrationConnected ? t("common.connected") : t("common.not_connected"),
disabled: isReadOnly,
},
{
docsHref: "https://formbricks.com/docs/integrations/activepieces",
docsText: t("common.docs"),
docsNewTab: true,
connectHref: "https://www.activepieces.com/pieces/formbricks",
connectText: t("common.connect"),
connectNewTab: true,
label: "Activepieces",
description: t("environments.integrations.activepieces_integration_description"),
icon: <Image src={ActivePiecesLogo} alt="ActivePieces Logo" />,
connected: activePiecesWebhookCount > 0,
statusText:
activePiecesWebhookCount === 1
? `1 ${t("common.integration")}`
: activePiecesWebhookCount === 0
? t("common.not_connected")
: `${activePiecesWebhookCount} ${t("common.integrations")}`,
disabled: isReadOnly,
},
];
integrationCards.unshift({

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

View File

@@ -0,0 +1,2 @@
-- AlterEnum
ALTER TYPE "WebhookSource" ADD VALUE 'activepieces';

View File

@@ -31,6 +31,7 @@ enum WebhookSource {
zapier
make
n8n
activepieces
}
model Webhook {

View File

@@ -691,6 +691,7 @@
},
"formbricks_logo": "Formbricks-Logo",
"integrations": {
"activepieces_integration_description": "Stelle deine Umfragen sofort mit Activepieces in Verbindung",
"additional_settings": "Weitere Einstellungen",
"airtable": {
"airtable_base": "Airtable Basis",

View File

@@ -691,6 +691,7 @@
},
"formbricks_logo": "Formbricks Logo",
"integrations": {
"activepieces_integration_description": "Instantly connect Formbricks with popular apps to automate tasks without coding.",
"additional_settings": "Additional Settings",
"airtable": {
"airtable_base": "Airtable base",

View File

@@ -691,6 +691,7 @@
},
"formbricks_logo": "Logo Formbricks",
"integrations": {
"activepieces_integration_description": "Connectez Formbricks à des applications populaires pour automatiser des tâches sans code.",
"additional_settings": "Paramètres supplémentaires",
"airtable": {
"airtable_base": "Base Airtable",

View File

@@ -691,6 +691,7 @@
},
"formbricks_logo": "Logo da Formbricks",
"integrations": {
"activepieces_integration_description": "Conecte o Formbricks com aplicativos populares para automatizar tarefas sem codificar.",
"additional_settings": "Configurações Adicionais",
"airtable": {
"airtable_base": "base do Airtable",