The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"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,
"id": "node-c821bf53"
},
{
"name": "Store in Strapi",
"type": "n8n-nodes-base.strapi",
"position": [
1780,
100
],
"parameters": {
"columns": "Content,Author,Created,URL",
"operation": "create",
"contentType": "posts"
},
"credentials": {
"strapiApi": {
"name": "<your credential>"
}
},
"typeVersion": 1,
"id": "node-11962f0d"
},
{
"name": "Every 30 Minutes",
"type": "n8n-nodes-base.interval",
"position": [
240,
100
],
"parameters": {
"unit": "minutes",
"interval": 30
},
"typeVersion": 1,
"id": "node-a7672ade"
},
{
"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,
"id": "node-ca4d8a5e"
},
{
"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": {
"name": "<your credential>"
}
},
"typeVersion": 1,
"id": "node-1851292e"
},
{
"name": "Webhook",
"type": "n8n-nodes-base.webhook",
"position": [
240,
-120
],
"parameters": {
"path": "your-webhook-path",
"options": {},
"httpMethod": "POST"
},
"typeVersion": 1,
"id": "node-6f2ac3de"
},
{
"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,
"id": "node-b186dfcc"
},
{
"name": "Analyze Form Submission",
"type": "n8n-nodes-base.googleCloudNaturalLanguage",
"position": [
680,
-220
],
"parameters": {
"content": "={{$json[\"Content\"]}}",
"options": {}
},
"credentials": {
"googleCloudNaturalLanguageOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 1,
"id": "node-d42215b1"
},
{
"name": "Analyze Tweet",
"type": "n8n-nodes-base.googleCloudNaturalLanguage",
"position": [
1120,
200
],
"parameters": {
"content": "={{$json[\"Content\"]}}",
"options": {}
},
"credentials": {
"googleCloudNaturalLanguageOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 1,
"id": "node-0ff22440"
},
{
"name": "Merge Form Sentiment with Source",
"type": "n8n-nodes-base.merge",
"position": [
900,
-120
],
"parameters": {
"mode": "mergeByIndex"
},
"typeVersion": 1,
"id": "node-03cccf19"
},
{
"name": "Merge Tweet Sentiment with Source",
"type": "n8n-nodes-base.merge",
"position": [
1340,
100
],
"parameters": {
"mode": "mergeByIndex"
},
"typeVersion": 1,
"id": "node-3957a7ca"
},
{
"name": "Positive Form Sentiment?",
"type": "n8n-nodes-base.if",
"position": [
1120,
-120
],
"parameters": {
"conditions": {
"number": [
{
"value1": "={{$json[\"documentSentiment\"][\"score\"]}}",
"value2": 0.4,
"operation": "larger"
}
]
}
},
"typeVersion": 1,
"id": "node-62f1faa5"
},
{
"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": {
"name": "<your credential>"
}
},
"typeVersion": 1,
"id": "node-ecaf5134"
},
{
"name": "Positive Tweet Sentiment?",
"type": "n8n-nodes-base.if",
"position": [
1560,
100
],
"parameters": {
"conditions": {
"number": [
{
"value1": "={{$json[\"documentSentiment\"][\"score\"]}}",
"value2": 0.3,
"operation": "larger"
}
]
}
},
"typeVersion": 1,
"id": "node-5654475d"
},
{
"id": "error-c6aa8ef2",
"name": "Error Handler",
"type": "n8n-nodes-base.stopAndError",
"typeVersion": 1,
"position": [
1000,
400
],
"parameters": {
"message": "Workflow execution error",
"options": {}
}
}
],
"connections": {},
"name": "Production Workflow",
"settings": {
"executionOrder": "v1",
"saveManualExecutions": true,
"callerPolicy": "workflowsFromSameOwner",
"errorWorkflow": null,
"timezone": "UTC",
"executionTimeout": 3600,
"maxExecutions": 1000,
"retryOnFail": true,
"retryCount": 3
},
"meta": {
"versionId": "1.0.0",
"createdAt": "2025-09-29T07:07:55.896573",
"updatedAt": "2025-09-29T07:07:55.896585",
"owner": "n8n-user",
"license": "MIT",
"category": "automation",
"status": "active",
"priority": "high",
"environment": "production"
},
"description": "Production-ready workflow: Production Workflow. This workflow has been optimized for production use with comprehensive error handling, security, and documentation.",
"id": "wfee9a3fd77c29"
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
googleCloudNaturalLanguageOAuth2ApistrapiApitwitterOAuth1Api
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Production Workflow. Uses strapi, twitter, googleCloudNaturalLanguage, stopAndError. Webhook trigger; 15 nodes.
Source: https://github.com/basictechorg/n8n-marketing-sales/blob/main/workflows/content-marketing/0183_Strapi_Webhook_Automation_Webhook.json — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
A comprehensive n8n workflow template for streamlining influencer application processing with real-time social media data validation, intelligent scoring algorithms, and automated onboarding workflows
Production Workflow. Uses mautic, stopAndError. Webhook trigger; 18 nodes.
TwitterWorkflow. Uses twitter, rocketchat, stopAndError. Event-driven trigger; 7 nodes.
Twitter notifications. Uses twitter, mattermost, stopAndError. Scheduled trigger; 6 nodes.
Production Workflow. Uses httpRequest, twitter, stopAndError. Scheduled trigger; 5 nodes.