Workflow: Airtable Vonage Automation

Workflow Details

Download Workflow
{
    "id": "7",
    "name": "Daily Language Learning",
    "nodes": [
        {
            "name": "Daily trigger",
            "type": "n8n-nodes-base.cron",
            "position": [
                620,
                750
            ],
            "parameters": {
                "triggerTimes": {
                    "item": [
                        {
                            "hour": 8
                        }
                    ]
                }
            },
            "typeVersion": 1
        },
        {
            "name": "Get top 3 articles",
            "type": "n8n-nodes-base.hackerNews",
            "position": [
                820,
                750
            ],
            "parameters": {
                "limit": 3,
                "resource": "all",
                "additionalFields": {
                    "tags": [
                        "front_page"
                    ]
                }
            },
            "typeVersion": 1
        },
        {
            "name": "Extract words",
            "type": "n8n-nodes-base.function",
            "position": [
                1020,
                750
            ],
            "parameters": {
                "functionCode": "const words = [];\nconst regex = \/\\d\/g;\nconst newItems = [];\n\n\/\/ Splits titles into words and removes numbers\n\/\/ using regular expressions\n\nfor(let i=0; i < items.length; i++) {\n  let split_titles = []; \n  split_titles = items[i].json.title.split(' ');\n  for(let j=0; j < split_titles.length; j++) {\n    if(regex.test(split_titles[j])) {\n      continue;\n    } else {\n      words.push(split_titles[j]);\n    }\n  }\n}\n\n\/\/ Removes all duplicate words by converting the\n\/\/ array into a set and then back into an array\n\nconst uniqueWords = [...new Set(words)];\n\n\/\/ Transform the array to the data structure expected\n\/\/ by n8n\n\nfor(let k=0; k < uniqueWords.length; k++) {\n  newItems.push({json: { words: uniqueWords[k] }});\n}\n\nreturn newItems;"
            },
            "typeVersion": 1
        },
        {
            "name": "Translate",
            "type": "n8n-nodes-base.lingvaNex",
            "position": [
                1220,
                750
            ],
            "parameters": {
                "text": "={{$node[\"Extract words\"].json[\"words\"]}}",
                "options": [],
                "translateTo": "de_DE"
            },
            "credentials": {
                "lingvaNexApi": "LingvaNex"
            },
            "typeVersion": 1
        },
        {
            "name": "Filter data ",
            "type": "n8n-nodes-base.set",
            "position": [
                1420,
                750
            ],
            "parameters": {
                "values": {
                    "string": [
                        {
                            "name": "English word",
                            "value": "={{$node[\"Translate\"].json[\"source\"]}}"
                        },
                        {
                            "name": "Translated word",
                            "value": "={{$node[\"Translate\"].json[\"result\"]}}"
                        }
                    ]
                },
                "options": [],
                "keepOnlySet": true
            },
            "typeVersion": 1
        },
        {
            "name": "Save today's words",
            "type": "n8n-nodes-base.airtable",
            "position": [
                1620,
                850
            ],
            "parameters": {
                "table": "Table 1",
                "options": [],
                "operation": "append",
                "application": "app4Y6qcCHIO1cYNB"
            },
            "credentials": {
                "airtableApi": "Airtable"
            },
            "typeVersion": 1
        },
        {
            "name": "Craft message",
            "type": "n8n-nodes-base.function",
            "position": [
                1620,
                650
            ],
            "parameters": {
                "functionCode": "const number_of_words = 5;\nconst words = [];\n\n\/\/ Crafts the words to be sent in en_word : translated_word format\n\/\/ and adds them to an array\n\nfor(let i=0; i < number_of_words; i++) {\n  words.push(items[i].json['English word'] + ' : ' + items[i].json['Translated word']);\n}\n\n\/\/ Takes all the items from the array and converts them into a comma\n\/\/ separated string\n\nconst words_of_the_day = words.join(', ');\n\nreturn [{json: {words_of_the_day: words_of_the_day}}];"
            },
            "typeVersion": 1
        },
        {
            "name": "Send SMS",
            "type": "n8n-nodes-base.vonage",
            "position": [
                1820,
                650
            ],
            "parameters": {
                "to": "+4915225152610",
                "from": "Vonage APIs",
                "message": "=Good morning, here are your words for today\n{{$node[\"Craft message\"].json[\"words_of_the_day\"]}}",
                "additionalFields": []
            },
            "credentials": {
                "vonageApi": "Vonage"
            },
            "typeVersion": 1
        }
    ],
    "active": false,
    "settings": [],
    "connections": {
        "Translate": {
            "main": [
                [
                    {
                        "node": "Filter data ",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Filter data ": {
            "main": [
                [
                    {
                        "node": "Craft message",
                        "type": "main",
                        "index": 0
                    },
                    {
                        "node": "Save today's words",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Craft message": {
            "main": [
                [
                    {
                        "node": "Send SMS",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Daily trigger": {
            "main": [
                [
                    {
                        "node": "Get top 3 articles",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Extract words": {
            "main": [
                [
                    {
                        "node": "Translate",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Get top 3 articles": {
            "main": [
                [
                    {
                        "node": "Extract words",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        }
    }
}
Back to Workflows

Related Workflows

Discord MCP Chat Agent
View
Send the Astronomy Picture of the day daily to a Telegram channel
View
Auto Knowledge Base Article Generator
View
get_a_web_page
View
GoogleSheets GoogleDrive Automate Triggered
View
Building RAG Chatbot for Movie Recommendations with Qdrant and Open AI
View
AI Agent - Cv Resume - Automated Screening , Sorting , Rating and Tracker System
View
Create Email Campaign From LinkedIn Post Interactions
View
GitLab MR Auto-Review & Risk Assessment
View
Summarize Google Sheets form feedback via OpenAI's GPT-4
View