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

# Static vs dynamic

> Choose between static and dynamic WhatsApp Flows

WhatsApp Flows can operate in two modes: static and dynamic.

## Static flows

All content is defined in the Flow JSON. No server calls during user interaction.

**Use when:**

* Content doesn't change between users
* No real-time data needed
* Simple forms with fixed options

**Example:** A feedback survey with predefined questions and answer choices.

## Dynamic flows

Meta calls your data endpoint to fetch content at runtime. You provide a function that returns screen data.

**Use when:**

* Content varies per user (personalization)
* Real-time data needed (available slots, inventory)
* Options depend on previous answers
* External API integration required

**Example:** An appointment booking flow that shows available time slots from your calendar API.

## How Kapso determines the mode

A flow is dynamic when it has a **data endpoint function** attached. In the dashboard, you'll see a badge:

* **Static** - No data endpoint, Flow JSON only
* **Dynamic** - Data endpoint function configured

## Setting up dynamic flows

1. Open your flow in the dashboard
2. Go to the **Data Endpoint** tab in the editor
3. Follow the setup wizard:
   * Enable flows encryption (one-time per phone number)
   * Create or select a function
   * Deploy and test

<Card title="Data endpoint reference" icon="server" href="/docs/whatsapp/flows/data-endpoint">
  Request format, response structure, and timeout limits
</Card>
