This hackathon focuses on building a conversational AI system for ElternLeben.de.
ElternLeben.de is a non-profit organization dedicated to provide support, guidance, and expert knowledge they need to create a loving and healthy environment for their children. Through trusted online counseling, educational content, and personalized programs, ElternLeben.de ensures no parent navigates the journey alone.
β Professional expertise β A network of highly trained specialists offering practical, competent and research-based assistance.
β Non-profit mission β driven by transparency and social impact, reinvesting resources to strengthen families and make expert support accessible to all.
β Inclusive & welcoming support β Judgment-free help for all parents, regardless of background.
This challenge is supported by Generali.
The challenge splits into two primary goals:
-
High-quality Conversational Intelligence and User Engagement

- Building an empathetic, engaging conversation flow with personalized responses
- Maintaining context and understanding user needs
- Ensuring high-quality, accurate content recommendations
-
Multi-Touchpoint Service Integration

- Creating seamless connections between the chatbot and service ecosystem
- Intelligent routing between automated responses and expert consultations
- Implementing direct scheduling capabilities and analytics tracking
To create a chatbot that truly embodies ElternLeben.de's warm and supportive spirit, we recommend these guidelines to help you build something special:
- The chatbot follows the principles of attachment parenting and child-focused education.
- It only provides information from the ElternLeben repository and always links to reliable sources.
- Medical questions? The bot wonβt answer them! Instead, it will recommend contacting ElternLebenβs e-mail counseling service or a doctor.
- The bot never promotes:
- π« Aggressive or violent behavior
- π« Punishment (physical or emotional)
- π« Reward-based parenting methods
- It stays on topic and does not answer questions outside of child development, parenting, and family life.
- The chatbot is empathetic and positive, acknowledging that parenting can be challenging.
- If a user or child might be in danger, the chatbot will always recommend reaching out to ElternLebenβs e-mail counseling directly.
- It ensures that users seeking personal counseling are guided to real experts. The bot never acts as a replacement for professional help.
- At the same time, not all users require personal counseling. The chatbot finds the right balance between self-help content and expert recommendations, tailoring responses to the userβs needs.
- Instead of overwhelming users with long answers, the chatbot keeps things interactive and easy to follow. It:
- First, understands the user's situation π€
- Asks follow-up questions in a friendly, natural way π£οΈ
- Provides short, to-the-point answers β
- Always links to helpful content for more details π
- The chatbot checks in with users to see if they found the answer helpful and offers further guidance if needed.
By following these principles, you will create a warm, supportive, and informative experience for parents. π
This dataset represents a static snapshot of ElternLeben.de's content base as of the start of the AI for Impact programme. While ElternLeben's live website regularly publishes new pages and improves existing content, this repository version will remain unchanged throughout the programme duration.
- This dataset is provided exclusively for use in the AI for Impact programme
- The content reflects ElternLeben.de's structure at the time of capture
- No updates to this dataset will be provided during the programme
Participants are encouraged to:
- Design solutions that could accommodate future content updates
- Consider how a production system might connect to TYPO3 content management system
- Develop mock update mechanisms if desired for demonstration purposes
This package contains the following resources:
- data_exploration.ipynb: Jupyter notebook with sample analysis to help understand the dataset
- metadata.csv: Metadata for all content pages from Elternleben.de
- processed_conversations.csv: Anonymized conversation logs from a previous chatbot prototype
- content/: Directory containing markdown files with content from the website
- mock_api/: Directory containing the Mock API for service integrations
| Column | Type | Description |
|---|---|---|
| url | String | Full URL of the content page |
| filepath | String | Internal file path, reflects the content hierarchy |
| filename | String | Name of the content file |
| title | String | Article title |
| description | String | Brief description/summary of the content |
| author | String | Content author (may be empty) |
| category | String | Primary content category |
| crawled_at | String | Timestamp when the content was crawled |
| Column | Type | Description |
|---|---|---|
| conversation_id | Integer | Unique identifier for each conversation |
| conversation_start | String | Timestamp when the conversation started |
| request_timestamp | String | Timestamp of the user's message |
| response_timestamp | String | Timestamp of the chatbot's response |
| user_message | String | The user's message text |
| chatbot_response | String | The response from the chatbot |
| response_links | String | URLs to content recommended by the chatbot |
| needs_escalation | Float | Flag (0/1) indicating if human intervention was needed (evaluated post-hoc by a human) |
| recommended_approach | Float | Suggested approach code (evaluated post-hoc by a human) |
Notes on Conversation Data:
- Parent interactions tend to fall into these categories:
- Information-Seeking Queries: Age-specific development questions, sleep problems and routines, feeding and nutrition concerns, behavior management questions
- Problem-Solving Conversations: Specific challenges with children, crisis management (tantrums, sleep regression), health concerns, developmental worries
- Service-Related Interactions: Webinar registration inquiries, consultation scheduling, expert advice requests, follow-up conversations after content consumption
- Support-Seeking Conversations: Emotional validation requests, shared experiences, uncertainty/anxiety about parenting decisions, confidence-building interactions
- Transition Points: Life stage changes (newborn to infant, starting kindergarten), developmental milestone concerns, shifting from information gathering to service booking
- A single conversation (identified by
conversation_id) may contain multiple message exchanges response_links_1-response_links_5contain URLs from the responseneeds_escalationvalues:- 0: No escalation needed
- 1: Escalation to human operator was needed
recommended_approachvalues:- Information Support
- Expert Guidance
- Emotional Support
- Learning Resources
- Community Connection
- Urgent Assistance
Understanding these conversation categories can help design more effective chatbot flows that address different parent needs and contexts.
The content directory contains markdown files organized according to the website structure. Each markdown file follows this format:
---
author: ''
category: elternleben
crawled_at: '2025-03-04T10:11:34.936030'
description: Brief description of the article
filename: article-name.md
filepath: category/subcategory/article-name.md
title: Article Title
url: https://www.elternleben.de/category/subcategory/article-name/
---
# Main Heading
Introduction text...
## Subheading 1
Content for section 1...
## Subheading 2
Content for section 2...The content follows this hierarchical structure:
elternleben
βββ baby
β βββ baby-beschaeftigen
β βββ babyausstattung
β βββ babynahrung
β βββ ...
βββ elternwissen
β βββ kita-kind
β βββ kleinkind
β β βββ erziehung-und-bildung
β βββ ...
βββ ...
The directory structure reflects the content categorization on the website and shows topic relationships. The full directory tree can be found in tree.md.
Your chatbot solutions should integrate with two service types:
Represents online seminars that users can register for:
- Webinar topic
- Date and time
- Duration
- Description
- Registration requirements (name, email)
Represents one-on-one consultations users can schedule:
- Service type (e.g., sleep consultation, feeding advice)
- Available time slots
- Duration
- Price
- Booking requirements (name, email, phone)
For the hackathon, mock API interfaces for these services are provided. No actual connection to Zoom or SimplyBook is needed.
Before exploring the data or running the mock API, you'll need to set up your Python environment:
-
Clone this repository:
git clone <repository-url> cd ai4impact-elternleben
-
Create a virtual environment:
python -m venv .venv
-
Activate the virtual environment:
- On Windows:
.venv\Scripts\activate
- On macOS/Linux:
source .venv/bin/activate
- On Windows:
-
Install dependencies:
pip install -r requirements.txt
-
Run Jupyter Notebook:
jupyter notebook
Then open
data_exploration.ipynbin your browser to start exploring the dataset.
The mock API provides endpoints for webinar management and appointment booking. It uses a SQLite database with German-language sample data.
-
Navigate to the API folder:
cd mock_api -
Create the database with sample data:
python create_database.py
This creates a SQLite database (
mock_api.db) with German examples of webinars, experts, and appointments. -
Run the FastAPI application:
uvicorn mock_api:app --reload
The API will be available at http://127.0.0.1:8000
-
API documentation:
- Interactive Swagger UI: http://127.0.0.1:8000/docs
- ReDoc interface: http://127.0.0.1:8000/redoc
GET /webinars- List webinarsGET /experts/{expert_id}/webinars- List webinars per expertGET /webinars/{webinar_id}/registrants- List webinar registrantsPOST /webinars/{webinar_id}/registrants- Create a new webinar registrationPATCH /webinars/{webinar_id}/registrants/{registrant_id}- Update registration
GET /experts- List all expertsGET /experts/available- List available expertsGET /experts/{expert_id}/available-slots- Get expert's available time slotsPOST /bookings/new- Create a new appointmentPATCH /bookings/{appointment_id}- Update an appointmentDELETE /bookings/{appointment_id}- Cancel an appointment
The database contains four tables:
webinars: Information about upcoming webinars (ISO 8601 datetime format)webinar_registrations: Tracks registrations for webinarsexperts: Information about available expertsappointments: Tracks appointments with client info (YYYY-MM-DD HH:MM format)
- Explore the data: Begin with the data_exploration.ipynb notebook to understand the dataset
- Understand the content structure: Browse the markdown files to see the type of content being provided
- Analyze conversation patterns: Review the conversation data to identify common user queries and expectations
- Design your approach: Plan your chatbot architecture considering both conversational intelligence and service integration
- Implement and test: Build your solution and test against realistic user scenarios
Your solution will be evaluated based on:
-
(Goal 1) Conversational Intelligence
- Natural dialog flow
- Context maintenance
- Appropriate response personalization
- Accurate content recommendations
-
(Goal 2) Service Integration
- Seamless transitions from information to services
- Effective booking/registration flows
- Proper handling of user information
- Analytics capabilities
-
Technical Implementation
- Code quality and structure
- Performance and scalability
- Innovative approaches to challenges
- Documentation quality
- Basic Python libraries for NLP and data processing
- Mock API interfaces for service integration
- Markdown parsing utilities
- Data exploration notebook
Good luck and happy coding!


