---
title: "Chatfuel Wizard Modules: What Each Part of the App Does"
description: "The modules the Chatfuel wizard can install, what each adds to your app, which ones you must ask for, and how to pick them with --modules."
canonical_url: https://chatfuel.com/docs/wizard/modules
markdown_url: https://chatfuel.com/docs/wizard/modules.md
last_updated: 2026-10-27
lang: en
site: https://chatfuel.com/docs
llms_txt: https://chatfuel.com/docs/llms.txt
---

# Chatfuel Wizard Modules: What Each Part of the App Does

The modules the Chatfuel wizard can install, what each adds to your app, which ones you must ask for, and how to pick them with --modules.

A module is one part of the app the [Chatfuel wizard](https://chatfuel.com/docs/wizard/quickstart) writes: the inbox, the CRM, bookings, the AI Agent settings and so on. You pick modules before anything is written to disk, and modules you leave out leave no code behind. Each module brings its screens, the GraphQL operations it uses and a skill that teaches your coding agent how that part of the Public API behaves.

## Which modules the wizard offers [#which-modules-the-wizard-offers]

Every module below is installed by default when you accept the picker as it is, except `auth` and `admin`. The name in bold is the module ID that `--modules` takes; the label after it is the name in the app's sidebar.

* **`livechat`** (Inbox): the operator inbox with the conversation list, the message thread and the composer, updated live. Operators take over a conversation and return it to the bot.
* **`contacts`** (Contacts): a CRM over Chatfuel contacts with a record table, saved views, attribute filters, inline editing, a full record page, the bot's field catalog and CSV import and export.
* **`deals`** (Deals): a kanban board, a table and a forecast over contacts grouped by sales stage. A deal is a contact, so `deals` requires `contacts`.
* **`bookings`** (Bookings): a calendar with drag and drop, the appointments list, staff with weekly hours and Google Calendar sync, the services catalog, AI booking settings and insights.
* **`knowledge-base`** (Knowledge Base): everything the AI Agent knows about the business: business profile and opening hours, business notes, FAQs, products, import from a file and the questions the AI handed to a human.
* **`automations`** (AI Agent): the AI Agent settings for every channel and entry point, custom rules with inheritance, and a test chat that is always open.
* **`flow-builder`** (Flow Builder): a visual flow editor with a canvas, block and connection editing and an inspector for each element.
* **`ads-optimization`** (Ads Optimization): conversion events for click-to-WhatsApp ads, sent back to Meta over the Conversions API.
* **`publishing`** (Publishing): Instagram feed photos, Reels, Stories and carousels, published right away or queued, with a calendar and a library of what is already posted.
* **`broadcasts`** (Broadcasts): WhatsApp campaigns from approved templates, with an audience builder, a live recipient count and sending now, later or on a repeat.
* **`channels`** (Channels): the WhatsApp number, Instagram and TikTok accounts, Facebook Pages and website widget connected to the bot, with connect, refresh access and disconnect.
* **`auth`** (Team): sign-in for the people who use the app, on your own Supabase project, with workspaces, owner, admin and member roles and invite links. Opt-in.
* **`admin`** (Admin): a panel for the account behind the app's token: every workspace and bot, their channels and a health page, behind a password. Opt-in.

One more module, `core`, is installed with every app and has no screen of its own. It carries the transport, the proxy rules, pagination and the operation validator that the other modules build on.

## Which modules you have to ask for [#which-modules-you-have-to-ask-for]

The `auth` and `admin` modules need credentials the wizard cannot create on its own, so they are never installed by `--yes` and are marked opt-in in the picker:

* **`auth`** needs a Supabase project for sign-in. The wizard asks for it during the run. Install `auth` whenever people outside your team will open the app; [deploy your app](https://chatfuel.com/docs/wizard/deploy) explains why.
* **`admin`** needs a password of at least 16 characters, stored as `ADMIN_PASSWORD` in the server environment. The panel opens at `/admin` and has no item in the sidebar.

Name them to get them:

```bash
npx @chatfuel/wizard --modules livechat,contacts,deals,auth
```

## How modules depend on each other [#how-modules-depend-on-each-other]

Only one module requires another: `deals` requires `contacts`, and picking `deals` adds `contacts` with a note. Other modules recommend companions, and the wizard offers them in a second list, &#x2A;*Recommended with your selection — add any?**:

* `livechat` and `flow-builder` recommend `contacts`.
* `bookings` recommends `knowledge-base` and `contacts`.
* `knowledge-base` recommends `automations` and `bookings`.
* `automations` recommends `knowledge-base`, `livechat` and `bookings`.
* `ads-optimization` recommends `automations` and `contacts`.
* `broadcasts` recommends `contacts` and `channels`.
* `publishing` recommends `auth`, `admin` and `automations`, because its queue lives in the app's own database.
* `admin` recommends `auth`.

Modules do not import each other's code. When one hands work to another, it links to that module's address, for example from a contact to its conversation in the inbox.

## How to pick modules from the command line [#how-to-pick-modules-from-the-command-line]

`--modules` takes module IDs separated by commas and refuses an ID it does not know:

```bash
npx @chatfuel/wizard --modules livechat,contacts,bookings
```

`--yes` without `--modules` installs every module except `auth` and `admin`. To add a module to an app later, run `npx @chatfuel/wizard --embed` in the app and pick it.

## What a module is made of [#what-a-module-is-made-of]

Each module is a directory in the [wizard repository](https://github.com/chatfuel-lab/wizard) under `content/modules/<id>/` with:

* a manifest that names its dependencies and the environment variables it reads;
* the screens, copied into your app under `src/modules/<id>/`;
* the GraphQL operations it sends. The app's proxy forwards only these documents to Chatfuel and refuses any other;
* a skill, installed as `chatfuel-<id>` for your coding agent, and a handoff note added to the agent's setup checklist. [Coding agents and skills](https://chatfuel.com/docs/wizard/coding-agents) covers both.
