Send daily translated Calvin and Hobbes Comics to Discord

Deliver daily translated Calvin and Hobbes comics directly to your Discord server with this automated workflow. This n8n automation leverages a Schedule Trigger to initiate the process, fetching a comic image via an HTTP Request. An Information Extractor then processes the comic to identify text, which is subsequently sent to OpenAI for translation using the OpenAI Chat Model. Finally, the translated comic and its text are posted to your designated Discord channel using the Discord node, ensuring your community receives fresh, accessible content every day. This workflow is ideal for community managers, content creators, or anyone looking to engage their audience with unique, translated content without manual effort, saving significant time and ensuring consistent delivery of engaging material.

8 nodesschedule trigger78 views0 copiesSocial Media
DiscordOpenAI

Workflow JSON

{"nodes": [{"id": "4bf26356-9c59-4cee-8eb8-8553b23a172f", "name": "Sticky Note", "type": "n8n-nodes-base.stickyNote", "position": [560, -120], "parameters": {"width": 660, "height": 460, "content": "![](https://raw.githubusercontent.com/2innnnn0/30-Days-of-ChatGPT/refs/heads/main/datapopcorn_logo_50px.png)\n# Daily Cartoon (w/ AI Translate)\n\n### How it works\n- Automates the retrieval of Calvin and Hobbes daily comics.\n- Extracts the comic image URL from the website.\n- Translates comic dialogues to English and Korean(Other Language)\n- Posts the comic and translations to Discord daily.\n\n### Set up steps\n- Estimated setup time: ~10-15 minutes.\n- Use a **Schedule Trigger** to automate the workflow at 9 AM daily.\n- Add nodes for parameter setup, HTTP request, data extraction, and integration with Discord.\n- Add detailed notes to each node in the workflow for easy understanding."}, "typeVersion": 1}, {"id": "52d19472-41b4-4d71-874e-064ef9d6f248", "name": "Schedule Trigger", "type": "n8n-nodes-base.scheduleTrigger", "position": [620, 380], "parameters": {"rule": {"interval": [{"triggerAtHour": 9}]}}, "typeVersion": 1.2}, {"id": "bcc15f37-c048-4d9a-83cd-367856470095", "name": "OpenAI", "type": "@n8n/n8n-nodes-langchain.openAi", "position": [1620, 380], "parameters": {"text": "Please write the original language and Korean together. \n\nEXAMPLE)\nCalvin: \"YOU'VE NEVER HAD AN OBLIGATION, AN ASSIGNMENT, OR A DEADLINE IN ALL YOUR LIFE! YOU HAVE NO RESPONSIBILITIES AT ALL! IT MUST BE NICE!\" (\ub108\ub294 \ud3c9\uc0dd \ud55c \ubc88\ub3c4 \uc758\ubb34, \uacfc\uc81c, \ud639\uc740 \ub9c8\uac10\uc77c \uc5c6\uc5c8\uc796\uc544! \uc804\ud600 \ucc45\uc784\uc774 \uc5c6\ub2e4\ub2c8! \uc815\ub9d0 \uc88b\uaca0\ub2e4!)\nHobbes: \"WIPE THAT INSOLENT SMIRK OFF YOUR FACE!\" (\uadf8 \ubed4\ubed4\ud55c \ubbf8\uc18c\ub97c \uadf8\ub9cc \uc9c0\uc5b4!)\n", "modelId": {"__rl": true, "mode": "list", "value": "gpt-4o-mini", "cachedResultName": "GPT-4O-MINI"}, "options": {}, "resource": "image", "imageUrls": "={{ $json.output.cartoon_image }}", "operation": "analyze"}, "credentials": {"openAiApi": {"id": "", "name": "[Your openAiApi]"}}, "typeVersion": 1.6}, {"id": "35004d43-4061-476a-9af6-7d0b82ae86bd", "name": "param", "type": "n8n-nodes-base.set", "position": [840, 380], "parameters": {"options": {}, "assignments": {"assignments": [{"id": "59d36aef-2991-4fd2-9fbe-dad9a701b40f", "name": "year", "type": "string", "value": "={{ $now.format('yyyy') }}"}, {"id": "b6b329f2-ba08-4516-bdb9-c5d124c02110", "name": "month", "type": "string", "value": "={{ $now.format('MM') }}"}, {"id": "3cba75d1-a281-4e14-9bf7-e0bc0cc7c768", "name": "day", "type": "string", "value": "={{ $now.format('dd') }}"}]}}, "typeVersion": 3.4}, {"id": "cf2c953f-1ff2-4abc-8abd-95e05603e64a", "name": "Discord", "type": "n8n-nodes-base.discord", "position": [1840, 380], "parameters": {"content": "=Daily Cartoon ({{ $('param').item.json.year }}/{{ $('param').item.json.month }}/{{ $('param').item.json.day }})\n{{ $('Information Extractor').item.json.output.cartoon_image }}\n\n{{ $json.content }}\n", "options": {}, "authentication": "webhook"}, "credentials": {"discordWebhookApi": {"id": "", "name": "[Your discordWebhookApi]"}}, "typeVersion": 2}, {"id": "5eec9870-a509-4090-a540-76b22bb3eac9", "name": "OpenAI Chat Model", "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", "position": [1260, 560], "parameters": {"model": "gpt-4o-mini-2024-07-18", "options": {}}, "credentials": {"openAiApi": {"id": "", "name": "[Your openAiApi]"}}, "typeVersion": 1}, {"id": "352db81e-7571-47cb-b028-dec18e15ccce", "name": "Information Extractor", "type": "@n8n/n8n-nodes-langchain.informationExtractor", "position": [1260, 380], "parameters": {"text": "=Please just extract the src value in the <img class=\"img-fluid Lazyloaded\"> tag from HTML below. I don't need anything other than the value.\n\ne.g.)\nEXAMPLE INPUT)\n<img class=\"img-fluid lazyloaded\" srcset=\"https://assets.amuniversal.com/5ed526b06e94013bda88005056a9545d 900w\" data-srcset=\"https://assets.amuniversal.com/5ed526b06e94013bda88005056a9545d 900w\" sizes=\"\n (min-width: 992px) 900px,\n (min-width: 768px) 600px,\n (min-width: 576px) 300px,\n 900px\" width=\"100%\" alt=\"Calvin and Hobbes Comic Strip for March 03, 2023 \" src=\"https://assets.amuniversal.com/5ed526b06e94013bda88005056a9545d\">\n\n\nEXAMPLE OUTPUT)\nhttps://assets.amuniversal.com/5ed526b06e94013bda88005056a9545d\n\n--\n(INPUT)\n{{ $json.data }}", "options": {}, "attributes": {"attributes": [{"name": "cartoon_image", "description": "EXAMPLE OUTPUT) https://assets.amuniversal.com/***"}]}}, "typeVersion": 1}, {"id": "517799ed-559c-4d17-b8aa-58bd4ee92ed3", "name": "HTTP Request", "type": "n8n-nodes-base.httpRequest", "position": [1040, 380], "parameters": {"url": "=https://www.gocomics.com/calvinandhobbes/{{ $json.year }}/{{ $json.month }}/{{ $json.day }}", "options": {}}, "typeVersion": 4.2}], "pinData": {}, "connections": {"param": {"main": [[{"node": "HTTP Request", "type": "main", "index": 0}]]}, "OpenAI": {"main": [[{"node": "Discord", "type": "main", "index": 0}]]}, "HTTP Request": {"main": [[{"node": "Information Extractor", "type": "main", "index": 0}]]}, "Schedule Trigger": {"main": [[{"node": "param", "type": "main", "index": 0}]]}, "OpenAI Chat Model": {"ai_languageModel": [[{"node": "Information Extractor", "type": "ai_languageModel", "index": 0}]]}, "Information Extractor": {"main": [[{"node": "OpenAI", "type": "main", "index": 0}]]}}}

How to Import This Workflow

  1. 1Copy the workflow JSON above using the Copy Workflow JSON button.
  2. 2Open your n8n instance and go to Workflows.
  3. 3Click Import from JSON and paste the copied workflow.

Don't have an n8n instance? Start your free trial at n8nautomation.cloud

Related Templates

Telegram AI multi-format chatbot

Automate a multi-format AI chatbot on Telegram, allowing users to interact via text or voice. This workflow connects Telegram for user input and replies with OpenAI for AI processing and voice-to-text conversion. It's ideal for customer support, content generation, or interactive learning platforms. This saves significant time and effort in managing diverse user interactions.

15 nodes

Post New YouTube Videos to X

Automatically share your latest YouTube video content on X (formerly Twitter) with this powerful n8n workflow. This automation regularly checks your YouTube channel for new uploads, then leverages OpenAI's ChatGPT to craft engaging X posts, and finally publishes them directly to your X account. Content creators, businesses, and marketers can use this to maintain a consistent social media presence, ensuring their audience on X is immediately notified of new video releases without manual intervention. This workflow eliminates the need to constantly monitor your YouTube channel and manually compose social media updates, saving significant time and effort while boosting content visibility and audience engagement.

6 nodes

Discord AI bot

Automate the intelligent routing of incoming user requests from a webhook to the appropriate Discord department with this powerful workflow. This n8n workflow leverages OpenAI's advanced natural language processing to analyze user input, then directs the request to either the User Success Dept, IT Dept, or Helpdesk Discord channel based on the identified category. Imagine a customer submitting a query through a web form; this workflow instantly understands their need and posts it in the relevant team's Discord channel, eliminating manual triage and ensuring faster response times. This solution is ideal for businesses and support teams looking to streamline their customer service operations, reduce response delays, and improve internal communication by automatically categorizing and distributing inquiries, saving significant time and effort in managing support tickets.

9 nodes

Ready to automate with n8n?

Get affordable managed n8n hosting with 24/7 support.