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

# Core Concepts

> Understand the building blocks of Wassist: agents, tools, conversations, and more

This guide explains the fundamental concepts you'll encounter when building with Wassist. Whether you're using the dashboard or the API, these concepts apply universally.

## Agents

An **Agent** is an AI-powered assistant that handles conversations on WhatsApp. Each agent has its own personality, knowledge, and capabilities defined by its configuration.

<Frame>
  ```mermaid theme={null}
  flowchart LR
      User[WhatsApp User] <-->|Messages| Agent[Wassist Agent]
      Agent --> Tools[Tools & APIs]
      Agent --> Knowledge[Knowledge Base]
      Agent --> Memory[Conversation Memory]
  ```
</Frame>

### Key Agent Properties

| Property            | Description                                                                      |
| ------------------- | -------------------------------------------------------------------------------- |
| **Name**            | The display name of your agent                                                   |
| **System Prompt**   | Instructions that define how the agent behaves, its personality, and constraints |
| **First Message**   | The welcome message sent when a user starts a new conversation                   |
| **Icebreakers**     | Quick-reply buttons shown with the first message to guide users                  |
| **Profile Picture** | The avatar displayed in WhatsApp                                                 |

<Tip>
  A well-crafted system prompt is the most important factor in your agent's quality. Be specific about tone, knowledge boundaries, and how to handle edge cases.
</Tip>

## Tools

**Tools** extend your agent's capabilities by connecting it to external services. When a user asks a question that requires real-time data or an action, the agent can call a tool to fulfill the request.

### Types of Tools

<AccordionGroup>
  <Accordion title="API Tools" icon="plug">
    Connect to any REST API to fetch data or trigger actions. Define the endpoint, parameters, and how the agent should interpret responses.

    **Examples:**

    * Check order status from your e-commerce platform
    * Book appointments in your calendar system
    * Look up product inventory
  </Accordion>

  <Accordion title="Website Tools" icon="globe">
    Let your agent browse and extract information from web pages in real-time.

    **Examples:**

    * Check current prices on your website
    * Pull the latest blog posts
    * Verify stock availability
  </Accordion>

  <Accordion title="Image Generation Tools" icon="image">
    Enable your agent to create images based on user requests using AI image generation.
  </Accordion>

  <Accordion title="Handoff Tools" icon="arrow-right-arrow-left">
    Transfer conversations to other agents or human operators when specialized help is needed.
  </Accordion>

  <Accordion title="MCP Connectors" icon="server">
    Connect to Model Context Protocol (MCP) servers for advanced integrations with external systems.
  </Accordion>
</AccordionGroup>

## Conversations

A **Conversation** represents an ongoing dialogue between a user and an agent. Wassist manages conversation state, history, and context automatically.

### Conversation Properties

| Property     | Description                                                |
| ------------ | ---------------------------------------------------------- |
| **Messages** | The full history of messages exchanged                     |
| **Context**  | Structured data extracted during the conversation          |
| **Memory**   | Persistent key-value storage that survives across sessions |
| **Credits**  | If monetization is enabled, the user's remaining credits   |

### Message Types

WhatsApp supports rich message formats beyond plain text:

* **Text** — Standard text messages with emoji and formatting
* **Images** — Photos and graphics with optional captions
* **CTA Buttons** — Call-to-action buttons that link to URLs
* **List Selections** — Interactive menus for structured choices
* **Templates** — Pre-approved message templates for outbound messages

## Memory

**Memory Keys** let your agent remember information about each user across conversations. Unlike conversation context (which resets), memory persists indefinitely.

```
Memory Key: "customer_name"
Type: string
When to Update: "When the user tells you their name"
```

**Use cases:**

* Remember user preferences
* Track subscription status
* Store order history references

## Documents & Knowledge Base

Upload files to give your agent specialized knowledge. Wassist processes documents using AI embeddings, allowing your agent to search and retrieve relevant information during conversations.

**Supported formats:**

* PDF documents
* Word documents (.docx)
* Plain text files
* Markdown files

<Note>
  Documents are processed asynchronously. You'll see a status indicator while processing completes.
</Note>

## WhatsApp Business Accounts

To deploy agents to production, you connect a **WhatsApp Business Account (WABA)**. This gives you:

* **Dedicated phone numbers** — Your own business numbers
* **Business profile** — Company name, description, and verified badge
* **Message templates** — Pre-approved templates for outbound messaging
* **Higher messaging limits** — Send more messages as your reputation grows

<Frame>
  ```mermaid theme={null}
  flowchart TD
      WABA[WhatsApp Business Account]
      WABA --> Phone1[Phone Number 1]
      WABA --> Phone2[Phone Number 2]
      Phone1 --> Agent1[Agent A]
      Phone2 --> Agent2[Agent B]
  ```
</Frame>

You can deploy different agents to different phone numbers under the same business account.

## Monetization

Wassist includes built-in tools to generate revenue from your agents:

### Paywalls

Set a message limit after which users must take action:

* **Purchase Link** — Redirect to a payment page
* **Subscribe** — Start a subscription through Wassist
* **Terminal** — Stop the conversation with a custom message

### Credits

A flexible token-based system where:

* Users start with initial credits
* Each message or tool use consumes credits
* Users can purchase more credits

### Ads

Display promotional content within conversations (optional).

## Wake-Up Configs

**Wake-Up Configs** let your agent proactively reach out to users based on triggers. Instead of waiting for users to message first, your agent can initiate conversations.

**Example triggers:**

* "If the user hasn't responded in 24 hours, send a follow-up"
* "If a new product launches, notify interested users"

## Outbound Triggers

**Outbound Triggers** are webhooks that let external systems trigger your agent to send messages. When your backend receives an event (new order, appointment reminder, etc.), it can call Wassist to send a templated message.

***

## Next Steps

<CardGroup cols={2}>
  <Card title="Create Your First Agent" icon="rocket" href="/quickstart">
    Follow the quickstart guide to build an agent in minutes.
  </Card>

  <Card title="SDK Overview" icon="code" href="/sdk/overview">
    Learn how to manage agents programmatically.
  </Card>
</CardGroup>
