Creating a website change monitor

Hi,
I would like to create a workflow that would send a request to multiple websites i provided every couple of hours, compare the response bodies and send the differences to telegram/slack… I know that there are pre built workflows for this tasks but unfortunately they are not working properly for me, and as I am new to n8n I am not able to create a functioning workflow myself. Does anyone have a pre built workflow of something close to what i need?

I don’t have a prebuilt workflow but just wanted to call out the relatively new Compare Datasets node that can help with these sorts of comparisons, or identifying uniqueness in one item of data vs another.

I managed to get to this

I think that this is so far so good, i just need to be able to extract only the differences.

Also thank you for the very fast response!

My pleasure! Glad to see you made some progress. While we don’t have a diff node like that natively, I think there are some in community nodes: n8n diff - npm search

You can access community nodes also via settings > community nodes in n8n.

1 Like

The node Published by me was made with the JSON-diff NPM package.
@dickhoning came up with the idea for this one on another topic. It works amazing and I am very happy Dick wanted to develop this one. :slight_smile:

2 Likes

And I’m happy Bram developed the JSON Diff Node for me :slight_smile: … and this was the topic: JSON Diff Node

Also thanks to @Marcus for pointing me in the right direction :+1:

4 Likes

BTW the JSON Diff Node is not documented yet, but I’m planning to do so in the foreseeable future.

2 Likes

Thanks both for your work on these and also for sharing the links :clap:

1 Like

Thank you so much, the JSON Diff node seems good so far!

My workflow so far has been to make a request, wait some time, and then make another request, since i want to check every couple of hours, it does not seem optimal for one workflow to run for multiple hours(the wait node would have to be set to 3 hours in this case), is there a way to store the results from the first http request somewhere and then use it in another workflow when i want to test for changes

Also, this workflow should be provided with over a 1000 hosts, and chances are some of them are completely offline, i know that there is an option to ignore the response codes, which should probably ignore when a response code such as a 404 comes, but sometimes the websites just timeout completely, and it always breaks my workflow, i cannot get around the timeout, is there a workaround?

Once again, sorry for bothering, I have been loving n8n so far, it has been a game changer!

Simply create a schedule in a tool like baserow with some basic info you need to check the host.
And then have a schedule node trigger the workflow to check every 5 minutes or so for example.

1 Like

I hope that this is the last reply i make, i chose mongodb to store the data somewhere and then the idea is to extract the data from mongodb whenever i start the workflow and compare the responses with the extracted data,
In the screenshot you can see that only the first website is being sent to mongo, the rest are labeled as null, is there a way to send all the responses to mongo with the way i am currently setting up my workflow?

Just a small update, i managed to create a semi working workflow for now, it is pretty ugly and it will probably need fixing but so far so good, if you have a suggestion for me i would love to hear it :smiley:

Hi @Lazar_Milic I’m not sure the Diff node is what you’re looking for. The Diff node give you the keys of the value that have changed, with the old and the new value, and not the differences in the value (text) itself …