> ## Documentation Index
> Fetch the complete documentation index at: https://formbricks.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Understanding Formbricks Survey Types

> This guide explains the differences between Formbricks Link Surveys and Website & App Surveys to help you choose the right option.

## Quick comparison

| Feature | Link Surveys | Website & App Surveys |
| - | - | - |
| **Best for** | Known touchpoints | Behavior-based intercepts |
| **SDK required** | No | Yes |
| **Delivery** | Email, SMS, push, or webview | Triggered in-app by SDK |
| **Segmentation** | You control externally | Built-in via Formbricks |
| **Survey fatigue prevention** | You control externally | Automatic |
| **User identification** | [Personal Links](https://formbricks.com/docs/surveys/link-surveys/personal-links.md) | [SDK user attributes](https://formbricks.com/docs/surveys/website-app-surveys/user-identification.md) |

## Link Surveys

Also known as **invitation-based surveys**. No SDK needed. You control when and who receives the survey, often through CRMs, marketing tools, or similar platforms.

![Link survey example](https://mintcdn.com/formbricks/HVXK9qhSV5tjWeAg/images/surveys/best-practices/link-surveys-vs-in-app-surveys/link-surveys-example.webp?fit=max\&auto=format\&n=HVXK9qhSV5tjWeAg\&q=85\&s=2deeeac8175aad1da6237e2287b5bbd3)

### Delivery channels

* Email
* SMS
* Push notification
* In-app webview

### URL features

* **[Hidden Fields](https://formbricks.com/docs/surveys/general-features/hidden-fields.md)**: Pass user ID, order ID, or any identifier
* **[Data prefilling](https://formbricks.com/docs/surveys/link-surveys/data-prefilling.md)**: Pre-populate answers and optionally skip prefilled questions
* **[Personal Links](https://formbricks.com/docs/surveys/link-surveys/personal-links.md)**: Generate unique survey links for individual contacts

### Webview with Embed mode

For mobile apps, you can display Link Surveys in a webview with full control over when the survey appears. Your app decides the timing—open the webview when the moment is right.

**Enable Embed mode** by appending `?embed=true` to the survey URL:

```
https://app.formbricks.com/s/<surveyId>?embed=true&userId=123
```

**Listen for events** to close the webview automatically:

```javascript theme={null}
window.addEventListener("message", (event) => {
  if (event.data === "formbricksSurveyCompleted") {
    closeWebView();
  }
});
```

This approach gives you full control:

* **When**: Your app opens the webview at the right moment (after purchase, case closed, etc.)
* **Who**: Personal links allow you to have unique links for identified contacts.
* **Display**: Survey renders inside your app
* **Dismissal**: Close the webview on completion or user exit

Learn more in the [Embed Surveys guide](https://formbricks.com/docs/surveys/link-surveys/embed-surveys.md).

### When to use

* You already decide externally who should receive which survey
* Survey timing is tied to a known event such as a click on a link or button and in **each case**, you want to show the survey
* You want fastest approach to production
* Your platform doesn't have a supported SDK
* You don't need Formbricks attribute-based targeting & survey fatigue controls

## Website & App Surveys (SDK)

Also known as **intercept surveys**. Requires SDK integration. Formbricks handles targeting, triggering, and survey fatigue.

![In-app survey example](https://mintcdn.com/formbricks/HVXK9qhSV5tjWeAg/images/surveys/best-practices/link-surveys-vs-in-app-surveys/in-app-surveys.webp?fit=max\&auto=format\&n=HVXK9qhSV5tjWeAg\&q=85\&s=b8642d6dbe3af7a9bf1d201d399affe9)

### In-app features

**[Action tracking](https://formbricks.com/docs/surveys/website-app-surveys/actions.md)**

Track in-app events and trigger surveys based on them:

```javascript theme={null}
formbricks.track("action_name");
```

**Built-in survey cooldown**

* Global waiting time (e.g., show max 1 survey every 7 days per user)
* Per-survey overrides for high-priority surveys

**[Attribute-based Targeting](https://formbricks.com/docs/surveys/website-app-surveys/attribute-based-targeting.md)**

Target surveys based on user attributes (plan type, language, feature flags).

**In-app display**

Surveys appear inside your app as modals or slide-ins.

### When to use

* You want Formbricks to handle who sees which survey
* Surveys should trigger based on user behavior (page views, clicks, custom events)
* You want automatic survey fatigue prevention
* You need percentage-based sampling (e.g., show to 10% of users)

## Decision guide

> [accordion] Do you control survey triggering externally?
>
> Use **Link-based Surveys**. Send the URL when the moment is right, even for in-app surveys.Pass context via Hidden Fields.

> [accordion] Should surveys trigger based on in-app behavior?
>
> Use **Website & App Surveys**. The SDK tracks actions and triggers surveys automatically.

> [accordion] Do you want automatic survey fatigue prevention?
>
> Use **Website & App Surveys**. Built-in cooldown prevents over-surveying.

> [accordion] Need the fastest path to production?
>
> Start with **Link Surveys**. No SDK integration needed. Add SDK later if you need behavior-based triggers.

***

**Need help?** [Join us in GitHub Discussions](https://github.com/formbricks/formbricks/discussions)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.