Daniel Nolde
Templates by Daniel Nolde
Chat with your event schedule from Google Sheets in Telegram
What it is Chat with your event schedule from Google Sheets in Telegram: "When is the next meetup?" "How many events are there next month?" "Who presented most often?" "Which future meetups have no presenters yet?" This workflow lets you chat with a telegram bot about past, present and future events that are scheduled in a Google Spreadsheet. (Info: This proof-of-concept was created as a demo for a hackathon of an AI & Developer Meetup in Da Nang (Vietnam) that uses a telegram group to organize) Who it is for If you want an easy way for your audience to get information about your events, you can us this workflow for the same purpose, or easily adapt it to your needs and different use-cases where you want to query smaller amounts of tabular data in natural language. How it works Upon getting triggered by a chat message to a telegram bot, the schedule of meetups is retrieved from Google Spreadsheets, converted into a markdown table syntax and fed into the system prompt of an LLM (we're using OpenRouter in this example), whose output is posted back as answer into the same telegram chat. Setup steps TO REVIEWING IN ACTION As the reviewer of this workflow, you can temporarily use it via an existing telegram bot, simply point your telegram client to https://t.me/AiDaNangBot and start to ask questions like: "When is the next meetup?" "What future meetings do not have presenters?" "Who presented on Future of Human Relationships?" To build upon this workflow: Import the workflow Customize the Google Docs credentials for your individual access Create a telegram bot and connect it to the workflow by entering its API token into the credentials used in the telegram trigger node In the "Settings" node, replace the "scheduleURL" with the URL of your own copy of the Google Spreadsheet or a copy of the Event Schedule Template Sheet to spin off your own – whereby the structure of the spreadsheet doesn't matter, it's just important that you semantically structure your information in dedicated columns clearly labeled in the header row.
Extract license plate number from image uploaded via an n8n form
What it does This is a simplistic demo workflow showing how to extract a license plate number from an image of a car submitted via a form – or in more general terms showcasing how you can: use a form trigger to upload files and feed it into an LLM use a changeable LLM model for image-to-text analysis Set up steps Import the workflow Ensure you have registered and account, purchased some credits and created and API key for OpenRouter.ai Create/adapt the OpenRouter credential with your indivial API key for OpenRouter "Test workflow" and submit an image of a car with license plate to extract its number How to adapt By changing the "prompt" in th "Settings" node you can quickly adapt this exemplatory workflow to other image-to-text use cases, such as: summarization: "summarize what's seen in the image" location finding: "identify the location where the image was taken" text extraction: "extract all text from the image and return it as markdown" Thanks to using OpenRouter, you also can quickly experiment with finding good model choices by simply changing the "model" in the "Settings" node. The following models gave good results for this demo use-case: google/gemini-2.0-flash-001 meta-llama/llama-3.2-90b-vision-instruct openai/gpt-4o The llama-3.2-11b and even claude-3.5-sonnet didn't recognize all characters in all test images. Using a generic LLM-model offers a quick way of prototyping an image-to-text application. For specific use cases in serious and scalable production deployments, consider using an API based service specifically made to that purpose, such as: Google Cloud Vision API Microsoft Azure Computer Vision Azure AI Document Intelligence Amazon Textract
Post to an XMLRPC API via the HTTP Request node
What this does Show you how to us XMLRPC APIs via the generic HTTP-Request-node, by the example of posting to a wordpress blog This is also a feasible workaround if a specific n8n integration does not work or stops working (which happens e.g. with the Wordpress node) How it works First, the XML payload for the request is being prepared (in a code node, which also properly escapes special character in the values that you want to send to the XMLRPC endpoint) Then, the HTTP Request node sends the request using the HTTP post method Last, the returned XML response is converted to JSON which a conditional node uses to determine whether th operation was successful or not Setup steps: Import workflow Ensure you have a wordpress blog with a user that has an app-Password Edit the "Settings"-node and enter your individual values for url/user/app-pw