Einführung
Dieser Workflow nutzt die n8n-Plattform, um Tweets zu erfassen und ihre Sentiment-Werte mithilfe von Google Cloud Natural Language API zu analysieren. Die analysierten Tweets werden dann in einer PostgreSQL-Datenbank gespeichert und in einem Slack-Kanal geteilt, wenn der sentimentale Score einen bestimmten Wert überschreitet.
Node-Details
1. Cron
- Name: Cron
- Typ: n8n-nodes-base.cron
- Aufgabe: Dieser Node löst den Workflow jeden Tag um 6 Uhr morgens aus.
- Ausslungen:
{"triggerTimes":{"item":[{"hour":6}]}}
2. Twitter
- Name: Twitter
- Typ: n8n-nodes-base.twitter
- Aufgabe: Dieser Node sucht nach den neuesten Tweets, die den Hashtag
#OnThisDayenthalten. - Ausslungen:
{"limit":3,"operation":"search","searchText":"=#OnThisDay"} - Credentials: Twitter API für authentifizierte Anfragen.
3. MongoDB
- Name: MongoDB
- Typ: n8n-nodes-base.mongoDb
- Aufgabe: Speichert die abgerufenen Tweets in der
tweetsCollection in einer MongoDB-Datenbank. - Ausslungen:
{"fields":"text","operation":"insert","collection":"tweets"} - Credentials: MongoDB Zugangsdaten.
4. Google Cloud Natural Language
- Name: Google Cloud Natural Language
- Typ: n8n-nodes-base.googleCloudNaturalLanguage
- Aufgabe: Analysiert den Text der Tweets, um sentimentale Scores und Magnituden zu erhalten.
- Ausslungen:
{"content":"={{$node[\"MongoDB\"].json[\"text\"]}}"} - Credentials: Google Cloud Natural Language API Zugangsdaten.
5. Set
- Name: Set
- Typ: n8n-nodes-base.set
- Aufgabe: Setzt die Analyseergebnisse (Sentiment Score und Magnitude) für die Verwendung in nachfolgenden Nodes.
- Ausslungen:
{"values":{"number":[{"name":"score","value":"={{$json[\"documentSentiment\"][\"score\"]}}"},{"name":"magnitude","value":"={{$json[\"documentSentiment\"][\"magnitude\"]}}"}],"string":[{"name":"text","value":"={{$node[\"Twitter\"].json[\"text\"]}}"}]}}
6. Postgres
- Name: Postgres
- Typ: n8n-nodes-base.postgres
- Aufgabe: Speichert die analysierten Tweets in einer PostgreSQL-Datenbanktabelle namens
tweets. - Ausslungen:
{"table":"tweets","columns":"text, score, magnitude","returnFields":"=*"} - Credentials: PostgreSQL Zugangsdaten.
7. IF
- Name: IF
- Typ: n8n-nodes-base.if
- Aufgabe: Überprüft, ob der sentimentale Score größer als ein bestimmter Wert ist.
- Ausslungen:
{"conditions":{"number":[{"value1":"={{$json[\"score\"]}}","operation":"larger"}]}}
8. Slack
- Name: Slack
- Typ: n8n-nodes-base.slack
- Aufgabe: Sendet eine Nachricht in einen Slack-Kanal, wenn der sentimentale Score des Tweets größer ist als der definierte Wert.
- Ausslungen:
{"text":"=🐦 NEW TWEET with sentiment score {{$json[\"score\"]}} and magnitude {{$json[\"magnitude\"]}} ⬇️\n{{$json[\"text\"]}}","channel":"tweets"} - Credentials: Slack API Zugangsdaten.
9. NoOp
- Name: NoOp
- Typ: n8n-nodes-base.noOp
- Aufgabe: Ein Platzhalter für die Ausführung, wenn die Bedingung im
IFNode nicht erfüllt ist.
Ergebnis
Dieser ETL-Pipeline-Workflow ermöglicht die automatisierte Verarbeitung und Analyse von Tweets. Basierend auf dem sentimentalen Score der Tweets können Nutzer relevante Informationen in Echtzeit über Slack erhalten und die Daten in PostgreSQL für spätere Analysen speichern.
Download Link
Sie können den Workflow hier herunterladen: Download Link