← Back to Articles

n8n

n8n is a workflow automation tool that allows you to automate tasks and processes by creating workflows that connect different applications and services. It is an open-source tool that can be self-hosted or used in the cloud.

because I I wasn't and still I'm not entirely sure about the level of commitment I'm going to have for the technology and I'm still in the process of exploring I personally chose not to commit with the monthly subscription plan even though there is a free trial period.

I chose to implement the Docker setup. I have been wanting to experiment with Docker for a while.

The setup is the following: you need to download Docker, installed it. Because I didn't want to take a chance with missing my PATH I also chose to temporarily add the docker-path to the current terminal session.

local installation with Docker

Usage once the first set up is done

I choose never to stop the container because I want to be able to stop it or start it just by opening the Docker application. Whenever I want to work locally on n8n I just open Docker and all my workflows are available.

Courses

I have finished the quickstart course on n8n. I really enjoyed the hands-on approach and the coverage of the platform's features. It is punctuated with quizzes that help you memorize the key concepts.

Quickstart course provided by n8n

There are two more courses in the same series that I started working on, one is about advanced features and the other is about integration with AI features.

Webhooks

Among the many benefits and uses of the vast array of nodes available with n8n, webhooks caught my attention. They are a way for applications to communicate with each other in real-time. They allow one application to send data to another application when a specific event occurs. In the context of n8n, webhooks can be used to trigger workflows based on events from external services or applications. For example, you can set up a webhook in n8n that listens for incoming HTTP requests and triggers a workflow whenever a request is received. This allows you to automate tasks and processes based on real-time events, making your workflows more dynamic and responsive. I have a platform where users sign in using their Google account. When a user signs in for the first time a new account is created and the new user is stored on my MongoDB database. New users have a limited access to the functionalities to my platform. I want to review each profile before granting them full access. I have set up a webhook in n8n that listens for new user sign-ups and triggers a workflow that sends me an notifications with the user's details. This allows me to review the new user's profile and decide whether to grant them full access or not.

Locally I was able to set it up seamlessly using an SMTP node to send emails and a telegram node to send messages. It worked flawlessly.

However when I tried to set it up on Railway I started encountering issues with the email node not functioning as expected. I was unable to establish a connection with gmail. Since this is a simple demo I opted to simplify and lower my ambitions and just sticked to the telegram node in production.