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 →
{
"name": "DISTMAH - Nueva Rese\u00f1a/Testimonio",
"nodes": [
{
"parameters": {
"httpMethod": "POST",
"path": "review-webhook",
"responseMode": "responseNode",
"options": {}
},
"id": "webhook-review",
"name": "Webhook Rese\u00f1a",
"type": "n8n-nodes-base.webhook",
"typeVersion": 2,
"position": [
250,
300
]
},
{
"parameters": {
"respondWith": "json",
"responseBody": "={\"status\": \"received\"}"
},
"id": "response",
"name": "Responder OK",
"type": "n8n-nodes-base.respondToWebhook",
"typeVersion": 1,
"position": [
450,
300
]
},
{
"parameters": {
"conditions": {
"number": [
{
"value1": "={{ $json.review.rating }}",
"operation": "largerEqual",
"value2": 4
}
]
}
},
"id": "check-rating",
"name": "\u00bfRating >= 4?",
"type": "n8n-nodes-base.if",
"typeVersion": 1,
"position": [
650,
300
]
},
{
"parameters": {
"fromEmail": "noreply@distmah.com.ve",
"toEmail": "marketing@distmah.com.ve",
"subject": "=Nueva Rese\u00f1a Positiva - {{ $json.review.courseName }}",
"emailType": "html",
"html": "=<div style=\"font-family: Arial, sans-serif; max-width: 600px; margin: 0 auto;\">\n <div style=\"background: #28a745; padding: 20px; text-align: center;\">\n <h1 style=\"color: white; margin: 0;\">Nueva Rese\u00f1a Positiva</h1>\n </div>\n \n <div style=\"background: white; padding: 30px; border: 1px solid #ddd;\">\n <div style=\"text-align: center; margin-bottom: 20px;\">\n <span style=\"font-size: 36px;\">{{ '\u2b50'.repeat($json.review.rating) }}</span>\n </div>\n \n <blockquote style=\"background: #f9f9f9; padding: 20px; border-left: 4px solid #1F4E79; margin: 20px 0; font-style: italic;\">\n \"{{ $json.review.comment }}\"\n </blockquote>\n \n <ul style=\"color: #666;\">\n <li><strong>Estudiante:</strong> {{ $json.review.studentName }}</li>\n <li><strong>Curso:</strong> {{ $json.review.courseName }}</li>\n <li><strong>Rating:</strong> {{ $json.review.rating }}/5</li>\n <li><strong>Fecha:</strong> {{ $json.review.createdAt }}</li>\n </ul>\n \n <div style=\"background: #e8f5e9; padding: 15px; border-radius: 5px; margin-top: 20px;\">\n <p style=\"color: #2e7d32; margin: 0;\"><strong>Acci\u00f3n sugerida:</strong> Considera usar esta rese\u00f1a en marketing y redes sociales.</p>\n </div>\n </div>\n</div>"
},
"id": "notify-marketing",
"name": "Notificar Marketing",
"type": "n8n-nodes-base.emailSend",
"typeVersion": 2.1,
"position": [
850,
200
],
"credentials": {
"smtp": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"fromEmail": "noreply@distmah.com.ve",
"toEmail": "admin@distmah.com.ve",
"subject": "=Rese\u00f1a Negativa Recibida - {{ $json.review.courseName }}",
"emailType": "html",
"html": "=<div style=\"font-family: Arial, sans-serif; max-width: 600px; margin: 0 auto;\">\n <div style=\"background: #dc3545; padding: 20px; text-align: center;\">\n <h1 style=\"color: white; margin: 0;\">Rese\u00f1a Negativa - Atenci\u00f3n Requerida</h1>\n </div>\n \n <div style=\"background: white; padding: 30px; border: 1px solid #ddd;\">\n <div style=\"text-align: center; margin-bottom: 20px;\">\n <span style=\"font-size: 36px;\">{{ '\u2b50'.repeat($json.review.rating) }}{{ '\u2606'.repeat(5 - $json.review.rating) }}</span>\n </div>\n \n <blockquote style=\"background: #fff3cd; padding: 20px; border-left: 4px solid #ffc107; margin: 20px 0; font-style: italic;\">\n \"{{ $json.review.comment }}\"\n </blockquote>\n \n <ul style=\"color: #666;\">\n <li><strong>Estudiante:</strong> {{ $json.review.studentName }}</li>\n <li><strong>Email:</strong> {{ $json.review.studentEmail }}</li>\n <li><strong>Curso:</strong> {{ $json.review.courseName }}</li>\n <li><strong>Rating:</strong> {{ $json.review.rating }}/5</li>\n </ul>\n \n <div style=\"background: #f8d7da; padding: 15px; border-radius: 5px; margin-top: 20px;\">\n <p style=\"color: #721c24; margin: 0;\"><strong>Acci\u00f3n requerida:</strong> Contactar al estudiante para resolver su insatisfacci\u00f3n.</p>\n </div>\n </div>\n</div>"
},
"id": "notify-negative",
"name": "Alertar Rese\u00f1a Negativa",
"type": "n8n-nodes-base.emailSend",
"typeVersion": 2.1,
"position": [
850,
400
],
"credentials": {
"smtp": {
"name": "<your credential>"
}
}
}
],
"connections": {
"Webhook Rese\u00f1a": {
"main": [
[
{
"node": "Responder OK",
"type": "main",
"index": 0
},
{
"node": "\u00bfRating >= 4?",
"type": "main",
"index": 0
}
]
]
},
"\u00bfRating >= 4?": {
"main": [
[
{
"node": "Notificar Marketing",
"type": "main",
"index": 0
}
],
[
{
"node": "Alertar Rese\u00f1a Negativa",
"type": "main",
"index": 0
}
]
]
}
},
"settings": {
"executionOrder": "v1"
},
"tags": [
{
"name": "rese\u00f1as"
},
{
"name": "marketing"
}
]
}
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.
smtp
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
DISTMAH - Nueva Reseña/Testimonio. Uses emailSend. Webhook trigger; 5 nodes.
Source: https://github.com/webcadeveloper/DISTMAH-ATC-/blob/96e6fc936a3f6dc64eeb9e6f6834607fe0156451/n8n-workflows/17-nueva-resena.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.
> ⚠️ Notice: > This workflow uses the HTML to Docx node from customjs.space, which requires a self-hosted n8n instance and a CustomJS API key.
Retention Actions. Uses emailSend, todoist. Webhook trigger; 7 nodes.
MamVibe — User Registered. Uses emailSend. Webhook trigger; 5 nodes.
Post-Job Google Review Request. Uses emailSend. Webhook trigger; 3 nodes.
Leave Request Notifications. Uses emailSend. Webhook trigger; 2 nodes.