Telegram Nutrition AI Assistant (Alternative to Cal AI App) > AI-powered nutrition assistant for Telegram — log meals, set goals, and get personalized daily reports with Google Sheets integration. Description This n8n template creates a Telegram-based Nutrition AI Assistant designed as an open-source alternative to the Cal AI mobile app. It allows users to interact with an AI agent via text, voice, or images to track meals, calculate macros, and monitor nutrition goals directly from Telegram. The system integrates Google Sheets as the database, handling both user profiles and meal logs, while leveraging Gemini AI for natural conversation, food recognition, and daily progress reports. Key Features Multi-input support: Text, voice messages (transcribed), and food images (AI analysis). Macro calculation: Automatic estimation of calories, proteins, carbs, and fats. User-friendly registration: Simple onboarding without storing personal health data (no weight/height required). Goal tracking: Users can set and update calorie and protein targets. Daily reports: Personalized progress messages with visual progress bars. Google Sheets integration: Profile table for user targets. Meals table for food logs. Advanced n8n nodes: Includes use of Merge, Subworkflow, and Code nodes for data processing and report generation. Acknowledgment Inspired by the Cal AI concept — this template demonstrates how to reproduce its main functionality with n8n, Telegram, and AI agents as a flexible, open-source automation workflow. Tags telegram ai-assistant nutrition meal-tracking google-sheets food-logging voice-transcription image-analysis daily-reports n8n-template merge-node subworkflow-node code-node telegram-trigger google-gemini Use Case Use this template if you want to: Log meals using text, images, or voice messages. Track nutrition goals (calories, proteins) with daily progress updates. Provide a chat-based nutrition assistant without building a full app. Store structured nutrition data in Google Sheets for easy access and analysis. Example User Interactions User sends a photo of a meal → AI analyzes the food and logs calories/macros. User sends a voice message → AI transcribes and logs the meal. User types “report” → AI returns a daily nutrition summary with progress bars. User says “update my protein goal” → AI updates profile in Google Sheets. Required Credentials Telegram Bot API (Bot Token) Google Sheets API credentials AI Provider API (Google Gemini or compatible LLM) Setup Instructions 1. Create two Google Sheets tables: Profile: User_ID, Name, Calories_target, Protein_target Meals: User_ID, Date, Meal_description, Calories, Proteins, Carbs, Fats 2. Configure the Telegram Trigger with your bot token. 3. Connect your AI provider credentials (Gemini recommended). 4. Connect Google Sheets with your credentials. 5. ▶ Deploy the workflow in n8n. 6. Start interacting with your nutrition assistant via Telegram. Extra Notes Green section: Handles Telegram trigger and user check. Red section: Registers new users and sets goals. Blue section: Processes text, voice, and images. Yellow section: Generates nutrition reports. Purple section: Main AI agent controlling tools and logic. --- Need Assistance? If you’d like help customizing or extending this workflow, feel free to reach out: Email: johnsilva11031@gmail.com LinkedIn: John Alejandro Silva Rodríguez
Working with Large Documents In Your VLM OCR Workflow Document workflows are popular ways to use AI but what happens when your document is too large for your app or your AI to handle? Whether its context window or application memory that's grinding to a halt, Subworkflow.ai is one approach to keep you going. > Subworkflow.ai is a third party API service to help AI developers work with documents too large for context windows and runtime memory. Prequisites 1. You'll need a Subworkflow.ai API key to use the Subworkflow.ai service. 2. Add the API key as a header auth credential. More details in the official docs https://docs.subworkflow.ai/category/api-reference How it Works 1. Import your document into your n8n workflow 2. Upload it to the Subworkflow.ai service via the Extract API using the HTTP node. This endpoint takes files up to 100mb. 3. Once uploaded, this will trigger an Extract job on the service's side and the response is a "job" record to track progress. 4. Poll Subworkflow.ai's Jobs endpoint and keep polling until the job is finished. You can use the "IF" node looping back unto itself to achieve this in n8n. 5. Once the job is done, the Dataset of the uploaded document is ready for retrieval. Use the Datasets and DatasetItems API to retrieve whatever you need to complete your AI task. 6. In this example, all pages are retrieved and run through a multimodal LLM to parse into markdown. A well-known process when parsing data tables or graphics are required. How to use Integrate Subworkflow's Extract API seemlessly into your existing document workflows to support larger documents from 100mb+ to up to 5000 pages. Customising the workflow Sometimes you don't want the entire document back especially if the document is quite large (think 500+ pages!), instead, use query parameters on the DatasetItems API to pick individual pages or a range of pages to reduce the load. Need Help? Official API documentation: https://docs.subworkflow.ai/category/api-reference Join the discord: https://discord.gg/RCHeCPJnYw
Quick Overview This workflow lets users manage Google Calendar by sending text or voice messages to a Zalo Official Account bot, transcribing voice notes with Google Gemini and using an OpenAI-powered agent to create, update, list, or delete events, then replying in Zalo with the result. How it works 1. Receives an incoming text or voice message through a Zalo Bot trigger. 2. Sends a typing indicator back to the Zalo chat and normalizes key message fields (chat ID, type, text, and voice URL). 3. If the message is a voice note, sends the audio URL to Google Gemini to transcribe it into text. 4. Sends the combined text/transcription to an OpenAI chat model agent that interprets the request in Vietnamese and decides whether to list, create, update, or delete a Google Calendar event. 5. Uses Google Calendar tools to get events and then create, update, or delete the targeted event based on the agent’s extracted parameters. 6. Sends the agent’s Markdown-formatted response back to the user in Zalo, and posts an error message to Zalo if the agent run fails. Setup 1. Install the community node package n8n-nodes-zalo-bot-official and restart n8n if required. 2. Connect your Zalo Bot API credentials and configure the Zalo webhook URL in your Zalo Official Account so incoming messages reach this workflow. 3. Add a Google Calendar OAuth2 credential and set the target calendar account (currently configured as toannguyen96vn@gmail.com) for all calendar operations. 4. Add a Google Gemini (PaLM) API credential for audio transcription and ensure voice messages include a reachable voice_url. 5. Add an OpenAI API credential, select the chat model you want to use (currently gpt-5-mini), and adjust the system prompt/tone if needed.