French Roleplay Bot via Telegram
Practice French conversations at B1 level through daily Telegram roleplay scenarios. An AI agent plays a character, chats in simple French, and gently corrects mistakes.
French Roleplay Bot via Telegram
This workflow powers a Telegram chatbot that helps French learners practice conversational skills at the B1 level through daily roleplay scenarios. Each day, the bot fetches a new scenario from a Google Sheets spreadsheet, takes on a character role, and engages the user in natural French dialogue — gently correcting mistakes along the way and offering a friendly review when the conversation wraps up.
What It Does
- Listens for incoming Telegram messages from users.
- Extracts key details from the message, including chat ID, user text, and command indicators (
/start,/fin). - Retrieves the daily scenario from a Google Sheets spreadsheet containing multiple roleplay situations.
- Combines user data and scenario details to prepare the input for the AI agent.
- The AI agent plays a character matching the scenario and converses in simple French, correcting errors kindly while staying in character.
- Sends the AI agent's response back to the user on Telegram and handles errors by sending a polite fallback message.
What You Need
- A Telegram bot token to connect with the Telegram Bot API.
- A Google Sheets document with daily roleplay scenarios, properly formatted. You can generate scenarios using the companion workflow "Weekly Scenario Generator in French."
- A Needle platform account with the Telegram Bot API and Google Sheets connectors configured.
- An API key for the AI model used by the AI node.
Note: The Google Sheets node uses a placeholder spreadsheet ID. You must replace it with your own spreadsheet ID containing your roleplay scenarios.
How the Flow Works
| Node | Description |
|---|---|
| Telegram Bot API Trigger | Listens for new messages sent to your Telegram bot by users. |
| Extract Telegram Message Data | Parses the incoming Telegram data to extract chat ID, user text, commands, and user first name. |
| Get Scenarios from Google Sheets | Retrieves all roleplay scenarios from your Google Sheets spreadsheet. |
| Merge Data | Combines extracted user message data with the scenarios retrieved from Google Sheets. |
| Select Today's Scenario | Selects the scenario for the current day based on the calendar date (day of year modulo total number of scenarios). |
| AI Agent Node | Plays the conversational partner in French at B1 level, responding in character using the scenario details and user input. Gently corrects mistakes. |
| Error Handling | Checks the AI response for errors; if any, sends a polite fallback reply to the user. |
| Send Telegram Message | Sends the AI-generated reply back to the Telegram chat. |
Output
Users receive responsive, character-driven conversations in French directly in their Telegram chat. The bot engages using daily rotating scenarios tailored for language learners, provides gentle grammar corrections, and when the conversation concludes naturally, offers a friendly review highlighting strengths and tips for improvement.
Customization Tips
- Change the language: Swap French for Spanish, German, or any other language by editing the AI prompt.
- Adjust the difficulty level: Modify the prompt to target A1, A2, B2, or any CEFR level.
- Enrich scenarios: Add more columns to your spreadsheet (e.g., grammar focus, cultural notes) and reference them in the prompt.
- Switch platforms: Replace the Telegram nodes with another messaging platform connector if preferred.
Notes
- The scenarios spreadsheet supports daily rotating roleplay themes, keeping practice fresh and engaging.
- The bot avoids markdown formatting in its replies and keeps responses brief, which works well for Telegram.
- Be sure to keep your Telegram bot token and API keys secure.
- This workflow pairs well with a companion workflow that generates weekly scenarios in French or other languages.
Want to showcase your own workflows?
Become a Needle workflow partner and turn your expertise into recurring revenue.
