PHPackages                             undkonsorten/easychat - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. undkonsorten/easychat

ActiveTypo3-cms-extension[Utility &amp; Helpers](/categories/utility)

undkonsorten/easychat
=====================

A TYPO3 chatbot/assistant without third party tools. Only TYPO3 + LLM endpoint needed (ChatGpt, Mistral...). Privacy focused (GDPR). Chats stored in TYPO3 only.

0.1.1(1mo ago)082[1 issues](https://github.com/undkonsorten/easychat/issues)GPL-3.0-or-laterPHPPHP ^8.2CI failing

Since Feb 23Pushed 1mo agoCompare

[ Source](https://github.com/undkonsorten/easychat)[ Packagist](https://packagist.org/packages/undkonsorten/easychat)[ RSS](/packages/undkonsorten-easychat/feed)WikiDiscussions develop Synced today

READMEChangelogDependencies (14)Versions (4)Used By (0)

EasyChat Chatbot (TYPO3 Extension)
==================================

[](#easychat-chatbot-typo3-extension)

---

[![TYPO Version 12](Documentation/Badges/TYPO3-12.png)](Documentation/Badges/TYPO3-12.png) [![TYPO Version 12](Documentation/Badges/TYPO3-13.png)](Documentation/Badges/TYPO3-13.png)

---

[![EasyChat Logo](Documentation/Assets/EasyChat-Logo.png)](Documentation/Assets/EasyChat-Logo.png)

---

**EasyChat** is a lightweight open source chatbot for [TYPO3](https://typo3.org) websites without third party chat tools.

All you need is TYPO3 and an LLM endpoint.

EasyChat is **focused on privacy** and data protection, since all chat conversions are only stored in your TYPO3 database.

---

🚀 Features
----------

[](#-features)

- 🗨 **Chatbot frontend**

    - based on the open source chat framework [Deep Chat](https://deepchat.dev) (Supports: Vanilla JS, Vue, React, Angular etc.)
- 🤖 **LLM Endpoints** for

    - (self hosted) open source LLM's (e.g. gpt‑oss) and
    - standard LLMs (ChatGPT, Cloude Opus, Mistral etc.)
    - Chat memory (Chatbot can remember old questions)
- 🔒 **Data protection**:

    - Chat session **data is saved only within TYPO3** (on your own server)
    - Optional **privacy consent** before the chat starts
    - Automated **cleaning of user data** (scheduler task)
- ⛁ **Knoledge base** connector (to vector database)

---

🛠️ Setup guide (5 Steps)
------------------------

[](#️-setup-guide-5-steps)

### 1. Install the TYPO3 Extension

[](#1-install-the-typo3-extension)

Install the **TYPO3 ChatBot Extension *EasyChat*** via [composer](https://getcomposer.org/doc/):

```
composer require undkonsorten/easychat
```

After installation a **database compare** is necessary (via [Install Tool](https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ApiOverview/Database/DatabaseUpgrade/Index.html#database-upgrade) or [TYPO3 Console](https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ApiOverview/CommandControllers/ListCommands.html#console-command-extension-setup)) to create new tables.

### 2. Configure the LLM provider

[](#2-configure-the-llm-provider)

Now you need to connect TYPO3 to your LLM's provider via API. Create a new database record "Configuration" in TYPO3.

[![Click to enlarge: Add new Configuration record](Documentation/Assets/Configuration-New-Database-Record.png)](Documentation/Assets/Configuration-New-Database-Record.png)

Then fill out the fields of the *Configuration record*.

[![Click to enlarge: EasyChat backend Module](Documentation/Assets/Configuration_Thumb.png)](Documentation/Assets/Configuration.png)

#### Sample configurations for you LLM

[](#sample-configurations-for-you-llm)

- **Mistral** (Free plan available | [How to get an API key?](Documentation/How-to-get-API-Keys.md))

    - Name: `Mistral (mistral-tiny)`
    - Model (of the LLM): `mistral-tiny`
    - URL (of the API endpoint): `https://api.mistral.ai`
    - API Key: `your-api-key-abc123xyz-...`
    - System Message (Promt): `You are a support chatbot ...`
- **OpenAI / ChatGPT** (Payed plan only | [How to get an API key?](Documentation/How-to-get-API-Keys.md))

    - Name: `Chatbot via OpenAI (gpt-4o-mini)`
    - Model (of the LLM): `gpt-4o-mini`
    - URL (of the API endpoint): `https://api.openai.com`
    - API Key: `your-api-key-abc123xyz-...`
    - System Message (Promt): `You are a support chatbot ...`
- **mittwald** (Payed plan | [How to get an API key?](Documentation/How-to-get-API-Keys.md))

    - Name: `Support Chatbot via Mittwald (gpt-oss)`
    - URL (of the API endpoint): `https://llm.aihosting.mittwald.de`
    - Model (of the LLM): `gpt-oss-120b`
    - API Key: `abc123xyz...`
    - System Message (Promt): `You are a support chatbot ...`

### 3. Setup the TYPO3 Reaction

[](#3-setup-the-typo3-reaction)

A **TYPO3 Reaction** needs to be created. The reaction serves as a connector (aka endpoint) between the chat frontend and TYPO3.

[![Click to enlarge: Reaction for EasyChat](Documentation/Assets/Reaction_Thumb.png)](Documentation/Assets/Reaction.png)

- Create a new reaction with the *Reaction Type* `Reaction for easychat`.
- Be sure to *copy the generated secret* before saving
- Chose one of the before created *EasyChat configuration record*

After sucessfully creating the reaction you will see the following interface.

[![Click to enlarge: Reaction List](Documentation/Assets/Reactions_Thumb.png)](Documentation/Assets/Reactions.png)

Now also *copy the reaction URL* (like `https://my-domain.com/typo3/reaction/afce5efb-861e-4e0e-8a8b-d159f194670d`). You will need it in step 4.

### 4. Setup the Content Element

[](#4-setup-the-content-element)

Last but not least you need to setup a *content element for the chatbot*.

- Be sure to have you *Reaction URL and secret* available.
- Open a TYPO3 page
- Add/create a new content element "Chatbot".
- Connect the content Element to the reaction.

[![Click to enlarge: Content Element EasyChat](Documentation/Assets/Content-Element_Thumb.png)](Documentation/Assets/Content-Element.png)

### ✨ YOU ARE DONE!!! 👊 CONGRATULATIONS 🎉

[](#-you-are-done--congratulations-)

---

Backend module for chat session logs
------------------------------------

[](#backend-module-for-chat-session-logs)

With the **EasyChat backend module** you can watch, review and delete single chat session.

[![Click to enlarge: EasyChat backend Module](Documentation/Assets/Backend-Module_Thumb.png)](Documentation/Assets/Backend-Module.png)

---

Automated cleaner task for deleting old chat session
----------------------------------------------------

[](#automated-cleaner-task-for-deleting-old-chat-session)

For data protection we recommend to setup the 🗑 *cleaner task* in order to delete old chat sessions.

[![Click to enlarge: EasyChat backend Module](Documentation/Assets/Scheduler-Task_Thumb.png)](Documentation/Assets/Scheduler-Task.png)

Steps:

- Choose the task `Execute console commands (scheduler)`
- Schedulable Commend: `easychat:delete-sessions: Deletes sessions older than given date interval.`
- Set the scheduler interval
- Save !
- Then define the `keepDateInterval` in the [ISO 8601 durations format](https://en.wikipedia.org/wiki/ISO_8601#Durations).

DurationISO 8601 Format1 DayP1D2 WeeksP2W3 MonthsP3M1 YearP1Y1 Year and 2 MonthsP1Y2M---

Theming &amp; Templates
-----------------------

[](#theming--templates)

### Chat Fronend: Deep Chat

[](#chat-fronend-deep-chat)

EasyChat comes along with *Deep Chat* - an **open source chat web component** in the frontend.

[![Click to enlarge: Deep-Chat Styles](Documentation/Assets/DeepChat_Thumb.png)](Documentation/Assets/DeepChat.png)

For simplicity we integrated *Deep Chat* as a plain **Vanilla JS** web component, but [it can be used with many other frameworks](https://deepchat.dev/examples/frameworks) (e.g. React, Vue, Svele, Angular). EasyChat is able to communicate with popular AI providers, but can also connect to your own servers - in our example with TYPO3.

DeepChat is an example implemention. Feel free to use another chatbot frontend. The default dummy template is located at

- `/Resources/Private/Templates/ChatFrontend.html`.

### Styled version

[](#styled-version)

If you want to use our *suggested default styles for ChatBot &amp; Cookie Consent* you need to include the TypoScript templates in `/Configuration/Styling/`.

[![Click to enlarge: Include Styles via TypoScript](Documentation/Assets/Styling-TypoScript_Thumb.png)](Documentation/Assets/Styling-TypoScript.png)

### How to add your own styles 💐

[](#how-to-add-your-own-styles-)

You can either overlay the default template or the styled template, by setting your own template paths.

```
# overlay the easychat styled version
plugin.tx_easychat.view {
    partialRootPaths.10 = EXT:my-sitepackage/Resources/Private/_Default/Easychat/Partials/
    templateRootPaths.10 = EXT:my-sitepackage/Resources/Private/_Default/Easychat/Templates/
}

```

Be aware,

- there a many ways to inject styles to a web component like ``
- keep also in mind the styles for the chatbot trigger button and the consent module

### How to Change the texts

[](#how-to-change-the-texts)

Your edit some of the content directly in the Frontend.

You can ovverride texts used in the template via locallang.xml oder via TypoScript.

```
plugin.tx_easychat {
    _LOCAL_LANG {
        default.easychat_nagscreenMessage = Hast du Fragen zu unserem Angebot?
        default.easychat_dataProtectionConsentAcceptedMessage = Einwilligung erteilt
    }
}

```

---

Credits
-------

[](#credits)

🙏 This TYPO3 Extension was build by the Berlin based digtal agency [undkonsorten](https://undkonsorten.com).

- Eike Starkmann (Product Owner &amp; Inspirator, TYPO3 Development)
- Lars Hayer (Frontend, Theming)
- Thomas Alboth (Product Owner &amp; Documentation)
- Jule Nott (UI Design)
- Felix Althaus &amp; J. (Critical Thinking)

---

Contact
-------

[](#contact)

Questions? Suggestions? Support needed? Feel free to 📧 [contact us](https://undkonsorten.com/kontakt).

---

License
-------

[](#license)

[GNU General Public License, version 2](http://www.gnu.org/licenses/gpl-2.0.html)

---

Planned Featues
---------------

[](#planned-featues)

- Impoved documentation for the connector to vector database as a knowledge base for the chatbot
- Website scraping/indexing via TYPO3 for the knowledge base (via vector database)

###  Health Score

36

—

LowBetter than 79% of packages

Maintenance86

Actively maintained with recent releases

Popularity8

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity38

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~100 days

Total

2

Last Release

30d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/a192083f4fc05fe8020592c9b5222677998fcf0e779df21ecb51016d8fd45f98?d=identicon)[undkonsorten](/maintainers/undkonsorten)

![](https://avatars.githubusercontent.com/u/3470953?v=4)[Eike Starkmann](/maintainers/Starkmann)[@Starkmann](https://github.com/Starkmann)

---

Top Contributors

[![Starkmann](https://avatars.githubusercontent.com/u/3470953?v=4)](https://github.com/Starkmann "Starkmann (61 commits)")

---

Tags

aichattypo3chatbotassistant

### Embed Badge

![Health badge](/badges/undkonsorten-easychat/health.svg)

```
[![Health](https://phpackages.com/badges/undkonsorten-easychat/health.svg)](https://phpackages.com/packages/undkonsorten-easychat)
```

###  Alternatives

[friendsoftypo3/content-blocks

TYPO3 CMS Content Blocks - Content Types API | Define reusable components via YAML

103519.9k53](/packages/friendsoftypo3-content-blocks)[pagemachine/typo3-formlog

Form log for TYPO3

23238.6k8](/packages/pagemachine-typo3-formlog)[netresearch/rte-ckeditor-image

Image support in CKEditor for the TYPO3 ecosystem - by Netresearch

611.1M8](/packages/netresearch-rte-ckeditor-image)[wazum/sluggi

TYPO3 extension for URL slug management with inline editing, auto-sync, locking, access control, and redirects

40529.5k](/packages/wazum-sluggi)[eliashaeussler/typo3-form-consent

Extension for TYPO3 CMS that adds double opt-in functionality to EXT:form

1595.5k](/packages/eliashaeussler-typo3-form-consent)[friendsoftypo3/visual-editor

TYPO3 CMS Visual Editor - Brings a modern WYSIWYG editing experience to TYPO3 CMS.

576.1k2](/packages/friendsoftypo3-visual-editor)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
