AI

OSSフォームビルダー比較:Formbricks vs Heyform vs SurveyJS でアンケートを構築する

オープンソースラボ編集部2026年6月13日

OSSフォームビルダー比較:Formbricks vs Heyform vs SurveyJS でアンケートを構築する

Typeform($25/月〜)・SurveyMonkey($19/月〜)などの有料SaaSフォームツールに依存せず、セルフホストでアンケート・フォーム・NPS調査を構築・収集するOSSツールが進化しています。Formbricks(製品フィードバック特化・OSSタイプフォーム)・Heyform(モダンUI・チーム共有)・SurveyJS(Reactコンポーネント・エンタープライズ向けJSライブラリ)の3つが2026年のOSSフォームビルダーの主要選択肢です。

OSSフォームツールを使う理由

  • データ主権: アンケート回答・ユーザーフィードバックを自社サーバーに保持
  • コスト削減: Typeform($25〜/月)→VPS $10/月でフルスケールフォーム基盤
  • カスタマイズ: フォームUIをブランドに合わせて完全カスタマイズ
  • GDPR対応: EU個人情報保護法に準拠したデータ収集(第三者送信なし)

主要ツールの概要

Formbricks

2022年公開、TypeScript製のOSSです。GitHubスター11k+。プロダクトフィードバック収集に特化したOSSタイプフォームライクな対話型フォームプラットフォームで、製品内アンケート(インアプリ調査)・NPS/CSAT・ユーザーリサーチをターゲティングルールで自動表示できます。React SDKと組み合わせてWebアプリのポップアップアンケートを実装できます。

# docker-compose.yml: Formbricks
version: "3.8"
services:
  formbricks:
    image: ghcr.io/formbricks/formbricks:latest
    restart: unless-stopped
    ports:
      - "3000:3000"
    environment:
      WEBAPP_URL: https://survey.example.com
      DATABASE_URL: postgresql://formbricks:${DB_PASS}@formbricks-db:5432/formbricks
      NEXTAUTH_URL: https://survey.example.com
      NEXTAUTH_SECRET: ${NEXTAUTH_SECRET}
      ENCRYPTION_KEY: ${ENCRYPTION_KEY}
      MAIL_FROM: noreply@example.com
      SMTP_HOST: smtp.example.com
      SMTP_PORT: 587
      SMTP_USER: ${SMTP_USER}
      SMTP_PASSWORD: ${SMTP_PASS}
    depends_on: [formbricks-db]

  formbricks-db:
    image: postgres:16-alpine
    environment:
      POSTGRES_DB: formbricks
      POSTGRES_USER: formbricks
      POSTGRES_PASSWORD: ${DB_PASS}
    volumes:
      - formbricks_db:/var/lib/postgresql/data

volumes:
  formbricks_db:
// Formbricks React SDK: Webアプリにインアプリアンケートを埋め込む
import formbricks from '@formbricks/js';

// アプリ初期化時に設定
formbricks.init({
  environmentId: 'your-environment-id',
  apiHost: 'https://survey.example.com',
});

// ユーザー属性を設定(ターゲティングに使用)
formbricks.setUserId(userId);
formbricks.setEmail(userEmail);
formbricks.setAttribute('plan', 'pro');
formbricks.setAttribute('signup_days', daysSinceSignup);

// カスタムアクションを記録(このアクションをトリガーとしてアンケート表示)
function handleFeatureUse(featureName) {
  formbricks.track('feature_used', { feature: featureName });
  // Formbricksダッシュボードで「feature_usedアクションの5回目にNPSを表示」等を設定
}
# Python: Formbricks API でアンケート回答を取得・分析
import requests

FORMBRICKS_URL = 'https://survey.example.com'
API_KEY = 'your-formbricks-api-key'

def get_survey_responses(survey_id: str) -> list:
    '''Formbricks APIからアンケート回答を取得'''
    resp = requests.get(
        f'{FORMBRICKS_URL}/api/v1/management/surveys/{survey_id}/responses',
        headers={'x-api-key': API_KEY},
        params={'limit': 100, 'offset': 0},
    )
    return resp.json()['data']

def calculate_nps(responses: list, question_id: str) -> dict:
    '''NPS(ネットプロモータースコア)を計算(-100〜+100)'''
    scores = [
        r['data'].get(question_id, 0)
        for r in responses
        if question_id in r.get('data', {})
    ]
    promoters = sum(1 for s in scores if s >= 9)
    detractors = sum(1 for s in scores if s <= 6)
    nps = ((promoters - detractors) / len(scores) * 100) if scores else 0
    return {
        'nps': round(nps, 1),
        'promoters': promoters,
        'detractors': detractors,
        'passives': len(scores) - promoters - detractors,
        'total': len(scores),
    }

Heyform

2022年公開、TypeScript製のOSSです。GitHubスター7k+。タイプフォームライクなモダンUIとチームコラボレーション機能を備えたOSSフォームビルダーで、ドラッグ&ドロップフォームエディタ・埋め込みウィジェット・回答のCSVエクスポート・Webhookでの連携をシンプルなUIで提供します。

# docker-compose.yml: Heyform
version: "3.8"
services:
  heyform:
    image: heyform/community-edition:latest
    restart: unless-stopped
    ports:
      - "8000:8000"
    environment:
      APP_HOMEPAGE_URL: https://form.example.com
      SESSION_KEY: ${SESSION_KEY}
      FORM_ENCRYPTION_KEY: ${FORM_ENCRYPTION_KEY}
      MONGO_URI: mongodb://heyform-mongo:27017/heyform
      REDIS_HOST: heyform-redis
      REDIS_PORT: 6379
      SMTP_FROM: noreply@example.com
      SMTP_HOST: smtp.example.com
      SMTP_PORT: 587
      SMTP_USER: ${SMTP_USER}
      SMTP_PASS: ${SMTP_PASS}
    depends_on: [heyform-mongo, heyform-redis]

  heyform-mongo:
    image: mongo:6
    volumes:
      - heyform_mongo:/data/db

  heyform-redis:
    image: redis:7-alpine

volumes:
  heyform_mongo:

SurveyJS

2015年公開、TypeScript製のOSSです。GitHubスター4k+(survey-library)。React・Vue・Angular・jQueryに対応したOSSアンケートJavaScriptライブラリで、JSONスキーマでフォーム定義・レンダリング・バリデーション・スキップロジック・条件分岐を実装します。SurveyJS Survey Creator(ノーコードビルダーUI)・SurveyJS Analytics(集計ダッシュボード)と組み合わせてエンタープライズ向け完全自社実装フォームを構築できます。

// SurveyJS: Reactアンケートコンポーネントの実装
import { Survey } from 'survey-react-ui';
import { Model } from 'survey-core';
import 'survey-core/defaultV2.min.css';

const surveyJson = {
  title: '製品満足度調査',
  pages: [{
    name: 'page1',
    elements: [
      {
        type: 'rating',
        name: 'nps',
        title: '当社サービスを友人に薦める可能性は?',
        rateMin: 0,
        rateMax: 10,
        minRateDescription: '全くない',
        maxRateDescription: '非常に高い',
      },
      {
        type: 'text',
        name: 'reason',
        title: 'その理由を教えてください',
        visibleIf: '{nps} <= 6',  // 批判者のみに理由を聞く条件分岐
        isRequired: true,
      },
      {
        type: 'checkbox',
        name: 'features',
        title: '特に役立っている機能は?',
        choices: ['ダッシュボード', 'レポート', 'API連携', 'チームコラボ'],
      },
    ],
  }],
};

function ProductSurvey({ userId, onComplete }) {
  const survey = new Model(surveyJson);

  survey.onComplete.add(async (sender) => {
    const responses = sender.data;
    await fetch('/api/survey-responses', {
      method: 'POST',
      body: JSON.stringify({ userId, responses }),
      headers: { 'Content-Type': 'application/json' },
    });
    onComplete(responses);
  });

  return <Survey model={survey} />;
}

機能比較表

比較項目FormbricksHeyformSurveyJS
インアプリアンケート✅(SDK)
ノーコードビルダー✅(別コンポーネント)
Reactコンポーネント✅ 最強
プロダクト分析統合
GitHub Stars11k+7k+4k+

フォームビルダーはその他カテゴリ/categories/miscのCRM(SuiteCRM/Twenty)とWebhookで連携して問い合わせフォームの回答を自動的にCRMのリードとして登録します。マーケティングカテゴリ/categories/marketingのWebアナリティクス(Plausible/Umami)と組み合わせてフォーム離脱率・コンバージョン率をユーザー行動データと紐付けて分析します。

FAQ

Q. FormbricksのインアプリNPSをReactアプリに実装する最短手順は?

A. @formbricks/jsをインストールして5行のコードでインアプリNPSを埋め込めます。手順: ①npm install @formbricks/js②Formbricksダッシュボードでアンケートを作成(環境ID取得)③Reactアプリのエントリポイント(_app.tsxApp.tsx)にformbricks.init({environmentId: 'xxx', apiHost: 'https://survey.example.com'})を追加④ユーザーログイン後にformbricks.setUserId(userId)⑤ダッシュボードのトリガー設定で「プロダクト使用7日後にNPS表示」等を設定→コード変更なしで表示タイミング・ターゲットを変更可能。A/Bテスト: Formbricksの「Segment」機能でユーザーをpro/free/trialに分けて異なるアンケートを表示→施策の効果をユーザーセグメント別に分析。

Q. HeyformのWebhookでフォーム回答をSlackやNotionに自動送信するには?

A. HeyformのダッシュボードでWebhook URLを設定するとフォーム回答をPOSTで受信できます。設定: ①Heyformダッシュボード→Form→Integrations→Webhook②Webhook URLに自前のn8n・Zapier・Make(Integromat)のWebhook URLを入力③イベント: form.submittedを選択④テスト: 「Send Test」でサンプルペイロードを送信して確認。Slack連携(n8n): n8nのWebhookノードがHeyformのPOSTを受信→SlackノードでDM/チャンネルに通知。Notion連携: n8nのNotion APIノードでフォーム回答データをNotionデータベースのレコードとして追加→チームが回答を一元管理。GoogleSheets連携: 標準でGoogleスプレッドシートへの統合が提供(OAuth認証後にシートIDを入力)。

Q. SurveyJSで条件分岐・スキップロジックを実装するには?

A. SurveyJSのJSONスキーマでvisibleIfenableIfrequiredIfプロパティを使って条件分岐を定義します。基本条件式: {question_name} でフィールド値を参照→{score} >= 8(数値比較)・{category} = 'tech'(文字列比較)・{selected_items} contains 'API'(選択肢チェック)・{email} notempty(入力済み確認)。複合条件: ({plan} = 'pro') and ({usage_days} > 30)でAND条件・({country} = 'JP') or ({country} = 'TW')でOR条件。ページスキップ: page.visibleIfでページごとスキップ→{product_type} = 'B2B'の場合はB2B向けページを表示・B2Cページは非表示。動的テキスト: {email}さん、ご回答ありがとうのようにフォーム内で前の回答を参照した動的メッセージ表示が可能。

Q. Formbricks・Heyform・SurveyJSのどれを選ぶべきですか?

A. プロダクト内アンケート・NPS・インアプリフィードバックにはFormbricksシンプルなスタンドアロンフォーム・チーム共有・Webhook連携にはHeyform自社Reactアプリに埋め込む・フル制御・エンタープライズ品質にはSurveyJSが向いています。Formbricks優位: ①製品使用状況に基づいたセグメント・ターゲティング(Pro用/Trial用アンケートを自動切り替え)②インアプリモーダル・バナー・埋め込みフォームを1つのプラットフォームで管理③NPS/CSAT/PMF等のアンケートテンプレートが充実④Webhookで回答をSlack/n8n/Zapierに送信。Heyform優位: ①Typeformライクな美しいコンバーサルUI②チームでフォームを共有・共同編集③メール通知・GoogleSheets連携がノーコードで設定可能④埋め込みウィジェット(iframe/popup/inline)が簡単。SurveyJS優位: ①React/Vue/Angular公式コンポーネント→既存フロントエンドに完全統合②フォームの外観をCSS/テーマで完全カスタマイズ③複雑なスキップロジック・計算・条件分岐をJSONで定義→開発者が完全にコントロール④エンタープライズライセンスでサポート・SLAが付属。

まとめ

ユースケース推奨ツール
インアプリNPS・プロダクトフィードバックFormbricks
スタンドアロンフォーム・チーム共有Heyform
React埋め込み・完全制御・エンタープライズSurveyJS

関連外部リソース

他の記事も読む

Let's Build Together

OSS導入、自社だけで悩まない。

ツール選定から構築・運用・AI活用まで、オープンソースラボ運営元のClasslessが伴走します。初回のご相談は無料です。