Workflow: Strapi Webhook Automation

Workflow Details

Download Workflow
{
    "nodes": [
        {
            "name": "Simplify Result",
            "type": "n8n-nodes-base.set",
            "position": [
                680,
                100
            ],
            "parameters": {
                "values": {
                    "string": [
                        {
                            "name": "Content",
                            "value": "={{$json[\"full_text\"].replace(\/(?:https?|ftp):\\\/\\\/[\\n\\S]+\/g, '')}}"
                        },
                        {
                            "name": "Author",
                            "value": "={{$json[\"user\"][\"name\"]}} (@{{$json[\"user\"][\"screen_name\"]}})"
                        },
                        {
                            "name": "Created",
                            "value": "={{new Date($json[\"created_at\"]).toISOString()}}"
                        },
                        {
                            "name": "URL",
                            "value": "=https:\/\/twitter.com\/{{$json[\"user\"][\"screen_name\"]}}\/status\/{{$json[\"id_str\"]}}"
                        }
                    ]
                },
                "options": [],
                "keepOnlySet": true
            },
            "typeVersion": 1
        },
        {
            "name": "Store in Strapi",
            "type": "n8n-nodes-base.strapi",
            "position": [
                1780,
                100
            ],
            "parameters": {
                "columns": "Content,Author,Created,URL",
                "operation": "create",
                "contentType": "posts"
            },
            "credentials": {
                "strapiApi": {
                    "id": "136",
                    "name": "Strapi Demo"
                }
            },
            "typeVersion": 1
        },
        {
            "name": "Every 30 Minutes",
            "type": "n8n-nodes-base.interval",
            "position": [
                240,
                100
            ],
            "parameters": {
                "unit": "minutes",
                "interval": 30
            },
            "typeVersion": 1
        },
        {
            "name": "Is Retweet or Old?",
            "type": "n8n-nodes-base.if",
            "position": [
                900,
                100
            ],
            "parameters": {
                "conditions": {
                    "string": [
                        {
                            "value1": "={{$json[\"Content\"]}}",
                            "value2": "RT @",
                            "operation": "startsWith"
                        }
                    ],
                    "dateTime": [
                        {
                            "value1": "={{$json[\"Created\"]}}",
                            "value2": "={{new Date(new Date().getTime() - 30 * 60 * 1000)}}",
                            "operation": "before"
                        }
                    ]
                },
                "combineOperation": "any"
            },
            "typeVersion": 1
        },
        {
            "name": "Search Tweets",
            "type": "n8n-nodes-base.twitter",
            "position": [
                460,
                100
            ],
            "parameters": {
                "operation": "search",
                "searchText": "(strapi OR n8n.io) AND lang:en",
                "additionalFields": {
                    "tweetMode": "extended",
                    "resultType": "recent"
                }
            },
            "credentials": {
                "twitterOAuth1Api": {
                    "id": "15",
                    "name": "@MutedJam"
                }
            },
            "typeVersion": 1
        },
        {
            "name": "Webhook",
            "type": "n8n-nodes-base.webhook",
            "position": [
                240,
                -120
            ],
            "webhookId": "6f833370-9068-44ef-8e56-4ceb563a851e",
            "parameters": {
                "path": "6f833370-9068-44ef-8e56-4ceb563a851e",
                "options": [],
                "httpMethod": "POST"
            },
            "typeVersion": 1
        },
        {
            "name": "Simplify Webhook Result",
            "type": "n8n-nodes-base.set",
            "position": [
                460,
                -120
            ],
            "parameters": {
                "values": {
                    "string": [
                        {
                            "name": "Content",
                            "value": "={{$json[\"body\"][\"data\"][\"fields\"][1][\"value\"]}}"
                        },
                        {
                            "name": "Author",
                            "value": "={{$json[\"body\"][\"data\"][\"fields\"][0][\"value\"]}}"
                        },
                        {
                            "name": "Created",
                            "value": "={{new Date().toISOString()}}"
                        },
                        {
                            "name": "URL"
                        }
                    ]
                },
                "options": [],
                "keepOnlySet": true
            },
            "typeVersion": 1
        },
        {
            "name": "Analyze Form Submission",
            "type": "n8n-nodes-base.googleCloudNaturalLanguage",
            "position": [
                680,
                -220
            ],
            "parameters": {
                "content": "={{$json[\"Content\"]}}",
                "options": []
            },
            "credentials": {
                "googleCloudNaturalLanguageOAuth2Api": {
                    "id": "138",
                    "name": "Google Cloud Natural Language account"
                }
            },
            "typeVersion": 1
        },
        {
            "name": "Analyze Tweet",
            "type": "n8n-nodes-base.googleCloudNaturalLanguage",
            "position": [
                1120,
                200
            ],
            "parameters": {
                "content": "={{$json[\"Content\"]}}",
                "options": []
            },
            "credentials": {
                "googleCloudNaturalLanguageOAuth2Api": {
                    "id": "138",
                    "name": "Google Cloud Natural Language account"
                }
            },
            "typeVersion": 1
        },
        {
            "name": "Merge Form Sentiment with Source",
            "type": "n8n-nodes-base.merge",
            "position": [
                900,
                -120
            ],
            "parameters": {
                "mode": "mergeByIndex"
            },
            "typeVersion": 1
        },
        {
            "name": "Merge Tweet Sentiment with Source",
            "type": "n8n-nodes-base.merge",
            "position": [
                1340,
                100
            ],
            "parameters": {
                "mode": "mergeByIndex"
            },
            "typeVersion": 1
        },
        {
            "name": "Positive Form Sentiment?",
            "type": "n8n-nodes-base.if",
            "position": [
                1120,
                -120
            ],
            "parameters": {
                "conditions": {
                    "number": [
                        {
                            "value1": "={{$json[\"documentSentiment\"][\"score\"]}}",
                            "value2": 0.40000000000000002220446049250313080847263336181640625,
                            "operation": "larger"
                        }
                    ]
                }
            },
            "typeVersion": 1
        },
        {
            "name": "Store Form Submission in Strapi",
            "type": "n8n-nodes-base.strapi",
            "position": [
                1340,
                -120
            ],
            "parameters": {
                "columns": "Content,Author,Created,URL",
                "operation": "create",
                "contentType": "posts"
            },
            "credentials": {
                "strapiApi": {
                    "id": "136",
                    "name": "Strapi Demo"
                }
            },
            "typeVersion": 1
        },
        {
            "name": "Positive Tweet Sentiment?",
            "type": "n8n-nodes-base.if",
            "position": [
                1560,
                100
            ],
            "parameters": {
                "conditions": {
                    "number": [
                        {
                            "value1": "={{$json[\"documentSentiment\"][\"score\"]}}",
                            "value2": 0.299999999999999988897769753748434595763683319091796875,
                            "operation": "larger"
                        }
                    ]
                }
            },
            "typeVersion": 1
        }
    ],
    "connections": {
        "Webhook": {
            "main": [
                [
                    {
                        "node": "Simplify Webhook Result",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Analyze Tweet": {
            "main": [
                [
                    {
                        "node": "Merge Tweet Sentiment with Source",
                        "type": "main",
                        "index": 1
                    }
                ]
            ]
        },
        "Search Tweets": {
            "main": [
                [
                    {
                        "node": "Simplify Result",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Simplify Result": {
            "main": [
                [
                    {
                        "node": "Is Retweet or Old?",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Every 30 Minutes": {
            "main": [
                [
                    {
                        "node": "Search Tweets",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Is Retweet or Old?": {
            "main": [
                null,
                [
                    {
                        "node": "Analyze Tweet",
                        "type": "main",
                        "index": 0
                    },
                    {
                        "node": "Merge Tweet Sentiment with Source",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Analyze Form Submission": {
            "main": [
                [
                    {
                        "node": "Merge Form Sentiment with Source",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Simplify Webhook Result": {
            "main": [
                [
                    {
                        "node": "Analyze Form Submission",
                        "type": "main",
                        "index": 0
                    },
                    {
                        "node": "Merge Form Sentiment with Source",
                        "type": "main",
                        "index": 1
                    }
                ]
            ]
        },
        "Positive Form Sentiment?": {
            "main": [
                [
                    {
                        "node": "Store Form Submission in Strapi",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Positive Tweet Sentiment?": {
            "main": [
                [
                    {
                        "node": "Store in Strapi",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Merge Form Sentiment with Source": {
            "main": [
                [
                    {
                        "node": "Positive Form Sentiment?",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Merge Tweet Sentiment with Source": {
            "main": [
                [
                    {
                        "node": "Positive Tweet Sentiment?",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        }
    }
}
Back to Workflows

Related Workflows

[1/3 - anomaly detection] [1/2 - KNN classification] Batch upload dataset to Qdrant (crops dataset)
View
Blockchain DEX Screener Insights Agent
View
Webhook Slack Create Webhook
View
Notion Webhook Create Webhook
View
AI-Powered Information Monitoring with OpenAI, Google Sheets, Jina AI and Slack
View
Backup Squarespace code Injections to Github
View
Asana Notion Create Triggered
View
Code Schedule Create Scheduled
View
GoogleSheets Spreadsheetfile Create Webhook
View
Telegram Filter Send Scheduled
View